ETH Price: $3,474.63 (+0.31%)

Token

DecentralZone (DZ)
 

Overview

Max Total Supply

800,000,000 DZ

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
NerveNetwork: Bank Node Multi-Signature
Balance
40,000,005 DZ

Value
$0.00
0xc707e0854da2d72c90a7453f8dc224dd937d7e82
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:
DecentralZone

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-31
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

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

interface IBEP20 {
    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 IBEP20Metadata is IBEP20 {
    /**
     * @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 BEP20 is Context, IBEP20, IBEP20Metadata {
    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 {BEP20} 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
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    /**
     * @dev See {IBEP20-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 {IBEP20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IBEP20-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 {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20}.
     *
     * 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,
            "BEP20: 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 {IBEP20-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 {IBEP20-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,
            "BEP20: 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), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "BEP20: 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
    {
        _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), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

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

    IRouter public router;
    address public pair;

    bool private _interlock = false;
    bool private providingLiquidity = true;
    bool public tradingEnabled = false;

    uint256 public tokenLiquidityThreshold = 800000 * 10**18; // 0.1%
    uint256 public MaxTxAmount = 800000000 * 10**18; //no limit
    uint256 public MaxWalletSize = 800000000 * 10**18;  //no limit
    
    address public marketingWallet = 0x679b6165d73Fc19aeC212fC6881B92367634b322;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes private taxes = Taxes(3, 0);
    Taxes private sellTaxes = Taxes(3, 0);

    uint256 public BuyTaxes = taxes.marketing + taxes.liquidity;
    uint256 public SellTaxes = sellTaxes.marketing + sellTaxes.liquidity;

    mapping(address => bool) public exemptFee;

    event MaxTxUpdated(uint256 MaxWalletSize, uint256 MaxTxAmount);
    event BuyTaxesUpdated(uint256 marketing,  uint256 liquidity);
    event SellTaxesUpdated(uint256 marketing, uint256 liquidity);
   
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() BEP20("DecentralZone", "DZ") {
        _tokengeneration(msg.sender, 800000000 * 10**decimals());
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH());
        router = _router;
        pair = _pair;
        
        exemptFee[msg.sender] = true;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = 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,
            "BEP20: 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,"BEP20: 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");
        
       if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        
        if (sender == pair && recipient != address(router) && !exemptFee[recipient] ) {
                require(amount <= MaxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(recipient) + amount <= MaxWalletSize, "Exceeds the maxWalletSize.");
                
            }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

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

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

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair)
            Liquify(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 Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        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 to pancake
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

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

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        providingLiquidity = state;
    }

    function setLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 8000000,"Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function updateBuyFee( uint256 _marketing, uint256 _liquidity) external onlyOwner {
        taxes.marketing = _marketing;
        taxes.liquidity = _liquidity;
     require((_marketing +  _liquidity ) <= 5, "Must keep fees at 5% or less");
     emit BuyTaxesUpdated(_marketing, _liquidity);
    }

    function updateSellFee( uint256 _marketing, uint256 _liquidity) external onlyOwner {
        sellTaxes.marketing = _marketing;
        sellTaxes.liquidity = _liquidity;
    require((_marketing +  _liquidity ) <= 5, "Must keep fees at 5% or less");
    emit SellTaxesUpdated(_marketing, _liquidity);
    }
   
     function setMaxTxLimit(uint256 _maxWallet, uint256 _maxTx) external onlyOwner {
        MaxWalletSize = _maxWallet * 10**decimals(); 
        MaxTxAmount = _maxTx * 10**decimals();
    require (_maxWallet >= 800000, "Cannot set MaxWallet amount lower then 0.1%");
    require (_maxTx >= 800000, "Cannot set MaxTx amount lower then 0.1%");
    emit MaxTxUpdated(_maxWallet, _maxTx);
    }
    
    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
    }
   
    function setMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        require(newWallet != address(this), "Fee Address cannot be CA");
        exemptFee[newWallet] = true;
        marketingWallet = newWallet;
    }

    function excludeFromFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function includeInFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function rescueEHT() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IBEP20(tokenAdd).transfer(owner(), 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":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxWalletSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"MaxTxAmount","type":"uint256"}],"name":"MaxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SellTaxesUpdated","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":[],"name":"BuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"_address","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEHT","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":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916600160a81b17905569a968163f0a57b40000006008556b0295be96e6406697200000006009819055600a55600b80546001600160a01b03191673679b6165d73fc19aec212fc6881b92367634b32217905560036080819052600060a0819052600c829055600d81905561010060405260c082905260e0819052600e829055600f8190556200009a9162000435565b601055600f54600e54620000af919062000435565b601155348015620000bf57600080fd5b506040518060400160405280600d81526020016c446563656e7472616c5a6f6e6560981b81525060405180604001604052806002815260200161222d60f11b8152508160039081620001129190620004f6565b506004620001218282620004f6565b5050506200013e620001386200037560201b60201c565b62000379565b6200016733620001516012600a620006bf565b6200016190632faf0800620006d7565b620003cb565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e79190620006f1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b9190620006f1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf9190620006f1565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555033600090815260126020526040808220805460ff1990811660019081179092553084528284208054821683179055600b549094168352908220805484168217905561dead9091527f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f780549092161790556200071c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200044b576200044b6200041f565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200047c57607f821691505b6020821081036200049d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f157600081815260208120601f850160051c81016020861015620004cc5750805b601f850160051c820191505b81811015620004ed57828155600101620004d8565b5050505b505050565b81516001600160401b0381111562000512576200051262000451565b6200052a8162000523845462000467565b84620004a3565b602080601f831160018114620005625760008415620005495750858301515b600019600386901b1c1916600185901b178555620004ed565b600085815260208120601f198616915b82811015620005935788860151825594840194600190910190840162000572565b5085821015620005b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b8085111562000603578160001904821115620005e757620005e76200041f565b80851615620005f557918102915b93841c9390800290620005c7565b509250929050565b6000826200061c575060016200044b565b816200062b575060006200044b565b81600181146200064457600281146200064f576200066f565b60019150506200044b565b60ff8411156200066357620006636200041f565b50506001821b6200044b565b5060208310610133831016604e8410600b841016171562000694575081810a6200044b565b620006a08383620005c2565b8060001904821115620006b757620006b76200041f565b029392505050565b6000620006d060ff8416836200060b565b9392505050565b80820281158282048414176200044b576200044b6200041f565b6000602082840312156200070457600080fd5b81516001600160a01b0381168114620006d057600080fd5b6121d3806200072c6000396000f3fe6080604052600436106102135760003560e01c80638a8c523c11610118578063beffc7d4116100a0578063e0eb9cb31161006f578063e0eb9cb31461062a578063ea2f0b3714610640578063f2fde38b14610660578063f887ea4014610680578063fc962edb146106a057600080fd5b8063beffc7d41461057e578063c5d32bb21461059e578063d256413e146105ce578063dd62ed3e146105e457600080fd5b8063a40f0ce7116100e7578063a40f0ce7146104e9578063a457c2d7146104fe578063a8aa1b311461051e578063a9059cbb1461053e578063ad3026e41461055e57600080fd5b80638a8c523c146104815780638cd4426d146104965780638da5cb5b146104b657806395d89b41146104d457600080fd5b8063395093511161019b578063610e34b91161016a578063610e34b9146103c857806370a08231146103e8578063715018a61461041e57806375f0a8741461043357806385141a771461046b57600080fd5b80633950935114610347578063437823ec146103675780634ada218b146103875780635d098b38146103a857600080fd5b80631675d802116101e25780631675d802146102bc57806318160ddd146102e057806323b872dd146102f557806329b8cff314610315578063313ce5671461032b57600080fd5b80630546d67b1461021f57806306fdde0314610241578063095ea7b31461026c5780631340538f1461029c57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611d44565b6106b6565b005b34801561024d57600080fd5b5061025661077e565b6040516102639190611d5d565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611dc0565b610810565b6040519015158152602001610263565b3480156102a857600080fd5b5061023f6102b7366004611dfa565b610827565b3480156102c857600080fd5b506102d260085481565b604051908152602001610263565b3480156102ec57600080fd5b506002546102d2565b34801561030157600080fd5b5061028c610310366004611e1e565b61086f565b34801561032157600080fd5b506102d2600a5481565b34801561033757600080fd5b5060405160128152602001610263565b34801561035357600080fd5b5061028c610362366004611dc0565b610920565b34801561037357600080fd5b5061023f610382366004611e5f565b610957565b34801561039357600080fd5b5060075461028c90600160b01b900460ff1681565b3480156103b457600080fd5b5061023f6103c3366004611e5f565b6109a5565b3480156103d457600080fd5b5061023f6103e3366004611e7c565b610abf565b3480156103f457600080fd5b506102d2610403366004611e5f565b6001600160a01b031660009081526020819052604090205490565b34801561042a57600080fd5b5061023f610b8b565b34801561043f57600080fd5b50600b54610453906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b34801561047757600080fd5b5061045361dead81565b34801561048d57600080fd5b5061023f610bc1565b3480156104a257600080fd5b5061023f6104b1366004611dc0565b610c5a565b3480156104c257600080fd5b506005546001600160a01b0316610453565b3480156104e057600080fd5b50610256610d92565b3480156104f557600080fd5b5061023f610da1565b34801561050a57600080fd5b5061028c610519366004611dc0565b610e1a565b34801561052a57600080fd5b50600754610453906001600160a01b031681565b34801561054a57600080fd5b5061028c610559366004611dc0565b610eb5565b34801561056a57600080fd5b5061023f610579366004611e7c565b610ec2565b34801561058a57600080fd5b5061023f610599366004611e7c565b61101f565b3480156105aa57600080fd5b5061028c6105b9366004611e5f565b60126020526000908152604090205460ff1681565b3480156105da57600080fd5b506102d260095481565b3480156105f057600080fd5b506102d26105ff366004611e9e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063657600080fd5b506102d260105481565b34801561064c57600080fd5b5061023f61065b366004611e5f565b6110e3565b34801561066c57600080fd5b5061023f61067b366004611e5f565b61112e565b34801561068c57600080fd5b50600654610453906001600160a01b031681565b3480156106ac57600080fd5b506102d260115481565b6005546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e090611ed7565b60405180910390fd5b627a12008111156107625760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016106e0565b61076e6012600a612006565b6107789082612015565b60085550565b60606003805461078d9061202c565b80601f01602080910402602001604051908101604052809291908181526020018280546107b99061202c565b80156108065780601f106107db57610100808354040283529160200191610806565b820191906000526020600020905b8154815290600101906020018083116107e957829003601f168201915b5050505050905090565b600061081d3384846111c9565b5060015b92915050565b6005546001600160a01b031633146108515760405162461bcd60e51b81526004016106e090611ed7565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061087c8484846112ed565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109015760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106e0565b61091585336109108685612066565b6111c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161081d918590610910908690612079565b6005546001600160a01b031633146109815760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6005546001600160a01b031633146109cf5760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b038116610a305760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016106e0565b306001600160a01b03821603610a885760405162461bcd60e51b815260206004820152601860248201527f46656520416464726573732063616e6e6f74206265204341000000000000000060448201526064016106e0565b6001600160a01b03166000818152601260205260409020805460ff19166001179055600b80546001600160a01b0319169091179055565b6005546001600160a01b03163314610ae95760405162461bcd60e51b81526004016106e090611ed7565b600c829055600d8190556005610aff8284612079565b1115610b4d5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016106e0565b60408051838152602081018390527fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca91015b60405180910390a15050565b6005546001600160a01b03163314610bb55760405162461bcd60e51b81526004016106e090611ed7565b610bbf60006116b8565b565b6005546001600160a01b03163314610beb5760405162461bcd60e51b81526004016106e090611ed7565b600754600160b01b900460ff1615610c455760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106e0565b6007805460ff60b01b1916600160b01b179055565b6005546001600160a01b03163314610c845760405162461bcd60e51b81526004016106e090611ed7565b306001600160a01b03831603610cfb5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106e0565b816001600160a01b031663a9059cbb610d1c6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d919061208c565b505050565b60606004805461078d9061202c565b6005546001600160a01b03163314610dcb5760405162461bcd60e51b81526004016106e090611ed7565b47610dde6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610e16573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e9c5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e0565b610eab33856109108685612066565b5060019392505050565b600061081d3384846112ed565b6005546001600160a01b03163314610eec5760405162461bcd60e51b81526004016106e090611ed7565b610ef86012600a612006565b610f029083612015565b600a556012610f1290600a612006565b610f1c9082612015565b600955620c3500821015610f865760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560448201526a72207468656e20302e312560a81b60648201526084016106e0565b620c3500811015610fe95760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574204d6178547820616d6f756e74206c6f776572207468604482015266656e20302e312560c81b60648201526084016106e0565b60408051838152602081018390527f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db9101610b7f565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016106e090611ed7565b600e829055600f819055600561105f8284612079565b11156110ad5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016106e0565b60408051838152602081018390527f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d9101610b7f565b6005546001600160a01b0316331461110d5760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b031633146111585760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b0381166111bd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b6111c6816116b8565b50565b6001600160a01b03831661122b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b03821661128c5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6001600160a01b03831660009081526012602052604090205460ff1615801561139157506001600160a01b03821660009081526012602052604090205460ff16155b156113e557600754600160b01b900460ff166113e55760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106e0565b6007546001600160a01b03848116911614801561141057506006546001600160a01b03838116911614155b801561143557506001600160a01b03821660009081526012602052604090205460ff16155b156115075760095481111561148c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106e0565b600a54816114af846001600160a01b031660009081526020819052604090205490565b6114b99190612079565b11156115075760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106e0565b6000806000611529604051806040016040528060008152602001600081525090565b600754600160a01b900460ff168061155957506001600160a01b03871660009081526012602052604090205460ff165b8061157c57506001600160a01b03861660009081526012602052604090205460ff165b1561158a5760009150611619565b6007546001600160a01b03908116908716036115d457600e54600f546115b09190612079565b60408051808201909152600e548152600f5460208201529094508493509050611619565b6007546001600160a01b0387811691161461161957600c54600d546115f99190612079565b60408051808201909152600c548152600d54602082015290945084935090505b60646116258487612015565b61162f91906120a9565b600754909250600160a81b900460ff16801561165957506007546001600160a01b03888116911614155b1561166857611668848261170a565b61167c87876116778589612066565b611847565b81156116af5783156116af57600060646116968688612015565b6116a091906120a9565b90506116ad883083611847565b505b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610e16576007805460ff60a01b1916600160a01b179055811561183657306000908152602081905260409020546008548110611834576001600854111561175d57506008545b600061176a846002612015565b905060008184602001518461177f9190612015565b61178991906120a9565b905060006117978285612066565b9050476117a382611a1f565b60006117af8247612066565b905060008760200151866117c39190612066565b6117cd90836120a9565b905060008860200151826117e19190612015565b905080156117f3576117f38682611b79565b8851600090611803846002612015565b61180d9190612015565b9050801561182b57600b5461182b906001600160a01b031682611c2b565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166118ab5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661190d5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b6001600160a01b038316600090815260208190526040902054818110156119855760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e0565b61198f8282612066565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906119c5908490612079565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a1191815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a5457611a546120cb565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad191906120e1565b81600181518110611ae457611ae46120cb565b6001600160a01b039283166020918202929092010152600654611b0a91309116846111c9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b439085906000908690309042906004016120fe565b600060405180830381600087803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050505050565b600654611b919030906001600160a01b0316846111c9565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611bff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c24919061216f565b5050505050565b80471015611c7b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611cc8576040519150601f19603f3d011682016040523d82523d6000602084013e611ccd565b606091505b5050905080610d8d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106e0565b600060208284031215611d5657600080fd5b5035919050565b600060208083528351808285015260005b81811015611d8a57858101830151858201604001528201611d6e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111c657600080fd5b60008060408385031215611dd357600080fd5b8235611dde81611dab565b946020939093013593505050565b80151581146111c657600080fd5b600060208284031215611e0c57600080fd5b8135611e1781611dec565b9392505050565b600080600060608486031215611e3357600080fd5b8335611e3e81611dab565b92506020840135611e4e81611dab565b929592945050506040919091013590565b600060208284031215611e7157600080fd5b8135611e1781611dab565b60008060408385031215611e8f57600080fd5b50508035926020909101359150565b60008060408385031215611eb157600080fd5b8235611ebc81611dab565b91506020830135611ecc81611dab565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f5d578160001904821115611f4357611f43611f0c565b80851615611f5057918102915b93841c9390800290611f27565b509250929050565b600082611f7457506001610821565b81611f8157506000610821565b8160018114611f975760028114611fa157611fbd565b6001915050610821565b60ff841115611fb257611fb2611f0c565b50506001821b610821565b5060208310610133831016604e8410600b8410161715611fe0575081810a610821565b611fea8383611f22565b8060001904821115611ffe57611ffe611f0c565b029392505050565b6000611e1760ff841683611f65565b808202811582820484141761082157610821611f0c565b600181811c9082168061204057607f821691505b60208210810361206057634e487b7160e01b600052602260045260246000fd5b50919050565b8181038181111561082157610821611f0c565b8082018082111561082157610821611f0c565b60006020828403121561209e57600080fd5b8151611e1781611dec565b6000826120c657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120f357600080fd5b8151611e1781611dab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561214e5784516001600160a01b031683529383019391830191600101612129565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561218457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220881b3856907d2348d99f2e47a5301b740ff368ba370e897b8c192fee068d865664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638a8c523c11610118578063beffc7d4116100a0578063e0eb9cb31161006f578063e0eb9cb31461062a578063ea2f0b3714610640578063f2fde38b14610660578063f887ea4014610680578063fc962edb146106a057600080fd5b8063beffc7d41461057e578063c5d32bb21461059e578063d256413e146105ce578063dd62ed3e146105e457600080fd5b8063a40f0ce7116100e7578063a40f0ce7146104e9578063a457c2d7146104fe578063a8aa1b311461051e578063a9059cbb1461053e578063ad3026e41461055e57600080fd5b80638a8c523c146104815780638cd4426d146104965780638da5cb5b146104b657806395d89b41146104d457600080fd5b8063395093511161019b578063610e34b91161016a578063610e34b9146103c857806370a08231146103e8578063715018a61461041e57806375f0a8741461043357806385141a771461046b57600080fd5b80633950935114610347578063437823ec146103675780634ada218b146103875780635d098b38146103a857600080fd5b80631675d802116101e25780631675d802146102bc57806318160ddd146102e057806323b872dd146102f557806329b8cff314610315578063313ce5671461032b57600080fd5b80630546d67b1461021f57806306fdde0314610241578063095ea7b31461026c5780631340538f1461029c57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611d44565b6106b6565b005b34801561024d57600080fd5b5061025661077e565b6040516102639190611d5d565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611dc0565b610810565b6040519015158152602001610263565b3480156102a857600080fd5b5061023f6102b7366004611dfa565b610827565b3480156102c857600080fd5b506102d260085481565b604051908152602001610263565b3480156102ec57600080fd5b506002546102d2565b34801561030157600080fd5b5061028c610310366004611e1e565b61086f565b34801561032157600080fd5b506102d2600a5481565b34801561033757600080fd5b5060405160128152602001610263565b34801561035357600080fd5b5061028c610362366004611dc0565b610920565b34801561037357600080fd5b5061023f610382366004611e5f565b610957565b34801561039357600080fd5b5060075461028c90600160b01b900460ff1681565b3480156103b457600080fd5b5061023f6103c3366004611e5f565b6109a5565b3480156103d457600080fd5b5061023f6103e3366004611e7c565b610abf565b3480156103f457600080fd5b506102d2610403366004611e5f565b6001600160a01b031660009081526020819052604090205490565b34801561042a57600080fd5b5061023f610b8b565b34801561043f57600080fd5b50600b54610453906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b34801561047757600080fd5b5061045361dead81565b34801561048d57600080fd5b5061023f610bc1565b3480156104a257600080fd5b5061023f6104b1366004611dc0565b610c5a565b3480156104c257600080fd5b506005546001600160a01b0316610453565b3480156104e057600080fd5b50610256610d92565b3480156104f557600080fd5b5061023f610da1565b34801561050a57600080fd5b5061028c610519366004611dc0565b610e1a565b34801561052a57600080fd5b50600754610453906001600160a01b031681565b34801561054a57600080fd5b5061028c610559366004611dc0565b610eb5565b34801561056a57600080fd5b5061023f610579366004611e7c565b610ec2565b34801561058a57600080fd5b5061023f610599366004611e7c565b61101f565b3480156105aa57600080fd5b5061028c6105b9366004611e5f565b60126020526000908152604090205460ff1681565b3480156105da57600080fd5b506102d260095481565b3480156105f057600080fd5b506102d26105ff366004611e9e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063657600080fd5b506102d260105481565b34801561064c57600080fd5b5061023f61065b366004611e5f565b6110e3565b34801561066c57600080fd5b5061023f61067b366004611e5f565b61112e565b34801561068c57600080fd5b50600654610453906001600160a01b031681565b3480156106ac57600080fd5b506102d260115481565b6005546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e090611ed7565b60405180910390fd5b627a12008111156107625760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016106e0565b61076e6012600a612006565b6107789082612015565b60085550565b60606003805461078d9061202c565b80601f01602080910402602001604051908101604052809291908181526020018280546107b99061202c565b80156108065780601f106107db57610100808354040283529160200191610806565b820191906000526020600020905b8154815290600101906020018083116107e957829003601f168201915b5050505050905090565b600061081d3384846111c9565b5060015b92915050565b6005546001600160a01b031633146108515760405162461bcd60e51b81526004016106e090611ed7565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061087c8484846112ed565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109015760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106e0565b61091585336109108685612066565b6111c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161081d918590610910908690612079565b6005546001600160a01b031633146109815760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6005546001600160a01b031633146109cf5760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b038116610a305760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016106e0565b306001600160a01b03821603610a885760405162461bcd60e51b815260206004820152601860248201527f46656520416464726573732063616e6e6f74206265204341000000000000000060448201526064016106e0565b6001600160a01b03166000818152601260205260409020805460ff19166001179055600b80546001600160a01b0319169091179055565b6005546001600160a01b03163314610ae95760405162461bcd60e51b81526004016106e090611ed7565b600c829055600d8190556005610aff8284612079565b1115610b4d5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016106e0565b60408051838152602081018390527fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca91015b60405180910390a15050565b6005546001600160a01b03163314610bb55760405162461bcd60e51b81526004016106e090611ed7565b610bbf60006116b8565b565b6005546001600160a01b03163314610beb5760405162461bcd60e51b81526004016106e090611ed7565b600754600160b01b900460ff1615610c455760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106e0565b6007805460ff60b01b1916600160b01b179055565b6005546001600160a01b03163314610c845760405162461bcd60e51b81526004016106e090611ed7565b306001600160a01b03831603610cfb5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106e0565b816001600160a01b031663a9059cbb610d1c6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d919061208c565b505050565b60606004805461078d9061202c565b6005546001600160a01b03163314610dcb5760405162461bcd60e51b81526004016106e090611ed7565b47610dde6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610e16573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e9c5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e0565b610eab33856109108685612066565b5060019392505050565b600061081d3384846112ed565b6005546001600160a01b03163314610eec5760405162461bcd60e51b81526004016106e090611ed7565b610ef86012600a612006565b610f029083612015565b600a556012610f1290600a612006565b610f1c9082612015565b600955620c3500821015610f865760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560448201526a72207468656e20302e312560a81b60648201526084016106e0565b620c3500811015610fe95760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574204d6178547820616d6f756e74206c6f776572207468604482015266656e20302e312560c81b60648201526084016106e0565b60408051838152602081018390527f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db9101610b7f565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016106e090611ed7565b600e829055600f819055600561105f8284612079565b11156110ad5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016106e0565b60408051838152602081018390527f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d9101610b7f565b6005546001600160a01b0316331461110d5760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b031633146111585760405162461bcd60e51b81526004016106e090611ed7565b6001600160a01b0381166111bd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b6111c6816116b8565b50565b6001600160a01b03831661122b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b03821661128c5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6001600160a01b03831660009081526012602052604090205460ff1615801561139157506001600160a01b03821660009081526012602052604090205460ff16155b156113e557600754600160b01b900460ff166113e55760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106e0565b6007546001600160a01b03848116911614801561141057506006546001600160a01b03838116911614155b801561143557506001600160a01b03821660009081526012602052604090205460ff16155b156115075760095481111561148c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106e0565b600a54816114af846001600160a01b031660009081526020819052604090205490565b6114b99190612079565b11156115075760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106e0565b6000806000611529604051806040016040528060008152602001600081525090565b600754600160a01b900460ff168061155957506001600160a01b03871660009081526012602052604090205460ff165b8061157c57506001600160a01b03861660009081526012602052604090205460ff165b1561158a5760009150611619565b6007546001600160a01b03908116908716036115d457600e54600f546115b09190612079565b60408051808201909152600e548152600f5460208201529094508493509050611619565b6007546001600160a01b0387811691161461161957600c54600d546115f99190612079565b60408051808201909152600c548152600d54602082015290945084935090505b60646116258487612015565b61162f91906120a9565b600754909250600160a81b900460ff16801561165957506007546001600160a01b03888116911614155b1561166857611668848261170a565b61167c87876116778589612066565b611847565b81156116af5783156116af57600060646116968688612015565b6116a091906120a9565b90506116ad883083611847565b505b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610e16576007805460ff60a01b1916600160a01b179055811561183657306000908152602081905260409020546008548110611834576001600854111561175d57506008545b600061176a846002612015565b905060008184602001518461177f9190612015565b61178991906120a9565b905060006117978285612066565b9050476117a382611a1f565b60006117af8247612066565b905060008760200151866117c39190612066565b6117cd90836120a9565b905060008860200151826117e19190612015565b905080156117f3576117f38682611b79565b8851600090611803846002612015565b61180d9190612015565b9050801561182b57600b5461182b906001600160a01b031682611c2b565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166118ab5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661190d5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b6001600160a01b038316600090815260208190526040902054818110156119855760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e0565b61198f8282612066565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906119c5908490612079565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a1191815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a5457611a546120cb565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad191906120e1565b81600181518110611ae457611ae46120cb565b6001600160a01b039283166020918202929092010152600654611b0a91309116846111c9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b439085906000908690309042906004016120fe565b600060405180830381600087803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050505050565b600654611b919030906001600160a01b0316846111c9565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611bff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c24919061216f565b5050505050565b80471015611c7b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611cc8576040519150601f19603f3d011682016040523d82523d6000602084013e611ccd565b606091505b5050905080610d8d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106e0565b600060208284031215611d5657600080fd5b5035919050565b600060208083528351808285015260005b81811015611d8a57858101830151858201604001528201611d6e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111c657600080fd5b60008060408385031215611dd357600080fd5b8235611dde81611dab565b946020939093013593505050565b80151581146111c657600080fd5b600060208284031215611e0c57600080fd5b8135611e1781611dec565b9392505050565b600080600060608486031215611e3357600080fd5b8335611e3e81611dab565b92506020840135611e4e81611dab565b929592945050506040919091013590565b600060208284031215611e7157600080fd5b8135611e1781611dab565b60008060408385031215611e8f57600080fd5b50508035926020909101359150565b60008060408385031215611eb157600080fd5b8235611ebc81611dab565b91506020830135611ecc81611dab565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f5d578160001904821115611f4357611f43611f0c565b80851615611f5057918102915b93841c9390800290611f27565b509250929050565b600082611f7457506001610821565b81611f8157506000610821565b8160018114611f975760028114611fa157611fbd565b6001915050610821565b60ff841115611fb257611fb2611f0c565b50506001821b610821565b5060208310610133831016604e8410600b8410161715611fe0575081810a610821565b611fea8383611f22565b8060001904821115611ffe57611ffe611f0c565b029392505050565b6000611e1760ff841683611f65565b808202811582820484141761082157610821611f0c565b600181811c9082168061204057607f821691505b60208210810361206057634e487b7160e01b600052602260045260246000fd5b50919050565b8181038181111561082157610821611f0c565b8082018082111561082157610821611f0c565b60006020828403121561209e57600080fd5b8151611e1781611dec565b6000826120c657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120f357600080fd5b8151611e1781611dab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561214e5784516001600160a01b031683529383019391830191600101612129565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561218457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220881b3856907d2348d99f2e47a5301b740ff368ba370e897b8c192fee068d865664736f6c63430008130033

Deployed Bytecode Sourcemap

12253:10298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20093:248;;;;;;;;;;-1:-1:-1;20093:248:0;;;;;:::i;:::-;;:::i;:::-;;2452:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14161:193;;;;;;;;;;-1:-1:-1;14161:193:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;14161:193:0;1208:187:1;19977:108:0;;;;;;;;;;-1:-1:-1;19977:108:0;;;;;:::i;:::-;;:::i;12525:56::-;;;;;;;;;;;;;;;;;;;1915:25:1;;;1903:2;1888:18;12525:56:0;1769:177:1;3572:108:0;;;;;;;;;;-1:-1:-1;3660:12:0;;3572:108;;14362:485;;;;;;;;;;-1:-1:-1;14362:485:0;;;;;:::i;:::-;;:::i;12661:49::-;;;;;;;;;;;;;;;;3414:93;;;;;;;;;;-1:-1:-1;3414:93:0;;3497:2;2554:36:1;;2542:2;2527:18;3414:93:0;2412:184:1;14855:298:0;;;;;;;;;;-1:-1:-1;14855:298:0;;;;;:::i;:::-;;:::i;21855:106::-;;;;;;;;;;-1:-1:-1;21855:106:0;;;;;:::i;:::-;;:::i;12482:34::-;;;;;;;;;;-1:-1:-1;12482:34:0;;;;-1:-1:-1;;;12482:34:0;;;;;;21542:305;;;;;;;;;;-1:-1:-1;21542:305:0;;;;;:::i;:::-;;:::i;20349:301::-;;;;;;;;;;-1:-1:-1;20349:301:0;;;;;:::i;:::-;;:::i;3743:177::-;;;;;;;;;;-1:-1:-1;3743:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;3894:18:0;3862:7;3894:18;;;;;;;;;;;;3743:177;10860:94;;;;;;;;;;;;;:::i;12735:75::-;;;;;;;;;;-1:-1:-1;12735:75:0;;;;-1:-1:-1;;;;;12735:75:0;;;;;;-1:-1:-1;;;;;3270:32:1;;;3252:51;;3240:2;3225:18;12735:75:0;3106:203:1;12817:79:0;;;;;;;;;;;;12854:42;12817:79;;21384:147;;;;;;;;;;;;;:::i;22255:238::-;;;;;;;;;;-1:-1:-1;22255:238:0;;;;;:::i;:::-;;:::i;10637:87::-;;;;;;;;;;-1:-1:-1;10710:6:0;;-1:-1:-1;;;;;10710:6:0;10637:87;;2671:104;;;;;;;;;;;;;:::i;22082:165::-;;;;;;;;;;;;;:::i;15161:409::-;;;;;;;;;;-1:-1:-1;15161:409:0;;;;;:::i;:::-;;:::i;12371:19::-;;;;;;;;;;-1:-1:-1;12371:19:0;;;;-1:-1:-1;;;;;12371:19:0;;;15578:197;;;;;;;;;;-1:-1:-1;15578:197:0;;;;;:::i;:::-;;:::i;20979:393::-;;;;;;;;;;-1:-1:-1;20979:393:0;;;;;:::i;:::-;;:::i;20658:309::-;;;;;;;;;;-1:-1:-1;20658:309:0;;;;;:::i;:::-;;:::i;13219:41::-;;;;;;;;;;-1:-1:-1;13219:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12596:47;;;;;;;;;;;;;;;;4412:201;;;;;;;;;;-1:-1:-1;4412:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4578:18:0;;;4546:7;4578:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4412:201;13076:59;;;;;;;;;;;;;;;;21969:105;;;;;;;;;;-1:-1:-1;21969:105:0;;;;;:::i;:::-;;:::i;10962:229::-;;;;;;;;;;-1:-1:-1;10962:229:0;;;;;:::i;:::-;;:::i;12343:21::-;;;;;;;;;;-1:-1:-1;12343:21:0;;;;-1:-1:-1;;;;;12343:21:0;;;13142:68;;;;;;;;;;;;;;;;20093:248;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;;;;;;;;;20196:7:::1;20182:10;:21;;20174:95;;;::::0;-1:-1:-1;;;20174:95:0;;4493:2:1;20174:95:0::1;::::0;::::1;4475:21:1::0;4532:2;4512:18;;;4505:30;4571:34;4551:18;;;4544:62;4642:32;4622:18;;;4615:60;4692:19;;20174:95:0::1;4291:426:1::0;20174:95:0::1;20319:14;3497:2:::0;20319::::1;:14;:::i;:::-;20306:27;::::0;:10;:27:::1;:::i;:::-;20280:23;:53:::0;-1:-1:-1;20093:248:0:o;2452:100::-;2506:13;2539:5;2532:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2452:100;:::o;14161:193::-;14263:4;14285:39;175:10;14308:7;14317:6;14285:8;:39::i;:::-;-1:-1:-1;14342:4:0;14161:193;;;;;:::o;19977:108::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;20051:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20051:26:0::1;-1:-1:-1::0;;;;20051:26:0;;::::1;::::0;;;::::1;::::0;;19977:108::o;14362:485::-;14494:4;14511:36;14521:6;14529:9;14540:6;14511:9;:36::i;:::-;-1:-1:-1;;;;;14587:19:0;;14560:24;14587:19;;;:11;:19;;;;;;;;175:10;14587:33;;;;;;;;14653:26;;;;14631:116;;;;-1:-1:-1;;;14631:116:0;;6997:2:1;14631:116:0;;;6979:21:1;7036:2;7016:18;;;7009:30;7075:34;7055:18;;;7048:62;-1:-1:-1;;;7126:18:1;;;7119:38;7174:19;;14631:116:0;6795:404:1;14631:116:0;14758:57;14767:6;175:10;14789:25;14808:6;14789:16;:25;:::i;:::-;14758:8;:57::i;:::-;-1:-1:-1;14835:4:0;;14362:485;-1:-1:-1;;;;14362:485:0:o;14855:298::-;175:10;14971:4;15065:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15065:34:0;;;;;;;;;;14971:4;;14993:130;;15043:7;;15065:47;;15102:10;;15065:47;:::i;21855:106::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21927:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;21927:26:0::1;21949:4;21927:26;::::0;;21855:106::o;21542:305::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21627:23:0;::::1;21619:70;;;::::0;-1:-1:-1;;;21619:70:0;;7669:2:1;21619:70:0::1;::::0;::::1;7651:21:1::0;7708:2;7688:18;;;7681:30;7747:34;7727:18;;;7720:62;-1:-1:-1;;;7798:18:1;;;7791:32;7840:19;;21619:70:0::1;7467:398:1::0;21619:70:0::1;21729:4;-1:-1:-1::0;;;;;21708:26:0;::::1;::::0;21700:63:::1;;;::::0;-1:-1:-1;;;21700:63:0;;8072:2:1;21700:63:0::1;::::0;::::1;8054:21:1::0;8111:2;8091:18;;;8084:30;8150:26;8130:18;;;8123:54;8194:18;;21700:63:0::1;7870:348:1::0;21700:63:0::1;-1:-1:-1::0;;;;;21774:20:0::1;;::::0;;;:9:::1;:20;::::0;;;;:27;;-1:-1:-1;;21774:27:0::1;21797:4;21774:27;::::0;;21812:15:::1;:27:::0;;-1:-1:-1;;;;;;21812:27:0::1;::::0;;::::1;::::0;;21542:305::o;20349:301::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;20442:5:::1;:28:::0;;;20481:15;:28;;;20556:1:::1;20526:24;20499:10:::0;20460;20526:24:::1;:::i;:::-;20525:32;;20517:73;;;::::0;-1:-1:-1;;;20517:73:0;;8425:2:1;20517:73:0::1;::::0;::::1;8407:21:1::0;8464:2;8444:18;;;8437:30;8503;8483:18;;;8476:58;8551:18;;20517:73:0::1;8223:352:1::0;20517:73:0::1;20603:39;::::0;;8754:25:1;;;8810:2;8795:18;;8788:34;;;20603:39:0::1;::::0;8727:18:1;20603:39:0::1;;;;;;;;20349:301:::0;;:::o;10860:94::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;10925:21:::1;10943:1;10925:9;:21::i;:::-;10860:94::o:0;21384:147::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;21448:14:::1;::::0;-1:-1:-1;;;21448:14:0;::::1;;;21447:15;21439:52;;;::::0;-1:-1:-1;;;21439:52:0;;9035:2:1;21439:52:0::1;::::0;::::1;9017:21:1::0;9074:2;9054:18;;;9047:30;9113:26;9093:18;;;9086:54;9157:18;;21439:52:0::1;8833:348:1::0;21439:52:0::1;21502:14;:21:::0;;-1:-1:-1;;;;21502:21:0::1;-1:-1:-1::0;;;21502:21:0::1;::::0;;21384:147::o;22255:238::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;22368:4:::1;-1:-1:-1::0;;;;;22348:25:0;::::1;::::0;22340:92:::1;;;::::0;-1:-1:-1;;;22340:92:0;;9388:2:1;22340:92:0::1;::::0;::::1;9370:21:1::0;9427:2;9407:18;;;9400:30;9466:34;9446:18;;;9439:62;-1:-1:-1;;;9517:18:1;;;9510:52;9579:19;;22340:92:0::1;9186:418:1::0;22340:92:0::1;22450:8;-1:-1:-1::0;;;;;22443:25:0::1;;22469:7;10710:6:::0;;-1:-1:-1;;;;;10710:6:0;;10637:87;22469:7:::1;22443:42;::::0;-1:-1:-1;;;;;;22443:42:0::1;::::0;;;;;;-1:-1:-1;;;;;9801:32:1;;;22443:42:0::1;::::0;::::1;9783:51:1::0;9850:18;;;9843:34;;;9756:18;;22443:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22255:238:::0;;:::o;2671:104::-;2727:13;2760:7;2753:14;;;;;:::i;22082:165::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;22162:21:::1;22202:7;10710:6:::0;;-1:-1:-1;;;;;10710:6:0;;10637:87;22202:7:::1;-1:-1:-1::0;;;;;22194:25:0::1;:45;22220:18;22194:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22122:125;22082:165::o:0;15161:409::-;175:10;15282:4;15331:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15331:34:0;;;;;;;;;;15384:35;;;;15376:84;;;;-1:-1:-1;;;15376:84:0;;10340:2:1;15376:84:0;;;10322:21:1;10379:2;10359:18;;;10352:30;10418:34;10398:18;;;10391:62;-1:-1:-1;;;10469:18:1;;;10462:35;10514:19;;15376:84:0;10138:401:1;15376:84:0;15471:67;175:10;15494:7;15503:34;15522:15;15503:16;:34;:::i;15471:67::-;-1:-1:-1;15558:4:0;;15161:409;-1:-1:-1;;;15161:409:0:o;15578:197::-;15683:4;15705:40;15715:10;15727:9;15738:6;15705:9;:40::i;20979:393::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;21097:14:::1;3497:2:::0;21097::::1;:14;:::i;:::-;21084:27;::::0;:10;:27:::1;:::i;:::-;21068:13;:43:::0;3497:2;21146:14:::1;::::0;:2:::1;:14;:::i;:::-;21137:23;::::0;:6;:23:::1;:::i;:::-;21123:11;:37:::0;21190:6:::1;21176:20:::0;::::1;;21167:77;;;::::0;-1:-1:-1;;;21167:77:0;;10746:2:1;21167:77:0::1;::::0;::::1;10728:21:1::0;10785:2;10765:18;;;10758:30;10824:34;10804:18;;;10797:62;-1:-1:-1;;;10875:18:1;;;10868:41;10926:19;;21167:77:0::1;10544:407:1::0;21167:77:0::1;21270:6;21260;:16;;21251:69;;;::::0;-1:-1:-1;;;21251:69:0;;11158:2:1;21251:69:0::1;::::0;::::1;11140:21:1::0;11197:2;11177:18;;;11170:30;11236:34;11216:18;;;11209:62;-1:-1:-1;;;11287:18:1;;;11280:37;11334:19;;21251:69:0::1;10956:403:1::0;21251:69:0::1;21332:32;::::0;;8754:25:1;;;8810:2;8795:18;;8788:34;;;21332:32:0::1;::::0;8727:18:1;21332:32:0::1;8580:248:1::0;20658:309:0;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;20752:9:::1;:32:::0;;;20795:19;:32;;;20873:1:::1;20843:24;20817:10:::0;20774;20843:24:::1;:::i;:::-;20842:32;;20834:73;;;::::0;-1:-1:-1;;;20834:73:0;;8425:2:1;20834:73:0::1;::::0;::::1;8407:21:1::0;8464:2;8444:18;;;8437:30;8503;8483:18;;;8476:58;8551:18;;20834:73:0::1;8223:352:1::0;20834:73:0::1;20919:40;::::0;;8754:25:1;;;8810:2;8795:18;;8788:34;;;20919:40:0::1;::::0;8727:18:1;20919:40:0::1;8580:248:1::0;21969:105:0;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22039:19:0::1;22061:5;22039:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;22039:27:0::1;::::0;;21969:105::o;10962:229::-;10710:6;;-1:-1:-1;;;;;10710:6:0;175:10;10772:23;10764:68;;;;-1:-1:-1;;;10764:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11065:22:0;::::1;11043:110;;;::::0;-1:-1:-1;;;11043:110:0;;11566:2:1;11043:110:0::1;::::0;::::1;11548:21:1::0;11605:2;11585:18;;;11578:30;11644:34;11624:18;;;11617:62;-1:-1:-1;;;11695:18:1;;;11688:36;11741:19;;11043:110:0::1;11364:402:1::0;11043:110:0::1;11164:19;11174:8;11164:9;:19::i;:::-;10962:229:::0;:::o;9573:380::-;-1:-1:-1;;;;;9709:19:0;;9701:68;;;;-1:-1:-1;;;9701:68:0;;11973:2:1;9701:68:0;;;11955:21:1;12012:2;11992:18;;;11985:30;12051:34;12031:18;;;12024:62;-1:-1:-1;;;12102:18:1;;;12095:34;12146:19;;9701:68:0;11771:400:1;9701:68:0;-1:-1:-1;;;;;9788:21:0;;9780:68;;;;-1:-1:-1;;;9780:68:0;;12378:2:1;9780:68:0;;;12360:21:1;12417:2;12397:18;;;12390:30;12456:34;12436:18;;;12429:62;-1:-1:-1;;;12507:18:1;;;12500:32;12549:19;;9780:68:0;12176:398:1;9780:68:0;-1:-1:-1;;;;;9861:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9913:32;;1915:25:1;;;9913:32:0;;1888:18:1;9913:32:0;;;;;;;9573:380;;;:::o;15783:1865::-;15899:1;15890:6;:10;15882:64;;;;-1:-1:-1;;;15882:64:0;;12781:2:1;15882:64:0;;;12763:21:1;12820:2;12800:18;;;12793:30;12859:34;12839:18;;;12832:62;-1:-1:-1;;;12910:18:1;;;12903:39;12959:19;;15882:64:0;12579:405:1;15882:64:0;-1:-1:-1;;;;;15971:17:0;;;;;;:9;:17;;;;;;;;15970:18;:43;;;;-1:-1:-1;;;;;;15993:20:0;;;;;;:9;:20;;;;;;;;15992:21;15970:43;15966:122;;;16038:14;;-1:-1:-1;;;16038:14:0;;;;16030:46;;;;-1:-1:-1;;;16030:46:0;;13191:2:1;16030:46:0;;;13173:21:1;13230:2;13210:18;;;13203:30;-1:-1:-1;;;13249:18:1;;;13242:49;13308:18;;16030:46:0;12989:343:1;16030:46:0;16122:4;;-1:-1:-1;;;;;16112:14:0;;;16122:4;;16112:14;:46;;;;-1:-1:-1;16151:6:0;;-1:-1:-1;;;;;16130:28:0;;;16151:6;;16130:28;;16112:46;:71;;;;-1:-1:-1;;;;;;16163:20:0;;;;;;:9;:20;;;;;;;;16162:21;16112:71;16108:294;;;16223:11;;16213:6;:21;;16205:59;;;;-1:-1:-1;;;16205:59:0;;13539:2:1;16205:59:0;;;13521:21:1;13578:2;13558:18;;;13551:30;13617:27;13597:18;;;13590:55;13662:18;;16205:59:0;13337:349:1;16205:59:0;16324:13;;16314:6;16291:20;16301:9;-1:-1:-1;;;;;3894:18:0;3862:7;3894:18;;;;;;;;;;;;3743:177;16291:20;:29;;;;:::i;:::-;:46;;16283:85;;;;-1:-1:-1;;;16283:85:0;;13893:2:1;16283:85:0;;;13875:21:1;13932:2;13912:18;;;13905:30;13971:28;13951:18;;;13944:56;14017:18;;16283:85:0;13691:350:1;16283:85:0;16412:15;16438:14;16463:11;16485:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;16485:25:0;16598:10;;-1:-1:-1;;;16598:10:0;;;;;:31;;-1:-1:-1;;;;;;16612:17:0;;;;;;:9;:17;;;;;;;;16598:31;:55;;;-1:-1:-1;;;;;;16633:20:0;;;;;;:9;:20;;;;;;;;16598:55;16594:464;;;16674:1;16668:7;;16594:464;;;16739:4;;-1:-1:-1;;;;;16739:4:0;;;16726:17;;;;16722:336;;16792:9;:19;16770;;:41;;16792:19;16770:41;:::i;:::-;16857:24;;;;;;;;;16872:9;16857:24;;;;;;;;;16760:51;;-1:-1:-1;16760:51:0;;-1:-1:-1;16857:24:0;-1:-1:-1;16722:336:0;;;16916:4;;-1:-1:-1;;;;;16903:17:0;;;16916:4;;16903:17;16899:159;;16965:5;:15;16947;;:33;;16965:15;16947:33;:::i;:::-;17026:20;;;;;;;;;17041:5;17026:20;;;;;;;;;16937:43;;-1:-1:-1;16937:43:0;;-1:-1:-1;17026:20:0;-1:-1:-1;16899:159:0;17097:3;17078:15;17087:6;17078;:15;:::i;:::-;17077:23;;;;:::i;:::-;17214:18;;17071:29;;-1:-1:-1;;;;17214:18:0;;;;:36;;;;-1:-1:-1;17246:4:0;;-1:-1:-1;;;;;17236:14:0;;;17246:4;;17236:14;;17214:36;17210:85;;;17265:30;17273:7;17282:12;17265:7;:30::i;:::-;17337:48;17353:6;17361:9;17372:12;17381:3;17372:6;:12;:::i;:::-;17337:15;:48::i;:::-;17400:7;;17396:247;;17472:11;;17468:164;;17504:17;17545:3;17525:16;17534:7;17525:6;:16;:::i;:::-;17524:24;;;;:::i;:::-;17504:44;;17567:49;17583:6;17599:4;17606:9;17567:15;:49::i;:::-;17485:147;17468:164;15871:1777;;;;15783:1865;;;:::o;11199:173::-;11274:6;;;-1:-1:-1;;;;;11291:17:0;;;-1:-1:-1;;;;;;11291:17:0;;;;;;;11324:40;;11274:6;;;11291:17;11274:6;;11324:40;;11255:16;;11324:40;11244:128;11199:173;:::o;17656:1418::-;13516:10;;-1:-1:-1;;;13516:10:0;;;;13511:110;;13543:10;:17;;-1:-1:-1;;;;13543:17:0;-1:-1:-1;;;13543:17:0;;;17745:51;;17778:7:::1;17745:51;17852:4;17808:23;3894:18:::0;;;;;;;;;;;17892:23:::1;::::0;17873:42;::::1;17869:1198;;17962:1;17936:23;;:27;17932:109;;;-1:-1:-1::0;18002:23:0::1;::::0;17932:109:::1;18112:19;18134:11;:7:::0;18144:1:::1;18134:11;:::i;:::-;18112:33;;18160:32;18237:11;18214:9;:19;;;18196:15;:37;;;;:::i;:::-;18195:53;;;;:::i;:::-;18160:88:::0;-1:-1:-1;18263:14:0::1;18280:42;18160:88:::0;18280:15;:42:::1;:::i;:::-;18263:59:::0;-1:-1:-1;18364:21:0::1;18402:24;18263:59:::0;18402:16:::1;:24::i;:::-;18443:20;18466:38;18490:14:::0;18466:21:::1;:38;:::i;:::-;18443:61;;18519:19;18571:9;:19;;;18557:11;:33;;;;:::i;:::-;18541:50;::::0;:12;:50:::1;:::i;:::-;18519:72;;18606:29;18652:9;:19;;;18638:11;:33;;;;:::i;:::-;18606:65:::0;-1:-1:-1;18692:25:0;;18688:172:::1;;18783:61;18796:24;18822:21;18783:12;:61::i;:::-;18917:19:::0;;18876:20:::1;::::0;18899:15:::1;:11:::0;18913:1:::1;18899:15;:::i;:::-;:37;;;;:::i;:::-;18876:60:::0;-1:-1:-1;18955:16:0;;18951:105:::1;;19000:15;::::0;18992:48:::1;::::0;-1:-1:-1;;;;;19000:15:0::1;19027:12:::0;18992:34:::1;:48::i;:::-;17917:1150;;;;;;;;17869:1198;17734:1340;13575:1;13591:10:::0;:18;;-1:-1:-1;;;;13591:18:0;;;17656:1418;;:::o;8090:615::-;-1:-1:-1;;;;;8230:20:0;;8222:70;;;;-1:-1:-1;;;8222:70:0;;14470:2:1;8222:70:0;;;14452:21:1;14509:2;14489:18;;;14482:30;14548:34;14528:18;;;14521:62;-1:-1:-1;;;14599:18:1;;;14592:35;14644:19;;8222:70:0;14268:401:1;8222:70:0;-1:-1:-1;;;;;8311:23:0;;8303:71;;;;-1:-1:-1;;;8303:71:0;;14876:2:1;8303:71:0;;;14858:21:1;14915:2;14895:18;;;14888:30;14954:34;14934:18;;;14927:62;-1:-1:-1;;;15005:18:1;;;14998:33;15048:19;;8303:71:0;14674:399:1;8303:71:0;-1:-1:-1;;;;;8411:17:0;;8387:21;8411:17;;;;;;;;;;;8461:23;;;;8439:111;;;;-1:-1:-1;;;8439:111:0;;15280:2:1;8439:111:0;;;15262:21:1;15319:2;15299:18;;;15292:30;15358:34;15338:18;;;15331:62;-1:-1:-1;;;15409:18:1;;;15402:36;15455:19;;8439:111:0;15078:402:1;8439:111:0;8581:22;8597:6;8581:13;:22;:::i;:::-;-1:-1:-1;;;;;8561:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8614:20;;;;;;;;:30;;8638:6;;8561:9;8614:30;;8638:6;;8614:30;:::i;:::-;;;;;;;;8679:9;-1:-1:-1;;;;;8662:35:0;8671:6;-1:-1:-1;;;;;8662:35:0;;8690:6;8662:35;;;;1915:25:1;;1903:2;1888:18;;1769:177;8662:35:0;;;;;;;;8211:494;8090:615;;;:::o;19082:448::-;19172:16;;;19186:1;19172:16;;;;;;;;19148:21;;19172:16;;;;;;;;;;-1:-1:-1;19172:16:0;19148:40;;19217:4;19199;19204:1;19199:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19199:23:0;;;:7;;;;;;;;;;:23;;;;19243:6;;:13;;;-1:-1:-1;;;19243:13:0;;;;:6;;;;;:11;;:13;;;;;19199:7;;19243:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19233:4;19238:1;19233:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19233:23:0;;;:7;;;;;;;;;:23;19301:6;;19269:53;;19286:4;;19301:6;19310:11;19269:8;:53::i;:::-;19335:6;;:187;;-1:-1:-1;;;19335:187:0;;-1:-1:-1;;;;;19335:6:0;;;;:57;;:187;;19407:11;;19335:6;;19449:4;;19476;;19496:15;;19335:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19137:393;19082:448;:::o;19538:431::-;19651:6;;19619:53;;19636:4;;-1:-1:-1;;;;;19651:6:0;19660:11;19619:8;:53::i;:::-;19715:6;;:246;;-1:-1:-1;;;19715:246:0;;19778:4;19715:246;;;17331:34:1;17381:18;;;17374:34;;;19715:6:0;17424:18:1;;;17417:34;;;17467:18;;;17460:34;12854:42:0;17510:19:1;;;17503:44;19935:15:0;17563:19:1;;;17556:35;-1:-1:-1;;;;;19715:6:0;;;;:22;;19745:9;;17265:19:1;;19715:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19538:431;;:::o;9983:391::-;10112:6;10087:21;:31;;10065:110;;;;-1:-1:-1;;;10065:110:0;;18115:2:1;10065:110:0;;;18097:21:1;18154:2;18134:18;;;18127:30;18193:31;18173:18;;;18166:59;18242:18;;10065:110:0;17913:353:1;10065:110:0;10189:12;10207:9;-1:-1:-1;;;;;10207:14:0;10229:6;10207:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10188:52;;;10273:7;10251:115;;;;-1:-1:-1;;;10251:115:0;;18683:2:1;10251:115:0;;;18665:21:1;18722:2;18702:18;;;18695:30;18761:34;18741:18;;;18734:62;18832:28;18812:18;;;18805:56;18878:19;;10251:115:0;18481:422:1;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1400:118::-;1486:5;1479:13;1472:21;1465:5;1462:32;1452:60;;1508:1;1505;1498:12;1523:241;1579:6;1632:2;1620:9;1611:7;1607:23;1603:32;1600:52;;;1648:1;1645;1638:12;1600:52;1687:9;1674:23;1706:28;1728:5;1706:28;:::i;:::-;1753:5;1523:241;-1:-1:-1;;;1523:241:1:o;1951:456::-;2028:6;2036;2044;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;2152:9;2139:23;2171:31;2196:5;2171:31;:::i;:::-;2221:5;-1:-1:-1;2278:2:1;2263:18;;2250:32;2291:33;2250:32;2291:33;:::i;:::-;1951:456;;2343:7;;-1:-1:-1;;;2397:2:1;2382:18;;;;2369:32;;1951:456::o;2601:247::-;2660:6;2713:2;2701:9;2692:7;2688:23;2684:32;2681:52;;;2729:1;2726;2719:12;2681:52;2768:9;2755:23;2787:31;2812:5;2787:31;:::i;2853:248::-;2921:6;2929;2982:2;2970:9;2961:7;2957:23;2953:32;2950:52;;;2998:1;2995;2988:12;2950:52;-1:-1:-1;;3021:23:1;;;3091:2;3076:18;;;3063:32;;-1:-1:-1;2853:248:1:o;3314:388::-;3382:6;3390;3443:2;3431:9;3422:7;3418:23;3414:32;3411:52;;;3459:1;3456;3449:12;3411:52;3498:9;3485:23;3517:31;3542:5;3517:31;:::i;:::-;3567:5;-1:-1:-1;3624:2:1;3609:18;;3596:32;3637:33;3596:32;3637:33;:::i;:::-;3689:7;3679:17;;;3314:388;;;;;:::o;3930:356::-;4132:2;4114:21;;;4151:18;;;4144:30;4210:34;4205:2;4190:18;;4183:62;4277:2;4262:18;;3930:356::o;4722:127::-;4783:10;4778:3;4774:20;4771:1;4764:31;4814:4;4811:1;4804:15;4838:4;4835:1;4828:15;4854:422;4943:1;4986:5;4943:1;5000:270;5021:7;5011:8;5008:21;5000:270;;;5080:4;5076:1;5072:6;5068:17;5062:4;5059:27;5056:53;;;5089:18;;:::i;:::-;5139:7;5129:8;5125:22;5122:55;;;5159:16;;;;5122:55;5238:22;;;;5198:15;;;;5000:270;;;5004:3;4854:422;;;;;:::o;5281:806::-;5330:5;5360:8;5350:80;;-1:-1:-1;5401:1:1;5415:5;;5350:80;5449:4;5439:76;;-1:-1:-1;5486:1:1;5500:5;;5439:76;5531:4;5549:1;5544:59;;;;5617:1;5612:130;;;;5524:218;;5544:59;5574:1;5565:10;;5588:5;;;5612:130;5649:3;5639:8;5636:17;5633:43;;;5656:18;;:::i;:::-;-1:-1:-1;;5712:1:1;5698:16;;5727:5;;5524:218;;5826:2;5816:8;5813:16;5807:3;5801:4;5798:13;5794:36;5788:2;5778:8;5775:16;5770:2;5764:4;5761:12;5757:35;5754:77;5751:159;;;-1:-1:-1;5863:19:1;;;5895:5;;5751:159;5942:34;5967:8;5961:4;5942:34;:::i;:::-;6012:6;6008:1;6004:6;6000:19;5991:7;5988:32;5985:58;;;6023:18;;:::i;:::-;6061:20;;5281:806;-1:-1:-1;;;5281:806:1:o;6092:140::-;6150:5;6179:47;6220:4;6210:8;6206:19;6200:4;6179:47;:::i;6237:168::-;6310:9;;;6341;;6358:15;;;6352:22;;6338:37;6328:71;;6379:18;;:::i;6410:380::-;6489:1;6485:12;;;;6532;;;6553:61;;6607:4;6599:6;6595:17;6585:27;;6553:61;6660:2;6652:6;6649:14;6629:18;6626:38;6623:161;;6706:10;6701:3;6697:20;6694:1;6687:31;6741:4;6738:1;6731:15;6769:4;6766:1;6759:15;6623:161;;6410:380;;;:::o;7204:128::-;7271:9;;;7292:11;;;7289:37;;;7306:18;;:::i;7337:125::-;7402:9;;;7423:10;;;7420:36;;;7436:18;;:::i;9888:245::-;9955:6;10008:2;9996:9;9987:7;9983:23;9979:32;9976:52;;;10024:1;10021;10014:12;9976:52;10056:9;10050:16;10075:28;10097:5;10075:28;:::i;14046:217::-;14086:1;14112;14102:132;;14156:10;14151:3;14147:20;14144:1;14137:31;14191:4;14188:1;14181:15;14219:4;14216:1;14209:15;14102:132;-1:-1:-1;14248:9:1;;14046:217::o;15617:127::-;15678:10;15673:3;15669:20;15666:1;15659:31;15709:4;15706:1;15699:15;15733:4;15730:1;15723:15;15749:251;15819:6;15872:2;15860:9;15851:7;15847:23;15843:32;15840:52;;;15888:1;15885;15878:12;15840:52;15920:9;15914:16;15939:31;15964:5;15939:31;:::i;16005:980::-;16267:4;16315:3;16304:9;16300:19;16346:6;16335:9;16328:25;16372:2;16410:6;16405:2;16394:9;16390:18;16383:34;16453:3;16448:2;16437:9;16433:18;16426:31;16477:6;16512;16506:13;16543:6;16535;16528:22;16581:3;16570:9;16566:19;16559:26;;16620:2;16612:6;16608:15;16594:29;;16641:1;16651:195;16665:6;16662:1;16659:13;16651:195;;;16730:13;;-1:-1:-1;;;;;16726:39:1;16714:52;;16821:15;;;;16786:12;;;;16762:1;16680:9;16651:195;;;-1:-1:-1;;;;;;;16902:32:1;;;;16897:2;16882:18;;16875:60;-1:-1:-1;;;16966:3:1;16951:19;16944:35;16863:3;16005:980;-1:-1:-1;;;16005:980:1:o;17602:306::-;17690:6;17698;17706;17759:2;17747:9;17738:7;17734:23;17730:32;17727:52;;;17775:1;17772;17765:12;17727:52;17804:9;17798:16;17788:26;;17854:2;17843:9;17839:18;17833:25;17823:35;;17898:2;17887:9;17883:18;17877:25;17867:35;;17602:306;;;;;:::o

Swarm Source

ipfs://881b3856907d2348d99f2e47a5301b740ff368ba370e897b8c192fee068d8656
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.