ETH Price: $2,508.66 (+0.34%)

Token

Ordible (ORB)
 

Overview

Max Total Supply

100,000,000 ORB

Holders

415 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$8,259.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,584.895323204 ORB

Value
$2.03 ( ~0.00080919737709297 Eth) [0.0246%]
0x8ddcba2258d6ca6089ddfa63d77106370e094b1a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Ordible is a telegram bot service that allows users to interact with the BRC20 ecosystem, a blockchain platform for decentralized applications.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Ordible

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-12
*/

// SPDX-License-Identifier: MIT


/*

BRC20 Tools and Portofolio Management Service on Telegram.

Website link: https://ordible.bot
Twitter: https://x.com/ordible_bot
Medium: https://ordible.medium.com
Youtube: https://youtube.com/@ordible
Telegram: https://t.me/ordiblebot
Other Useful links: https://linktr.ee/Ordible

**/
 
pragma solidity 0.8.21;

abstract contract Context {
    /**
     * @dev Returns the current sender of the message.
     * This function is internal view virtual, meaning that it can only be used within this contract or derived contracts.
     * @return The address of the account that initiated the transaction.
     */
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    /**
     * @dev Returns the total supply of tokens.
     * @return The total supply of tokens.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the balance of a specific account.
     * @param account The address of the account to check the balance for.
     * @return The balance of the specified account.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Transfers tokens to a recipient.
     * @param recipient The address of the recipient.
     * @param amount The amount of tokens to be transferred.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining allowance for a spender.
     * @param owner The address of the token owner.
     * @param spender The address of the spender.
     * @return The remaining allowance for the specified owner and spender.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Approves a spender to spend a certain amount of tokens on behalf of the owner.
     * @param spender The address which will spend the funds.
     * @param amount The amount of tokens to be spent.
     * @return A boolean indicating whether the approval was successful or not.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Transfers tokens from one account to another.
     * @param sender The address from which the tokens will be transferred.
     * @param recipient The address to which the tokens will be transferred.
     * @param amount The amount of tokens to be transferred.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when tokens are transferred from one address to another.
     * @param from The address from which the tokens are transferred.
     * @param to The address to which the tokens are transferred.
     * @param value The amount of tokens being transferred.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the approval of a spender is updated.
     * @param owner The address that approves the spender.
     * @param spender The address that is approved.
     * @param value The new approved amount.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     * @param a The first integer to add.
     * @param b The second integer to add.
     * @return The sum of the two integers.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow.
     * @param a The integer to subtract from (minuend).
     * @param b The integer to subtract (subtrahend).
     * @return The difference of the two integers.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Subtracts two unsigned integers, reverts with custom message on overflow.
     * @param a The integer to subtract from (minuend).
     * @param b The integer to subtract (subtrahend).
     * @param errorMessage The error message to revert with.
     * @return The difference of the two integers.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     * @param a The first integer to multiply.
     * @param b The second integer to multiply.
     * @return The product of the two integers.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Divides two unsigned integers, reverts on division by zero.
     * @param a The dividend.
     * @param b The divisor.
     * @return The quotient of the division.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Divides two unsigned integers, reverts with custom message on division by zero.
     * @param a The dividend.
     * @param b The divisor.
     * @param errorMessage The error message to revert with.
     * @return The quotient of the division.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;

    /// @dev Emitted when ownership is transferred.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract, setting the original owner to the sender account.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     * @return The address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Renounces ownership, leaving the contract without an owner.
     * @notice Renouncing ownership will leave the contract without an owner,
     * which means it will not be possible to call onlyOwner functions anymore.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Factory {
    /**
     * @dev Creates a new UniswapV2 pair for the given tokens.
     * @param tokenA The address of the first token in the pair.
     * @param tokenB The address of the second token in the pair.
     * @return pair The address of the newly created UniswapV2 pair.
     */
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    /**
     * @dev Swaps an exact amount of input tokens for as much output as possible, along with additional functionality
     * to support fee-on-transfer tokens.
     * @param amountIn The amount of input tokens to swap.
     * @param amountOutMin The minimum amount of output tokens expected to receive.
     * @param path An array of token addresses representing the path of the swap.
     * @param to The recipient address to send the swapped ETH to.
     * @param deadline The timestamp for the deadline of the swap transaction.
     */
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    /**
     * @dev Returns the address of the UniswapV2Factory contract.
     * @return The address of the UniswapV2Factory contract.
     */
    function factory() external pure returns (address);

    /**
     * @dev Returns the address of the WETH (Wrapped ETH) contract.
     * @return The address of the WETH contract.
     */
    function WETH() external pure returns (address);

    /**
    * @dev Adds liquidity to an ETH-based pool.
    * @param token The address of the ERC-20 token to add liquidity for.
    * @param amountTokenDesired The desired amount of tokens to add.
    * @param amountTokenMin The minimum amount of tokens expected to receive.
    * @param amountETHMin The minimum amount of ETH expected to receive.
    * @param to The recipient address to send the liquidity to.
    * @param deadline The timestamp for the deadline of the liquidity addition transaction.
    * @return amountToken The amount of token added.
    * @return amountETH The amount of ETH added.
    * @return liquidity The amount of liquidity added.
    */
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Ordible is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _holderLastTransferTimestamp;

    string private constant _name = "Ordible";
    string private constant _symbol = "ORB";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletSize = _totalSupply / 100;
    uint256 public _taxSwapThreshold = _totalSupply / 100;

    uint256 private _buyFee = 20;
    uint256 private _sellFee = 25;

    address payable private _taxWallet;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferDelayEnabled = true;

    event FeeUpdated(uint256 buyFee, uint256 sellFee);
    event MaxTxAmountUpdated(uint256 maxTxAmount);
    event MaxWalletSizeUpdated(uint256 maxWalletSize);
    event TaxSwapThresholdUpdated(uint256 newThreshold);
    event TransferDelayUpdated(bool transferDelayEnabled);
    event TradingOpened();

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    /**
     * @dev Initializes the ORB token contract.
     * @param taxWallet The address of the wallet to receive tax fees.
     */
    constructor (address taxWallet) {
        _taxWallet = payable(taxWallet);
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    /**
     * @dev Gets the name of the ORB token.
     * @return The name of the token.
     */
    function name() public pure returns (string memory) {
        return _name;
    }

    /**
     * @dev Gets the symbol of the ORB token.
     * @return The symbol of the token.
     */
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Gets the number of decimals used for the ORB token.
     * @return The number of decimals.
     */
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Gets the total supply of the ORB token.
     * @return The total supply.
     */
    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param account The address to query the balance of.
     * @return The balance of the specified address.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev Transfers tokens from the sender to the recipient.
     * @param recipient The address of the recipient.
     * @param amount The amount of tokens to transfer.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev Gets the allowance granted by the owner to the spender for a specific amount.
     * @param owner The address granting the allowance.
     * @param spender The address receiving the allowance.
     * @return The remaining allowance for the spender.
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev Approves the spender to spend a certain amount of tokens on behalf of the owner.
     * @param spender The address to be approved.
     * @param amount The amount of tokens to approve.
     * @return A boolean indicating whether the approval was successful or not.
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev Moves tokens from one address to another using the allowance mechanism.
     * @param sender The address to send tokens from.
     * @param recipient The address to receive tokens.
     * @param amount The amount of tokens to transfer.
     * @return A boolean indicating whether the transfer was successful or not.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Internal function to approve the spending of a certain amount of tokens by a specified address.
     * @param owner The address granting the allowance.
     * @param spender The address receiving the allowance.
     * @param amount The amount of tokens to approve.
     */
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function excludeFromFee(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

    /**
     * @dev Internal function to execute the transfer of tokens from one address to another.
     * @param from The address to send tokens from.
     * @param to The address to receive tokens.
     * @param amount The amount of tokens to transfer.
     */
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "_transfer: Transfer amount must be greater than zero");

        uint256 taxAmount = 0;

        // Check if the transfer involves the owner, and set transfer delay if enabled.
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            // Check if the transfer is from the Uniswap pair and calculate buy fees.
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul(_buyFee).div(100);
                require(amount <= _maxTxAmount, "_transfer: Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "_transfer: Exceeds the maxWalletSize.");
            }

            // Check if the transfer is to the Uniswap pair and calculate sell fees.
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul(_sellFee).div(100);
            }

            // Check if a swap is needed and execute the swap.
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                if (amount >= _taxSwapThreshold) {
                    swapTokensForEth(_taxSwapThreshold);
                } else {
                    swapTokensForEth(amount);
                }
            }
        }

        // If there's a tax, transfer the tax amount to the contract.
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        // Update balances after the transfer.
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    /**
     * @dev Internal function to swap tokens for ETH.
     * @param tokenAmount The amount of tokens to swap.
     */
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(_taxWallet),
            block.timestamp
        );
    }

    /**
     * @dev Sets the buy fee percentage.
     * @param tax The new buy fee percentage (less than or equal to 25).
     */
    function changeBuyfee(uint256 tax) external onlyOwner {
        require(tax <= 25, "changeBuyfee: Tax should be less than or equal to 25");
        _buyFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    /**
     * @dev Sets the sell fee percentage.
     * @param tax The new sell fee percentage (less than or equal to 25).
     */
    function changeSellfee(uint256 tax) external onlyOwner {
        require(tax <= 25, "changeSellfee: Tax should be less than or equal to 25");
        _sellFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    /**
     * @dev Sets the maximum transfer amount as a percentage of the total supply.
     * @param percent The percentage of the total supply to set as the new maximum transfer amount (1 corresponds to 0.01%).
     */
    function changeMaxTransferAmount(uint256 percent) external onlyOwner {
        require(percent <= 10000, "changeMaxTransferAmount: Percentage should be less than or equal to 10000");
        _maxTxAmount = _totalSupply * percent / 10000;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

    /**
     * @dev Sets the maximum wallet size as a percentage of the total supply.
     * @param percent The percentage value to set the maximum wallet size (1 corresponds to 0.01%).
     * Only the owner can call this function.
     */
    function changeMaxBalance(uint256 percent) external onlyOwner {
        require(percent <= 10000, "changeMaxBalance: Percentage should be less than or equal to 10000");
        _maxWalletSize = _totalSupply * percent / 10000;
        emit MaxWalletSizeUpdated(_maxWalletSize);
    }

    /**
     * @dev Sets the threshold for swapping tokens to ETH.
     * @param percent The percentage of the total supply to set as the new threshold (1 corresponds to 0.01%).
     */
    function changeTaxSwapThreshold(uint256 percent) external onlyOwner {
        require(percent <= 10000, "changeTaxSwapThreshold: Percentage should be less than or equal to 10000");
        _taxSwapThreshold = _totalSupply * percent / 10000;
        emit TaxSwapThresholdUpdated(_taxSwapThreshold);
    }
    
    /**
     * @dev Removes transaction limits and disables transfer delay.
     * Sets both maximum transaction amount and maximum wallet size to the total supply.
     * Only the owner can call this function.
     */
    function removeAllLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_totalSupply);
        emit MaxWalletSizeUpdated(_totalSupply);
        emit TransferDelayUpdated(false);
    }

    /**
     * @dev Disables the transfer delay feature.
     * Only the owner can call this function.
     */
    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
        emit TransferDelayUpdated(false);
    }

    /**
     * @dev Opens trading by initializing the Uniswap router, creating a pair,
     * adding liquidity, and enabling swapping on the contract.
     * Only the owner can call this function.
     */
    function openTrade() external onlyOwner() {
        require(!tradingOpen, "openTrading: Trading is already open");

        uint256 tokenAmount = balanceOf(address(this)) - (_totalSupply * 20 / 100);

        // Initialize the Uniswap router
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        // Approve the router to spend the total supply of the token
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        // Create the Uniswap pair
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        // Add liquidity to the Uniswap pair
        uniswapV2Router.addLiquidityETH{
            value: address(this).balance
        }(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );

        // Approve Uniswap router to spend the pair's tokens
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        // Enable swapping on the contract
        swapEnabled = true;

        // Set trading as open
        tradingOpen = true;
        emit TradingOpened();
    }

    function clearstuckETH(uint256 weiAmount) external onlyOwner {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > weiAmount) {
            payable(_msgSender()).transfer(weiAmount);
        }
    }

    function clearstuckToken(address tokenAddress, uint256 tokenAmount) external onlyOwner returns (bool) {
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        if (tokenBalance > tokenAmount) {
            IERC20(tokenAddress).transfer(_taxWallet, tokenAmount);
        }
        return true;
    }

    /**
     * @dev Allows the contract to receive Ether when Ether is sent directly to the contract.
     */
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"TaxSwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"transferDelayEnabled","type":"bool"}],"name":"TransferDelayUpdated","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"changeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"changeMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"changeMaxTransferAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"changeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"changeTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"clearstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"clearstuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526064620000146009600a6200031e565b62000024906305f5e10062000335565b6200003091906200034f565b6007556064620000436009600a6200031e565b62000053906305f5e10062000335565b6200005f91906200034f565b6008556064620000726009600a6200031e565b62000082906305f5e10062000335565b6200008e91906200034f565b6009556014600a556019600b55600c805462ffffff60a81b1916600160b81b179055348015620000bc575f80fd5b506040516200249038038062002490833981016040819052620000df916200036f565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319166001600160a01b038316179055620001486009600a6200031e565b62000158906305f5e10062000335565b335f8181526004602090815260408083209490945581546001600160a01b03908116835260059091528382208054600160ff1991821681179092553084528584208054821683179055600c5490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001e76009600a6200031e565b620001f7906305f5e10062000335565b60405190815260200160405180910390a35062000397565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200026357815f19048211156200024757620002476200020f565b808516156200025557918102915b93841c939080029062000228565b509250929050565b5f826200027b5750600162000318565b816200028957505f62000318565b8160018114620002a25760028114620002ad57620002cd565b600191505062000318565b60ff841115620002c157620002c16200020f565b50506001821b62000318565b5060208310610133831016604e8410600b8410161715620002f2575081810a62000318565b620002fe838362000223565b805f19048211156200031457620003146200020f565b0290505b92915050565b5f6200032e60ff8416836200026b565b9392505050565b80820281158282048414176200031857620003186200020f565b5f826200036a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000380575f80fd5b81516001600160a01b03811681146200032e575f80fd5b6120eb80620003a55f395ff3fe60806040526004361061017e575f3560e01c80638f9a55c0116100cd578063c876d0b911610087578063df8408fe11610062578063df8408fe14610480578063e884f2601461049f578063fb201b1d146104b3578063fbc87d67146104c7575f80fd5b8063c876d0b914610408578063db05e5cb14610428578063dd62ed3e1461043c575f80fd5b80638f9a55c01461035657806395d89b411461036b578063a9059cbb14610396578063a9c706f2146103b5578063bf474bed146103d4578063c2098c0e146103e9575f80fd5b806370a08231116101385780637d1db4a5116101135780637d1db4a5146102dd5780637efd4be7146102f257806389d73132146103115780638da5cb5b14610330575f80fd5b806370a0823114610276578063715018a6146102aa5780637909979c146102be575f80fd5b806306fdde0314610189578063095ea7b3146101ca57806318160ddd146101f95780631a39df5b1461021b57806323b872dd1461023c578063313ce5671461025b575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506040805180820190915260078152664f726469626c6560c81b60208201525b6040516101c19190611c93565b60405180910390f35b3480156101d5575f80fd5b506101e96101e4366004611cf5565b6104e6565b60405190151581526020016101c1565b348015610204575f80fd5b5061020d6104fc565b6040519081526020016101c1565b348015610226575f80fd5b5061023a610235366004611d1f565b61051c565b005b348015610247575f80fd5b506101e9610256366004611d36565b610602565b348015610266575f80fd5b50604051600981526020016101c1565b348015610281575f80fd5b5061020d610290366004611d74565b6001600160a01b03165f9081526004602052604090205490565b3480156102b5575f80fd5b5061023a610669565b3480156102c9575f80fd5b5061023a6102d8366004611d1f565b6106da565b3480156102e8575f80fd5b5061020d60075481565b3480156102fd575f80fd5b5061023a61030c366004611d1f565b6107b0565b34801561031c575f80fd5b506101e961032b366004611cf5565b6108c9565b34801561033b575f80fd5b505f546040516001600160a01b0390911681526020016101c1565b348015610361575f80fd5b5061020d60085481565b348015610376575f80fd5b5060408051808201909152600381526227a92160e91b60208201526101b4565b3480156103a1575f80fd5b506101e96103b0366004611cf5565b6109e4565b3480156103c0575f80fd5b5061023a6103cf366004611d1f565b6109f0565b3480156103df575f80fd5b5061020d60095481565b3480156103f4575f80fd5b5061023a610403366004611d1f565b610a52565b348015610413575f80fd5b50600c546101e990600160b81b900460ff1681565b348015610433575f80fd5b5061023a610b65565b348015610447575f80fd5b5061020d610456366004611d8f565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561048b575f80fd5b5061023a61049a366004611dd3565b610ca3565b3480156104aa575f80fd5b5061023a610cf6565b3480156104be575f80fd5b5061023a610d5c565b3480156104d2575f80fd5b5061023a6104e1366004611d1f565b61116b565b5f6104f2338484611285565b5060015b92915050565b5f6105096009600a611ef3565b610517906305f5e100611f01565b905090565b5f546001600160a01b0316331461054e5760405162461bcd60e51b815260040161054590611f18565b60405180910390fd5b60198111156105bd5760405162461bcd60e51b815260206004820152603560248201527f6368616e676553656c6c6665653a205461782073686f756c64206265206c657360448201527473207468616e206f7220657175616c20746f20323560581b6064820152608401610545565b600b819055600a5460408051918252602082018390527f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df6130291015b60405180910390a150565b5f61060e8484846113a8565b61065f843361065a8560405180606001604052806028815260200161208e602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611956565b611285565b5060019392505050565b5f546001600160a01b031633146106925760405162461bcd60e51b815260040161054590611f18565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107035760405162461bcd60e51b815260040161054590611f18565b60198111156107715760405162461bcd60e51b815260206004820152603460248201527f6368616e67654275796665653a205461782073686f756c64206265206c657373604482015273207468616e206f7220657175616c20746f20323560601b6064820152608401610545565b600a819055600b546040805183815260208101929092527f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df6130291016105f7565b5f546001600160a01b031633146107d95760405162461bcd60e51b815260040161054590611f18565b6127108111156108625760405162461bcd60e51b815260206004820152604860248201527f6368616e6765546178537761705468726573686f6c643a2050657263656e746160448201527f67652073686f756c64206265206c657373207468616e206f7220657175616c206064820152670746f2031303030360c41b608482015260a401610545565b612710816108726009600a611ef3565b610880906305f5e100611f01565b61088a9190611f01565b6108949190611f4d565b60098190556040519081527f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab906020016105f7565b5f80546001600160a01b031633146108f35760405162461bcd60e51b815260040161054590611f18565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610937573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b9190611f6c565b90508281111561065f57600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529085169063a9059cbb906044016020604051808303815f875af11580156109b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d99190611f83565b505060019392505050565b5f6104f23384846113a8565b5f546001600160a01b03163314610a195760405162461bcd60e51b815260040161054590611f18565b4781811115610a4e57604051339083156108fc029084905f818181858888f19350505050158015610a4c573d5f803e3d5ffd5b505b5050565b5f546001600160a01b03163314610a7b5760405162461bcd60e51b815260040161054590611f18565b612710811115610afe5760405162461bcd60e51b815260206004820152604260248201527f6368616e67654d617842616c616e63653a2050657263656e746167652073686f60448201527f756c64206265206c657373207468616e206f7220657175616c20746f20313030606482015261030360f41b608482015260a401610545565b61271081610b0e6009600a611ef3565b610b1c906305f5e100611f01565b610b269190611f01565b610b309190611f4d565b60088190556040519081527ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd906020016105f7565b5f546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161054590611f18565b610b9a6009600a611ef3565b610ba8906305f5e100611f01565b600755610bb76009600a611ef3565b610bc5906305f5e100611f01565b600855600c805460ff60b81b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610c026009600a611ef3565b610c10906305f5e100611f01565b60405190815260200160405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd610c4e6009600a611ef3565b610c5c906305f5e100611f01565b60405190815260200160405180910390a16040515f81527f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad57474022906020015b60405180910390a1565b5f546001600160a01b03163314610ccc5760405162461bcd60e51b815260040161054590611f18565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b815260040161054590611f18565b600c805460ff60b81b191690556040515f81527f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad5747402290602001610c99565b5f546001600160a01b03163314610d855760405162461bcd60e51b815260040161054590611f18565b600c54600160a01b900460ff1615610deb5760405162461bcd60e51b8152602060048201526024808201527f6f70656e54726164696e673a2054726164696e6720697320616c72656164792060448201526337b832b760e11b6064820152608401610545565b5f6064610dfa6009600a611ef3565b610e08906305f5e100611f01565b610e13906014611f01565b610e1d9190611f4d565b305f90815260046020526040902054610e369190611f9e565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155909150610e82903090610e746009600a611ef3565b61065a906305f5e100611f01565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef69190611fb1565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f799190611fb1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610fc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe79190611fb1565b600280546001600160a01b039283166001600160a01b03199091161790556001541663f305d7194730845f806110245f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561108a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110af9190611fcc565b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611104573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111289190611f83565b50600c805462ff00ff60a01b19166201000160a01b1790556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a150565b5f546001600160a01b031633146111945760405162461bcd60e51b815260040161054590611f18565b61271081111561121e5760405162461bcd60e51b815260206004820152604960248201527f6368616e67654d61785472616e73666572416d6f756e743a2050657263656e7460448201527f6167652073686f756c64206265206c657373207468616e206f7220657175616c606482015268020746f2031303030360bc1b608482015260a401610545565b6127108161122e6009600a611ef3565b61123c906305f5e100611f01565b6112469190611f01565b6112509190611f4d565b60078190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020016105f7565b6001600160a01b0383166112e75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610545565b6001600160a01b0382166113485760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610545565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661140c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610545565b6001600160a01b03821661146e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610545565b5f81116114da5760405162461bcd60e51b815260206004820152603460248201527f5f7472616e736665723a205472616e7366657220616d6f756e74206d7573742060448201527362652067726561746572207468616e207a65726f60601b6064820152608401610545565b5f80546001600160a01b0385811691161480159061150557505f546001600160a01b03848116911614155b1561181957600c54600160b81b900460ff16156115f4576001546001600160a01b0384811691161480159061154857506002546001600160a01b03848116911614155b156115f457325f9081526006602052604090205443116115e25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610545565b325f9081526006602052604090204390555b6002546001600160a01b03858116911614801561161f57506001546001600160a01b03848116911614155b801561164357506001600160a01b0383165f9081526005602052604090205460ff16155b15611750576116686064611662600a548561198e90919063ffffffff16565b90611a13565b90506007548211156116c85760405162461bcd60e51b8152602060048201526024808201527f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f6044820152633ab73a1760e11b6064820152608401610545565b600854826116ea856001600160a01b03165f9081526004602052604090205490565b6116f49190611ff7565b11156117505760405162461bcd60e51b815260206004820152602560248201527f5f7472616e736665723a204578636565647320746865206d617857616c6c657460448201526429b4bd329760d91b6064820152608401610545565b6002546001600160a01b03848116911614801561177657506001600160a01b0384163014155b15611798576117956064611662600b548561198e90919063ffffffff16565b90505b305f90815260046020526040902054600c54600160a81b900460ff161580156117ce57506002546001600160a01b038581169116145b80156117e35750600c54600160b01b900460ff165b80156117f0575060095481115b1561181757600954831061180e57611809600954611a54565b611817565b61181783611a54565b505b801561189157305f908152600460205260409020546118389082611bc8565b305f81815260046020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118889085815260200190565b60405180910390a35b6001600160a01b0384165f908152600460205260409020546118b39083611c26565b6001600160a01b0385165f908152600460205260409020556118f66118d88383611c26565b6001600160a01b0385165f9081526004602052604090205490611bc8565b6001600160a01b038085165f8181526004602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61193f8585611c26565b60405190815260200160405180910390a350505050565b5f81848411156119795760405162461bcd60e51b81526004016105459190611c93565b505f6119858486611f9e565b95945050505050565b5f825f0361199d57505f6104f6565b5f6119a88385611f01565b9050826119b58583611f4d565b14611a0c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610545565b9392505050565b5f611a0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c67565b600c805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9a57611a9a61200a565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b159190611fb1565b81600181518110611b2857611b2861200a565b6001600160a01b039283166020918202929092010152600154611b4e9130911684611285565b600154600c5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611b8a9287925f928892911690429060040161201e565b5f604051808303815f87803b158015611ba1575f80fd5b505af1158015611bb3573d5f803e3d5ffd5b5050600c805460ff60a81b1916905550505050565b5f80611bd48385611ff7565b905083811015611a0c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610545565b5f611a0c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611956565b5f8183611c875760405162461bcd60e51b81526004016105459190611c93565b505f6119858486611f4d565b5f6020808352835180828501525f5b81811015611cbe57858101830151858201604001528201611ca2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611cf2575f80fd5b50565b5f8060408385031215611d06575f80fd5b8235611d1181611cde565b946020939093013593505050565b5f60208284031215611d2f575f80fd5b5035919050565b5f805f60608486031215611d48575f80fd5b8335611d5381611cde565b92506020840135611d6381611cde565b929592945050506040919091013590565b5f60208284031215611d84575f80fd5b8135611a0c81611cde565b5f8060408385031215611da0575f80fd5b8235611dab81611cde565b91506020830135611dbb81611cde565b809150509250929050565b8015158114611cf2575f80fd5b5f8060408385031215611de4575f80fd5b8235611def81611cde565b91506020830135611dbb81611dc6565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e4d57815f1904821115611e3357611e33611dff565b80851615611e4057918102915b93841c9390800290611e18565b509250929050565b5f82611e63575060016104f6565b81611e6f57505f6104f6565b8160018114611e855760028114611e8f57611eab565b60019150506104f6565b60ff841115611ea057611ea0611dff565b50506001821b6104f6565b5060208310610133831016604e8410600b8410161715611ece575081810a6104f6565b611ed88383611e13565b805f1904821115611eeb57611eeb611dff565b029392505050565b5f611a0c60ff841683611e55565b80820281158282048414176104f6576104f6611dff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f82611f6757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7c575f80fd5b5051919050565b5f60208284031215611f93575f80fd5b8151611a0c81611dc6565b818103818111156104f6576104f6611dff565b5f60208284031215611fc1575f80fd5b8151611a0c81611cde565b5f805f60608486031215611fde575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104f6576104f6611dff565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561206c5784516001600160a01b031683529383019391830191600101612047565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202e0bbabf9c11a1f13ab5f1ee558263894a2414768d9db3a253249c68b618627964736f6c634300081500330000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e

Deployed Bytecode

0x60806040526004361061017e575f3560e01c80638f9a55c0116100cd578063c876d0b911610087578063df8408fe11610062578063df8408fe14610480578063e884f2601461049f578063fb201b1d146104b3578063fbc87d67146104c7575f80fd5b8063c876d0b914610408578063db05e5cb14610428578063dd62ed3e1461043c575f80fd5b80638f9a55c01461035657806395d89b411461036b578063a9059cbb14610396578063a9c706f2146103b5578063bf474bed146103d4578063c2098c0e146103e9575f80fd5b806370a08231116101385780637d1db4a5116101135780637d1db4a5146102dd5780637efd4be7146102f257806389d73132146103115780638da5cb5b14610330575f80fd5b806370a0823114610276578063715018a6146102aa5780637909979c146102be575f80fd5b806306fdde0314610189578063095ea7b3146101ca57806318160ddd146101f95780631a39df5b1461021b57806323b872dd1461023c578063313ce5671461025b575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506040805180820190915260078152664f726469626c6560c81b60208201525b6040516101c19190611c93565b60405180910390f35b3480156101d5575f80fd5b506101e96101e4366004611cf5565b6104e6565b60405190151581526020016101c1565b348015610204575f80fd5b5061020d6104fc565b6040519081526020016101c1565b348015610226575f80fd5b5061023a610235366004611d1f565b61051c565b005b348015610247575f80fd5b506101e9610256366004611d36565b610602565b348015610266575f80fd5b50604051600981526020016101c1565b348015610281575f80fd5b5061020d610290366004611d74565b6001600160a01b03165f9081526004602052604090205490565b3480156102b5575f80fd5b5061023a610669565b3480156102c9575f80fd5b5061023a6102d8366004611d1f565b6106da565b3480156102e8575f80fd5b5061020d60075481565b3480156102fd575f80fd5b5061023a61030c366004611d1f565b6107b0565b34801561031c575f80fd5b506101e961032b366004611cf5565b6108c9565b34801561033b575f80fd5b505f546040516001600160a01b0390911681526020016101c1565b348015610361575f80fd5b5061020d60085481565b348015610376575f80fd5b5060408051808201909152600381526227a92160e91b60208201526101b4565b3480156103a1575f80fd5b506101e96103b0366004611cf5565b6109e4565b3480156103c0575f80fd5b5061023a6103cf366004611d1f565b6109f0565b3480156103df575f80fd5b5061020d60095481565b3480156103f4575f80fd5b5061023a610403366004611d1f565b610a52565b348015610413575f80fd5b50600c546101e990600160b81b900460ff1681565b348015610433575f80fd5b5061023a610b65565b348015610447575f80fd5b5061020d610456366004611d8f565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561048b575f80fd5b5061023a61049a366004611dd3565b610ca3565b3480156104aa575f80fd5b5061023a610cf6565b3480156104be575f80fd5b5061023a610d5c565b3480156104d2575f80fd5b5061023a6104e1366004611d1f565b61116b565b5f6104f2338484611285565b5060015b92915050565b5f6105096009600a611ef3565b610517906305f5e100611f01565b905090565b5f546001600160a01b0316331461054e5760405162461bcd60e51b815260040161054590611f18565b60405180910390fd5b60198111156105bd5760405162461bcd60e51b815260206004820152603560248201527f6368616e676553656c6c6665653a205461782073686f756c64206265206c657360448201527473207468616e206f7220657175616c20746f20323560581b6064820152608401610545565b600b819055600a5460408051918252602082018390527f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df6130291015b60405180910390a150565b5f61060e8484846113a8565b61065f843361065a8560405180606001604052806028815260200161208e602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611956565b611285565b5060019392505050565b5f546001600160a01b031633146106925760405162461bcd60e51b815260040161054590611f18565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107035760405162461bcd60e51b815260040161054590611f18565b60198111156107715760405162461bcd60e51b815260206004820152603460248201527f6368616e67654275796665653a205461782073686f756c64206265206c657373604482015273207468616e206f7220657175616c20746f20323560601b6064820152608401610545565b600a819055600b546040805183815260208101929092527f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df6130291016105f7565b5f546001600160a01b031633146107d95760405162461bcd60e51b815260040161054590611f18565b6127108111156108625760405162461bcd60e51b815260206004820152604860248201527f6368616e6765546178537761705468726573686f6c643a2050657263656e746160448201527f67652073686f756c64206265206c657373207468616e206f7220657175616c206064820152670746f2031303030360c41b608482015260a401610545565b612710816108726009600a611ef3565b610880906305f5e100611f01565b61088a9190611f01565b6108949190611f4d565b60098190556040519081527f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab906020016105f7565b5f80546001600160a01b031633146108f35760405162461bcd60e51b815260040161054590611f18565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610937573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095b9190611f6c565b90508281111561065f57600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529085169063a9059cbb906044016020604051808303815f875af11580156109b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d99190611f83565b505060019392505050565b5f6104f23384846113a8565b5f546001600160a01b03163314610a195760405162461bcd60e51b815260040161054590611f18565b4781811115610a4e57604051339083156108fc029084905f818181858888f19350505050158015610a4c573d5f803e3d5ffd5b505b5050565b5f546001600160a01b03163314610a7b5760405162461bcd60e51b815260040161054590611f18565b612710811115610afe5760405162461bcd60e51b815260206004820152604260248201527f6368616e67654d617842616c616e63653a2050657263656e746167652073686f60448201527f756c64206265206c657373207468616e206f7220657175616c20746f20313030606482015261030360f41b608482015260a401610545565b61271081610b0e6009600a611ef3565b610b1c906305f5e100611f01565b610b269190611f01565b610b309190611f4d565b60088190556040519081527ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd906020016105f7565b5f546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161054590611f18565b610b9a6009600a611ef3565b610ba8906305f5e100611f01565b600755610bb76009600a611ef3565b610bc5906305f5e100611f01565b600855600c805460ff60b81b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610c026009600a611ef3565b610c10906305f5e100611f01565b60405190815260200160405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd610c4e6009600a611ef3565b610c5c906305f5e100611f01565b60405190815260200160405180910390a16040515f81527f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad57474022906020015b60405180910390a1565b5f546001600160a01b03163314610ccc5760405162461bcd60e51b815260040161054590611f18565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b815260040161054590611f18565b600c805460ff60b81b191690556040515f81527f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad5747402290602001610c99565b5f546001600160a01b03163314610d855760405162461bcd60e51b815260040161054590611f18565b600c54600160a01b900460ff1615610deb5760405162461bcd60e51b8152602060048201526024808201527f6f70656e54726164696e673a2054726164696e6720697320616c72656164792060448201526337b832b760e11b6064820152608401610545565b5f6064610dfa6009600a611ef3565b610e08906305f5e100611f01565b610e13906014611f01565b610e1d9190611f4d565b305f90815260046020526040902054610e369190611f9e565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155909150610e82903090610e746009600a611ef3565b61065a906305f5e100611f01565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef69190611fb1565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f799190611fb1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610fc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe79190611fb1565b600280546001600160a01b039283166001600160a01b03199091161790556001541663f305d7194730845f806110245f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561108a573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110af9190611fcc565b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611104573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111289190611f83565b50600c805462ff00ff60a01b19166201000160a01b1790556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a150565b5f546001600160a01b031633146111945760405162461bcd60e51b815260040161054590611f18565b61271081111561121e5760405162461bcd60e51b815260206004820152604960248201527f6368616e67654d61785472616e73666572416d6f756e743a2050657263656e7460448201527f6167652073686f756c64206265206c657373207468616e206f7220657175616c606482015268020746f2031303030360bc1b608482015260a401610545565b6127108161122e6009600a611ef3565b61123c906305f5e100611f01565b6112469190611f01565b6112509190611f4d565b60078190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020016105f7565b6001600160a01b0383166112e75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610545565b6001600160a01b0382166113485760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610545565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661140c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610545565b6001600160a01b03821661146e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610545565b5f81116114da5760405162461bcd60e51b815260206004820152603460248201527f5f7472616e736665723a205472616e7366657220616d6f756e74206d7573742060448201527362652067726561746572207468616e207a65726f60601b6064820152608401610545565b5f80546001600160a01b0385811691161480159061150557505f546001600160a01b03848116911614155b1561181957600c54600160b81b900460ff16156115f4576001546001600160a01b0384811691161480159061154857506002546001600160a01b03848116911614155b156115f457325f9081526006602052604090205443116115e25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610545565b325f9081526006602052604090204390555b6002546001600160a01b03858116911614801561161f57506001546001600160a01b03848116911614155b801561164357506001600160a01b0383165f9081526005602052604090205460ff16155b15611750576116686064611662600a548561198e90919063ffffffff16565b90611a13565b90506007548211156116c85760405162461bcd60e51b8152602060048201526024808201527f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f6044820152633ab73a1760e11b6064820152608401610545565b600854826116ea856001600160a01b03165f9081526004602052604090205490565b6116f49190611ff7565b11156117505760405162461bcd60e51b815260206004820152602560248201527f5f7472616e736665723a204578636565647320746865206d617857616c6c657460448201526429b4bd329760d91b6064820152608401610545565b6002546001600160a01b03848116911614801561177657506001600160a01b0384163014155b15611798576117956064611662600b548561198e90919063ffffffff16565b90505b305f90815260046020526040902054600c54600160a81b900460ff161580156117ce57506002546001600160a01b038581169116145b80156117e35750600c54600160b01b900460ff165b80156117f0575060095481115b1561181757600954831061180e57611809600954611a54565b611817565b61181783611a54565b505b801561189157305f908152600460205260409020546118389082611bc8565b305f81815260046020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118889085815260200190565b60405180910390a35b6001600160a01b0384165f908152600460205260409020546118b39083611c26565b6001600160a01b0385165f908152600460205260409020556118f66118d88383611c26565b6001600160a01b0385165f9081526004602052604090205490611bc8565b6001600160a01b038085165f8181526004602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61193f8585611c26565b60405190815260200160405180910390a350505050565b5f81848411156119795760405162461bcd60e51b81526004016105459190611c93565b505f6119858486611f9e565b95945050505050565b5f825f0361199d57505f6104f6565b5f6119a88385611f01565b9050826119b58583611f4d565b14611a0c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610545565b9392505050565b5f611a0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c67565b600c805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9a57611a9a61200a565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b159190611fb1565b81600181518110611b2857611b2861200a565b6001600160a01b039283166020918202929092010152600154611b4e9130911684611285565b600154600c5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611b8a9287925f928892911690429060040161201e565b5f604051808303815f87803b158015611ba1575f80fd5b505af1158015611bb3573d5f803e3d5ffd5b5050600c805460ff60a81b1916905550505050565b5f80611bd48385611ff7565b905083811015611a0c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610545565b5f611a0c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611956565b5f8183611c875760405162461bcd60e51b81526004016105459190611c93565b505f6119858486611f4d565b5f6020808352835180828501525f5b81811015611cbe57858101830151858201604001528201611ca2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611cf2575f80fd5b50565b5f8060408385031215611d06575f80fd5b8235611d1181611cde565b946020939093013593505050565b5f60208284031215611d2f575f80fd5b5035919050565b5f805f60608486031215611d48575f80fd5b8335611d5381611cde565b92506020840135611d6381611cde565b929592945050506040919091013590565b5f60208284031215611d84575f80fd5b8135611a0c81611cde565b5f8060408385031215611da0575f80fd5b8235611dab81611cde565b91506020830135611dbb81611cde565b809150509250929050565b8015158114611cf2575f80fd5b5f8060408385031215611de4575f80fd5b8235611def81611cde565b91506020830135611dbb81611dc6565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e4d57815f1904821115611e3357611e33611dff565b80851615611e4057918102915b93841c9390800290611e18565b509250929050565b5f82611e63575060016104f6565b81611e6f57505f6104f6565b8160018114611e855760028114611e8f57611eab565b60019150506104f6565b60ff841115611ea057611ea0611dff565b50506001821b6104f6565b5060208310610133831016604e8410600b8410161715611ece575081810a6104f6565b611ed88383611e13565b805f1904821115611eeb57611eeb611dff565b029392505050565b5f611a0c60ff841683611e55565b80820281158282048414176104f6576104f6611dff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f82611f6757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7c575f80fd5b5051919050565b5f60208284031215611f93575f80fd5b8151611a0c81611dc6565b818103818111156104f6576104f6611dff565b5f60208284031215611fc1575f80fd5b8151611a0c81611cde565b5f805f60608486031215611fde575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104f6576104f6611dff565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561206c5784516001600160a01b031683529383019391830191600101612047565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202e0bbabf9c11a1f13ab5f1ee558263894a2414768d9db3a253249c68b618627964736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x8F7f777f3cADb61f2474C6Cb6d835c83AB31918e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008f7f777f3cadb61f2474c6cb6d835c83ab31918e


Deployed Bytecode Sourcemap

10061:14702:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12148:83;;;;;;;;;;-1:-1:-1;12218:5:0;;;;;;;;;;;;-1:-1:-1;;;12218:5:0;;;;12148:83;;;;;;;:::i;:::-;;;;;;;;14364:161;;;;;;;;;;-1:-1:-1;14364:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;14364:161:0;1023:187:1;12759:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;12759:100:0;1215:177:1;19929:219:0;;;;;;;;;;-1:-1:-1;19929:219:0;;;;;:::i;:::-;;:::i;:::-;;14884:313;;;;;;;;;;-1:-1:-1;14884:313:0;;;;;:::i;:::-;;:::i;12563:83::-;;;;;;;;;;-1:-1:-1;12563:83:0;;10624:1;2185:36:1;;2173:2;2158:18;12563:83:0;2043:184:1;13055:119:0;;;;;;;;;;-1:-1:-1;13055:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;13148:18:0;13121:7;13148:18;;;:9;:18;;;;;;;13055:119;7332:148;;;;;;;;;;;;;:::i;19569:216::-;;;;;;;;;;-1:-1:-1;19569:216:0;;;;;:::i;:::-;;:::i;10706:48::-;;;;;;;;;;;;;;;;21414:307;;;;;;;;;;-1:-1:-1;21414:307:0;;;;;:::i;:::-;;:::i;24276:334::-;;;;;;;;;;-1:-1:-1;24276:334:0;;;;;:::i;:::-;;:::i;6782:79::-;;;;;;;;;;-1:-1:-1;6820:7:0;6847:6;6782:79;;-1:-1:-1;;;;;6847:6:0;;;2630:51:1;;2618:2;2603:18;6782:79:0;2484:203:1;10761:50:0;;;;;;;;;;;;;;;;12345:87;;;;;;;;;;-1:-1:-1;12417:7:0;;;;;;;;;;;;-1:-1:-1;;;12417:7:0;;;;12345:87;;13456:167;;;;;;;;;;-1:-1:-1;13456:167:0;;;;;:::i;:::-;;:::i;24040:228::-;;;;;;;;;;-1:-1:-1;24040:228:0;;;;;:::i;:::-;;:::i;10818:53::-;;;;;;;;;;;;;;;;20930:286;;;;;;;;;;-1:-1:-1;20930:286:0;;;;;:::i;:::-;;:::i;11100:39::-;;;;;;;;;;-1:-1:-1;11100:39:0;;;;-1:-1:-1;;;11100:39:0;;;;;;21957:312;;;;;;;;;;;;;:::i;13914:143::-;;;;;;;;;;-1:-1:-1;13914:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14022:18:0;;;13995:7;14022:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13914:143;15847:130;;;;;;;;;;-1:-1:-1;15847:130:0;;;;;:::i;:::-;;:::i;22392:141::-;;;;;;;;;;;;;:::i;22751:1281::-;;;;;;;;;;;;;:::i;20383:294::-;;;;;;;;;;-1:-1:-1;20383:294:0;;;;;:::i;:::-;;:::i;14364:161::-;14439:4;14456:39;761:10;14479:7;14488:6;14456:8;:39::i;:::-;-1:-1:-1;14513:4:0;14364:161;;;;;:::o;12759:100::-;12812:7;10684:13;10624:1;10684:2;:13;:::i;:::-;10672:25;;:9;:25;:::i;:::-;12832:19;;12759:100;:::o;19929:219::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;;;;;;;;;20010:2:::1;20003:3;:9;;19995:75;;;::::0;-1:-1:-1;;;19995:75:0;;5846:2:1;19995:75:0::1;::::0;::::1;5828:21:1::0;5885:2;5865:18;;;5858:30;5924:34;5904:18;;;5897:62;-1:-1:-1;;;5975:18:1;;;5968:51;6036:19;;19995:75:0::1;5644:417:1::0;19995:75:0::1;20081:8;:14:::0;;;20122:7:::1;::::0;20111:29:::1;::::0;;6240:25:1;;;6296:2;6281:18;;6274:34;;;20111:29:0::1;::::0;6213:18:1;20111:29:0::1;;;;;;;;19929:219:::0;:::o;14884:313::-;14982:4;14999:36;15009:6;15017:9;15028:6;14999:9;:36::i;:::-;15046:121;15055:6;761:10;15077:89;15115:6;15077:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15077:19:0;;;;;;:11;:19;;;;;;;;761:10;15077:33;;;;;;;;;;:37;:89::i;:::-;15046:8;:121::i;:::-;-1:-1:-1;15185:4:0;14884:313;;;;;:::o;7332:148::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;7439:1:::1;7423:6:::0;;7402:40:::1;::::0;-1:-1:-1;;;;;7423:6:0;;::::1;::::0;7402:40:::1;::::0;7439:1;;7402:40:::1;7470:1;7453:19:::0;;-1:-1:-1;;;;;;7453:19:0::1;::::0;;7332:148::o;19569:216::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;19649:2:::1;19642:3;:9;;19634:74;;;::::0;-1:-1:-1;;;19634:74:0;;6521:2:1;19634:74:0::1;::::0;::::1;6503:21:1::0;6560:2;6540:18;;;6533:30;6599:34;6579:18;;;6572:62;-1:-1:-1;;;6650:18:1;;;6643:50;6710:19;;19634:74:0::1;6319:416:1::0;19634:74:0::1;19719:7;:13:::0;;;19768:8:::1;::::0;19748:29:::1;::::0;;6240:25:1;;;6296:2;6281:18;;6274:34;;;;19748:29:0::1;::::0;6213:18:1;19748:29:0::1;6066:248:1::0;21414:307:0;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;21512:5:::1;21501:7;:16;;21493:101;;;::::0;-1:-1:-1;;;21493:101:0;;6942:2:1;21493:101:0::1;::::0;::::1;6924:21:1::0;6981:2;6961:18;;;6954:30;7020:34;7000:18;;;6993:62;7091:34;7071:18;;;7064:62;-1:-1:-1;;;7142:19:1;;;7135:39;7191:19;;21493:101:0::1;6740:476:1::0;21493:101:0::1;21650:5;21640:7:::0;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;21625:22;;;;:::i;:::-;:30;;;;:::i;:::-;21605:17;:50:::0;;;21671:42:::1;::::0;1361:25:1;;;21671:42:0::1;::::0;1349:2:1;1334:18;21671:42:0::1;1215:177:1::0;24276:334:0;24372:4;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;24412:45:::1;::::0;-1:-1:-1;;;24412:45:0;;24451:4:::1;24412:45;::::0;::::1;2630:51:1::0;24389:20:0::1;::::0;-1:-1:-1;;;;;24412:30:0;::::1;::::0;::::1;::::0;2603:18:1;;24412:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24389:68;;24487:11;24472:12;:26;24468:113;;;24545:10;::::0;24515:54:::1;::::0;-1:-1:-1;;;24515:54:0;;-1:-1:-1;;;;;24545:10:0;;::::1;24515:54;::::0;::::1;7814:51:1::0;7881:18;;;7874:34;;;24515:29:0;;::::1;::::0;::::1;::::0;7787:18:1;;24515:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1::0;24598:4:0::1;::::0;24276:334;-1:-1:-1;;;24276:334:0:o;13456:167::-;13534:4;13551:42;761:10;13575:9;13586:6;13551:9;:42::i;24040:228::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;24133:21:::1;24169:22:::0;;::::1;24165:96;;;24208:41;::::0;761:10;;24208:41;::::1;;;::::0;24239:9;;24208:41:::1;::::0;;;24239:9;761:10;24208:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24165:96;24101:167;24040:228:::0;:::o;20930:286::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;21022:5:::1;21011:7;:16;;21003:95;;;::::0;-1:-1:-1;;;21003:95:0;;8371:2:1;21003:95:0::1;::::0;::::1;8353:21:1::0;8410:2;8390:18;;;8383:30;8449:34;8429:18;;;8422:62;8520:34;8500:18;;;8493:62;-1:-1:-1;;;8571:19:1;;;8564:33;8614:19;;21003:95:0::1;8169:470:1::0;21003:95:0::1;21151:5;21141:7:::0;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;21126:22;;;;:::i;:::-;:30;;;;:::i;:::-;21109:14;:47:::0;;;21172:36:::1;::::0;1361:25:1;;;21172:36:0::1;::::0;1349:2:1;1334:18;21172:36:0::1;1215:177:1::0;21957:312:0;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;22014:12;:27:::0;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;22052:14;:29:::0;22092:20:::1;:28:::0;;-1:-1:-1;;;;22092:28:0::1;::::0;;22136:32:::1;10684:13;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;22136:32;::::0;1361:25:1;;;1349:2;1334:18;22136:32:0::1;;;;;;;22184:34;10684:13;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;22184:34;::::0;1361:25:1;;;1349:2;1334:18;22184:34:0::1;;;;;;;22234:27;::::0;22255:5:::1;1163:41:1::0;;22234:27:0::1;::::0;1151:2:1;1136:18;22234:27:0::1;;;;;;;;21957:312::o:0;15847:130::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15931:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;15931:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15847:130::o;22392:141::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;22454:20:::1;:28:::0;;-1:-1:-1;;;;22454:28:0::1;::::0;;22498:27:::1;::::0;-1:-1:-1;1163:41:1;;22498:27:0::1;::::0;1151:2:1;1136:18;22498:27:0::1;1023:187:1::0;22751:1281:0;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;22813:11:::1;::::0;-1:-1:-1;;;22813:11:0;::::1;;;22812:12;22804:61;;;::::0;-1:-1:-1;;;22804:61:0;;8846:2:1;22804:61:0::1;::::0;::::1;8828:21:1::0;8885:2;8865:18;;;8858:30;8924:34;8904:18;;;8897:62;-1:-1:-1;;;8975:18:1;;;8968:34;9019:19;;22804:61:0::1;8644:400:1::0;22804:61:0::1;22878:19;22948:3;10684:13;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;22928:17;::::0;22943:2:::1;22928:17;:::i;:::-;:23;;;;:::i;:::-;22918:4;13121:7:::0;13148:18;;;:9;:18;;;;;;22900:52:::1;;;;:::i;:::-;23007:15;:104:::0;;-1:-1:-1;;;;;;23007:104:0::1;23058:42;23007:104:::0;;::::1;::::0;;;22878:74;;-1:-1:-1;23194:63:0::1;::::0;23211:4:::1;::::0;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;23194:63::-;23340:15;;;;;;;;;-1:-1:-1::0;;;;;23340:15:0::1;-1:-1:-1::0;;;;;23340:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23322:55:0::1;;23386:4;23393:15;;;;;;;;;-1:-1:-1::0;;;;;23393:15:0::1;-1:-1:-1::0;;;;;23393:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23322:94;::::0;-1:-1:-1;;;;;;23322:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9668:15:1;;;23322:94:0::1;::::0;::::1;9650:34:1::0;9720:15;;9700:18;;;9693:43;9585:18;;23322:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23306:13;:110:::0;;-1:-1:-1;;;;;23306:110:0;;::::1;-1:-1:-1::0;;;;;;23306:110:0;;::::1;;::::0;;;23475:15;::::1;:31;23528:21;23583:4;23603:11:::0;23306:13:::1;::::0;23661:7:::1;6820::::0;6847:6;-1:-1:-1;;;;;6847:6:0;;6782:79;23661:7:::1;23475:234;::::0;::::1;::::0;;;-1:-1:-1;;;;;;23475:234:0;;;-1:-1:-1;;;;;10106:15:1;;;23475:234:0::1;::::0;::::1;10088:34:1::0;10138:18;;;10131:34;;;;10181:18;;;10174:34;;;;10224:18;;;10217:34;10288:15;;;10267:19;;;10260:44;23683:15:0::1;10320:19:1::0;;;10313:35;10022:19;;23475:234:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;23791:13:0::1;::::0;;23822:15;23784:71:::1;::::0;-1:-1:-1;;;23784:71:0;;-1:-1:-1;;;;;23822:15:0;;::::1;23784:71;::::0;::::1;7814:51:1::0;-1:-1:-1;;7881:18:1;;;7874:34;23791:13:0;::::1;::::0;-1:-1:-1;23784:29:0::1;::::0;7787:18:1;;23784:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23912:11:0::1;:18:::0;;-1:-1:-1;;;;23975:18:0;-1:-1:-1;;;23975:18:0;;;24009:15:::1;::::0;::::1;::::0;-1:-1:-1;;24009:15:0::1;22793:1239;22751:1281::o:0;20383:294::-;6994:6;;-1:-1:-1;;;;;6994:6:0;761:10;6994:22;6986:67;;;;-1:-1:-1;;;6986:67:0;;;;;;;:::i;:::-;20482:5:::1;20471:7;:16;;20463:102;;;::::0;-1:-1:-1;;;20463:102:0;;11151:2:1;20463:102:0::1;::::0;::::1;11133:21:1::0;11190:2;11170:18;;;11163:30;11229:34;11209:18;;;11202:62;11300:34;11280:18;;;11273:62;-1:-1:-1;;;11351:19:1;;;11344:40;11401:19;;20463:102:0::1;10949:477:1::0;20463:102:0::1;20616:5;20606:7:::0;10684:13:::1;10624:1;10684:2;:13;:::i;:::-;10672:25;::::0;:9:::1;:25;:::i;:::-;20591:22;;;;:::i;:::-;:30;;;;:::i;:::-;20576:12;:45:::0;;;20637:32:::1;::::0;1361:25:1;;;20637:32:0::1;::::0;1349:2:1;1334:18;20637:32:0::1;1215:177:1::0;15504:335:0;-1:-1:-1;;;;;15597:19:0;;15589:68;;;;-1:-1:-1;;;15589:68:0;;11633:2:1;15589:68:0;;;11615:21:1;11672:2;11652:18;;;11645:30;11711:34;11691:18;;;11684:62;-1:-1:-1;;;11762:18:1;;;11755:34;11806:19;;15589:68:0;11431:400:1;15589:68:0;-1:-1:-1;;;;;15676:21:0;;15668:68;;;;-1:-1:-1;;;15668:68:0;;12038:2:1;15668:68:0;;;12020:21:1;12077:2;12057:18;;;12050:30;12116:34;12096:18;;;12089:62;-1:-1:-1;;;12167:18:1;;;12160:32;12209:19;;15668:68:0;11836:398:1;15668:68:0;-1:-1:-1;;;;;15747:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15799:32;;1361:25:1;;;15799:32:0;;1334:18:1;15799:32:0;;;;;;;15504:335;;;:::o;16255:2545::-;-1:-1:-1;;;;;16343:18:0;;16335:68;;;;-1:-1:-1;;;16335:68:0;;12441:2:1;16335:68:0;;;12423:21:1;12480:2;12460:18;;;12453:30;12519:34;12499:18;;;12492:62;-1:-1:-1;;;12570:18:1;;;12563:35;12615:19;;16335:68:0;12239:401:1;16335:68:0;-1:-1:-1;;;;;16422:16:0;;16414:64;;;;-1:-1:-1;;;16414:64:0;;12847:2:1;16414:64:0;;;12829:21:1;12886:2;12866:18;;;12859:30;12925:34;12905:18;;;12898:62;-1:-1:-1;;;12976:18:1;;;12969:33;13019:19;;16414:64:0;12645:399:1;16414:64:0;16506:1;16497:6;:10;16489:75;;;;-1:-1:-1;;;16489:75:0;;13251:2:1;16489:75:0;;;13233:21:1;13290:2;13270:18;;;13263:30;13329:34;13309:18;;;13302:62;-1:-1:-1;;;13380:18:1;;;13373:50;13440:19;;16489:75:0;13049:416:1;16489:75:0;16577:17;6847:6;;-1:-1:-1;;;;;16704:15:0;;;6847:6;;16704:15;;;;:32;;-1:-1:-1;6820:7:0;6847:6;-1:-1:-1;;;;;16723:13:0;;;6847:6;;16723:13;;16704:32;16700:1608;;;16757:20;;-1:-1:-1;;;16757:20:0;;;;16753:388;;;16816:15;;-1:-1:-1;;;;;16802:30:0;;;16816:15;;16802:30;;;;:62;;-1:-1:-1;16850:13:0;;-1:-1:-1;;;;;16836:28:0;;;16850:13;;16836:28;;16802:62;16798:328;;;16926:9;16897:39;;;;:28;:39;;;;;;16939:12;-1:-1:-1;16889:140:0;;;;-1:-1:-1;;;16889:140:0;;13672:2:1;16889:140:0;;;13654:21:1;13711:2;13691:18;;;13684:30;13750:34;13730:18;;;13723:62;13821:34;13801:18;;;13794:62;-1:-1:-1;;;13872:19:1;;;13865:40;13922:19;;16889:140:0;13470:477:1;16889:140:0;17081:9;17052:39;;;;:28;:39;;;;;17094:12;17052:54;;16798:328;17256:13;;-1:-1:-1;;;;;17248:21:0;;;17256:13;;17248:21;:55;;;;-1:-1:-1;17287:15:0;;-1:-1:-1;;;;;17273:30:0;;;17287:15;;17273:30;;17248:55;:82;;;;-1:-1:-1;;;;;;17308:22:0;;;;;;:18;:22;;;;;;;;17307:23;17248:82;17244:362;;;17363:28;17387:3;17363:19;17374:7;;17363:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;17351:40;;17428:12;;17418:6;:22;;17410:71;;;;-1:-1:-1;;;17410:71:0;;14154:2:1;17410:71:0;;;14136:21:1;14193:2;14173:18;;;14166:30;14232:34;14212:18;;;14205:62;-1:-1:-1;;;14283:18:1;;;14276:34;14327:19;;17410:71:0;13952:400:1;17410:71:0;17534:14;;17524:6;17508:13;17518:2;-1:-1:-1;;;;;13148:18:0;13121:7;13148:18;;;:9;:18;;;;;;;13055:119;17508:13;:22;;;;:::i;:::-;:40;;17500:90;;;;-1:-1:-1;;;17500:90:0;;14689:2:1;17500:90:0;;;14671:21:1;14728:2;14708:18;;;14701:30;14767:34;14747:18;;;14740:62;-1:-1:-1;;;14818:18:1;;;14811:35;14863:19;;17500:90:0;14487:401:1;17500:90:0;17718:13;;-1:-1:-1;;;;;17712:19:0;;;17718:13;;17712:19;:44;;;;-1:-1:-1;;;;;;17735:21:0;;17751:4;17735:21;;17712:44;17708:126;;;17789:29;17814:3;17789:20;17800:8;;17789:6;:10;;:20;;;;:::i;:29::-;17777:41;;17708:126;17963:4;17914:28;13148:18;;;:9;:18;;;;;;17989:6;;-1:-1:-1;;;17989:6:0;;;;17988:7;:30;;;;-1:-1:-1;18005:13:0;;-1:-1:-1;;;;;17999:19:0;;;18005:13;;17999:19;17988:30;:45;;;;-1:-1:-1;18022:11:0;;-1:-1:-1;;;18022:11:0;;;;17988:45;:89;;;;;18060:17;;18037:20;:40;17988:89;17984:313;;;18112:17;;18102:6;:27;18098:184;;18154:35;18171:17;;18154:16;:35::i;:::-;18098:184;;;18238:24;18255:6;18238:16;:24::i;:::-;16738:1570;16700:1608;18395:13;;18391:172;;18470:4;18452:24;;;;:9;:24;;;;;;:39;;18481:9;18452:28;:39::i;:::-;18443:4;18425:24;;;;:9;:24;;;;;;;:66;;;;18511:40;;-1:-1:-1;;;;;18511:40:0;;;;;;;18541:9;1361:25:1;;1349:2;1334:18;;1215:177;18511:40:0;;;;;;;;18391:172;-1:-1:-1;;;;;18641:15:0;;;;;;:9;:15;;;;;;:27;;18661:6;18641:19;:27::i;:::-;-1:-1:-1;;;;;18623:15:0;;;;;;:9;:15;;;;;:45;18695:40;18713:21;:6;18724:9;18713:10;:21::i;:::-;-1:-1:-1;;;;;18695:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;18679:13:0;;;;;;;:9;:13;;;;;:56;;;;18751:41;;;18770:21;:6;18781:9;18770:10;:21::i;:::-;18751:41;;1361:25:1;;;1349:2;1334:18;18751:41:0;;;;;;;16324:2476;16255:2545;;;:::o;4681:190::-;4767:7;4803:12;4795:6;;;;4787:29;;;;-1:-1:-1;;;4787:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4827:9:0;4839:5;4843:1;4839;:5;:::i;:::-;4827:17;4681:190;-1:-1:-1;;;;;4681:190:0:o;5111:246::-;5169:7;5193:1;5198;5193:6;5189:47;;-1:-1:-1;5223:1:0;5216:8;;5189:47;5246:9;5258:5;5262:1;5258;:5;:::i;:::-;5246:17;-1:-1:-1;5291:1:0;5282:5;5286:1;5246:17;5282:5;:::i;:::-;:10;5274:56;;;;-1:-1:-1;;;5274:56:0;;15095:2:1;5274:56:0;;;15077:21:1;15134:2;15114:18;;;15107:30;15173:34;15153:18;;;15146:62;-1:-1:-1;;;15224:18:1;;;15217:31;15265:19;;5274:56:0;14893:397:1;5274:56:0;5348:1;5111:246;-1:-1:-1;;;5111:246:0:o;5563:132::-;5621:7;5648:39;5652:1;5655;5648:39;;;;;;;;;;;;;;;;;:3;:39::i;18938:489::-;11492:6;:13;;-1:-1:-1;;;;11492:13:0;-1:-1:-1;;;11492:13:0;;;19040:16:::1;::::0;;19054:1:::1;19040:16:::0;;;;;::::1;::::0;;-1:-1:-1;;19040:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19040:16:0::1;19016:40;;19085:4;19067;19072:1;19067:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19067:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19111:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;19111:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;19067:7;;19111:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19101:4;19106:1;19101:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19101:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;19176:15:::1;::::0;19144:62:::1;::::0;19161:4:::1;::::0;19176:15:::1;19194:11:::0;19144:8:::1;:62::i;:::-;19217:15;::::0;19367:10:::1;::::0;19217:202:::1;::::0;-1:-1:-1;;;19217:202:0;;-1:-1:-1;;;;;19217:15:0;;::::1;::::0;:66:::1;::::0;:202:::1;::::0;19298:11;;19217:15:::1;::::0;19340:4;;19367:10;::::1;::::0;19393:15:::1;::::0;19217:202:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11528:6:0;:14;;-1:-1:-1;;;;11528:14:0;;;-1:-1:-1;;;;18938:489:0:o;3770:179::-;3828:7;;3860:5;3864:1;3860;:5;:::i;:::-;3848:17;;3889:1;3884;:6;;3876:46;;;;-1:-1:-1;;;3876:46:0;;16746:2:1;3876:46:0;;;16728:21:1;16785:2;16765:18;;;16758:30;16824:29;16804:18;;;16797:57;16871:18;;3876:46:0;16544:351:1;4206:136:0;4264:7;4291:43;4295:1;4298;4291:43;;;;;;;;;;;;;;;;;:3;:43::i;5983:189::-;6069:7;6104:12;6097:5;6089:28;;;;-1:-1:-1;;;6089:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6128:9:0;6140:5;6144:1;6140;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:118::-;3171:5;3164:13;3157:21;3150:5;3147:32;3137:60;;3193:1;3190;3183:12;3208:382;3273:6;3281;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;3389:9;3376:23;3408:31;3433:5;3408:31;:::i;:::-;3458:5;-1:-1:-1;3515:2:1;3500:18;;3487:32;3528:30;3487:32;3528:30;:::i;3595:127::-;3656:10;3651:3;3647:20;3644:1;3637:31;3687:4;3684:1;3677:15;3711:4;3708:1;3701:15;3727:422;3816:1;3859:5;3816:1;3873:270;3894:7;3884:8;3881:21;3873:270;;;3953:4;3949:1;3945:6;3941:17;3935:4;3932:27;3929:53;;;3962:18;;:::i;:::-;4012:7;4002:8;3998:22;3995:55;;;4032:16;;;;3995:55;4111:22;;;;4071:15;;;;3873:270;;;3877:3;3727:422;;;;;:::o;4154:806::-;4203:5;4233:8;4223:80;;-1:-1:-1;4274:1:1;4288:5;;4223:80;4322:4;4312:76;;-1:-1:-1;4359:1:1;4373:5;;4312:76;4404:4;4422:1;4417:59;;;;4490:1;4485:130;;;;4397:218;;4417:59;4447:1;4438:10;;4461:5;;;4485:130;4522:3;4512:8;4509:17;4506:43;;;4529:18;;:::i;:::-;-1:-1:-1;;4585:1:1;4571:16;;4600:5;;4397:218;;4699:2;4689:8;4686:16;4680:3;4674:4;4671:13;4667:36;4661:2;4651:8;4648:16;4643:2;4637:4;4634:12;4630:35;4627:77;4624:159;;;-1:-1:-1;4736:19:1;;;4768:5;;4624:159;4815:34;4840:8;4834:4;4815:34;:::i;:::-;4885:6;4881:1;4877:6;4873:19;4864:7;4861:32;4858:58;;;4896:18;;:::i;:::-;4934:20;;4154:806;-1:-1:-1;;;4154:806:1:o;4965:140::-;5023:5;5052:47;5093:4;5083:8;5079:19;5073:4;5052:47;:::i;5110:168::-;5183:9;;;5214;;5231:15;;;5225:22;;5211:37;5201:71;;5252:18;;:::i;5283:356::-;5485:2;5467:21;;;5504:18;;;5497:30;5563:34;5558:2;5543:18;;5536:62;5630:2;5615:18;;5283:356::o;7221:217::-;7261:1;7287;7277:132;;7331:10;7326:3;7322:20;7319:1;7312:31;7366:4;7363:1;7356:15;7394:4;7391:1;7384:15;7277:132;-1:-1:-1;7423:9:1;;7221:217::o;7443:184::-;7513:6;7566:2;7554:9;7545:7;7541:23;7537:32;7534:52;;;7582:1;7579;7572:12;7534:52;-1:-1:-1;7605:16:1;;7443:184;-1:-1:-1;7443:184:1:o;7919:245::-;7986:6;8039:2;8027:9;8018:7;8014:23;8010:32;8007:52;;;8055:1;8052;8045:12;8007:52;8087:9;8081:16;8106:28;8128:5;8106:28;:::i;9049:128::-;9116:9;;;9137:11;;;9134:37;;;9151:18;;:::i;9182:251::-;9252:6;9305:2;9293:9;9284:7;9280:23;9276:32;9273:52;;;9321:1;9318;9311:12;9273:52;9353:9;9347:16;9372:31;9397:5;9372:31;:::i;10359:306::-;10447:6;10455;10463;10516:2;10504:9;10495:7;10491:23;10487:32;10484:52;;;10532:1;10529;10522:12;10484:52;10561:9;10555:16;10545:26;;10611:2;10600:9;10596:18;10590:25;10580:35;;10655:2;10644:9;10640:18;10634:25;10624:35;;10359:306;;;;;:::o;14357:125::-;14422:9;;;14443:10;;;14440:36;;;14456:18;;:::i;15427:127::-;15488:10;15483:3;15479:20;15476:1;15469:31;15519:4;15516:1;15509:15;15543:4;15540:1;15533:15;15559:980;15821:4;15869:3;15858:9;15854:19;15900:6;15889:9;15882:25;15926:2;15964:6;15959:2;15948:9;15944:18;15937:34;16007:3;16002:2;15991:9;15987:18;15980:31;16031:6;16066;16060:13;16097:6;16089;16082:22;16135:3;16124:9;16120:19;16113:26;;16174:2;16166:6;16162:15;16148:29;;16195:1;16205:195;16219:6;16216:1;16213:13;16205:195;;;16284:13;;-1:-1:-1;;;;;16280:39:1;16268:52;;16375:15;;;;16340:12;;;;16316:1;16234:9;16205:195;;;-1:-1:-1;;;;;;;16456:32:1;;;;16451:2;16436:18;;16429:60;-1:-1:-1;;;16520:3:1;16505:19;16498:35;16417:3;15559:980;-1:-1:-1;;;15559:980:1:o

Swarm Source

ipfs://2e0bbabf9c11a1f13ab5f1ee558263894a2414768d9db3a253249c68b6186279
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.