ETH Price: $3,214.18 (-6.68%)
Gas: 5 Gwei

Token

EthisMonkey (MONKEY)
 

Overview

Max Total Supply

1,000,000,000 MONKEY

Holders

215

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000063501304 MONKEY

Value
$0.00
0x985c63af7a26f2d24badb7b0efaace6fda8804e1
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ETHMONKEY

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-26
*/

/**
    Website: https://ethismonkey.vip/
    TG: https://t.me/ethismonkeyerc
    Twitter: https://twitter.com/ethismonkeyerc
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.19;


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * generation and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be generated for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract ETHMONKEY is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 private  tokenLiquidityThreshold = 10000000 * 10**18;
    uint256 public maxWalletLimit = 10000000 * 10**18;

    uint256 private  genesis_block;
    uint256 private deadline = 1;
    uint256 private launchtax = 99;

    address private  marketingWallet = 0x9C6Ee27838FA12539Ea9F7218e07e6f9941A7404;
    address private devWallet = 0x9C6Ee27838FA12539Ea9F7218e07e6f9941A7404;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 dev;   
    }

    Taxes public taxes = Taxes(10, 0, 0);
    Taxes public sellTaxes = Taxes(25, 0, 0);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) private isearlybuyer;


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("EthisMonkey", "MONKEY") {
        _tokengeneration(msg.sender, 1000000000 * 10**decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;

    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isearlybuyer[sender] && !isearlybuyer[recipient],
            "You can't transfer tokens"
        );

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +           
                sellTaxes.dev ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

    if(feeswap == 0){
            return;
        }   

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 3, "Block should be less than 3");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateIsEarlyBuyer(address account, bool state) external onlyOwner {
        isearlybuyer[account] = state;
    }

    function bulkIsEarlyBuyer(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isearlybuyer[accounts[i]] = state;
        }
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueETH(uint256 weiAmount) external {
        payable(devWallet).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external {
        IERC20(tokenAdd).transfer(devWallet, amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a084595161401484a00000060088190556009556001600b556063600c55600d8054739c6ee27838fa12539ea9f7218e07e6f9941a74046001600160a01b03199182168117909255600e80549091169091179055600a60808190525f60a081905260c0819052600f9190915560108190556011819055610140604052601960e08190526101008290526101208290526012556013819055601455348015620000b4575f80fd5b506040518060400160405280600b81526020016a45746869734d6f6e6b657960a81b815250604051806040016040528060068152602001654d4f4e4b455960d01b815250816003908162000109919062000562565b50600462000118828262000562565b505050620001356200012f620003af60201b60201c565b620003b3565b6200015e33620001486012600a6200073d565b6200015890633b9aca0062000754565b62000404565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001da91906200076e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024c91906200076e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000297573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bd91906200076e565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260156020526040808220805460ff1990811660019081179092553384528284208054821683179055600d54851684528284208054821683179055600e54909416835290822080548416821790557f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e5805484168217905573d152f549545093347a162dce210e7293f14521509091527f61da876eafb9e7a52a8d714d77cf5d21023c5ef8c18b2a022eb674aa669677ca805490921617905562000796565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166200046d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004ee57607f821691505b6020821081036200050d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004c057805f5260205f20601f840160051c810160208510156200053a5750805b601f840160051c820191505b818110156200055b575f815560010162000546565b5050505050565b81516001600160401b038111156200057e576200057e620004c5565b62000596816200058f8454620004d9565b8462000513565b602080601f831160018114620005cc575f8415620005b45750858301515b5f19600386901b1c1916600185901b17855562000626565b5f85815260208120601f198616915b82811015620005fc57888601518255948401946001909101908401620005db565b50858210156200061a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200068257815f19048211156200066657620006666200062e565b808516156200067457918102915b93841c939080029062000647565b509250929050565b5f826200069a5750600162000737565b81620006a857505f62000737565b8160018114620006c15760028114620006cc57620006ec565b600191505062000737565b60ff841115620006e057620006e06200062e565b50506001821b62000737565b5060208310610133831016604e8410600b841016171562000711575081810a62000737565b6200071d838362000642565b805f19048211156200073357620007336200062e565b0290505b92915050565b5f6200074d60ff8416836200068a565b9392505050565b80820281158282048414176200073757620007376200062e565b5f602082840312156200077f575f80fd5b81516001600160a01b03811681146200074d575f80fd5b61230a80620007a45f395ff3fe608060405260043610610215575f3560e01c8063728f8eea1161011e578063a457c2d7116100a8578063dd62ed3e1161006d578063dd62ed3e14610638578063edaa11681461067c578063f2fde38b1461069b578063f66895a3146106ba578063f887ea40146106d8575f80fd5b8063a457c2d71461058e578063a8aa1b31146105ad578063a9059cbb146105cc578063aacebbe3146105eb578063c5d32bb21461060a575f80fd5b80638cd4426d116100ee5780638cd4426d146105005780638da5cb5b1461051f57806395d89b411461053c5780639d282cd6146105505780639e252f001461056f575f80fd5b8063728f8eea146104675780638514022d146104a057806385141a77146104bf5780638a8c523c146104ec575f80fd5b8063355496ca1161019f5780634ada218b1161016f5780634ada218b146103cb5780634e736f22146103eb57806366a88d961461040a57806370a082311461041f578063715018a614610453575f80fd5b8063355496ca1461034f578063395093511461036e57806342b6fa111461038d5780634324deae146103ac575f80fd5b806318160ddd116101e557806318160ddd146102b95780631816467f146102d7578063215d92a6146102f657806323b872dd14610315578063313ce56714610334575f80fd5b806306fdde0314610220578063095ea7b31461024a5780630e375a5c146102795780631340538f1461029a575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106f7565b6040516102419190611d6d565b60405180910390f35b348015610255575f80fd5b50610269610264366004611ddd565b610787565b6040519015158152602001610241565b348015610284575f80fd5b50610298610293366004611e33565b61079d565b005b3480156102a5575f80fd5b506102986102b4366004611f05565b61082f565b3480156102c4575f80fd5b506002545b604051908152602001610241565b3480156102e2575f80fd5b506102986102f1366004611f27565b610877565b348015610301575f80fd5b50610298610310366004611e33565b6108c3565b348015610320575f80fd5b5061026961032f366004611f42565b610947565b34801561033f575f80fd5b5060405160128152602001610241565b34801561035a575f80fd5b50610298610369366004611f80565b6109f6565b348015610379575f80fd5b50610269610388366004611ddd565b610a4a565b348015610398575f80fd5b506102986103a7366004611fb7565b610a80565b3480156103b7575f80fd5b506102986103c6366004611fb7565b610ac6565b3480156103d6575f80fd5b5060075461026990600160b01b900460ff1681565b3480156103f6575f80fd5b50610298610405366004611fce565b610b0c565b348015610415575f80fd5b506102c960095481565b34801561042a575f80fd5b506102c9610439366004611f27565b6001600160a01b03165f9081526020819052604090205490565b34801561045e575f80fd5b50610298610b5c565b348015610472575f80fd5b50600f5460105460115461048592919083565b60408051938452602084019290925290820152606001610241565b3480156104ab575f80fd5b506102986104ba366004611f80565b610b91565b3480156104ca575f80fd5b506104d461dead81565b6040516001600160a01b039091168152602001610241565b3480156104f7575f80fd5b50610298610be5565b34801561050b575f80fd5b5061029861051a366004611ddd565b610c84565b34801561052a575f80fd5b506005546001600160a01b03166104d4565b348015610547575f80fd5b50610234610cf8565b34801561055b575f80fd5b5061029861056a366004611fce565b610d07565b34801561057a575f80fd5b50610298610589366004611fb7565b610d57565b348015610599575f80fd5b506102696105a8366004611ddd565b610d92565b3480156105b8575f80fd5b506007546104d4906001600160a01b031681565b3480156105d7575f80fd5b506102696105e6366004611ddd565b610e2c565b3480156105f6575f80fd5b50610298610605366004611f27565b610e38565b348015610615575f80fd5b50610269610624366004611f27565b60156020525f908152604090205460ff1681565b348015610643575f80fd5b506102c9610652366004611ff7565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610687575f80fd5b50610298610696366004611fb7565b610e84565b3480156106a6575f80fd5b506102986106b5366004611f27565b610f6b565b3480156106c5575f80fd5b5060125460135460145461048592919083565b3480156106e3575f80fd5b506006546104d4906001600160a01b031681565b60606003805461070690612023565b80601f016020809104026020016040519081016040528092919081815260200182805461073290612023565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b5050505050905090565b5f610793338484611006565b5060015b92915050565b6005546001600160a01b031633146107d05760405162461bcd60e51b81526004016107c79061205b565b60405180910390fd5b5f5b825181101561082a578160155f8584815181106107f1576107f1612090565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107d2565b505050565b6005546001600160a01b031633146108595760405162461bcd60e51b81526004016107c79061205b565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108a15760405162461bcd60e51b81526004016107c79061205b565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016107c79061205b565b5f5b825181101561082a578160165f85848151811061090e5761090e612090565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016108ef565b5f610953848484611129565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109d75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107c7565b6109eb85336109e686856120b8565b611006565b506001949350505050565b6005546001600160a01b03163314610a205760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107939185906109e69086906120cb565b6005546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107c79061205b565b610ab66012600a6121be565b610ac090826121cc565b60085550565b6005546001600160a01b03163314610af05760405162461bcd60e51b81526004016107c79061205b565b610afc6012600a6121be565b610b0690826121cc565b60095550565b6005546001600160a01b03163314610b365760405162461bcd60e51b81526004016107c79061205b565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b865760405162461bcd60e51b81526004016107c79061205b565b610b8f5f6116c0565b565b6005546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016107c79061205b565b600754600160b01b900460ff1615610c695760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107c7565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610cd4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082a91906121e3565b60606004805461070690612023565b6005546001600160a01b03163314610d315760405162461bcd60e51b81526004016107c79061205b565b604080516060810182528481526020810184905201819052600f92909255601055601155565b600e546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610d8e573d5f803e3d5ffd5b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610e135760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c7565b610e2233856109e686856120b8565b5060019392505050565b5f610793338484611129565b6005546001600160a01b03163314610e625760405162461bcd60e51b81526004016107c79061205b565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107c79061205b565b600754600160b01b900460ff1615610f165760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107c7565b60038110610f665760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2033000000000060448201526064016107c7565b600b55565b6005546001600160a01b03163314610f955760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b038116610ffa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c7565b611003816116c0565b50565b6001600160a01b0383166110685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c7565b6001600160a01b0382166110c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161118a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c7565b6001600160a01b0383165f9081526016602052604090205460ff161580156111ca57506001600160a01b0382165f9081526016602052604090205460ff16155b6112165760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107c7565b6001600160a01b0383165f9081526015602052604090205460ff1615801561125657506001600160a01b0382165f9081526015602052604090205460ff16155b156112aa57600754600160b01b900460ff166112aa5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107c7565b6007546001600160a01b0384811691161480156112df57506001600160a01b0382165f9081526015602052604090205460ff16155b80156112f55750600754600160a01b900460ff16155b15611374576009548161131c846001600160a01b03165f9081526020819052604090205490565b61132691906120cb565b11156113745760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107c7565b6007546001600160a01b038481169116148015906113aa57506001600160a01b0382165f9081526015602052604090205460ff16155b80156113ce57506001600160a01b0383165f9081526015602052604090205460ff16155b80156113e45750600754600160a01b900460ff16155b15611478576007546001600160a01b038381169116146114785760095481611420846001600160a01b03165f9081526020819052604090205490565b61142a91906120cb565b11156114785760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107c7565b5f805f61149c60405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526015602052604081205460ff161580156114dc57506001600160a01b0387165f9081526015602052604090205460ff16155b80156114f65750600b54600a546114f391906120cb565b43105b600754909150600160a01b900460ff168061152857506001600160a01b0388165f9081526015602052604090205460ff165b8061154a57506001600160a01b0387165f9081526015602052604090205460ff165b15611557575f9250611621565b6007546001600160a01b038881169116148015611572575080155b156115c25760145460125460135461158a91906120cb565b61159491906120cb565b6040805160608101825260125481526013546020820152601454918101919091529095508594509150611621565b8061161257601154600f546010546115da91906120cb565b6115e491906120cb565b60408051606081018252600f5481526010546020820152601154918101919091529095508594509150611621565b801561162157600c5494508493505b606461162d85886121cc565b61163791906121fe565b600754909350600160a81b900460ff16801561166157506007546001600160a01b03898116911614155b15611670576116708583611711565b611684888861167f868a6120b8565b611881565b82156116b65784156116b6575f606461169d87896121cc565b6116a791906121fe565b90506116b4893083611881565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610d8e576007805460ff60a01b1916600160a01b179055811561187057305f90815260208190526040902054600854811061186e576001600854111561176357506008545b5f61176f8460026121cc565b90505f8184602001518461178391906121cc565b61178d91906121fe565b90505f61179a82856120b8565b9050476117a682611a57565b5f6117b182476120b8565b90505f8760200151866117c491906120b8565b6117ce90836121fe565b90505f8860200151826117e191906121cc565b905080156117f3576117f38682611ba7565b88515f906118028460026121cc565b61180c91906121cc565b9050801561182a57600d5461182a906001600160a01b031682611c58565b60408a01515f9061183c8560026121cc565b61184691906121cc565b9050801561186457600e54611864906001600160a01b031682611c58565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166118e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c7565b6001600160a01b0382166119475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c7565b6001600160a01b0383165f90815260208190526040902054818110156119be5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c7565b6119c882826120b8565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906119fd9084906120cb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4991815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a8a57611a8a612090565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b05919061221d565b81600181518110611b1857611b18612090565b6001600160a01b039283166020918202929092010152600654611b3e9130911684611006565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b769085905f90869030904290600401612238565b5f604051808303815f87803b158015611b8d575f80fd5b505af1158015611b9f573d5f803e3d5ffd5b505050505050565b600654611bbf9030906001600160a01b031684611006565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c2c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c5191906122a9565b5050505050565b80471015611ca85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107c7565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611cf1576040519150601f19603f3d011682016040523d82523d5f602084013e611cf6565b606091505b505090508061082a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107c7565b5f602080835283518060208501525f5b81811015611d9957858101830151858201604001528201611d7d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611003575f80fd5b8035611dd881611db9565b919050565b5f8060408385031215611dee575f80fd5b8235611df981611db9565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611003575f80fd5b8035611dd881611e1b565b5f8060408385031215611e44575f80fd5b823567ffffffffffffffff80821115611e5b575f80fd5b818501915085601f830112611e6e575f80fd5b8135602082821115611e8257611e82611e07565b8160051b604051601f19603f83011681018181108682111715611ea757611ea7611e07565b604052928352818301935084810182019289841115611ec4575f80fd5b948201945b83861015611ee957611eda86611dcd565b85529482019493820193611ec9565b9650611ef89050878201611e28565b9450505050509250929050565b5f60208284031215611f15575f80fd5b8135611f2081611e1b565b9392505050565b5f60208284031215611f37575f80fd5b8135611f2081611db9565b5f805f60608486031215611f54575f80fd5b8335611f5f81611db9565b92506020840135611f6f81611db9565b929592945050506040919091013590565b5f8060408385031215611f91575f80fd5b8235611f9c81611db9565b91506020830135611fac81611e1b565b809150509250929050565b5f60208284031215611fc7575f80fd5b5035919050565b5f805f60608486031215611fe0575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612008575f80fd5b823561201381611db9565b91506020830135611fac81611db9565b600181811c9082168061203757607f821691505b60208210810361205557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610797576107976120a4565b80820180821115610797576107976120a4565b600181815b8085111561211857815f19048211156120fe576120fe6120a4565b8085161561210b57918102915b93841c93908002906120e3565b509250929050565b5f8261212e57506001610797565b8161213a57505f610797565b8160018114612150576002811461215a57612176565b6001915050610797565b60ff84111561216b5761216b6120a4565b50506001821b610797565b5060208310610133831016604e8410600b8410161715612199575081810a610797565b6121a383836120de565b805f19048211156121b6576121b66120a4565b029392505050565b5f611f2060ff841683612120565b8082028115828204841417610797576107976120a4565b5f602082840312156121f3575f80fd5b8151611f2081611e1b565b5f8261221857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561222d575f80fd5b8151611f2081611db9565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122885784516001600160a01b031683529383019391830191600101612263565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122bb575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212205d68c626aa6a5af3cb0265eab162d5141d0b5758010e2b1a97bb530fac405d5264736f6c63430008170033

Deployed Bytecode

0x608060405260043610610215575f3560e01c8063728f8eea1161011e578063a457c2d7116100a8578063dd62ed3e1161006d578063dd62ed3e14610638578063edaa11681461067c578063f2fde38b1461069b578063f66895a3146106ba578063f887ea40146106d8575f80fd5b8063a457c2d71461058e578063a8aa1b31146105ad578063a9059cbb146105cc578063aacebbe3146105eb578063c5d32bb21461060a575f80fd5b80638cd4426d116100ee5780638cd4426d146105005780638da5cb5b1461051f57806395d89b411461053c5780639d282cd6146105505780639e252f001461056f575f80fd5b8063728f8eea146104675780638514022d146104a057806385141a77146104bf5780638a8c523c146104ec575f80fd5b8063355496ca1161019f5780634ada218b1161016f5780634ada218b146103cb5780634e736f22146103eb57806366a88d961461040a57806370a082311461041f578063715018a614610453575f80fd5b8063355496ca1461034f578063395093511461036e57806342b6fa111461038d5780634324deae146103ac575f80fd5b806318160ddd116101e557806318160ddd146102b95780631816467f146102d7578063215d92a6146102f657806323b872dd14610315578063313ce56714610334575f80fd5b806306fdde0314610220578063095ea7b31461024a5780630e375a5c146102795780631340538f1461029a575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106f7565b6040516102419190611d6d565b60405180910390f35b348015610255575f80fd5b50610269610264366004611ddd565b610787565b6040519015158152602001610241565b348015610284575f80fd5b50610298610293366004611e33565b61079d565b005b3480156102a5575f80fd5b506102986102b4366004611f05565b61082f565b3480156102c4575f80fd5b506002545b604051908152602001610241565b3480156102e2575f80fd5b506102986102f1366004611f27565b610877565b348015610301575f80fd5b50610298610310366004611e33565b6108c3565b348015610320575f80fd5b5061026961032f366004611f42565b610947565b34801561033f575f80fd5b5060405160128152602001610241565b34801561035a575f80fd5b50610298610369366004611f80565b6109f6565b348015610379575f80fd5b50610269610388366004611ddd565b610a4a565b348015610398575f80fd5b506102986103a7366004611fb7565b610a80565b3480156103b7575f80fd5b506102986103c6366004611fb7565b610ac6565b3480156103d6575f80fd5b5060075461026990600160b01b900460ff1681565b3480156103f6575f80fd5b50610298610405366004611fce565b610b0c565b348015610415575f80fd5b506102c960095481565b34801561042a575f80fd5b506102c9610439366004611f27565b6001600160a01b03165f9081526020819052604090205490565b34801561045e575f80fd5b50610298610b5c565b348015610472575f80fd5b50600f5460105460115461048592919083565b60408051938452602084019290925290820152606001610241565b3480156104ab575f80fd5b506102986104ba366004611f80565b610b91565b3480156104ca575f80fd5b506104d461dead81565b6040516001600160a01b039091168152602001610241565b3480156104f7575f80fd5b50610298610be5565b34801561050b575f80fd5b5061029861051a366004611ddd565b610c84565b34801561052a575f80fd5b506005546001600160a01b03166104d4565b348015610547575f80fd5b50610234610cf8565b34801561055b575f80fd5b5061029861056a366004611fce565b610d07565b34801561057a575f80fd5b50610298610589366004611fb7565b610d57565b348015610599575f80fd5b506102696105a8366004611ddd565b610d92565b3480156105b8575f80fd5b506007546104d4906001600160a01b031681565b3480156105d7575f80fd5b506102696105e6366004611ddd565b610e2c565b3480156105f6575f80fd5b50610298610605366004611f27565b610e38565b348015610615575f80fd5b50610269610624366004611f27565b60156020525f908152604090205460ff1681565b348015610643575f80fd5b506102c9610652366004611ff7565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610687575f80fd5b50610298610696366004611fb7565b610e84565b3480156106a6575f80fd5b506102986106b5366004611f27565b610f6b565b3480156106c5575f80fd5b5060125460135460145461048592919083565b3480156106e3575f80fd5b506006546104d4906001600160a01b031681565b60606003805461070690612023565b80601f016020809104026020016040519081016040528092919081815260200182805461073290612023565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b5050505050905090565b5f610793338484611006565b5060015b92915050565b6005546001600160a01b031633146107d05760405162461bcd60e51b81526004016107c79061205b565b60405180910390fd5b5f5b825181101561082a578160155f8584815181106107f1576107f1612090565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107d2565b505050565b6005546001600160a01b031633146108595760405162461bcd60e51b81526004016107c79061205b565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108a15760405162461bcd60e51b81526004016107c79061205b565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016107c79061205b565b5f5b825181101561082a578160165f85848151811061090e5761090e612090565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016108ef565b5f610953848484611129565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109d75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107c7565b6109eb85336109e686856120b8565b611006565b506001949350505050565b6005546001600160a01b03163314610a205760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107939185906109e69086906120cb565b6005546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107c79061205b565b610ab66012600a6121be565b610ac090826121cc565b60085550565b6005546001600160a01b03163314610af05760405162461bcd60e51b81526004016107c79061205b565b610afc6012600a6121be565b610b0690826121cc565b60095550565b6005546001600160a01b03163314610b365760405162461bcd60e51b81526004016107c79061205b565b604080516060810182528481526020810184905201819052601292909255601355601455565b6005546001600160a01b03163314610b865760405162461bcd60e51b81526004016107c79061205b565b610b8f5f6116c0565b565b6005546001600160a01b03163314610bbb5760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016107c79061205b565b600754600160b01b900460ff1615610c695760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107c7565b6007805461ffff60a81b191661010160a81b17905543600a55565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610cd4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082a91906121e3565b60606004805461070690612023565b6005546001600160a01b03163314610d315760405162461bcd60e51b81526004016107c79061205b565b604080516060810182528481526020810184905201819052600f92909255601055601155565b600e546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610d8e573d5f803e3d5ffd5b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610e135760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c7565b610e2233856109e686856120b8565b5060019392505050565b5f610793338484611129565b6005546001600160a01b03163314610e625760405162461bcd60e51b81526004016107c79061205b565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107c79061205b565b600754600160b01b900460ff1615610f165760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107c7565b60038110610f665760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2033000000000060448201526064016107c7565b600b55565b6005546001600160a01b03163314610f955760405162461bcd60e51b81526004016107c79061205b565b6001600160a01b038116610ffa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c7565b611003816116c0565b50565b6001600160a01b0383166110685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c7565b6001600160a01b0382166110c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161118a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c7565b6001600160a01b0383165f9081526016602052604090205460ff161580156111ca57506001600160a01b0382165f9081526016602052604090205460ff16155b6112165760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107c7565b6001600160a01b0383165f9081526015602052604090205460ff1615801561125657506001600160a01b0382165f9081526015602052604090205460ff16155b156112aa57600754600160b01b900460ff166112aa5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107c7565b6007546001600160a01b0384811691161480156112df57506001600160a01b0382165f9081526015602052604090205460ff16155b80156112f55750600754600160a01b900460ff16155b15611374576009548161131c846001600160a01b03165f9081526020819052604090205490565b61132691906120cb565b11156113745760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107c7565b6007546001600160a01b038481169116148015906113aa57506001600160a01b0382165f9081526015602052604090205460ff16155b80156113ce57506001600160a01b0383165f9081526015602052604090205460ff16155b80156113e45750600754600160a01b900460ff16155b15611478576007546001600160a01b038381169116146114785760095481611420846001600160a01b03165f9081526020819052604090205490565b61142a91906120cb565b11156114785760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107c7565b5f805f61149c60405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526015602052604081205460ff161580156114dc57506001600160a01b0387165f9081526015602052604090205460ff16155b80156114f65750600b54600a546114f391906120cb565b43105b600754909150600160a01b900460ff168061152857506001600160a01b0388165f9081526015602052604090205460ff165b8061154a57506001600160a01b0387165f9081526015602052604090205460ff165b15611557575f9250611621565b6007546001600160a01b038881169116148015611572575080155b156115c25760145460125460135461158a91906120cb565b61159491906120cb565b6040805160608101825260125481526013546020820152601454918101919091529095508594509150611621565b8061161257601154600f546010546115da91906120cb565b6115e491906120cb565b60408051606081018252600f5481526010546020820152601154918101919091529095508594509150611621565b801561162157600c5494508493505b606461162d85886121cc565b61163791906121fe565b600754909350600160a81b900460ff16801561166157506007546001600160a01b03898116911614155b15611670576116708583611711565b611684888861167f868a6120b8565b611881565b82156116b65784156116b6575f606461169d87896121cc565b6116a791906121fe565b90506116b4893083611881565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610d8e576007805460ff60a01b1916600160a01b179055811561187057305f90815260208190526040902054600854811061186e576001600854111561176357506008545b5f61176f8460026121cc565b90505f8184602001518461178391906121cc565b61178d91906121fe565b90505f61179a82856120b8565b9050476117a682611a57565b5f6117b182476120b8565b90505f8760200151866117c491906120b8565b6117ce90836121fe565b90505f8860200151826117e191906121cc565b905080156117f3576117f38682611ba7565b88515f906118028460026121cc565b61180c91906121cc565b9050801561182a57600d5461182a906001600160a01b031682611c58565b60408a01515f9061183c8560026121cc565b61184691906121cc565b9050801561186457600e54611864906001600160a01b031682611c58565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166118e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c7565b6001600160a01b0382166119475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c7565b6001600160a01b0383165f90815260208190526040902054818110156119be5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c7565b6119c882826120b8565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906119fd9084906120cb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4991815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a8a57611a8a612090565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b05919061221d565b81600181518110611b1857611b18612090565b6001600160a01b039283166020918202929092010152600654611b3e9130911684611006565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b769085905f90869030904290600401612238565b5f604051808303815f87803b158015611b8d575f80fd5b505af1158015611b9f573d5f803e3d5ffd5b505050505050565b600654611bbf9030906001600160a01b031684611006565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c2c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c5191906122a9565b5050505050565b80471015611ca85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107c7565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611cf1576040519150601f19603f3d011682016040523d82523d5f602084013e611cf6565b606091505b505090508061082a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107c7565b5f602080835283518060208501525f5b81811015611d9957858101830151858201604001528201611d7d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611003575f80fd5b8035611dd881611db9565b919050565b5f8060408385031215611dee575f80fd5b8235611df981611db9565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611003575f80fd5b8035611dd881611e1b565b5f8060408385031215611e44575f80fd5b823567ffffffffffffffff80821115611e5b575f80fd5b818501915085601f830112611e6e575f80fd5b8135602082821115611e8257611e82611e07565b8160051b604051601f19603f83011681018181108682111715611ea757611ea7611e07565b604052928352818301935084810182019289841115611ec4575f80fd5b948201945b83861015611ee957611eda86611dcd565b85529482019493820193611ec9565b9650611ef89050878201611e28565b9450505050509250929050565b5f60208284031215611f15575f80fd5b8135611f2081611e1b565b9392505050565b5f60208284031215611f37575f80fd5b8135611f2081611db9565b5f805f60608486031215611f54575f80fd5b8335611f5f81611db9565b92506020840135611f6f81611db9565b929592945050506040919091013590565b5f8060408385031215611f91575f80fd5b8235611f9c81611db9565b91506020830135611fac81611e1b565b809150509250929050565b5f60208284031215611fc7575f80fd5b5035919050565b5f805f60608486031215611fe0575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612008575f80fd5b823561201381611db9565b91506020830135611fac81611db9565b600181811c9082168061203757607f821691505b60208210810361205557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610797576107976120a4565b80820180821115610797576107976120a4565b600181815b8085111561211857815f19048211156120fe576120fe6120a4565b8085161561210b57918102915b93841c93908002906120e3565b509250929050565b5f8261212e57506001610797565b8161213a57505f610797565b8160018114612150576002811461215a57612176565b6001915050610797565b60ff84111561216b5761216b6120a4565b50506001821b610797565b5060208310610133831016604e8410600b8410161715612199575081810a610797565b6121a383836120de565b805f19048211156121b6576121b66120a4565b029392505050565b5f611f2060ff841683612120565b8082028115828204841417610797576107976120a4565b5f602082840312156121f3575f80fd5b8151611f2081611e1b565b5f8261221857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561222d575f80fd5b8151611f2081611db9565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122885784516001600160a01b031683529383019391830191600101612263565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122bb575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212205d68c626aa6a5af3cb0265eab162d5141d0b5758010e2b1a97bb530fac405d5264736f6c63430008170033

Deployed Bytecode Sourcemap

12827:11281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14744:161;;;;;;;;;;-1:-1:-1;14744:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14744:161:0;1162:187:1;23462:202:0;;;;;;;;;;-1:-1:-1;23462:202:0;;;;;:::i;:::-;;:::i;:::-;;21524:152;;;;;;;;;;-1:-1:-1;21524:152:0;;;;;:::i;:::-;;:::i;3638:108::-;;;;;;;;;;-1:-1:-1;3726:12:0;;3638:108;;;3330:25:1;;;3318:2;3303:18;3638:108:0;3184:177:1;22876:102:0;;;;;;;;;;-1:-1:-1;22876:102:0;;;;;:::i;:::-;;:::i;23118:208::-;;;;;;;;;;-1:-1:-1;23118:208:0;;;;;:::i;:::-;;:::i;14913:448::-;;;;;;;;;;-1:-1:-1;14913:448:0;;;;;:::i;:::-;;:::i;3480:93::-;;;;;;;;;;-1:-1:-1;3480:93:0;;3563:2;4221:36:1;;4209:2;4194:18;3480:93:0;4079:184:1;23334:120:0;;;;;;;;;;-1:-1:-1;23334:120:0;;;;;:::i;:::-;;:::i;15369:248::-;;;;;;;;;;-1:-1:-1;15369:248:0;;;;;:::i;:::-;;:::i;21684:177::-;;;;;;;;;;-1:-1:-1;21684:177:0;;;;;:::i;:::-;;:::i;23672:131::-;;;;;;;;;;-1:-1:-1;23672:131:0;;;;;:::i;:::-;;:::i;13059:34::-;;;;;;;;;;-1:-1:-1;13059:34:0;;;;-1:-1:-1;;;13059:34:0;;;;;;22070:195;;;;;;;;;;-1:-1:-1;22070:195:0;;;;;:::i;:::-;;:::i;13169:49::-;;;;;;;;;;;;;;;;3809:127;;;;;;;;;;-1:-1:-1;3809:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3910:18:0;3883:7;3910:18;;;;;;;;;;;;3809:127;11490:94;;;;;;;;;;;;;:::i;13697:36::-;;;;;;;;;;-1:-1:-1;13697:36:0;;;;;;;;;;;;;;;;5363:25:1;;;5419:2;5404:18;;5397:34;;;;5447:18;;;5440:34;5351:2;5336:18;13697:36:0;5161:319:1;22986:124:0;;;;;;;;;;-1:-1:-1;22986:124:0;;;;;:::i;:::-;;:::i;13499:79::-;;;;;;;;;;;;13536:42;13499:79;;;;;-1:-1:-1;;;;;5649:32:1;;;5631:51;;5619:2;5604:18;13499:79:0;5485:203:1;22272:224:0;;;;;;;;;;;;;:::i;23923:127::-;;;;;;;;;;-1:-1:-1;23923:127:0;;;;;:::i;:::-;;:::i;11267:87::-;;;;;;;;;;-1:-1:-1;11340:6:0;;-1:-1:-1;;;;;11340:6:0;11267:87;;2737:104;;;;;;;;;;;;;:::i;21869:193::-;;;;;;;;;;-1:-1:-1;21869:193:0;;;;;:::i;:::-;;:::i;23811:104::-;;;;;;;;;;-1:-1:-1;23811:104:0;;;;;:::i;:::-;;:::i;15625:410::-;;;;;;;;;;-1:-1:-1;15625:410:0;;;;;:::i;:::-;;:::i;12941:19::-;;;;;;;;;;-1:-1:-1;12941:19:0;;;;-1:-1:-1;;;;;12941:19:0;;;16043:165;;;;;;;;;;-1:-1:-1;16043:165:0;;;;;:::i;:::-;;:::i;22753:115::-;;;;;;;;;;-1:-1:-1;22753:115:0;;;;;:::i;:::-;;:::i;13789:41::-;;;;;;;;;;-1:-1:-1;13789:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4428:201;;;;;;;;;;-1:-1:-1;4428:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4594:18:0;;;4562:7;4594:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4428:201;22504:241;;;;;;;;;;-1:-1:-1;22504:241:0;;;;;:::i;:::-;;:::i;11592:192::-;;;;;;;;;;-1:-1:-1;11592:192:0;;;;;:::i;:::-;;:::i;13740:40::-;;;;;;;;;;-1:-1:-1;13740:40:0;;;;;;;;;;;;12913:21;;;;;;;;;;-1:-1:-1;12913:21:0;;;;-1:-1:-1;;;;;12913:21:0;;;2518:100;2572:13;2605:5;2598:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:100;:::o;14744:161::-;14819:4;14836:39;320:10;14859:7;14868:6;14836:8;:39::i;:::-;-1:-1:-1;14893:4:0;14744:161;;;;;:::o;23462:202::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;;;;;;;;;23559:9:::1;23554:103;23578:8;:15;23574:1;:19;23554:103;;;23640:5;23615:9;:22;23625:8;23634:1;23625:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23615:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23615:22:0;:30;;-1:-1:-1;;23615:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;23595:3:0::1;23554:103;;;;23462:202:::0;;:::o;21524:152::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;21642:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21642:26:0::1;-1:-1:-1::0;;;;21642:26:0;;::::1;::::0;;;::::1;::::0;;21524:152::o;22876:102::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22949:9:::1;:21:::0;;-1:-1:-1;;;;;;22949:21:0::1;-1:-1:-1::0;;;;;22949:21:0;;;::::1;::::0;;;::::1;::::0;;22876:102::o;23118:208::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;23218:9:::1;23213:106;23237:8;:15;23233:1;:19;23213:106;;;23302:5;23274:12;:25;23287:8;23296:1;23287:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23274:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23274:25:0;:33;;-1:-1:-1;;23274:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;23254:3:0::1;23213:106;;14913:448:::0;15045:4;15062:36;15072:6;15080:9;15091:6;15062:9;:36::i;:::-;-1:-1:-1;;;;;15138:19:0;;15111:24;15138:19;;;:11;:19;;;;;;;;320:10;15138:33;;;;;;;;15190:26;;;;15182:79;;;;-1:-1:-1;;;15182:79:0;;7389:2:1;15182:79:0;;;7371:21:1;7428:2;7408:18;;;7401:30;7467:34;7447:18;;;7440:62;-1:-1:-1;;;7518:18:1;;;7511:38;7566:19;;15182:79:0;7187:404:1;15182:79:0;15272:57;15281:6;320:10;15303:25;15322:6;15303:16;:25;:::i;:::-;15272:8;:57::i;:::-;-1:-1:-1;15349:4:0;;14913:448;-1:-1:-1;;;;14913:448:0:o;23334:120::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23419:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;23419:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23334:120::o;15369:248::-;320:10;15485:4;15539:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15539:34:0;;;;;;;;;;15485:4;;15507:80;;15530:7;;15539:47;;15576:10;;15539:47;:::i;21684:177::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;21839:14:::1;3563:2:::0;21839::::1;:14;:::i;:::-;21826:27;::::0;:10;:27:::1;:::i;:::-;21800:23;:53:::0;-1:-1:-1;21684:177:0:o;23672:131::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;23780:14:::1;3563:2:::0;23780::::1;:14;:::i;:::-;23768:26;::::0;:9;:26:::1;:::i;:::-;23751:14;:43:::0;-1:-1:-1;23672:131:0:o;22070:195::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22222:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22210:9:::1;:47:::0;;;;;;;;22070:195::o;11490:94::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;11555:21:::1;11573:1;11555:9;:21::i;:::-;11490:94::o:0;22986:124::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23073:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;23073:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22986:124::o;22272:224::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22336:14:::1;::::0;-1:-1:-1;;;22336:14:0;::::1;;;22335:15;22327:54;;;::::0;-1:-1:-1;;;22327:54:0;;9743:2:1;22327:54:0::1;::::0;::::1;9725:21:1::0;9782:2;9762:18;;;9755:30;9821:28;9801:18;;;9794:56;9867:18;;22327:54:0::1;9541:350:1::0;22327:54:0::1;22392:14;:21:::0;;-1:-1:-1;;;;22424:25:0;-1:-1:-1;;;22424:25:0;;;22476:12:::1;22460:13;:28:::0;22272:224::o;23923:127::-;24024:9;;23998:44;;-1:-1:-1;;;23998:44:0;;-1:-1:-1;;;;;24024:9:0;;;23998:44;;;10070:51:1;10137:18;;;10130:34;;;23998:25:0;;;;;;10043:18:1;;23998:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2737:104::-;2793:13;2826:7;2819:14;;;;;:::i;21869:193::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22019:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;22011:5:::1;:43:::0;;;;;;;;21869:193::o;23811:104::-;23877:9;;23869:38;;-1:-1:-1;;;;;23877:9:0;;;;23869:38;;;;;23897:9;;23877;23869:38;23877:9;23869:38;23897:9;23877;23869:38;;;;;;;;;;;;;;;;;;;;;23811:104;:::o;15625:410::-;320:10;15746:4;15795:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15795:34:0;;;;;;;;;;15848:35;;;;15840:85;;;;-1:-1:-1;;;15840:85:0;;10627:2:1;15840:85:0;;;10609:21:1;10666:2;10646:18;;;10639:30;10705:34;10685:18;;;10678:62;-1:-1:-1;;;10756:18:1;;;10749:35;10801:19;;15840:85:0;10425:401:1;15840:85:0;15936:67;320:10;15959:7;15968:34;15987:15;15968:16;:34;:::i;15936:67::-;-1:-1:-1;16023:4:0;;15625:410;-1:-1:-1;;;15625:410:0:o;16043:165::-;16121:4;16138:40;16148:10;16160:9;16171:6;16138:9;:40::i;22753:115::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22833:15:::1;:27:::0;;-1:-1:-1;;;;;;22833:27:0::1;-1:-1:-1::0;;;;;22833:27:0;;;::::1;::::0;;;::::1;::::0;;22753:115::o;22504:241::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;22586:14:::1;::::0;-1:-1:-1;;;22586:14:0;::::1;;;22585:15;22577:65;;;::::0;-1:-1:-1;;;22577:65:0;;11033:2:1;22577:65:0::1;::::0;::::1;11015:21:1::0;11072:2;11052:18;;;11045:30;11111:34;11091:18;;;11084:62;-1:-1:-1;;;11162:18:1;;;11155:35;11207:19;;22577:65:0::1;10831:401:1::0;22577:65:0::1;22673:1;22661:9;:13;22653:53;;;::::0;-1:-1:-1;;;22653:53:0;;11439:2:1;22653:53:0::1;::::0;::::1;11421:21:1::0;11478:2;11458:18;;;11451:30;11517:29;11497:18;;;11490:57;11564:18;;22653:53:0::1;11237:351:1::0;22653:53:0::1;22717:8;:20:::0;22504:241::o;11592:192::-;11340:6;;-1:-1:-1;;;;;11340:6:0;320:10;11402:23;11394:68;;;;-1:-1:-1;;;11394:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11681:22:0;::::1;11673:73;;;::::0;-1:-1:-1;;;11673:73:0;;11795:2:1;11673:73:0::1;::::0;::::1;11777:21:1::0;11834:2;11814:18;;;11807:30;11873:34;11853:18;;;11846:62;-1:-1:-1;;;11924:18:1;;;11917:36;11970:19;;11673:73:0::1;11593:402:1::0;11673:73:0::1;11757:19;11767:8;11757:9;:19::i;:::-;11592:192:::0;:::o;9566:380::-;-1:-1:-1;;;;;9702:19:0;;9694:68;;;;-1:-1:-1;;;9694:68:0;;12202:2:1;9694:68:0;;;12184:21:1;12241:2;12221:18;;;12214:30;12280:34;12260:18;;;12253:62;-1:-1:-1;;;12331:18:1;;;12324:34;12375:19;;9694:68:0;12000:400:1;9694:68:0;-1:-1:-1;;;;;9781:21:0;;9773:68;;;;-1:-1:-1;;;9773:68:0;;12607:2:1;9773:68:0;;;12589:21:1;12646:2;12626:18;;;12619:30;12685:34;12665:18;;;12658:62;-1:-1:-1;;;12736:18:1;;;12729:32;12778:19;;9773:68:0;12405:398:1;9773:68:0;-1:-1:-1;;;;;9854:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9906:32;;3330:25:1;;;9906:32:0;;3303:18:1;9906:32:0;;;;;;;9566:380;;;:::o;16216:2658::-;16366:1;16357:6;:10;16349:64;;;;-1:-1:-1;;;16349:64:0;;13010:2:1;16349:64:0;;;12992:21:1;13049:2;13029:18;;;13022:30;13088:34;13068:18;;;13061:62;-1:-1:-1;;;13139:18:1;;;13132:39;13188:19;;16349:64:0;12808:405:1;16349:64:0;-1:-1:-1;;;;;16433:20:0;;;;;;:12;:20;;;;;;;;16432:21;:49;;;;-1:-1:-1;;;;;;16458:23:0;;;;;;:12;:23;;;;;;;;16457:24;16432:49;16424:110;;;;-1:-1:-1;;;16424:110:0;;13420:2:1;16424:110:0;;;13402:21:1;13459:2;13439:18;;;13432:30;13498:27;13478:18;;;13471:55;13543:18;;16424:110:0;13218:349:1;16424:110:0;-1:-1:-1;;;;;16552:17:0;;;;;;:9;:17;;;;;;;;16551:18;:43;;;;-1:-1:-1;;;;;;16574:20:0;;;;;;:9;:20;;;;;;;;16573:21;16551:43;16547:122;;;16619:14;;-1:-1:-1;;;16619:14:0;;;;16611:46;;;;-1:-1:-1;;;16611:46:0;;13774:2:1;16611:46:0;;;13756:21:1;13813:2;13793:18;;;13786:30;-1:-1:-1;;;13832:18:1;;;13825:49;13891:18;;16611:46:0;13572:343:1;16611:46:0;16695:4;;-1:-1:-1;;;;;16685:14:0;;;16695:4;;16685:14;:39;;;;-1:-1:-1;;;;;;16704:20:0;;;;;;:9;:20;;;;;;;;16703:21;16685:39;:59;;;;-1:-1:-1;16729:15:0;;-1:-1:-1;;;16729:15:0;;;;16728:16;16685:59;16681:215;;;16802:14;;16792:6;16769:20;16779:9;-1:-1:-1;;;;;3910:18:0;3883:7;3910:18;;;;;;;;;;;;3809:127;16769:20;:29;;;;:::i;:::-;:47;;16761:123;;;;-1:-1:-1;;;16761:123:0;;14122:2:1;16761:123:0;;;14104:21:1;;;14141:18;;;14134:30;14200:34;14180:18;;;14173:62;14252:18;;16761:123:0;13920:356:1;16761:123:0;16922:4;;-1:-1:-1;;;;;16912:14:0;;;16922:4;;16912:14;;;;:39;;-1:-1:-1;;;;;;16931:20:0;;;;;;:9;:20;;;;;;;;16930:21;16912:39;:61;;;;-1:-1:-1;;;;;;16956:17:0;;;;;;:9;:17;;;;;;;;16955:18;16912:61;:81;;;;-1:-1:-1;16978:15:0;;-1:-1:-1;;;16978:15:0;;;;16977:16;16912:81;16908:315;;;17040:4;;-1:-1:-1;;;;;17027:17:0;;;17040:4;;17027:17;17023:189;;17106:14;;17096:6;17073:20;17083:9;-1:-1:-1;;;;;3910:18:0;3883:7;3910:18;;;;;;;;;;;;3809:127;17073:20;:29;;;;:::i;:::-;:47;;17065:131;;;;-1:-1:-1;;;17065:131:0;;14122:2:1;17065:131:0;;;14104:21:1;;;14141:18;;;14134:30;14200:34;14180:18;;;14173:62;14252:18;;17065:131:0;13920:356:1;17065:131:0;17235:15;17261:14;17286:11;17308:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17308:25:0;-1:-1:-1;;;;;17367:17:0;;17346;17367;;;:9;:17;;;;;;;;17366:18;:56;;;;-1:-1:-1;;;;;;17402:20:0;;;;;;:9;:20;;;;;;;;17401:21;17366:56;:112;;;;;17470:8;;17454:13;;:24;;;;:::i;:::-;17439:12;:39;17366:112;17566:15;;17346:132;;-1:-1:-1;;;;17566:15:0;;;;;:36;;-1:-1:-1;;;;;;17585:17:0;;;;;;:9;:17;;;;;;;;17566:36;:60;;;-1:-1:-1;;;;;;17606:20:0;;;;;;:9;:20;;;;;;;;17566:60;17562:728;;;17647:1;17641:7;;17562:728;;;17712:4;;-1:-1:-1;;;;;17699:17:0;;;17712:4;;17699:17;:34;;;;;17721:12;17720:13;17699:34;17695:595;;;17866:13;;:9;17816:19;17777;;:58;;17816:19;17777:58;:::i;:::-;:102;;;;:::i;:::-;17926:24;;;;;;;;17941:9;17926:24;;;;;;;;;;;;;;;;;;17750:129;;-1:-1:-1;17750:129:0;;-1:-1:-1;17926:24:0;-1:-1:-1;17695:595:0;;;17973:12;17968:322;;18099:9;;:5;18064:15;18029;;:50;;18064:15;18029:50;:::i;:::-;:79;;;;:::i;:::-;18155:20;;;;;;;;18170:5;18155:20;;;;;;;;;;;;;;;;;;18002:106;;-1:-1:-1;18002:106:0;;-1:-1:-1;18155:20:0;-1:-1:-1;17968:322:0;;;18197:12;18193:97;;;18236:9;;;-1:-1:-1;18236:9:0;;-1:-1:-1;18193:97:0;18328:3;18309:15;18318:6;18309;:15;:::i;:::-;18308:23;;;;:::i;:::-;18445:18;;18302:29;;-1:-1:-1;;;;18445:18:0;;;;:36;;;;-1:-1:-1;18477:4:0;;-1:-1:-1;;;;;18467:14:0;;;18477:4;;18467:14;;18445:36;18441:76;;;18483:34;18495:7;18504:12;18483:11;:34::i;:::-;18559:48;18575:6;18583:9;18594:12;18603:3;18594:6;:12;:::i;:::-;18559:15;:48::i;:::-;18622:7;;18618:249;;18694:11;;18690:164;;18726:17;18767:3;18747:16;18756:7;18747:6;:16;:::i;:::-;18746:24;;;;:::i;:::-;18726:44;;18789:49;18805:6;18821:4;18828:9;18789:15;:49::i;:::-;18707:147;18690:164;16338:2536;;;;;16216:2658;;;:::o;11792:173::-;11867:6;;;-1:-1:-1;;;;;11884:17:0;;;-1:-1:-1;;;;;;11884:17:0;;;;;;;11917:40;;11867:6;;;11884:17;11867:6;;11917:40;;11848:16;;11917:40;11837:128;11792:173;:::o;18882:1593::-;13930:15;;-1:-1:-1;;;13930:15:0;;;;13925:125;;13962:15;:22;;-1:-1:-1;;;;13962:22:0;-1:-1:-1;;;13962:22:0;;;18971:49;;19002:7:::1;18971:49;19079:4;19035:23;3910:18:::0;;;;;;;;;;;19119:23:::1;::::0;19100:42;::::1;19096:1372;;19189:1;19163:23;;:27;19159:109;;;-1:-1:-1::0;19229:23:0::1;::::0;19159:109:::1;19339:19;19361:11;:7:::0;19371:1:::1;19361:11;:::i;:::-;19339:33;;19387:32;19481:11;19441:9;:19;;;19423:15;:37;;;;:::i;:::-;19422:70;;;;:::i;:::-;19387:105:::0;-1:-1:-1;19507:14:0::1;19524:42;19387:105:::0;19524:15;:42:::1;:::i;:::-;19507:59:::0;-1:-1:-1;19608:21:0::1;19646:24;19507:59:::0;19646:16:::1;:24::i;:::-;19687:20;19710:38;19734:14:::0;19710:21:::1;:38;:::i;:::-;19687:61;;19763:19;19815:9;:19;;;19801:11;:33;;;;:::i;:::-;19785:50;::::0;:12;:50:::1;:::i;:::-;19763:72;;19850:29;19896:9;:19;;;19882:11;:33;;;;:::i;:::-;19850:65:::0;-1:-1:-1;19936:25:0;;19932:161:::1;;20016:61;20029:24;20055:21;20016:12;:61::i;:::-;20150:19:::0;;20109:20:::1;::::0;20132:15:::1;:11:::0;20146:1:::1;20132:15;:::i;:::-;:37;;;;:::i;:::-;20109:60:::0;-1:-1:-1;20188:16:0;;20184:105:::1;;20233:15;::::0;20225:48:::1;::::0;-1:-1:-1;;;;;20233:15:0::1;20260:12:::0;20225:34:::1;:48::i;:::-;20340:13;::::0;::::1;::::0;20305:14:::1;::::0;20322:15:::1;:11:::0;20336:1:::1;20322:15;:::i;:::-;:31;;;;:::i;:::-;20305:48:::0;-1:-1:-1;20372:10:0;;20368:87:::1;;20411:9;::::0;20403:36:::1;::::0;-1:-1:-1;;;;;20411:9:0::1;20432:6:::0;20403:28:::1;:36::i;:::-;19144:1324;;;;;;;;;19096:1372;18962:1513;13999:1;14015:15:::0;:23;;-1:-1:-1;;;;14015:23:0;;;18882:1593;;:::o;7941:638::-;-1:-1:-1;;;;;8081:20:0;;8073:70;;;;-1:-1:-1;;;8073:70:0;;14705:2:1;8073:70:0;;;14687:21:1;14744:2;14724:18;;;14717:30;14783:34;14763:18;;;14756:62;-1:-1:-1;;;14834:18:1;;;14827:35;14879:19;;8073:70:0;14503:401:1;8073:70:0;-1:-1:-1;;;;;8162:23:0;;8154:71;;;;-1:-1:-1;;;8154:71:0;;15111:2:1;8154:71:0;;;15093:21:1;15150:2;15130:18;;;15123:30;15189:34;15169:18;;;15162:62;-1:-1:-1;;;15240:18:1;;;15233:33;15283:19;;8154:71:0;14909:399:1;8154:71:0;-1:-1:-1;;;;;8322:17:0;;8298:21;8322:17;;;;;;;;;;;8358:23;;;;8350:74;;;;-1:-1:-1;;;8350:74:0;;15515:2:1;8350:74:0;;;15497:21:1;15554:2;15534:18;;;15527:30;15593:34;15573:18;;;15566:62;-1:-1:-1;;;15644:18:1;;;15637:36;15690:19;;8350:74:0;15313:402:1;8350:74:0;8455:22;8471:6;8455:13;:22;:::i;:::-;-1:-1:-1;;;;;8435:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8488:20;;;;;;;;:30;;8512:6;;8435:9;8488:30;;8512:6;;8488:30;:::i;:::-;;;;;;;;8553:9;-1:-1:-1;;;;;8536:35:0;8545:6;-1:-1:-1;;;;;8536:35:0;;8564:6;8536:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8536:35:0;;;;;;;;8062:517;7941:638;;;:::o;20483:526::-;20625:16;;;20639:1;20625:16;;;;;;;;20601:21;;20625:16;;;;;;;;;;-1:-1:-1;20625:16:0;20601:40;;20670:4;20652;20657:1;20652:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20652:23:0;;;:7;;;;;;;;;;:23;;;;20696:6;;:13;;;-1:-1:-1;;;20696:13:0;;;;:6;;;;;:11;;:13;;;;;20652:7;;20696:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20686:4;20691:1;20686:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20686:23:0;;;:7;;;;;;;;;:23;20754:6;;20722:53;;20739:4;;20754:6;20763:11;20722:8;:53::i;:::-;20814:6;;:187;;-1:-1:-1;;;20814:187:0;;-1:-1:-1;;;;;20814:6:0;;;;:57;;:187;;20886:11;;20814:6;;20928:4;;20955;;20975:15;;20814:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20538:471;20483:526;:::o;21017:499::-;21197:6;;21165:53;;21182:4;;-1:-1:-1;;;;;21197:6:0;21206:11;21165:8;:53::i;:::-;21261:6;;21458:9;;21261:247;;-1:-1:-1;;;21261:247:0;;21326:4;21261:247;;;17302:34:1;17352:18;;;17345:34;;;21261:6:0;17395:18:1;;;17388:34;;;17438:18;;;17431:34;-1:-1:-1;;;;;21458:9:0;;;17481:19:1;;;17474:44;21482:15:0;17534:19:1;;;17527:35;21261:6:0;;;:22;;21292:9;;17236:19:1;;21261:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21017:499;;:::o;10710:319::-;10825:6;10800:21;:31;;10792:73;;;;-1:-1:-1;;;10792:73:0;;18086:2:1;10792:73:0;;;18068:21:1;18125:2;18105:18;;;18098:30;18164:31;18144:18;;;18137:59;18213:18;;10792:73:0;17884:353:1;10792:73:0;10879:12;10897:9;-1:-1:-1;;;;;10897:14:0;10920:6;10897:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10878:54;;;10951:7;10943:78;;;;-1:-1:-1;;;10943:78:0;;18654:2:1;10943:78:0;;;18636:21:1;18693:2;18673:18;;;18666:30;18732:34;18712:18;;;18705:62;18803:28;18783:18;;;18776:56;18849:19;;10943:78:0;18452:422:1;14:548;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;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:247::-;3425:6;3478:2;3466:9;3457:7;3453:23;3449:32;3446:52;;;3494:1;3491;3484:12;3446:52;3533:9;3520:23;3552:31;3577:5;3552:31;:::i;3618:456::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3945:2:1;3930:18;;3917:32;3958:33;3917:32;3958:33;:::i;:::-;3618:456;;4010:7;;-1:-1:-1;;;4064:2:1;4049:18;;;;4036:32;;3618:456::o;4268:382::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;:::-;4518:5;-1:-1:-1;4575:2:1;4560:18;;4547:32;4588:30;4547:32;4588:30;:::i;:::-;4637:7;4627:17;;;4268:382;;;;;:::o;4655:180::-;4714:6;4767:2;4755:9;4746:7;4742:23;4738:32;4735:52;;;4783:1;4780;4773:12;4735:52;-1:-1:-1;4806:23:1;;4655:180;-1:-1:-1;4655:180:1:o;4840:316::-;4917:6;4925;4933;4986:2;4974:9;4965:7;4961:23;4957:32;4954:52;;;5002:1;4999;4992:12;4954:52;-1:-1:-1;;5025:23:1;;;5095:2;5080:18;;5067:32;;-1:-1:-1;5146:2:1;5131:18;;;5118:32;;4840:316;-1:-1:-1;4840:316:1:o;5693:388::-;5761:6;5769;5822:2;5810:9;5801:7;5797:23;5793:32;5790:52;;;5838:1;5835;5828:12;5790:52;5877:9;5864:23;5896:31;5921:5;5896:31;:::i;:::-;5946:5;-1:-1:-1;6003:2:1;5988:18;;5975:32;6016:33;5975:32;6016:33;:::i;6309:380::-;6388:1;6384:12;;;;6431;;;6452:61;;6506:4;6498:6;6494:17;6484:27;;6452:61;6559:2;6551:6;6548:14;6528:18;6525:38;6522:161;;6605:10;6600:3;6596:20;6593:1;6586:31;6640:4;6637:1;6630:15;6668:4;6665:1;6658:15;6522:161;;6309:380;;;:::o;6694:356::-;6896:2;6878:21;;;6915:18;;;6908:30;6974:34;6969:2;6954:18;;6947:62;7041:2;7026:18;;6694:356::o;7055:127::-;7116:10;7111:3;7107:20;7104:1;7097:31;7147:4;7144:1;7137:15;7171:4;7168:1;7161:15;7596:127;7657:10;7652:3;7648:20;7645:1;7638:31;7688:4;7685:1;7678:15;7712:4;7709:1;7702:15;7728:128;7795:9;;;7816:11;;;7813:37;;;7830:18;;:::i;7861:125::-;7926:9;;;7947:10;;;7944:36;;;7960:18;;:::i;7991:416::-;8080:1;8117:5;8080:1;8131:270;8152:7;8142:8;8139:21;8131:270;;;8211:4;8207:1;8203:6;8199:17;8193:4;8190:27;8187:53;;;8220:18;;:::i;:::-;8270:7;8260:8;8256:22;8253:55;;;8290:16;;;;8253:55;8369:22;;;;8329:15;;;;8131:270;;;8135:3;7991:416;;;;;:::o;8412:806::-;8461:5;8491:8;8481:80;;-1:-1:-1;8532:1:1;8546:5;;8481:80;8580:4;8570:76;;-1:-1:-1;8617:1:1;8631:5;;8570:76;8662:4;8680:1;8675:59;;;;8748:1;8743:130;;;;8655:218;;8675:59;8705:1;8696:10;;8719:5;;;8743:130;8780:3;8770:8;8767:17;8764:43;;;8787:18;;:::i;:::-;-1:-1:-1;;8843:1:1;8829:16;;8858:5;;8655:218;;8957:2;8947:8;8944:16;8938:3;8932:4;8929:13;8925:36;8919:2;8909:8;8906:16;8901:2;8895:4;8892:12;8888:35;8885:77;8882:159;;;-1:-1:-1;8994:19:1;;;9026:5;;8882:159;9073:34;9098:8;9092:4;9073:34;:::i;:::-;9143:6;9139:1;9135:6;9131:19;9122:7;9119:32;9116:58;;;9154:18;;:::i;:::-;9192:20;;8412:806;-1:-1:-1;;;8412:806:1:o;9223:140::-;9281:5;9310:47;9351:4;9341:8;9337:19;9331:4;9310:47;:::i;9368:168::-;9441:9;;;9472;;9489:15;;;9483:22;;9469:37;9459:71;;9510:18;;:::i;10175:245::-;10242:6;10295:2;10283:9;10274:7;10270:23;10266:32;10263:52;;;10311:1;10308;10301:12;10263:52;10343:9;10337:16;10362:28;10384:5;10362:28;:::i;14281:217::-;14321:1;14347;14337:132;;14391:10;14386:3;14382:20;14379:1;14372:31;14426:4;14423:1;14416:15;14454:4;14451:1;14444:15;14337:132;-1:-1:-1;14483:9:1;;14281:217::o;15720:251::-;15790:6;15843:2;15831:9;15822:7;15818:23;15814:32;15811:52;;;15859:1;15856;15849:12;15811:52;15891:9;15885:16;15910:31;15935:5;15910:31;:::i;15976:980::-;16238:4;16286:3;16275:9;16271:19;16317:6;16306:9;16299:25;16343:2;16381:6;16376:2;16365:9;16361:18;16354:34;16424:3;16419:2;16408:9;16404:18;16397:31;16448:6;16483;16477:13;16514:6;16506;16499:22;16552:3;16541:9;16537:19;16530:26;;16591:2;16583:6;16579:15;16565:29;;16612:1;16622:195;16636:6;16633:1;16630:13;16622:195;;;16701:13;;-1:-1:-1;;;;;16697:39:1;16685:52;;16792:15;;;;16757:12;;;;16733:1;16651:9;16622:195;;;-1:-1:-1;;;;;;;16873:32:1;;;;16868:2;16853:18;;16846:60;-1:-1:-1;;;16937:3:1;16922:19;16915:35;16834:3;15976:980;-1:-1:-1;;;15976:980:1:o;17573:306::-;17661:6;17669;17677;17730:2;17718:9;17709:7;17705:23;17701:32;17698:52;;;17746:1;17743;17736:12;17698:52;17775:9;17769:16;17759:26;;17825:2;17814:9;17810:18;17804:25;17794:35;;17869:2;17858:9;17854:18;17848:25;17838:35;;17573:306;;;;;:::o

Swarm Source

ipfs://5d68c626aa6a5af3cb0265eab162d5141d0b5758010e2b1a97bb530fac405d52
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.