ETH Price: $2,401.47 (-0.85%)

Token

A DOGS TALE (CHUKENHACHI)
 

Overview

Max Total Supply

1,000,000,000 CHUKENHACHI

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.548752761229711866 CHUKENHACHI

Value
$0.00
0xAcaA3F46A2a25b1bcE1E51E5Bc798908e430d5AE
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:
ADOGSTALE

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-26
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.8;

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 ADOGSTALE is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 3e6 * 10**18;
    uint256 public maxBuyLimit = 2e7 * 10**18;
    uint256 public maxSellLimit = 2e7 * 10**18;
    uint256 public maxWalletLimit = 2e7 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 3;
    uint256 private launchtax = 99;

    address public marketingWallet = 0x3D3D68192dd5771EFAd2b6978C90d75326718cc9;
    address private devWallet = 0xB92FF3b8c24A31CF04D4c619CE74D8473228AFFE;
    address private opsWallet = 0x3D3D68192dd5771EFAd2b6978C90d75326718cc9;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

    Taxes public taxes = Taxes(2, 0, 2, 1);
    Taxes public sellTaxes = Taxes(2, 0, 2, 1);

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

    //Anti Dump
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = false;
    uint256 public coolDownTime = 60 seconds;

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

    constructor() ERC20("A DOGS TALE", "CHUKENHACHI") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

        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[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[opsWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0x71B5759d73262FBb223956913ecF4ecC51057641] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xE2fE530C047f2d85298b07D9333C05737f1435fB] = 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(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }

        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 +
                sellTaxes.ops ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.dev +
                taxes.ops;
            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);
            }

            uint256 opsAmt = unitBalance * 2 * swapTaxes.ops;
            if (opsAmt > 0) {
                payable(opsWallet).sendValue(opsAmt);
            }

        }
    }

    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
            owner(),
            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,
        uint256 _ops
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev, _ops);
        require((_marketing + _liquidity + _dev+ _ops) <= 15, "Must keep fees at 15% or less");
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev,
        uint256 _ops
    ) external onlyOwner {
        require((_marketing + _liquidity + _dev+ _ops) <= 15, "Must keep fees at 15% or less");
        taxes = Taxes(_marketing, _liquidity, _dev, _ops);
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner {
        router = IRouter(newRouter);
        pair = newPair;
    }

   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 < 10, "Block should be less than 10");
        deadline = _deadline;
    }

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

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

    function updateOpsWallet(address newWallet) external onlyOwner{
        opsWallet = newWallet;
    }

    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
        require(time <= 60, "cooldown timer cannot exceed 1 minutes");
    }

    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 updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e6, "Cannot set max buy amount lower than 0.1%");
        require(maxSell >= 1e6, "Cannot set max sell amount lower than 0.1%");
        require(maxWallet >= 1e6, "Cannot set max wallet amount lower than 0.1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        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"},{"internalType":"uint256","name":"_ops","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"},{"internalType":"uint256","name":"_ops","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":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isearlybuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"internalType":"uint256","name":"ops","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"},{"internalType":"uint256","name":"ops","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","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":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","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":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateOpsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a027b46536c66c8e30000006008556a108b2a2c280290940000006009819055600a819055600b556003600d556063600e55600f80546001600160a01b0319908116733d3d68192dd5771efad2b6978c90d75326718cc990811790925560108054821673b92ff3b8c24a31cf04d4c619ce74d8473228affe17905560118054909116909117905560026080819052600060a081905260c0829052600160e081905260128390556013829055601483905560158190556101806040526101008390526101208290526101408390526101608190526016839055601791909155601891909155601955601d805460ff19169055603c601e553480156200011157600080fd5b506040518060400160405280600b81526020016a4120444f47532054414c4560a81b8152506040518060400160405280600b81526020016a4348554b454e484143484960a81b815250816003908051906020019062000172929190620005d3565b50805162000188906004906020840190620005d3565b505050620001a56200019f620004c060201b60201c565b620004c4565b620001ce33620001b86012600a6200078e565b620001c890633b9aca00620007a6565b62000516565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a01559260048083019392829003018186803b1580156200023457600080fd5b505afa15801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f9190620007c8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b857600080fd5b505afa158015620002cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f39190620007c8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200033c57600080fd5b505af115801562000351573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003779190620007c8565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601a6020526040808220805460ff199081166001908117909255600f54851684528284208054821683179055601054851684528284208054821683179055601154909416835290822080548416821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e8880548416821790557f21e0478c6bba65b2959502c8b62c3eb88b435a316d192098f577a4012a88119380548416821790557f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b805484168217905573e2fe530c047f2d85298b07d9333c05737f1435fb9091527f4b465cba4172184efca42fd2b6567652cdd4a8a99596f76788583fca6e8ffef3805490921617905562000830565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200057f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620005e190620007f3565b90600052602060002090601f01602090048101928262000605576000855562000650565b82601f106200062057805160ff191683800117855562000650565b8280016001018555821562000650579182015b828111156200065057825182559160200191906001019062000633565b506200065e92915062000662565b5090565b5b808211156200065e576000815560010162000663565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d0578160001904821115620006b457620006b462000679565b80851615620006c257918102915b93841c939080029062000694565b509250929050565b600082620006e95750600162000788565b81620006f85750600062000788565b81600181146200071157600281146200071c576200073c565b600191505062000788565b60ff84111562000730576200073062000679565b50506001821b62000788565b5060208310610133831016604e8410600b841016171562000761575081810a62000788565b6200076d83836200068f565b806000190482111562000784576200078462000679565b0290505b92915050565b60006200079f60ff841683620006d8565b9392505050565b6000816000190483118215151615620007c357620007c362000679565b500290565b600060208284031215620007db57600080fd5b81516001600160a01b03811681146200079f57600080fd5b600181811c908216806200080857607f821691505b602082108114156200082a57634e487b7160e01b600052602260045260246000fd5b50919050565b612bf780620008406000396000f3fe6080604052600436106102b25760003560e01c806375f0a87411610175578063a9059cbb116100dc578063e517f2b911610095578063f2fde38b1161006f578063f2fde38b146108a3578063f66895a3146108c3578063f887ea40146108e6578063fbe6324e1461090657600080fd5b8063e517f2b914610849578063edaa116814610869578063ee36e3591461088957600080fd5b8063a9059cbb1461075d578063aacebbe31461077d578063c5d32bb21461079d578063d2ce0db2146107cd578063dd62ed3e146107e3578063e1b450ad1461082957600080fd5b80639321b6761161012e5780639321b6761461069857806395d89b41146106b85780639e252f00146106cd578063a0cc1c2a146106ed578063a457c2d71461071d578063a8aa1b311461073d57600080fd5b806375f0a874146105d75780638514022d1461060f57806385141a771461062f5780638a8c523c146106455780638cd4426d1461065a5780638da5cb5b1461067a57600080fd5b8063313ce56711610219578063652e2f04116101d2578063652e2f041461050757806366a88d961461051d5780636aa5b37f1461053357806370a0823114610549578063715018a61461057f578063728f8eea1461059457600080fd5b8063313ce5671461044a578063355496ca14610466578063395093511461048657806340b28c2f146104a657806342b6fa11146104c65780634ada218b146104e657600080fd5b806318160ddd1161026b57806318160ddd1461039f5780631816467f146103b45780631c3909e6146103d4578063215d92a6146103f457806323b872dd14610414578063274a533c1461043457600080fd5b806306fdde03146102be578063095ea7b3146102e95780630e375a5c14610319578063105cafb61461033b5780631340538f1461035b5780631675d8021461037b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610927565b6040516102e091906125a4565b60405180910390f35b3480156102f557600080fd5b5061030961030436600461261e565b6109b9565b60405190151581526020016102e0565b34801561032557600080fd5b50610339610334366004612679565b6109d0565b005b34801561034757600080fd5b50610339610356366004612750565b610a6f565b34801561036757600080fd5b50610339610376366004612782565b610b3d565b34801561038757600080fd5b5061039160085481565b6040519081526020016102e0565b3480156103ab57600080fd5b50600254610391565b3480156103c057600080fd5b506103396103cf3660046127a6565b610b85565b3480156103e057600080fd5b506103396103ef3660046127a6565b610bd1565b34801561040057600080fd5b5061033961040f366004612679565b610c1d565b34801561042057600080fd5b5061030961042f3660046127c3565b610cae565b34801561044057600080fd5b50610391600c5481565b34801561045657600080fd5b50604051601281526020016102e0565b34801561047257600080fd5b50610339610481366004612804565b610d5f565b34801561049257600080fd5b506103096104a136600461261e565b610db4565b3480156104b257600080fd5b506103396104c136600461283d565b610deb565b3480156104d257600080fd5b506103396104e136600461286b565b610e43565b3480156104f257600080fd5b5060075461030990600160b01b900460ff1681565b34801561051357600080fd5b50610391600a5481565b34801561052957600080fd5b50610391600b5481565b34801561053f57600080fd5b5061039160095481565b34801561055557600080fd5b506103916105643660046127a6565b6001600160a01b031660009081526020819052604090205490565b34801561058b57600080fd5b50610339610e89565b3480156105a057600080fd5b506012546013546014546015546105b79392919084565b6040805194855260208501939093529183015260608201526080016102e0565b3480156105e357600080fd5b50600f546105f7906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561061b57600080fd5b5061033961062a366004612804565b610ebf565b34801561063b57600080fd5b506105f761dead81565b34801561065157600080fd5b50610339610f14565b34801561066657600080fd5b5061033961067536600461261e565b610fb3565b34801561068657600080fd5b506005546001600160a01b03166105f7565b3480156106a457600080fd5b506103396106b3366004612750565b611039565b3480156106c457600080fd5b506102d361110d565b3480156106d957600080fd5b506103396106e836600461286b565b61111c565b3480156106f957600080fd5b506103096107083660046127a6565b601b6020526000908152604090205460ff1681565b34801561072957600080fd5b5061030961073836600461261e565b61115a565b34801561074957600080fd5b506007546105f7906001600160a01b031681565b34801561076957600080fd5b5061030961077836600461261e565b6111f5565b34801561078957600080fd5b506103396107983660046127a6565b611202565b3480156107a957600080fd5b506103096107b83660046127a6565b601a6020526000908152604090205460ff1681565b3480156107d957600080fd5b50610391601e5481565b3480156107ef57600080fd5b506103916107fe36600461283d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561083557600080fd5b50610339610844366004612884565b61124e565b34801561085557600080fd5b506103396108643660046128b0565b6113fc565b34801561087557600080fd5b5061033961088436600461286b565b6114a2565b34801561089557600080fd5b50601d546103099060ff1681565b3480156108af57600080fd5b506103396108be3660046127a6565b611589565b3480156108cf57600080fd5b506016546017546018546019546105b79392919084565b3480156108f257600080fd5b506006546105f7906001600160a01b031681565b34801561091257600080fd5b5060075461030990600160a81b900460ff1681565b606060038054610936906128ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610962906128ce565b80156109af5780601f10610984576101008083540402835291602001916109af565b820191906000526020600020905b81548152906001019060200180831161099257829003601f168201915b5050505050905090565b60006109c6338484611624565b5060015b92915050565b6005546001600160a01b03163314610a035760405162461bcd60e51b81526004016109fa90612909565b60405180910390fd5b60005b8251811015610a6a5781601a6000858481518110610a2657610a2661293e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a628161296a565b915050610a06565b505050565b6005546001600160a01b03163314610a995760405162461bcd60e51b81526004016109fa90612909565b600f8183610aa78688612985565b610ab19190612985565b610abb9190612985565b1115610b095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c65737300000060448201526064016109fa565b6040805160808101825285815260208101859052908101839052606001819052601293909355601391909155601455601555565b6005546001600160a01b03163314610b675760405162461bcd60e51b81526004016109fa90612909565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610baf5760405162461bcd60e51b81526004016109fa90612909565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610bfb5760405162461bcd60e51b81526004016109fa90612909565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c475760405162461bcd60e51b81526004016109fa90612909565b60005b8251811015610a6a5781601b6000858481518110610c6a57610c6a61293e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ca68161296a565b915050610c4a565b6000610cbb848484611748565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d405760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109fa565b610d548533610d4f868561299d565b611624565b506001949350505050565b6005546001600160a01b03163314610d895760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109c6918590610d4f908690612985565b6005546001600160a01b03163314610e155760405162461bcd60e51b81526004016109fa90612909565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610e6d5760405162461bcd60e51b81526004016109fa90612909565b610e796012600a612a98565b610e839082612aa7565b60085550565b6005546001600160a01b03163314610eb35760405162461bcd60e51b81526004016109fa90612909565b610ebd6000611e5b565b565b6005546001600160a01b03163314610ee95760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f3e5760405162461bcd60e51b81526004016109fa90612909565b600754600160b01b900460ff1615610f985760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016109fa565b6007805461ffff60a81b191661010160a81b17905543600c55565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561100157600080fd5b505af1158015611015573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a9190612ac6565b6005546001600160a01b031633146110635760405162461bcd60e51b81526004016109fa90612909565b60408051608081018252858152602081018590529081018390526060018190526012849055601383905560148290556015819055600f81836110a58688612985565b6110af9190612985565b6110b99190612985565b11156111075760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c65737300000060448201526064016109fa565b50505050565b606060048054610936906128ce565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611156573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109fa565b6111eb3385610d4f868561299d565b5060019392505050565b60006109c6338484611748565b6005546001600160a01b0316331461122c5760405162461bcd60e51b81526004016109fa90612909565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112785760405162461bcd60e51b81526004016109fa90612909565b620f42408310156112dd5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016109fa565b620f42408210156113435760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016109fa565b620f42408110156113ab5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016109fa565b6113b76012600a612a98565b6113c19084612aa7565b6009556113d06012600a612a98565b6113da9083612aa7565b600a5560126113ea90600a612a98565b6113f49082612aa7565b600b55505050565b6005546001600160a01b031633146114265760405162461bcd60e51b81526004016109fa90612909565b611431816001612aa7565b601e55601d805460ff1916831515179055603c8111156111565760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642031206d604482015265696e7574657360d01b60648201526084016109fa565b6005546001600160a01b031633146114cc5760405162461bcd60e51b81526004016109fa90612909565b600754600160b01b900460ff16156115345760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016109fa565b600a81106115845760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e2031300000000060448201526064016109fa565b600d55565b6005546001600160a01b031633146115b35760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b0381166116185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fa565b61162181611e5b565b50565b6001600160a01b0383166116865760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109fa565b6001600160a01b0382166116e75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109fa565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116117aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109fa565b6001600160a01b0383166000908152601b602052604090205460ff161580156117ec57506001600160a01b0382166000908152601b602052604090205460ff16155b6118385760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016109fa565b6001600160a01b0383166000908152601a602052604090205460ff1615801561187a57506001600160a01b0382166000908152601a602052604090205460ff16155b156118ce57600754600160b01b900460ff166118ce5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016109fa565b6007546001600160a01b03848116911614801561190457506001600160a01b0382166000908152601a602052604090205460ff16155b801561191a5750600754600160a01b900460ff16155b156119ec576009548111156119715760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016109fa565b600b5481611994846001600160a01b031660009081526020819052604090205490565b61199e9190612985565b11156119ec5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109fa565b6007546001600160a01b03848116911614801590611a2357506001600160a01b0382166000908152601a602052604090205460ff16155b8015611a4857506001600160a01b0383166000908152601a602052604090205460ff16155b8015611a5e5750600754600160a01b900460ff16155b15611bd757600a54811115611ab55760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016109fa565b6007546001600160a01b03838116911614611b4557600b5481611aed846001600160a01b031660009081526020819052604090205490565b611af79190612985565b1115611b455760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109fa565b601d5460ff1615611bd7576001600160a01b0383166000908152601c6020526040812054611b73904261299d565b9050601e54811015611bba5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016109fa565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611c076040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611c4957506001600160a01b0387166000908152601a602052604090205460ff16155b8015611c635750600d54600c54611c609190612985565b43105b600754909150600160a01b900460ff1680611c9657506001600160a01b0388166000908152601a602052604090205460ff165b80611cb957506001600160a01b0387166000908152601a602052604090205460ff165b15611cc75760009250611dbb565b6007546001600160a01b038881169116148015611ce2575080155b15611d4757601954601854601654601754611cfd9190612985565b611d079190612985565b611d119190612985565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611dbb565b80611dac57601554601454601254601354611d629190612985565b611d6c9190612985565b611d769190612985565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611dbb565b8015611dbb57600e5494508493505b6064611dc78588612aa7565b611dd19190612ae3565b600754909350600160a81b900460ff168015611dfb57506007546001600160a01b03898116911614155b15611e0a57611e0a8583611ead565b611e1e8888611e19868a61299d565b612066565b8215611e51578415611e515760006064611e388789612aa7565b611e429190612ae3565b9050611e4f893083612066565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611156576007805460ff60a01b1916600160a01b17905581611edb57612055565b3060009081526020819052604090205460085481106120535760016008541115611f0457506008545b6000611f11846002612aa7565b9050600081846020015184611f269190612aa7565b611f309190612ae3565b90506000611f3e828561299d565b905047611f4a8261223e565b6000611f56824761299d565b90506000876020015186611f6a919061299d565b611f749083612ae3565b90506000886020015182611f889190612aa7565b90508015611f9a57611f9a86826123a7565b8851600090611faa846002612aa7565b611fb49190612aa7565b90508015611fd257600f54611fd2906001600160a01b03168261248b565b60408a0151600090611fe5856002612aa7565b611fef9190612aa7565b9050801561200d5760105461200d906001600160a01b03168261248b565b60608b0151600090612020866002612aa7565b61202a9190612aa7565b9050801561204857601154612048906001600160a01b03168261248b565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166120ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109fa565b6001600160a01b03821661212c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109fa565b6001600160a01b038316600090815260208190526040902054818110156121a45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109fa565b6121ae828261299d565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906121e4908490612985565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161223091815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122735761227361293e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190612b05565b816001815181106123125761231261293e565b6001600160a01b0392831660209182029290920101526006546123389130911684611624565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612371908590600090869030904290600401612b22565b600060405180830381600087803b15801561238b57600080fd5b505af115801561239f573d6000803e3d6000fd5b505050505050565b6006546123bf9030906001600160a01b031684611624565b6006546001600160a01b031663f305d7198230856000806123e86005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561244b57600080fd5b505af115801561245f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124849190612b93565b5050505050565b804710156124db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109fa565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612528576040519150601f19603f3d011682016040523d82523d6000602084013e61252d565b606091505b5050905080610a6a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109fa565b600060208083528351808285015260005b818110156125d1578581018301518582016040015282016125b5565b818111156125e3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461162157600080fd5b8035612619816125f9565b919050565b6000806040838503121561263157600080fd5b823561263c816125f9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461162157600080fd5b803561261981612660565b6000806040838503121561268c57600080fd5b823567ffffffffffffffff808211156126a457600080fd5b818501915085601f8301126126b857600080fd5b81356020828211156126cc576126cc61264a565b8160051b604051601f19603f830116810181811086821117156126f1576126f161264a565b60405292835281830193508481018201928984111561270f57600080fd5b948201945b83861015612734576127258661260e565b85529482019493820193612714565b9650612743905087820161266e565b9450505050509250929050565b6000806000806080858703121561276657600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561279457600080fd5b813561279f81612660565b9392505050565b6000602082840312156127b857600080fd5b813561279f816125f9565b6000806000606084860312156127d857600080fd5b83356127e3816125f9565b925060208401356127f3816125f9565b929592945050506040919091013590565b6000806040838503121561281757600080fd5b8235612822816125f9565b9150602083013561283281612660565b809150509250929050565b6000806040838503121561285057600080fd5b823561285b816125f9565b91506020830135612832816125f9565b60006020828403121561287d57600080fd5b5035919050565b60008060006060848603121561289957600080fd5b505081359360208301359350604090920135919050565b600080604083850312156128c357600080fd5b823561263c81612660565b600181811c908216806128e257607f821691505b6020821081141561290357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561297e5761297e612954565b5060010190565b6000821982111561299857612998612954565b500190565b6000828210156129af576129af612954565b500390565b600181815b808511156129ef5781600019048211156129d5576129d5612954565b808516156129e257918102915b93841c93908002906129b9565b509250929050565b600082612a06575060016109ca565b81612a13575060006109ca565b8160018114612a295760028114612a3357612a4f565b60019150506109ca565b60ff841115612a4457612a44612954565b50506001821b6109ca565b5060208310610133831016604e8410600b8410161715612a72575081810a6109ca565b612a7c83836129b4565b8060001904821115612a9057612a90612954565b029392505050565b600061279f60ff8416836129f7565b6000816000190483118215151615612ac157612ac1612954565b500290565b600060208284031215612ad857600080fd5b815161279f81612660565b600082612b0057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612b1757600080fd5b815161279f816125f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b725784516001600160a01b031683529383019391830191600101612b4d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ba857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212205d1d32d5833b1f35c35d6fdab6afc764ef00880ee5de97f22c8d2560f7129da864736f6c63430008080033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806375f0a87411610175578063a9059cbb116100dc578063e517f2b911610095578063f2fde38b1161006f578063f2fde38b146108a3578063f66895a3146108c3578063f887ea40146108e6578063fbe6324e1461090657600080fd5b8063e517f2b914610849578063edaa116814610869578063ee36e3591461088957600080fd5b8063a9059cbb1461075d578063aacebbe31461077d578063c5d32bb21461079d578063d2ce0db2146107cd578063dd62ed3e146107e3578063e1b450ad1461082957600080fd5b80639321b6761161012e5780639321b6761461069857806395d89b41146106b85780639e252f00146106cd578063a0cc1c2a146106ed578063a457c2d71461071d578063a8aa1b311461073d57600080fd5b806375f0a874146105d75780638514022d1461060f57806385141a771461062f5780638a8c523c146106455780638cd4426d1461065a5780638da5cb5b1461067a57600080fd5b8063313ce56711610219578063652e2f04116101d2578063652e2f041461050757806366a88d961461051d5780636aa5b37f1461053357806370a0823114610549578063715018a61461057f578063728f8eea1461059457600080fd5b8063313ce5671461044a578063355496ca14610466578063395093511461048657806340b28c2f146104a657806342b6fa11146104c65780634ada218b146104e657600080fd5b806318160ddd1161026b57806318160ddd1461039f5780631816467f146103b45780631c3909e6146103d4578063215d92a6146103f457806323b872dd14610414578063274a533c1461043457600080fd5b806306fdde03146102be578063095ea7b3146102e95780630e375a5c14610319578063105cafb61461033b5780631340538f1461035b5780631675d8021461037b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610927565b6040516102e091906125a4565b60405180910390f35b3480156102f557600080fd5b5061030961030436600461261e565b6109b9565b60405190151581526020016102e0565b34801561032557600080fd5b50610339610334366004612679565b6109d0565b005b34801561034757600080fd5b50610339610356366004612750565b610a6f565b34801561036757600080fd5b50610339610376366004612782565b610b3d565b34801561038757600080fd5b5061039160085481565b6040519081526020016102e0565b3480156103ab57600080fd5b50600254610391565b3480156103c057600080fd5b506103396103cf3660046127a6565b610b85565b3480156103e057600080fd5b506103396103ef3660046127a6565b610bd1565b34801561040057600080fd5b5061033961040f366004612679565b610c1d565b34801561042057600080fd5b5061030961042f3660046127c3565b610cae565b34801561044057600080fd5b50610391600c5481565b34801561045657600080fd5b50604051601281526020016102e0565b34801561047257600080fd5b50610339610481366004612804565b610d5f565b34801561049257600080fd5b506103096104a136600461261e565b610db4565b3480156104b257600080fd5b506103396104c136600461283d565b610deb565b3480156104d257600080fd5b506103396104e136600461286b565b610e43565b3480156104f257600080fd5b5060075461030990600160b01b900460ff1681565b34801561051357600080fd5b50610391600a5481565b34801561052957600080fd5b50610391600b5481565b34801561053f57600080fd5b5061039160095481565b34801561055557600080fd5b506103916105643660046127a6565b6001600160a01b031660009081526020819052604090205490565b34801561058b57600080fd5b50610339610e89565b3480156105a057600080fd5b506012546013546014546015546105b79392919084565b6040805194855260208501939093529183015260608201526080016102e0565b3480156105e357600080fd5b50600f546105f7906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561061b57600080fd5b5061033961062a366004612804565b610ebf565b34801561063b57600080fd5b506105f761dead81565b34801561065157600080fd5b50610339610f14565b34801561066657600080fd5b5061033961067536600461261e565b610fb3565b34801561068657600080fd5b506005546001600160a01b03166105f7565b3480156106a457600080fd5b506103396106b3366004612750565b611039565b3480156106c457600080fd5b506102d361110d565b3480156106d957600080fd5b506103396106e836600461286b565b61111c565b3480156106f957600080fd5b506103096107083660046127a6565b601b6020526000908152604090205460ff1681565b34801561072957600080fd5b5061030961073836600461261e565b61115a565b34801561074957600080fd5b506007546105f7906001600160a01b031681565b34801561076957600080fd5b5061030961077836600461261e565b6111f5565b34801561078957600080fd5b506103396107983660046127a6565b611202565b3480156107a957600080fd5b506103096107b83660046127a6565b601a6020526000908152604090205460ff1681565b3480156107d957600080fd5b50610391601e5481565b3480156107ef57600080fd5b506103916107fe36600461283d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561083557600080fd5b50610339610844366004612884565b61124e565b34801561085557600080fd5b506103396108643660046128b0565b6113fc565b34801561087557600080fd5b5061033961088436600461286b565b6114a2565b34801561089557600080fd5b50601d546103099060ff1681565b3480156108af57600080fd5b506103396108be3660046127a6565b611589565b3480156108cf57600080fd5b506016546017546018546019546105b79392919084565b3480156108f257600080fd5b506006546105f7906001600160a01b031681565b34801561091257600080fd5b5060075461030990600160a81b900460ff1681565b606060038054610936906128ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610962906128ce565b80156109af5780601f10610984576101008083540402835291602001916109af565b820191906000526020600020905b81548152906001019060200180831161099257829003601f168201915b5050505050905090565b60006109c6338484611624565b5060015b92915050565b6005546001600160a01b03163314610a035760405162461bcd60e51b81526004016109fa90612909565b60405180910390fd5b60005b8251811015610a6a5781601a6000858481518110610a2657610a2661293e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a628161296a565b915050610a06565b505050565b6005546001600160a01b03163314610a995760405162461bcd60e51b81526004016109fa90612909565b600f8183610aa78688612985565b610ab19190612985565b610abb9190612985565b1115610b095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c65737300000060448201526064016109fa565b6040805160808101825285815260208101859052908101839052606001819052601293909355601391909155601455601555565b6005546001600160a01b03163314610b675760405162461bcd60e51b81526004016109fa90612909565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610baf5760405162461bcd60e51b81526004016109fa90612909565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610bfb5760405162461bcd60e51b81526004016109fa90612909565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c475760405162461bcd60e51b81526004016109fa90612909565b60005b8251811015610a6a5781601b6000858481518110610c6a57610c6a61293e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ca68161296a565b915050610c4a565b6000610cbb848484611748565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d405760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109fa565b610d548533610d4f868561299d565b611624565b506001949350505050565b6005546001600160a01b03163314610d895760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109c6918590610d4f908690612985565b6005546001600160a01b03163314610e155760405162461bcd60e51b81526004016109fa90612909565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610e6d5760405162461bcd60e51b81526004016109fa90612909565b610e796012600a612a98565b610e839082612aa7565b60085550565b6005546001600160a01b03163314610eb35760405162461bcd60e51b81526004016109fa90612909565b610ebd6000611e5b565b565b6005546001600160a01b03163314610ee95760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f3e5760405162461bcd60e51b81526004016109fa90612909565b600754600160b01b900460ff1615610f985760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016109fa565b6007805461ffff60a81b191661010160a81b17905543600c55565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561100157600080fd5b505af1158015611015573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a9190612ac6565b6005546001600160a01b031633146110635760405162461bcd60e51b81526004016109fa90612909565b60408051608081018252858152602081018590529081018390526060018190526012849055601383905560148290556015819055600f81836110a58688612985565b6110af9190612985565b6110b99190612985565b11156111075760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c65737300000060448201526064016109fa565b50505050565b606060048054610936906128ce565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611156573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109fa565b6111eb3385610d4f868561299d565b5060019392505050565b60006109c6338484611748565b6005546001600160a01b0316331461122c5760405162461bcd60e51b81526004016109fa90612909565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112785760405162461bcd60e51b81526004016109fa90612909565b620f42408310156112dd5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016109fa565b620f42408210156113435760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016109fa565b620f42408110156113ab5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016109fa565b6113b76012600a612a98565b6113c19084612aa7565b6009556113d06012600a612a98565b6113da9083612aa7565b600a5560126113ea90600a612a98565b6113f49082612aa7565b600b55505050565b6005546001600160a01b031633146114265760405162461bcd60e51b81526004016109fa90612909565b611431816001612aa7565b601e55601d805460ff1916831515179055603c8111156111565760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642031206d604482015265696e7574657360d01b60648201526084016109fa565b6005546001600160a01b031633146114cc5760405162461bcd60e51b81526004016109fa90612909565b600754600160b01b900460ff16156115345760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016109fa565b600a81106115845760405162461bcd60e51b815260206004820152601c60248201527f426c6f636b2073686f756c64206265206c657373207468616e2031300000000060448201526064016109fa565b600d55565b6005546001600160a01b031633146115b35760405162461bcd60e51b81526004016109fa90612909565b6001600160a01b0381166116185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fa565b61162181611e5b565b50565b6001600160a01b0383166116865760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109fa565b6001600160a01b0382166116e75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109fa565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116117aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109fa565b6001600160a01b0383166000908152601b602052604090205460ff161580156117ec57506001600160a01b0382166000908152601b602052604090205460ff16155b6118385760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016109fa565b6001600160a01b0383166000908152601a602052604090205460ff1615801561187a57506001600160a01b0382166000908152601a602052604090205460ff16155b156118ce57600754600160b01b900460ff166118ce5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016109fa565b6007546001600160a01b03848116911614801561190457506001600160a01b0382166000908152601a602052604090205460ff16155b801561191a5750600754600160a01b900460ff16155b156119ec576009548111156119715760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016109fa565b600b5481611994846001600160a01b031660009081526020819052604090205490565b61199e9190612985565b11156119ec5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109fa565b6007546001600160a01b03848116911614801590611a2357506001600160a01b0382166000908152601a602052604090205460ff16155b8015611a4857506001600160a01b0383166000908152601a602052604090205460ff16155b8015611a5e5750600754600160a01b900460ff16155b15611bd757600a54811115611ab55760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016109fa565b6007546001600160a01b03838116911614611b4557600b5481611aed846001600160a01b031660009081526020819052604090205490565b611af79190612985565b1115611b455760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109fa565b601d5460ff1615611bd7576001600160a01b0383166000908152601c6020526040812054611b73904261299d565b9050601e54811015611bba5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016109fa565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611c076040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611c4957506001600160a01b0387166000908152601a602052604090205460ff16155b8015611c635750600d54600c54611c609190612985565b43105b600754909150600160a01b900460ff1680611c9657506001600160a01b0388166000908152601a602052604090205460ff165b80611cb957506001600160a01b0387166000908152601a602052604090205460ff165b15611cc75760009250611dbb565b6007546001600160a01b038881169116148015611ce2575080155b15611d4757601954601854601654601754611cfd9190612985565b611d079190612985565b611d119190612985565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611dbb565b80611dac57601554601454601254601354611d629190612985565b611d6c9190612985565b611d769190612985565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611dbb565b8015611dbb57600e5494508493505b6064611dc78588612aa7565b611dd19190612ae3565b600754909350600160a81b900460ff168015611dfb57506007546001600160a01b03898116911614155b15611e0a57611e0a8583611ead565b611e1e8888611e19868a61299d565b612066565b8215611e51578415611e515760006064611e388789612aa7565b611e429190612ae3565b9050611e4f893083612066565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611156576007805460ff60a01b1916600160a01b17905581611edb57612055565b3060009081526020819052604090205460085481106120535760016008541115611f0457506008545b6000611f11846002612aa7565b9050600081846020015184611f269190612aa7565b611f309190612ae3565b90506000611f3e828561299d565b905047611f4a8261223e565b6000611f56824761299d565b90506000876020015186611f6a919061299d565b611f749083612ae3565b90506000886020015182611f889190612aa7565b90508015611f9a57611f9a86826123a7565b8851600090611faa846002612aa7565b611fb49190612aa7565b90508015611fd257600f54611fd2906001600160a01b03168261248b565b60408a0151600090611fe5856002612aa7565b611fef9190612aa7565b9050801561200d5760105461200d906001600160a01b03168261248b565b60608b0151600090612020866002612aa7565b61202a9190612aa7565b9050801561204857601154612048906001600160a01b03168261248b565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166120ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109fa565b6001600160a01b03821661212c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109fa565b6001600160a01b038316600090815260208190526040902054818110156121a45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109fa565b6121ae828261299d565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906121e4908490612985565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161223091815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122735761227361293e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190612b05565b816001815181106123125761231261293e565b6001600160a01b0392831660209182029290920101526006546123389130911684611624565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612371908590600090869030904290600401612b22565b600060405180830381600087803b15801561238b57600080fd5b505af115801561239f573d6000803e3d6000fd5b505050505050565b6006546123bf9030906001600160a01b031684611624565b6006546001600160a01b031663f305d7198230856000806123e86005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561244b57600080fd5b505af115801561245f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124849190612b93565b5050505050565b804710156124db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109fa565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612528576040519150601f19603f3d011682016040523d82523d6000602084013e61252d565b606091505b5050905080610a6a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109fa565b600060208083528351808285015260005b818110156125d1578581018301518582016040015282016125b5565b818111156125e3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461162157600080fd5b8035612619816125f9565b919050565b6000806040838503121561263157600080fd5b823561263c816125f9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461162157600080fd5b803561261981612660565b6000806040838503121561268c57600080fd5b823567ffffffffffffffff808211156126a457600080fd5b818501915085601f8301126126b857600080fd5b81356020828211156126cc576126cc61264a565b8160051b604051601f19603f830116810181811086821117156126f1576126f161264a565b60405292835281830193508481018201928984111561270f57600080fd5b948201945b83861015612734576127258661260e565b85529482019493820193612714565b9650612743905087820161266e565b9450505050509250929050565b6000806000806080858703121561276657600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561279457600080fd5b813561279f81612660565b9392505050565b6000602082840312156127b857600080fd5b813561279f816125f9565b6000806000606084860312156127d857600080fd5b83356127e3816125f9565b925060208401356127f3816125f9565b929592945050506040919091013590565b6000806040838503121561281757600080fd5b8235612822816125f9565b9150602083013561283281612660565b809150509250929050565b6000806040838503121561285057600080fd5b823561285b816125f9565b91506020830135612832816125f9565b60006020828403121561287d57600080fd5b5035919050565b60008060006060848603121561289957600080fd5b505081359360208301359350604090920135919050565b600080604083850312156128c357600080fd5b823561263c81612660565b600181811c908216806128e257607f821691505b6020821081141561290357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561297e5761297e612954565b5060010190565b6000821982111561299857612998612954565b500190565b6000828210156129af576129af612954565b500390565b600181815b808511156129ef5781600019048211156129d5576129d5612954565b808516156129e257918102915b93841c93908002906129b9565b509250929050565b600082612a06575060016109ca565b81612a13575060006109ca565b8160018114612a295760028114612a3357612a4f565b60019150506109ca565b60ff841115612a4457612a44612954565b50506001821b6109ca565b5060208310610133831016604e8410600b8410161715612a72575081810a6109ca565b612a7c83836129b4565b8060001904821115612a9057612a90612954565b029392505050565b600061279f60ff8416836129f7565b6000816000190483118215151615612ac157612ac1612954565b500290565b600060208284031215612ad857600080fd5b815161279f81612660565b600082612b0057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612b1757600080fd5b815161279f816125f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b725784516001600160a01b031683529383019391830191600101612b4d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ba857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212205d1d32d5833b1f35c35d6fdab6afc764ef00880ee5de97f22c8d2560f7129da864736f6c63430008080033

Deployed Bytecode Sourcemap

12686:13628:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15122:161;;;;;;;;;;-1:-1:-1;15122:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;15122:161:0;1211:187:1;25299:202:0;;;;;;;;;;-1:-1:-1;25299:202:0;;;;;:::i;:::-;;:::i;:::-;;23277:317;;;;;;;;;;-1:-1:-1;23277:317:0;;;;;:::i;:::-;;:::i;22601:152::-;;;;;;;;;;-1:-1:-1;22601:152:0;;;;;:::i;:::-;;:::i;12959:53::-;;;;;;;;;;;;;;;;;;;3769:25:1;;;3757:2;3742:18;12959:53:0;3623:177:1;3497:108:0;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;24370:102;;;;;;;;;;-1:-1:-1;24370:102:0;;;;;:::i;:::-;;:::i;24480:::-;;;;;;;;;;-1:-1:-1;24480:102:0;;;;;:::i;:::-;;:::i;24955:208::-;;;;;;;;;;-1:-1:-1;24955:208:0;;;;;:::i;:::-;;:::i;15291:448::-;;;;;;;;;;-1:-1:-1;15291:448:0;;;;;:::i;:::-;;:::i;13169:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;4660:36:1;;4648:2;4633:18;3339:93:0;4518:184:1;25171:120:0;;;;;;;;;;-1:-1:-1;25171:120:0;;;;;:::i;:::-;;:::i;15747:248::-;;;;;;;;;;-1:-1:-1;15747:248:0;;;;;:::i;:::-;;:::i;23602:155::-;;;;;;;;;;-1:-1:-1;23602:155:0;;;;;:::i;:::-;;:::i;22761:177::-;;;;;;;;;;-1:-1:-1;22761:177:0;;;;;:::i;:::-;;:::i;12916:34::-;;;;;;;;;;-1:-1:-1;12916:34:0;;;;-1:-1:-1;;;12916:34:0;;;;;;13067:42;;;;;;;;;;;;;;;;13116:44;;;;;;;;;;;;;;;;13019:41;;;;;;;;;;;;;;;;3668:127;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;11349:94;;;;;;;;;;;;;:::i;13736:38::-;;;;;;;;;;-1:-1:-1;13736:38:0;;;;;;;;;;;;;;;;;;;5903:25:1;;;5959:2;5944:18;;5937:34;;;;5987:18;;;5980:34;6045:2;6030:18;;6023:34;5890:3;5875:19;13736:38:0;5672:391:1;13278:75:0;;;;;;;;;;-1:-1:-1;13278:75:0;;;;-1:-1:-1;;;;;13278:75:0;;;;;;-1:-1:-1;;;;;6232:32:1;;;6214:51;;6202:2;6187:18;13278:75:0;6068:203:1;24823:124:0;;;;;;;;;;-1:-1:-1;24823:124:0;;;;;:::i;:::-;;:::i;13511:79::-;;;;;;;;;;;;13548:42;13511:79;;23764:224;;;;;;;;;;;;;:::i;26129:127::-;;;;;;;;;;-1:-1:-1;26129:127:0;;;;;:::i;:::-;;:::i;11126:87::-;;;;;;;;;;-1:-1:-1;11199:6:0;;-1:-1:-1;;;;;11199:6:0;11126:87;;22950:319;;;;;;;;;;-1:-1:-1;22950:319:0;;;;;:::i;:::-;;:::i;2596:104::-;;;;;;;;;;;;;:::i;26017:::-;;;;;;;;;;-1:-1:-1;26017:104:0;;;;;:::i;:::-;;:::i;13880:44::-;;;;;;;;;;-1:-1:-1;13880:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16003:410;;;;;;;;;;-1:-1:-1;16003:410:0;;;;;:::i;:::-;;:::i;12800:19::-;;;;;;;;;;-1:-1:-1;12800:19:0;;;;-1:-1:-1;;;;;12800:19:0;;;16421:165;;;;;;;;;;-1:-1:-1;16421:165:0;;;;;:::i;:::-;;:::i;24247:115::-;;;;;;;;;;-1:-1:-1;24247:115:0;;;;;:::i;:::-;;:::i;13832:41::-;;;;;;;;;;-1:-1:-1;13832:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14044:40;;;;;;;;;;;;;;;;4287:201;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;25509:500;;;;;;;;;;-1:-1:-1;25509:500:0;;;;;:::i;:::-;;:::i;24590:225::-;;;;;;;;;;-1:-1:-1;24590:225:0;;;;;:::i;:::-;;:::i;23996:243::-;;;;;;;;;;-1:-1:-1;23996:243:0;;;;;:::i;:::-;;:::i;14002:35::-;;;;;;;;;;-1:-1:-1;14002:35:0;;;;;;;;11451:192;;;;;;;;;;-1:-1:-1;11451:192:0;;;;;:::i;:::-;;:::i;13781:42::-;;;;;;;;;;-1:-1:-1;13781:42:0;;;;;;;;;;;;;;;12772:21;;;;;;;;;;-1:-1:-1;12772:21:0;;;;-1:-1:-1;;;;;12772:21:0;;;12871:38;;;;;;;;;;-1:-1:-1;12871:38:0;;;;-1:-1:-1;;;12871:38:0;;;;;;2377:100;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;15122:161::-;15197:4;15214:39;179:10;15237:7;15246:6;15214:8;:39::i;:::-;-1:-1:-1;15271:4:0;15122:161;;;;;:::o;25299:202::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;;;;;;;;;25396:9:::1;25391:103;25415:8;:15;25411:1;:19;25391:103;;;25477:5;25452:9;:22;25462:8;25471:1;25462:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25452:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25452:22:0;:30;;-1:-1:-1;;25452:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25432:3;::::1;::::0;::::1;:::i;:::-;;;;25391:103;;;;25299:202:::0;;:::o;23277:317::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;23490:2:::1;23481:4:::0;23475;23449:23:::1;23462:10:::0;23449;:23:::1;:::i;:::-;:30;;;;:::i;:::-;:36;;;;:::i;:::-;23448:44;;23440:86;;;::::0;-1:-1:-1;;;23440:86:0;;8619:2:1;23440:86:0::1;::::0;::::1;8601:21:1::0;8658:2;8638:18;;;8631:30;8697:31;8677:18;;;8670:59;8746:18;;23440:86:0::1;8417:353:1::0;23440:86:0::1;23545:41;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;23537:5:::1;:49:::0;;;;;;;;;;;;;23277:317::o;22601:152::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;22719:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;22719:26:0::1;-1:-1:-1::0;;;;22719:26:0;;::::1;::::0;;;::::1;::::0;;22601:152::o;24370:102::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;24443:9:::1;:21:::0;;-1:-1:-1;;;;;;24443:21:0::1;-1:-1:-1::0;;;;;24443:21:0;;;::::1;::::0;;;::::1;::::0;;24370:102::o;24480:::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;24553:9:::1;:21:::0;;-1:-1:-1;;;;;;24553:21:0::1;-1:-1:-1::0;;;;;24553:21:0;;;::::1;::::0;;;::::1;::::0;;24480:102::o;24955:208::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;25055:9:::1;25050:106;25074:8;:15;25070:1;:19;25050:106;;;25139:5;25111:12;:25;25124:8;25133:1;25124:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25111:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25111:25:0;:33;;-1:-1:-1;;25111:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25091:3;::::1;::::0;::::1;:::i;:::-;;;;25050:106;;15291:448:::0;15423:4;15440:36;15450:6;15458:9;15469:6;15440:9;:36::i;:::-;-1:-1:-1;;;;;15516:19:0;;15489:24;15516:19;;;:11;:19;;;;;;;;179:10;15516:33;;;;;;;;15568:26;;;;15560:79;;;;-1:-1:-1;;;15560:79:0;;8977:2:1;15560:79:0;;;8959:21:1;9016:2;8996:18;;;8989:30;9055:34;9035:18;;;9028:62;-1:-1:-1;;;9106:18:1;;;9099:38;9154:19;;15560:79:0;8775:404:1;15560:79:0;15650:57;15659:6;179:10;15681:25;15700:6;15681:16;:25;:::i;:::-;15650:8;:57::i;:::-;-1:-1:-1;15727:4:0;;15291:448;-1:-1:-1;;;;15291:448:0:o;25171:120::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25256:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;25256:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25171:120::o;15747:248::-;179:10;15863:4;15917:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15917:34:0;;;;;;;;;;15863:4;;15885:80;;15908:7;;15917:47;;15954:10;;15917:47;:::i;23602:155::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;23697:6:::1;:27:::0;;-1:-1:-1;;;;;23697:27:0;;::::1;-1:-1:-1::0;;;;;;23697:27:0;;::::1;;::::0;;;23735:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;23602:155::o;22761:177::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;22916:14:::1;3422:2:::0;22916::::1;:14;:::i;:::-;22903:27;::::0;:10;:27:::1;:::i;:::-;22877:23;:53:::0;-1:-1:-1;22761:177:0:o;11349:94::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;11414:21:::1;11432:1;11414:9;:21::i;:::-;11349:94::o:0;24823:124::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24910:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;24910:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24823:124::o;23764:224::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;23828:14:::1;::::0;-1:-1:-1;;;23828:14:0;::::1;;;23827:15;23819:54;;;::::0;-1:-1:-1;;;23819:54:0;;11072:2:1;23819:54:0::1;::::0;::::1;11054:21:1::0;11111:2;11091:18;;;11084:30;11150:28;11130:18;;;11123:56;11196:18;;23819:54:0::1;10870:350:1::0;23819:54:0::1;23884:14;:21:::0;;-1:-1:-1;;;;23916:25:0;-1:-1:-1;;;23916:25:0;;;23968:12:::1;23952:13;:28:::0;23764:224::o;26129:127::-;26230:9;;26204:44;;-1:-1:-1;;;26204:44:0;;-1:-1:-1;;;;;26230:9:0;;;26204:44;;;11399:51:1;11466:18;;;11459:34;;;26204:25:0;;;;;;11372:18:1;;26204:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22950:319::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;23123:41:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;23115:5:::1;:49:::0;;;;;;;;;;;;;;;23225:2:::1;23159:4:::0;23153;23184:23:::1;23141:10:::0;23129;23184:23:::1;:::i;:::-;:30;;;;:::i;:::-;:36;;;;:::i;:::-;23183:44;;23175:86;;;::::0;-1:-1:-1;;;23175:86:0;;8619:2:1;23175:86:0::1;::::0;::::1;8601:21:1::0;8658:2;8638:18;;;8631:30;8697:31;8677:18;;;8670:59;8746:18;;23175:86:0::1;8417:353:1::0;23175:86:0::1;22950:319:::0;;;;:::o;2596:104::-;2652:13;2685:7;2678:14;;;;;:::i;26017:104::-;26083:9;;26075:38;;-1:-1:-1;;;;;26083:9:0;;;;26075:38;;;;;26103:9;;26083;26075:38;26083:9;26075:38;26103:9;26083;26075:38;;;;;;;;;;;;;;;;;;;;;26017:104;:::o;16003:410::-;179:10;16124:4;16173:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16173:34:0;;;;;;;;;;16226:35;;;;16218:85;;;;-1:-1:-1;;;16218:85:0;;11956:2:1;16218:85:0;;;11938:21:1;11995:2;11975:18;;;11968:30;12034:34;12014:18;;;12007:62;-1:-1:-1;;;12085:18:1;;;12078:35;12130:19;;16218:85:0;11754:401:1;16218:85:0;16314:67;179:10;16337:7;16346:34;16365:15;16346:16;:34;:::i;16314:67::-;-1:-1:-1;16401:4:0;;16003:410;-1:-1:-1;;;16003:410:0:o;16421:165::-;16499:4;16516:40;16526:10;16538:9;16549:6;16516:9;:40::i;24247:115::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;24327:15:::1;:27:::0;;-1:-1:-1;;;;;;24327:27:0::1;-1:-1:-1::0;;;;;24327:27:0;;;::::1;::::0;;;::::1;::::0;;24247:115::o;25509:500::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;25635:3:::1;25625:6;:13;;25617:67;;;::::0;-1:-1:-1;;;25617:67:0;;12362:2:1;25617:67:0::1;::::0;::::1;12344:21:1::0;12401:2;12381:18;;;12374:30;12440:34;12420:18;;;12413:62;-1:-1:-1;;;12491:18:1;;;12484:39;12540:19;;25617:67:0::1;12160:405:1::0;25617:67:0::1;25714:3;25703:7;:14;;25695:69;;;::::0;-1:-1:-1;;;25695:69:0;;12772:2:1;25695:69:0::1;::::0;::::1;12754:21:1::0;12811:2;12791:18;;;12784:30;12850:34;12830:18;;;12823:62;-1:-1:-1;;;12901:18:1;;;12894:40;12951:19;;25695:69:0::1;12570:406:1::0;25695:69:0::1;25796:3;25783:9;:16;;25775:73;;;::::0;-1:-1:-1;;;25775:73:0;;13183:2:1;25775:73:0::1;::::0;::::1;13165:21:1::0;13222:2;13202:18;;;13195:30;13261:34;13241:18;;;13234:62;-1:-1:-1;;;13312:18:1;;;13305:42;13364:19;;25775:73:0::1;12981:408:1::0;25775:73:0::1;25882:14;3422:2:::0;25882::::1;:14;:::i;:::-;25873:23;::::0;:6;:23:::1;:::i;:::-;25859:11;:37:::0;25932:14:::1;3422:2:::0;25932::::1;:14;:::i;:::-;25922:24;::::0;:7;:24:::1;:::i;:::-;25907:12;:39:::0;3422:2;25986:14:::1;::::0;:2:::1;:14;:::i;:::-;25974:26;::::0;:9;:26:::1;:::i;:::-;25957:14;:43:::0;-1:-1:-1;;;25509:500:0:o;24590:225::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;24685:16:::1;:4:::0;24692:9:::1;24685:16;:::i;:::-;24670:12;:31:::0;24712:15:::1;:23:::0;;-1:-1:-1;;24712:23:0::1;::::0;::::1;;;::::0;;24762:2:::1;24754:10:::0;::::1;;24746:61;;;::::0;-1:-1:-1;;;24746:61:0;;13596:2:1;24746:61:0::1;::::0;::::1;13578:21:1::0;13635:2;13615:18;;;13608:30;13674:34;13654:18;;;13647:62;-1:-1:-1;;;13725:18:1;;;13718:36;13771:19;;24746:61:0::1;13394:402:1::0;23996:243:0;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;24078:14:::1;::::0;-1:-1:-1;;;24078:14:0;::::1;;;24077:15;24069:65;;;::::0;-1:-1:-1;;;24069:65:0;;14003:2:1;24069:65:0::1;::::0;::::1;13985:21:1::0;14042:2;14022:18;;;14015:30;14081:34;14061:18;;;14054:62;-1:-1:-1;;;14132:18:1;;;14125:35;14177:19;;24069:65:0::1;13801:401:1::0;24069:65:0::1;24165:2;24153:9;:14;24145:55;;;::::0;-1:-1:-1;;;24145:55:0;;14409:2:1;24145:55:0::1;::::0;::::1;14391:21:1::0;14448:2;14428:18;;;14421:30;14487;14467:18;;;14460:58;14535:18;;24145:55:0::1;14207:352:1::0;24145:55:0::1;24211:8;:20:::0;23996:243::o;11451:192::-;11199:6;;-1:-1:-1;;;;;11199:6:0;179:10;11261:23;11253:68;;;;-1:-1:-1;;;11253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11540:22:0;::::1;11532:73;;;::::0;-1:-1:-1;;;11532:73:0;;14766:2:1;11532:73:0::1;::::0;::::1;14748:21:1::0;14805:2;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;-1:-1:-1;;;14895:18:1;;;14888:36;14941:19;;11532:73:0::1;14564:402:1::0;11532:73:0::1;11616:19;11626:8;11616:9;:19::i;:::-;11451:192:::0;:::o;9425:380::-;-1:-1:-1;;;;;9561:19:0;;9553:68;;;;-1:-1:-1;;;9553:68:0;;15173:2:1;9553:68:0;;;15155:21:1;15212:2;15192:18;;;15185:30;15251:34;15231:18;;;15224:62;-1:-1:-1;;;15302:18:1;;;15295:34;15346:19;;9553:68:0;14971:400:1;9553:68:0;-1:-1:-1;;;;;9640:21:0;;9632:68;;;;-1:-1:-1;;;9632:68:0;;15578:2:1;9632:68:0;;;15560:21:1;15617:2;15597:18;;;15590:30;15656:34;15636:18;;;15629:62;-1:-1:-1;;;15707:18:1;;;15700:32;15749:19;;9632:68:0;15376:398:1;9632:68:0;-1:-1:-1;;;;;9713:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9765:32;;3769:25:1;;;9765:32:0;;3742:18:1;9765:32:0;;;;;;;9425:380;;;:::o;16594:3196::-;16744:1;16735:6;:10;16727:64;;;;-1:-1:-1;;;16727:64:0;;15981:2:1;16727:64:0;;;15963:21:1;16020:2;16000:18;;;15993:30;16059:34;16039:18;;;16032:62;-1:-1:-1;;;16110:18:1;;;16103:39;16159:19;;16727:64:0;15779:405:1;16727:64:0;-1:-1:-1;;;;;16825:20:0;;;;;;:12;:20;;;;;;;;16824:21;:49;;;;-1:-1:-1;;;;;;16850:23:0;;;;;;:12;:23;;;;;;;;16849:24;16824:49;16802:124;;;;-1:-1:-1;;;16802:124:0;;16391:2:1;16802:124:0;;;16373:21:1;16430:2;16410:18;;;16403:30;16469:27;16449:18;;;16442:55;16514:18;;16802:124:0;16189:349:1;16802:124:0;-1:-1:-1;;;;;16944:17:0;;;;;;:9;:17;;;;;;;;16943:18;:43;;;;-1:-1:-1;;;;;;16966:20:0;;;;;;:9;:20;;;;;;;;16965:21;16943:43;16939:122;;;17011:14;;-1:-1:-1;;;17011:14:0;;;;17003:46;;;;-1:-1:-1;;;17003:46:0;;16745:2:1;17003:46:0;;;16727:21:1;16784:2;16764:18;;;16757:30;-1:-1:-1;;;16803:18:1;;;16796:49;16862:18;;17003:46:0;16543:343:1;17003:46:0;17087:4;;-1:-1:-1;;;;;17077:14:0;;;17087:4;;17077:14;:39;;;;-1:-1:-1;;;;;;17096:20:0;;;;;;:9;:20;;;;;;;;17095:21;17077:39;:59;;;;-1:-1:-1;17121:15:0;;-1:-1:-1;;;17121:15:0;;;;17120:16;17077:59;17073:311;;;17171:11;;17161:6;:21;;17153:63;;;;-1:-1:-1;;;17153:63:0;;17093:2:1;17153:63:0;;;17075:21:1;17132:2;17112:18;;;17105:30;17171:31;17151:18;;;17144:59;17220:18;;17153:63:0;16891:353:1;17153:63:0;17290:14;;17280:6;17257:20;17267:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;17257:20;:29;;;;:::i;:::-;:47;;17231:141;;;;-1:-1:-1;;;17231:141:0;;17451:2:1;17231:141:0;;;17433:21:1;;;17470:18;;;17463:30;17529:34;17509:18;;;17502:62;17581:18;;17231:141:0;17249:356:1;17231:141:0;17424:4;;-1:-1:-1;;;;;17414:14:0;;;17424:4;;17414:14;;;;:39;;-1:-1:-1;;;;;;17433:20:0;;;;;;:9;:20;;;;;;;;17432:21;17414:39;:61;;;;-1:-1:-1;;;;;;17458:17:0;;;;;;:9;:17;;;;;;;;17457:18;17414:61;:81;;;;-1:-1:-1;17480:15:0;;-1:-1:-1;;;17480:15:0;;;;17479:16;17414:81;17396:682;;;17540:12;;17530:6;:22;;17522:65;;;;-1:-1:-1;;;17522:65:0;;17812:2:1;17522:65:0;;;17794:21:1;17851:2;17831:18;;;17824:30;17890:32;17870:18;;;17863:60;17940:18;;17522:65:0;17610:354:1;17522:65:0;17619:4;;-1:-1:-1;;;;;17606:17:0;;;17619:4;;17606:17;17602:211;;17707:14;;17697:6;17674:20;17684:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;17674:20;:29;;;;:::i;:::-;:47;;17644:153;;;;-1:-1:-1;;;17644:153:0;;17451:2:1;17644:153:0;;;17433:21:1;;;17470:18;;;17463:30;17529:34;17509:18;;;17502:62;17581:18;;17644:153:0;17249:356:1;17644:153:0;17831:15;;;;17827:240;;;-1:-1:-1;;;;;17906:17:0;;17867:18;17906:17;;;:9;:17;;;;;;17888:35;;:15;:35;:::i;:::-;17867:56;;17964:12;;17950:10;:26;;17942:55;;;;-1:-1:-1;;;17942:55:0;;18171:2:1;17942:55:0;;;18153:21:1;18210:2;18190:18;;;18183:30;-1:-1:-1;;;18229:18:1;;;18222:46;18285:18;;17942:55:0;17969:340:1;17942:55:0;-1:-1:-1;;;;;;18016:17:0;;;;;;:9;:17;;;;;18036:15;18016:35;;17827:240;18090:15;18116:14;18141:11;18163:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18163:25:0;-1:-1:-1;;;;;18222:17:0;;18201;18222;;;:9;:17;;;;;;;;18221:18;:56;;;;-1:-1:-1;;;;;;18257:20:0;;;;;;:9;:20;;;;;;;;18256:21;18221:56;:112;;;;;18325:8;;18309:13;;:24;;;;:::i;:::-;18294:12;:39;18221:112;18421:15;;18201:132;;-1:-1:-1;;;;18421:15:0;;;;;:36;;-1:-1:-1;;;;;;18440:17:0;;;;;;:9;:17;;;;;;;;18421:36;:60;;;-1:-1:-1;;;;;;18461:20:0;;;;;;:9;:20;;;;;;;;18421:60;18417:789;;;18502:1;18496:7;;18417:789;;;18567:4;;-1:-1:-1;;;;;18554:17:0;;;18567:4;;18554:17;:34;;;;;18576:12;18575:13;18554:34;18550:656;;;18754:13;;18721;;18754:9;18671:19;18632;;:58;;18671:19;18632:58;:::i;:::-;:102;;;;:::i;:::-;:135;;;;:::i;:::-;18814:24;;;;;;;;18829:9;18814:24;;;;;;;;;;;;;;;;;;;;;;;;18605:162;;-1:-1:-1;18605:162:0;;-1:-1:-1;18814:24:0;-1:-1:-1;18550:656:0;;;18861:12;18856:350;;19016:9;;18987;;19016:5;18952:15;18917;;:50;;18952:15;18917:50;:::i;:::-;:79;;;;:::i;:::-;:108;;;;:::i;:::-;19071:20;;;;;;;;19086:5;19071:20;;;;;;;;;;;;;;;;;;;;;;;;18890:135;;-1:-1:-1;18890:135:0;;-1:-1:-1;19071:20:0;-1:-1:-1;18856:350:0;;;19113:12;19109:97;;;19152:9;;;-1:-1:-1;19152:9:0;;-1:-1:-1;19109:97:0;19244:3;19225:15;19234:6;19225;:15;:::i;:::-;19224:23;;;;:::i;:::-;19361:18;;19218:29;;-1:-1:-1;;;;19361:18:0;;;;:36;;;;-1:-1:-1;19393:4:0;;-1:-1:-1;;;;;19383:14:0;;;19393:4;;19383:14;;19361:36;19357:76;;;19399:34;19411:7;19420:12;19399:11;:34::i;:::-;19475:48;19491:6;19499:9;19510:12;19519:3;19510:6;:12;:::i;:::-;19475:15;:48::i;:::-;19538:7;;19534:249;;19610:11;;19606:164;;19642:17;19683:3;19663:16;19672:7;19663:6;:16;:::i;:::-;19662:24;;;;:::i;:::-;19642:44;;19705:49;19721:6;19737:4;19744:9;19705:15;:49::i;:::-;19623:147;19606:164;16716:3074;;;;;16594:3196;;;:::o;11651:173::-;11726:6;;;-1:-1:-1;;;;;11743:17:0;;;-1:-1:-1;;;;;;11743:17:0;;;;;;;11776:40;;11726:6;;;11743:17;11726:6;;11776:40;;11707:16;;11776:40;11696:128;11651:173;:::o;19798:1756::-;14130:15;;-1:-1:-1;;;14130:15:0;;;;14125:125;;14162:15;:22;;-1:-1:-1;;;;14162:22:0;-1:-1:-1;;;14162:22:0;;;19889:12;19886:49:::1;;19917:7;;19886:49;19992:4;19948:23;3769:18:::0;;;;;;;;;;;20032:23:::1;::::0;20013:42;::::1;20009:1538;;20102:1;20076:23;;:27;20072:109;;;-1:-1:-1::0;20142:23:0::1;::::0;20072:109:::1;20252:19;20274:11;:7:::0;20284:1:::1;20274:11;:::i;:::-;20252:33;;20300:32;20394:11;20354:9;:19;;;20336:15;:37;;;;:::i;:::-;20335:70;;;;:::i;:::-;20300:105:::0;-1:-1:-1;20420:14:0::1;20437:42;20300:105:::0;20437:15;:42:::1;:::i;:::-;20420:59:::0;-1:-1:-1;20521:21:0::1;20559:24;20420:59:::0;20559:16:::1;:24::i;:::-;20600:20;20623:38;20647:14:::0;20623:21:::1;:38;:::i;:::-;20600:61;;20676:19;20728:9;:19;;;20714:11;:33;;;;:::i;:::-;20698:50;::::0;:12;:50:::1;:::i;:::-;20676:72;;20763:29;20809:9;:19;;;20795:11;:33;;;;:::i;:::-;20763:65:::0;-1:-1:-1;20849:25:0;;20845:161:::1;;20929:61;20942:24;20968:21;20929:12;:61::i;:::-;21063:19:::0;;21022:20:::1;::::0;21045:15:::1;:11:::0;21059:1:::1;21045:15;:::i;:::-;:37;;;;:::i;:::-;21022:60:::0;-1:-1:-1;21101:16:0;;21097:105:::1;;21146:15;::::0;21138:48:::1;::::0;-1:-1:-1;;;;;21146:15:0::1;21173:12:::0;21138:34:::1;:48::i;:::-;21253:13;::::0;::::1;::::0;21218:14:::1;::::0;21235:15:::1;:11:::0;21249:1:::1;21235:15;:::i;:::-;:31;;;;:::i;:::-;21218:48:::0;-1:-1:-1;21285:10:0;;21281:87:::1;;21324:9;::::0;21316:36:::1;::::0;-1:-1:-1;;;;;21324:9:0::1;21345:6:::0;21316:28:::1;:36::i;:::-;21419:13;::::0;::::1;::::0;21384:14:::1;::::0;21401:15:::1;:11:::0;21415:1:::1;21401:15;:::i;:::-;:31;;;;:::i;:::-;21384:48:::0;-1:-1:-1;21451:10:0;;21447:87:::1;;21490:9;::::0;21482:36:::1;::::0;-1:-1:-1;;;;;21490:9:0::1;21511:6:::0;21482:28:::1;:36::i;:::-;20057:1490;;;;;;;;;;20009:1538;19878:1676;14199:1;14215:15:::0;:23;;-1:-1:-1;;;;14215:23:0;;;19798:1756;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;18738:2:1;7932:70:0;;;18720:21:1;18777:2;18757:18;;;18750:30;18816:34;18796:18;;;18789:62;-1:-1:-1;;;18867:18:1;;;18860:35;18912:19;;7932:70:0;18536:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;19144:2:1;8013:71:0;;;19126:21:1;19183:2;19163:18;;;19156:30;19222:34;19202:18;;;19195:62;-1:-1:-1;;;19273:18:1;;;19266:33;19316:19;;8013:71:0;18942:399:1;8013:71:0;-1:-1:-1;;;;;8181:17:0;;8157:21;8181:17;;;;;;;;;;;8217:23;;;;8209:74;;;;-1:-1:-1;;;8209:74:0;;19548:2:1;8209:74:0;;;19530:21:1;19587:2;19567:18;;;19560:30;19626:34;19606:18;;;19599:62;-1:-1:-1;;;19677:18:1;;;19670:36;19723:19;;8209:74:0;19346:402:1;8209:74:0;8314:22;8330:6;8314:13;:22;:::i;:::-;-1:-1:-1;;;;;8294:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8347:20;;;;;;;;:30;;8371:6;;8294:9;8347:30;;8371:6;;8347:30;:::i;:::-;;;;;;;;8412:9;-1:-1:-1;;;;;8395:35:0;8404:6;-1:-1:-1;;;;;8395:35:0;;8423:6;8395:35;;;;3769:25:1;;3757:2;3742:18;;3623:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::o;21562:526::-;21704:16;;;21718:1;21704:16;;;;;;;;21680:21;;21704:16;;;;;;;;;;-1:-1:-1;21704:16:0;21680:40;;21749:4;21731;21736:1;21731:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21731:23:0;;;:7;;;;;;;;;;:23;;;;21775:6;;:13;;;-1:-1:-1;;;21775:13:0;;;;:6;;;;;:11;;:13;;;;;21731:7;;21775:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21765:4;21770:1;21765:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21765:23:0;;;:7;;;;;;;;;:23;21833:6;;21801:53;;21818:4;;21833:6;21842:11;21801:8;:53::i;:::-;21893:6;;:187;;-1:-1:-1;;;21893:187:0;;-1:-1:-1;;;;;21893:6:0;;;;:57;;:187;;21965:11;;21893:6;;22007:4;;22034;;22054:15;;21893:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21617:471;21562:526;:::o;22096:497::-;22276:6;;22244:53;;22261:4;;-1:-1:-1;;;;;22276:6:0;22285:11;22244:8;:53::i;:::-;22340:6;;-1:-1:-1;;;;;22340:6:0;:22;22371:9;22405:4;22425:11;22340:6;;22537:7;11199:6;;-1:-1:-1;;;;;11199:6:0;;11126:87;22537:7;22340:245;;;;;;-1:-1:-1;;;;;;22340:245:0;;;-1:-1:-1;;;;;21353:15:1;;;22340:245:0;;;21335:34:1;21385:18;;;21378:34;;;;21428:18;;;21421:34;;;;21471:18;;;21464:34;21535:15;;;21514:19;;;21507:44;22559:15:0;21567:19:1;;;21560:35;21269:19;;22340:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22096:497;;:::o;10569:319::-;10684:6;10659:21;:31;;10651:73;;;;-1:-1:-1;;;10651:73:0;;22119:2:1;10651:73:0;;;22101:21:1;22158:2;22138:18;;;22131:30;22197:31;22177:18;;;22170:59;22246:18;;10651:73:0;21917:353:1;10651:73:0;10738:12;10756:9;-1:-1:-1;;;;;10756:14:0;10779:6;10756:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10737:54;;;10810:7;10802:78;;;;-1:-1:-1;;;10802:78:0;;22687:2:1;10802:78:0;;;22669:21:1;22726:2;22706:18;;;22699:30;22765:34;22745:18;;;22738:62;22836:28;22816:18;;;22809:56;22882:19;;10802:78:0;22485:422:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;2987:385::-;3073:6;3081;3089;3097;3150:3;3138:9;3129:7;3125:23;3121:33;3118:53;;;3167:1;3164;3157:12;3118:53;-1:-1:-1;;3190:23:1;;;3260:2;3245:18;;3232:32;;-1:-1:-1;3311:2:1;3296:18;;3283:32;;3362:2;3347:18;3334:32;;-1:-1:-1;2987:385:1;-1:-1:-1;2987:385:1:o;3377:241::-;3433:6;3486:2;3474:9;3465:7;3461:23;3457:32;3454:52;;;3502:1;3499;3492:12;3454:52;3541:9;3528:23;3560:28;3582:5;3560:28;:::i;:::-;3607:5;3377:241;-1:-1:-1;;;3377:241:1:o;3805:247::-;3864:6;3917:2;3905:9;3896:7;3892:23;3888:32;3885:52;;;3933:1;3930;3923:12;3885:52;3972:9;3959:23;3991:31;4016:5;3991:31;:::i;4057:456::-;4134:6;4142;4150;4203:2;4191:9;4182:7;4178:23;4174:32;4171:52;;;4219:1;4216;4209:12;4171:52;4258:9;4245:23;4277:31;4302:5;4277:31;:::i;:::-;4327:5;-1:-1:-1;4384:2:1;4369:18;;4356:32;4397:33;4356:32;4397:33;:::i;:::-;4057:456;;4449:7;;-1:-1:-1;;;4503:2:1;4488:18;;;;4475:32;;4057:456::o;4707:382::-;4772:6;4780;4833:2;4821:9;4812:7;4808:23;4804:32;4801:52;;;4849:1;4846;4839:12;4801:52;4888:9;4875:23;4907:31;4932:5;4907:31;:::i;:::-;4957:5;-1:-1:-1;5014:2:1;4999:18;;4986:32;5027:30;4986:32;5027:30;:::i;:::-;5076:7;5066:17;;;4707:382;;;;;:::o;5094:388::-;5162:6;5170;5223:2;5211:9;5202:7;5198:23;5194:32;5191:52;;;5239:1;5236;5229:12;5191:52;5278:9;5265:23;5297:31;5322:5;5297:31;:::i;:::-;5347:5;-1:-1:-1;5404:2:1;5389:18;;5376:32;5417:33;5376:32;5417:33;:::i;5487:180::-;5546:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:52;;;5615:1;5612;5605:12;5567:52;-1:-1:-1;5638:23:1;;5487:180;-1:-1:-1;5487:180:1:o;6276:316::-;6353:6;6361;6369;6422:2;6410:9;6401:7;6397:23;6393:32;6390:52;;;6438:1;6435;6428:12;6390:52;-1:-1:-1;;6461:23:1;;;6531:2;6516:18;;6503:32;;-1:-1:-1;6582:2:1;6567:18;;;6554:32;;6276:316;-1:-1:-1;6276:316:1:o;6597:309::-;6662:6;6670;6723:2;6711:9;6702:7;6698:23;6694:32;6691:52;;;6739:1;6736;6729:12;6691:52;6778:9;6765:23;6797:28;6819:5;6797:28;:::i;7134:380::-;7213:1;7209:12;;;;7256;;;7277:61;;7331:4;7323:6;7319:17;7309:27;;7277:61;7384:2;7376:6;7373:14;7353:18;7350:38;7347:161;;;7430:10;7425:3;7421:20;7418:1;7411:31;7465:4;7462:1;7455:15;7493:4;7490:1;7483:15;7347:161;;7134:380;;;:::o;7519:356::-;7721:2;7703:21;;;7740:18;;;7733:30;7799:34;7794:2;7779:18;;7772:62;7866:2;7851:18;;7519:356::o;7880:127::-;7941:10;7936:3;7932:20;7929:1;7922:31;7972:4;7969:1;7962:15;7996:4;7993:1;7986:15;8012:127;8073:10;8068:3;8064:20;8061:1;8054:31;8104:4;8101:1;8094:15;8128:4;8125:1;8118:15;8144:135;8183:3;-1:-1:-1;;8204:17:1;;8201:43;;;8224:18;;:::i;:::-;-1:-1:-1;8271:1:1;8260:13;;8144:135::o;8284:128::-;8324:3;8355:1;8351:6;8348:1;8345:13;8342:39;;;8361:18;;:::i;:::-;-1:-1:-1;8397:9:1;;8284:128::o;9184:125::-;9224:4;9252:1;9249;9246:8;9243:34;;;9257:18;;:::i;:::-;-1:-1:-1;9294:9:1;;9184:125::o;9314:422::-;9403:1;9446:5;9403:1;9460:270;9481:7;9471:8;9468:21;9460:270;;;9540:4;9536:1;9532:6;9528:17;9522:4;9519:27;9516:53;;;9549:18;;:::i;:::-;9599:7;9589:8;9585:22;9582:55;;;9619:16;;;;9582:55;9698:22;;;;9658:15;;;;9460:270;;;9464:3;9314:422;;;;;:::o;9741:806::-;9790:5;9820:8;9810:80;;-1:-1:-1;9861:1:1;9875:5;;9810:80;9909:4;9899:76;;-1:-1:-1;9946:1:1;9960:5;;9899:76;9991:4;10009:1;10004:59;;;;10077:1;10072:130;;;;9984:218;;10004:59;10034:1;10025:10;;10048:5;;;10072:130;10109:3;10099:8;10096:17;10093:43;;;10116:18;;:::i;:::-;-1:-1:-1;;10172:1:1;10158:16;;10187:5;;9984:218;;10286:2;10276:8;10273:16;10267:3;10261:4;10258:13;10254:36;10248:2;10238:8;10235:16;10230:2;10224:4;10221:12;10217:35;10214:77;10211:159;;;-1:-1:-1;10323:19:1;;;10355:5;;10211:159;10402:34;10427:8;10421:4;10402:34;:::i;:::-;10472:6;10468:1;10464:6;10460:19;10451:7;10448:32;10445:58;;;10483:18;;:::i;:::-;10521:20;;9741:806;-1:-1:-1;;;9741:806:1:o;10552:140::-;10610:5;10639:47;10680:4;10670:8;10666:19;10660:4;10639:47;:::i;10697:168::-;10737:7;10803:1;10799;10795:6;10791:14;10788:1;10785:21;10780:1;10773:9;10766:17;10762:45;10759:71;;;10810:18;;:::i;:::-;-1:-1:-1;10850:9:1;;10697:168::o;11504:245::-;11571:6;11624:2;11612:9;11603:7;11599:23;11595:32;11592:52;;;11640:1;11637;11630:12;11592:52;11672:9;11666:16;11691:28;11713:5;11691:28;:::i;18314:217::-;18354:1;18380;18370:132;;18424:10;18419:3;18415:20;18412:1;18405:31;18459:4;18456:1;18449:15;18487:4;18484:1;18477:15;18370:132;-1:-1:-1;18516:9:1;;18314:217::o;19753:251::-;19823:6;19876:2;19864:9;19855:7;19851:23;19847:32;19844:52;;;19892:1;19889;19882:12;19844:52;19924:9;19918:16;19943:31;19968:5;19943:31;:::i;20009:980::-;20271:4;20319:3;20308:9;20304:19;20350:6;20339:9;20332:25;20376:2;20414:6;20409:2;20398:9;20394:18;20387:34;20457:3;20452:2;20441:9;20437:18;20430:31;20481:6;20516;20510:13;20547:6;20539;20532:22;20585:3;20574:9;20570:19;20563:26;;20624:2;20616:6;20612:15;20598:29;;20645:1;20655:195;20669:6;20666:1;20663:13;20655:195;;;20734:13;;-1:-1:-1;;;;;20730:39:1;20718:52;;20825:15;;;;20790:12;;;;20766:1;20684:9;20655:195;;;-1:-1:-1;;;;;;;20906:32:1;;;;20901:2;20886:18;;20879:60;-1:-1:-1;;;20970:3:1;20955:19;20948:35;20867:3;20009:980;-1:-1:-1;;;20009:980:1:o;21606:306::-;21694:6;21702;21710;21763:2;21751:9;21742:7;21738:23;21734:32;21731:52;;;21779:1;21776;21769:12;21731:52;21808:9;21802:16;21792:26;;21858:2;21847:9;21843:18;21837:25;21827:35;;21902:2;21891:9;21887:18;21881:25;21871:35;;21606:306;;;;;:::o

Swarm Source

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