ETH Price: $3,317.21 (-0.91%)
 

Overview

Max Total Supply

1,000,000,000 NINJAD

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
43.269100186338616243 NINJAD

Value
$0.00
0xeb3bfce240ef1a7848b2dd0fd17de595767b5cf5
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:
NINJADOGE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-06
*/

// https://t.me/NinjaDoge https://twitter.com/dogeninja


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

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 1e6 * 10**18;

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

    address public marketingWallet = 0xD6f94F96151b3938DC81850a56277321154da1CA;
    address public devWallet = 0x801858b5F3F21DCE5454ab66404539e3C4Ffb6Db;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

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

    mapping(address => bool) public exemptFee;

    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() BEP20("NINJA DOGE", "NINJAD") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a uniswap 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[deadWallet] = true;
        exemptFee[0x6fae8E527f8f678ae9bab9450907959fa451D88D] = true;
        exemptFee[0x6cbC65d2b4A5EbBeF53F3140FCFF49dCca6A463b] = 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");
        }

        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 (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

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

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) 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);
            }

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake 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
            deadWallet,
            block.timestamp
        );
    }

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

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

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

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

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        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 < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    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 rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBSC20(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":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":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","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":[],"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"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":"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":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916905569d3c21bcecceda10000006008556003600a556063600b55600c80546001600160a01b031990811673d6f94f96151b3938dc81850a56277321154da1ca17909155600d805490911673801858b5f3f21dce5454ab66404539e3c4ffb6db179055600160808190525f60a081905260c0829052600e829055600f819055601082905561014060405260e08290526101008190526101208290526011829055601255601355348015620000bd575f80fd5b506040518060400160405280600a8152602001694e494e4a4120444f474560b01b8152506040518060400160405280600681526020016513925392905160d21b81525081600390816200011191906200052c565b5060046200012082826200052c565b5050506200013d62000137620003e460201b60201c565b620003e8565b6200016633620001506012600a62000703565b6200016090633b9aca006200071a565b62000439565b335f908152601460209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f4919062000734565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000240573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000266919062000734565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d7919062000734565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260146020526040808220805460ff199081166001908117909255600c54851684528284208054821683179055600d54909416835290822080548416821790557f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db0080548416821790557f6dc6ae95edbdfb7b8a3a90e93017304ab6735377f00721f280643058983d036b8054841682179055736cbc65d2b4a5ebbef53f3140fcff49dcca6a463b9091527fd7a3899acfb726ac9b1cdd9053a78b20607e3e94f42db3b6a4a9de17029f519980549092161790556200075c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b557607f821691505b602082108103620004d457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000527575f81815260208120601f850160051c81016020861015620005025750805b601f850160051c820191505b8181101562000523578281556001016200050e565b5050505b505050565b81516001600160401b038111156200054857620005486200048c565b6200056081620005598454620004a0565b84620004da565b602080601f83116001811462000596575f84156200057e5750858301515b5f19600386901b1c1916600185901b17855562000523565b5f85815260208120601f198616915b82811015620005c657888601518255948401946001909101908401620005a5565b5085821015620005e457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200064857815f19048211156200062c576200062c620005f4565b808516156200063a57918102915b93841c93908002906200060d565b509250929050565b5f826200066057506001620006fd565b816200066e57505f620006fd565b81600181146200068757600281146200069257620006b2565b6001915050620006fd565b60ff841115620006a657620006a6620005f4565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d7575081810a620006fd565b620006e3838362000608565b805f1904821115620006f957620006f9620005f4565b0290505b92915050565b5f6200071360ff84168362000650565b9392505050565b8082028115828204841417620006fd57620006fd620005f4565b5f6020828403121562000745575f80fd5b81516001600160a01b038116811462000713575f80fd5b612278806200076a5f395ff3fe608060405260043610610220575f3560e01c8063715018a61161011e578063a9059cbb116100a8578063edaa11681161006d578063edaa116814610681578063f2fde38b146106a0578063f66895a3146106bf578063f887ea40146106dd578063fbe6324e146106fc575f80fd5b8063a9059cbb146105b2578063aacebbe3146105d1578063c5d32bb2146105f0578063c9300ed51461061e578063dd62ed3e1461063d575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105245780638ea5220f1461054157806395d89b4114610560578063a457c2d714610574578063a8aa1b3114610593575f80fd5b8063715018a61461048b578063728f8eea1461049f57806375f0a874146104d857806385141a771461050f575f80fd5b8063274a533c116101aa578063441b1d301161016f578063441b1d30146103da5780634a2b3b13146103f95780634ada218b146104185780634e736f221461043857806370a0823114610457575f80fd5b8063274a533c1461034d578063313ce56714610362578063355496ca1461037d578063395093511461039c57806342b6fa11146103bb575f80fd5b80631675d802116101f05780631675d802146102c457806318160ddd146102e75780631816467f146102fb5780631d97b7cd1461031a57806323b872dd1461032e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e375a5c146102845780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f61071c565b60405161024c9190611c84565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611cf3565b6107ac565b604051901515815260200161024c565b34801561028f575f80fd5b506102a361029e366004611d49565b6107c2565b005b3480156102b0575f80fd5b506102a36102bf366004611e1b565b61085e565b3480156102cf575f80fd5b506102d960085481565b60405190815260200161024c565b3480156102f2575f80fd5b506002546102d9565b348015610306575f80fd5b506102a3610315366004611e3d565b6108a6565b348015610325575f80fd5b506102a3610918565b348015610339575f80fd5b50610274610348366004611e58565b6109b7565b348015610358575f80fd5b506102d960095481565b34801561036d575f80fd5b506040516012815260200161024c565b348015610388575f80fd5b506102a3610397366004611e96565b610a66565b3480156103a7575f80fd5b506102746103b6366004611cf3565b610aba565b3480156103c6575f80fd5b506102a36103d5366004611ecd565b610af0565b3480156103e5575f80fd5b506102a36103f4366004611ecd565b610baf565b348015610404575f80fd5b506102a3610413366004611ee4565b610c14565b348015610423575f80fd5b5060075461027490600160b01b900460ff1681565b348015610443575f80fd5b506102a3610452366004611ee4565b610cca565b348015610462575f80fd5b506102d9610471366004611e3d565b6001600160a01b03165f9081526020819052604090205490565b348015610496575f80fd5b506102a3610d28565b3480156104aa575f80fd5b50600e54600f546010546104bd92919083565b6040805193845260208401929092529082015260600161024c565b3480156104e3575f80fd5b50600c546104f7906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561051a575f80fd5b506104f761dead81565b34801561052f575f80fd5b506005546001600160a01b03166104f7565b34801561054c575f80fd5b50600d546104f7906001600160a01b031681565b34801561056b575f80fd5b5061023f610d5d565b34801561057f575f80fd5b5061027461058e366004611cf3565b610d6c565b34801561059e575f80fd5b506007546104f7906001600160a01b031681565b3480156105bd575f80fd5b506102746105cc366004611cf3565b610e06565b3480156105dc575f80fd5b506102a36105eb366004611e3d565b610e12565b3480156105fb575f80fd5b5061027461060a366004611e3d565b60146020525f908152604090205460ff1681565b348015610629575f80fd5b506102a3610638366004611cf3565b610e84565b348015610648575f80fd5b506102d9610657366004611f0d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561068c575f80fd5b506102a361069b366004611ecd565b610fb4565b3480156106ab575f80fd5b506102a36106ba366004611e3d565b6110a9565b3480156106ca575f80fd5b506011546012546013546104bd92919083565b3480156106e8575f80fd5b506006546104f7906001600160a01b031681565b348015610707575f80fd5b5060075461027490600160a81b900460ff1681565b60606003805461072b90611f39565b80601f016020809104026020016040519081016040528092919081815260200182805461075790611f39565b80156107a25780601f10610779576101008083540402835291602001916107a2565b820191905f5260205f20905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b5f6107b8338484611144565b5060015b92915050565b6005546001600160a01b031633146107f55760405162461bcd60e51b81526004016107ec90611f71565b60405180910390fd5b5f5b8251811015610859578160145f85848151811061081657610816611fa6565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061085181611fce565b9150506107f7565b505050565b6005546001600160a01b031633146108885760405162461bcd60e51b81526004016107ec90611f71565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108d05760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166108f65760405162461bcd60e51b81526004016107ec90611fe6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff161561099c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107ec565b6007805461ffff60a81b191661010160a81b17905543600955565b5f6109c3848484611267565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a475760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ec565b610a5b8533610a568685612028565b611144565b506001949350505050565b6005546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107b8918590610a5690869061203b565b6005546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016107ec90611f71565b62989680811115610b935760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016107ec565b610b9f6012600a61212e565b610ba9908261213c565b60085550565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016107ec90611f71565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c10573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052600e839055600f8290556010819055600c81610c72848661203b565b610c7c919061203b565b11156108595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c65737300000060448201526064016107ec565b6005546001600160a01b03163314610cf45760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052601183905560128290556013819055600c81610c72848661203b565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016107ec90611f71565b610d5b5f6115d9565b565b60606004805461072b90611f39565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ded5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ec565b610dfc3385610a568685612028565b5060019392505050565b5f6107b8338484611267565b6005546001600160a01b03163314610e3c5760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b038116610e625760405162461bcd60e51b81526004016107ec90611fe6565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107ec90611f71565b306001600160a01b03831603610f255760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107ec565b816001600160a01b031663a9059cbb610f466005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f90573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190612153565b6005546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff16156110465760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107ec565b600581106110a45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016107ec565b600a55565b6005546001600160a01b031633146110d35760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166111385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ec565b611141816115d9565b50565b6001600160a01b0383166111a65760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ec565b6001600160a01b0382166112075760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ec565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ec565b6001600160a01b0383165f9081526014602052604090205460ff1615801561130857506001600160a01b0382165f9081526014602052604090205460ff16155b1561135c57600754600160b01b900460ff1661135c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107ec565b5f805f61138060405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526014602052604081205460ff161580156113c057506001600160a01b0387165f9081526014602052604090205460ff16155b80156113da5750600a546009546113d7919061203b565b43105b600754909150600160a01b900460ff168061140c57506001600160a01b0388165f9081526014602052604090205460ff165b8061142e57506001600160a01b0387165f9081526014602052604090205460ff165b1561143b575f925061153a565b6007546001600160a01b038881169116148015611456575080155b156114a65760135460115460125461146e919061203b565b611478919061203b565b604080516060810182526011548152601254602082015260135491810191909152909550859450915061153a565b6007546001600160a01b0389811691161480156114d157506006546001600160a01b03888116911614155b80156114db575080155b1561152b57601054600e54600f546114f3919061203b565b6114fd919061203b565b60408051606081018252600e548152600f54602082015260105491810191909152909550859450915061153a565b801561153a57600b5494508493505b6064611546858861213c565b611550919061216e565b600754909350600160a81b900460ff16801561157a57506007546001600160a01b03898116911614155b1561158957611589858361162a565b61159d8888611598868a612028565b61179a565b82156115cf5784156115cf575f60646115b6878961213c565b6115c0919061216e565b90506115cd89308361179a565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c10576007805460ff60a01b1916600160a01b179055811561178957305f908152602081905260409020546008548110611787576001600854111561167c57506008545b5f61168884600261213c565b90505f8184602001518461169c919061213c565b6116a6919061216e565b90505f6116b38285612028565b9050476116bf82611970565b5f6116ca8247612028565b90505f8760200151866116dd9190612028565b6116e7908361216e565b90505f8860200151826116fa919061213c565b9050801561170c5761170c8682611ac0565b88515f9061171b84600261213c565b611725919061213c565b9050801561174357600c54611743906001600160a01b031682611b6f565b60408a01515f9061175585600261213c565b61175f919061213c565b9050801561177d57600d5461177d906001600160a01b031682611b6f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166117fe5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ec565b6001600160a01b0382166118605760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ec565b6001600160a01b0383165f90815260208190526040902054818110156118d75760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ec565b6118e18282612028565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061191690849061203b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196291815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a3576119a3611fa6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1e919061218d565b81600181518110611a3157611a31611fa6565b6001600160a01b039283166020918202929092010152600654611a579130911684611144565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8f9085905f908690309042906004016121a8565b5f604051808303815f87803b158015611aa6575f80fd5b505af1158015611ab8573d5f803e3d5ffd5b505050505050565b600654611ad89030906001600160a01b031684611144565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611b43573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b689190612217565b5050505050565b80471015611bbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ec565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c08576040519150601f19603f3d011682016040523d82523d5f602084013e611c0d565b606091505b50509050806108595760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ec565b5f6020808352835180828501525f5b81811015611caf57858101830151858201604001528201611c93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611141575f80fd5b8035611cee81611ccf565b919050565b5f8060408385031215611d04575f80fd5b8235611d0f81611ccf565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611141575f80fd5b8035611cee81611d31565b5f8060408385031215611d5a575f80fd5b823567ffffffffffffffff80821115611d71575f80fd5b818501915085601f830112611d84575f80fd5b8135602082821115611d9857611d98611d1d565b8160051b604051601f19603f83011681018181108682111715611dbd57611dbd611d1d565b604052928352818301935084810182019289841115611dda575f80fd5b948201945b83861015611dff57611df086611ce3565b85529482019493820193611ddf565b9650611e0e9050878201611d3e565b9450505050509250929050565b5f60208284031215611e2b575f80fd5b8135611e3681611d31565b9392505050565b5f60208284031215611e4d575f80fd5b8135611e3681611ccf565b5f805f60608486031215611e6a575f80fd5b8335611e7581611ccf565b92506020840135611e8581611ccf565b929592945050506040919091013590565b5f8060408385031215611ea7575f80fd5b8235611eb281611ccf565b91506020830135611ec281611d31565b809150509250929050565b5f60208284031215611edd575f80fd5b5035919050565b5f805f60608486031215611ef6575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f1e575f80fd5b8235611f2981611ccf565b91506020830135611ec281611ccf565b600181811c90821680611f4d57607f821691505b602082108103611f6b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611fdf57611fdf611fba565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b818103818111156107bc576107bc611fba565b808201808211156107bc576107bc611fba565b600181815b8085111561208857815f190482111561206e5761206e611fba565b8085161561207b57918102915b93841c9390800290612053565b509250929050565b5f8261209e575060016107bc565b816120aa57505f6107bc565b81600181146120c057600281146120ca576120e6565b60019150506107bc565b60ff8411156120db576120db611fba565b50506001821b6107bc565b5060208310610133831016604e8410600b8410161715612109575081810a6107bc565b612113838361204e565b805f190482111561212657612126611fba565b029392505050565b5f611e3660ff841683612090565b80820281158282048414176107bc576107bc611fba565b5f60208284031215612163575f80fd5b8151611e3681611d31565b5f8261218857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561219d575f80fd5b8151611e3681611ccf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612229575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bf697f13a3f647caa0013a7edfb6622b4959b3d4d1a07a16248e48f8787d8c7464736f6c63430008150033

Deployed Bytecode

0x608060405260043610610220575f3560e01c8063715018a61161011e578063a9059cbb116100a8578063edaa11681161006d578063edaa116814610681578063f2fde38b146106a0578063f66895a3146106bf578063f887ea40146106dd578063fbe6324e146106fc575f80fd5b8063a9059cbb146105b2578063aacebbe3146105d1578063c5d32bb2146105f0578063c9300ed51461061e578063dd62ed3e1461063d575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105245780638ea5220f1461054157806395d89b4114610560578063a457c2d714610574578063a8aa1b3114610593575f80fd5b8063715018a61461048b578063728f8eea1461049f57806375f0a874146104d857806385141a771461050f575f80fd5b8063274a533c116101aa578063441b1d301161016f578063441b1d30146103da5780634a2b3b13146103f95780634ada218b146104185780634e736f221461043857806370a0823114610457575f80fd5b8063274a533c1461034d578063313ce56714610362578063355496ca1461037d578063395093511461039c57806342b6fa11146103bb575f80fd5b80631675d802116101f05780631675d802146102c457806318160ddd146102e75780631816467f146102fb5780631d97b7cd1461031a57806323b872dd1461032e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e375a5c146102845780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f61071c565b60405161024c9190611c84565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611cf3565b6107ac565b604051901515815260200161024c565b34801561028f575f80fd5b506102a361029e366004611d49565b6107c2565b005b3480156102b0575f80fd5b506102a36102bf366004611e1b565b61085e565b3480156102cf575f80fd5b506102d960085481565b60405190815260200161024c565b3480156102f2575f80fd5b506002546102d9565b348015610306575f80fd5b506102a3610315366004611e3d565b6108a6565b348015610325575f80fd5b506102a3610918565b348015610339575f80fd5b50610274610348366004611e58565b6109b7565b348015610358575f80fd5b506102d960095481565b34801561036d575f80fd5b506040516012815260200161024c565b348015610388575f80fd5b506102a3610397366004611e96565b610a66565b3480156103a7575f80fd5b506102746103b6366004611cf3565b610aba565b3480156103c6575f80fd5b506102a36103d5366004611ecd565b610af0565b3480156103e5575f80fd5b506102a36103f4366004611ecd565b610baf565b348015610404575f80fd5b506102a3610413366004611ee4565b610c14565b348015610423575f80fd5b5060075461027490600160b01b900460ff1681565b348015610443575f80fd5b506102a3610452366004611ee4565b610cca565b348015610462575f80fd5b506102d9610471366004611e3d565b6001600160a01b03165f9081526020819052604090205490565b348015610496575f80fd5b506102a3610d28565b3480156104aa575f80fd5b50600e54600f546010546104bd92919083565b6040805193845260208401929092529082015260600161024c565b3480156104e3575f80fd5b50600c546104f7906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561051a575f80fd5b506104f761dead81565b34801561052f575f80fd5b506005546001600160a01b03166104f7565b34801561054c575f80fd5b50600d546104f7906001600160a01b031681565b34801561056b575f80fd5b5061023f610d5d565b34801561057f575f80fd5b5061027461058e366004611cf3565b610d6c565b34801561059e575f80fd5b506007546104f7906001600160a01b031681565b3480156105bd575f80fd5b506102746105cc366004611cf3565b610e06565b3480156105dc575f80fd5b506102a36105eb366004611e3d565b610e12565b3480156105fb575f80fd5b5061027461060a366004611e3d565b60146020525f908152604090205460ff1681565b348015610629575f80fd5b506102a3610638366004611cf3565b610e84565b348015610648575f80fd5b506102d9610657366004611f0d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561068c575f80fd5b506102a361069b366004611ecd565b610fb4565b3480156106ab575f80fd5b506102a36106ba366004611e3d565b6110a9565b3480156106ca575f80fd5b506011546012546013546104bd92919083565b3480156106e8575f80fd5b506006546104f7906001600160a01b031681565b348015610707575f80fd5b5060075461027490600160a81b900460ff1681565b60606003805461072b90611f39565b80601f016020809104026020016040519081016040528092919081815260200182805461075790611f39565b80156107a25780601f10610779576101008083540402835291602001916107a2565b820191905f5260205f20905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b5f6107b8338484611144565b5060015b92915050565b6005546001600160a01b031633146107f55760405162461bcd60e51b81526004016107ec90611f71565b60405180910390fd5b5f5b8251811015610859578160145f85848151811061081657610816611fa6565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061085181611fce565b9150506107f7565b505050565b6005546001600160a01b031633146108885760405162461bcd60e51b81526004016107ec90611f71565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108d05760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166108f65760405162461bcd60e51b81526004016107ec90611fe6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff161561099c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107ec565b6007805461ffff60a81b191661010160a81b17905543600955565b5f6109c3848484611267565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a475760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ec565b610a5b8533610a568685612028565b611144565b506001949350505050565b6005546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107b8918590610a5690869061203b565b6005546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016107ec90611f71565b62989680811115610b935760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016107ec565b610b9f6012600a61212e565b610ba9908261213c565b60085550565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016107ec90611f71565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c10573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052600e839055600f8290556010819055600c81610c72848661203b565b610c7c919061203b565b11156108595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c65737300000060448201526064016107ec565b6005546001600160a01b03163314610cf45760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052601183905560128290556013819055600c81610c72848661203b565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016107ec90611f71565b610d5b5f6115d9565b565b60606004805461072b90611f39565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ded5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ec565b610dfc3385610a568685612028565b5060019392505050565b5f6107b8338484611267565b6005546001600160a01b03163314610e3c5760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b038116610e625760405162461bcd60e51b81526004016107ec90611fe6565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107ec90611f71565b306001600160a01b03831603610f255760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107ec565b816001600160a01b031663a9059cbb610f466005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f90573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190612153565b6005546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff16156110465760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107ec565b600581106110a45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016107ec565b600a55565b6005546001600160a01b031633146110d35760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166111385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ec565b611141816115d9565b50565b6001600160a01b0383166111a65760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ec565b6001600160a01b0382166112075760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ec565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ec565b6001600160a01b0383165f9081526014602052604090205460ff1615801561130857506001600160a01b0382165f9081526014602052604090205460ff16155b1561135c57600754600160b01b900460ff1661135c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107ec565b5f805f61138060405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526014602052604081205460ff161580156113c057506001600160a01b0387165f9081526014602052604090205460ff16155b80156113da5750600a546009546113d7919061203b565b43105b600754909150600160a01b900460ff168061140c57506001600160a01b0388165f9081526014602052604090205460ff165b8061142e57506001600160a01b0387165f9081526014602052604090205460ff165b1561143b575f925061153a565b6007546001600160a01b038881169116148015611456575080155b156114a65760135460115460125461146e919061203b565b611478919061203b565b604080516060810182526011548152601254602082015260135491810191909152909550859450915061153a565b6007546001600160a01b0389811691161480156114d157506006546001600160a01b03888116911614155b80156114db575080155b1561152b57601054600e54600f546114f3919061203b565b6114fd919061203b565b60408051606081018252600e548152600f54602082015260105491810191909152909550859450915061153a565b801561153a57600b5494508493505b6064611546858861213c565b611550919061216e565b600754909350600160a81b900460ff16801561157a57506007546001600160a01b03898116911614155b1561158957611589858361162a565b61159d8888611598868a612028565b61179a565b82156115cf5784156115cf575f60646115b6878961213c565b6115c0919061216e565b90506115cd89308361179a565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c10576007805460ff60a01b1916600160a01b179055811561178957305f908152602081905260409020546008548110611787576001600854111561167c57506008545b5f61168884600261213c565b90505f8184602001518461169c919061213c565b6116a6919061216e565b90505f6116b38285612028565b9050476116bf82611970565b5f6116ca8247612028565b90505f8760200151866116dd9190612028565b6116e7908361216e565b90505f8860200151826116fa919061213c565b9050801561170c5761170c8682611ac0565b88515f9061171b84600261213c565b611725919061213c565b9050801561174357600c54611743906001600160a01b031682611b6f565b60408a01515f9061175585600261213c565b61175f919061213c565b9050801561177d57600d5461177d906001600160a01b031682611b6f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166117fe5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ec565b6001600160a01b0382166118605760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ec565b6001600160a01b0383165f90815260208190526040902054818110156118d75760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ec565b6118e18282612028565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061191690849061203b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196291815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a3576119a3611fa6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1e919061218d565b81600181518110611a3157611a31611fa6565b6001600160a01b039283166020918202929092010152600654611a579130911684611144565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8f9085905f908690309042906004016121a8565b5f604051808303815f87803b158015611aa6575f80fd5b505af1158015611ab8573d5f803e3d5ffd5b505050505050565b600654611ad89030906001600160a01b031684611144565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611b43573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b689190612217565b5050505050565b80471015611bbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ec565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c08576040519150601f19603f3d011682016040523d82523d5f602084013e611c0d565b606091505b50509050806108595760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ec565b5f6020808352835180828501525f5b81811015611caf57858101830151858201604001528201611c93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611141575f80fd5b8035611cee81611ccf565b919050565b5f8060408385031215611d04575f80fd5b8235611d0f81611ccf565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611141575f80fd5b8035611cee81611d31565b5f8060408385031215611d5a575f80fd5b823567ffffffffffffffff80821115611d71575f80fd5b818501915085601f830112611d84575f80fd5b8135602082821115611d9857611d98611d1d565b8160051b604051601f19603f83011681018181108682111715611dbd57611dbd611d1d565b604052928352818301935084810182019289841115611dda575f80fd5b948201945b83861015611dff57611df086611ce3565b85529482019493820193611ddf565b9650611e0e9050878201611d3e565b9450505050509250929050565b5f60208284031215611e2b575f80fd5b8135611e3681611d31565b9392505050565b5f60208284031215611e4d575f80fd5b8135611e3681611ccf565b5f805f60608486031215611e6a575f80fd5b8335611e7581611ccf565b92506020840135611e8581611ccf565b929592945050506040919091013590565b5f8060408385031215611ea7575f80fd5b8235611eb281611ccf565b91506020830135611ec281611d31565b809150509250929050565b5f60208284031215611edd575f80fd5b5035919050565b5f805f60608486031215611ef6575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f1e575f80fd5b8235611f2981611ccf565b91506020830135611ec281611ccf565b600181811c90821680611f4d57607f821691505b602082108103611f6b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611fdf57611fdf611fba565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b818103818111156107bc576107bc611fba565b808201808211156107bc576107bc611fba565b600181815b8085111561208857815f190482111561206e5761206e611fba565b8085161561207b57918102915b93841c9390800290612053565b509250929050565b5f8261209e575060016107bc565b816120aa57505f6107bc565b81600181146120c057600281146120ca576120e6565b60019150506107bc565b60ff8411156120db576120db611fba565b50506001821b6107bc565b5060208310610133831016604e8410600b8410161715612109575081810a6107bc565b612113838361204e565b805f190482111561212657612126611fba565b029392505050565b5f611e3660ff841683612090565b80820281158282048414176107bc576107bc611fba565b5f60208284031215612163575f80fd5b8151611e3681611d31565b5f8261218857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561219d575f80fd5b8151611e3681611ccf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612229575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bf697f13a3f647caa0013a7edfb6622b4959b3d4d1a07a16248e48f8787d8c7464736f6c63430008150033

Deployed Bytecode Sourcemap

11809:10668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13651:161;;;;;;;;;;-1:-1:-1;13651:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;13651:161:0;1162:187:1;21851:202:0;;;;;;;;;;-1:-1:-1;21851:202:0;;;;;:::i;:::-;;:::i;:::-;;19810:152;;;;;;;;;;-1:-1:-1;19810:152:0;;;;;:::i;:::-;;:::i;12077:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;12077:53:0;3184:177:1;3560:108:0;;;;;;;;;;-1:-1:-1;3648:12:0;;3560:108;;21532:183;;;;;;;;;;-1:-1:-1;21532:183:0;;;;;:::i;:::-;;:::i;20841:222::-;;;;;;;;;;;;;:::i;13820:448::-;;;;;;;;;;-1:-1:-1;13820:448:0;;;;;:::i;:::-;;:::i;12139:28::-;;;;;;;;;;;;;;;;3402:93;;;;;;;;;;-1:-1:-1;3402:93:0;;3485:2;4221:36:1;;4209:2;4194:18;3402:93:0;4079:184:1;21723:120:0;;;;;;;;;;-1:-1:-1;21723:120:0;;;;;:::i;:::-;;:::i;14276:248::-;;;;;;;;;;-1:-1:-1;14276:248:0;;;;;:::i;:::-;;:::i;19970:280::-;;;;;;;;;;-1:-1:-1;19970:280:0;;;;;:::i;:::-;;:::i;22061:112::-;;;;;;;;;;-1:-1:-1;22061:112:0;;;;;:::i;:::-;;:::i;20258:281::-;;;;;;;;;;-1:-1:-1;20258:281:0;;;;;:::i;:::-;;:::i;12034:34::-;;;;;;;;;;-1:-1:-1;12034:34:0;;;;-1:-1:-1;;;12034:34:0;;;;;;20547:286;;;;;;;;;;-1:-1:-1;20547:286:0;;;;;:::i;:::-;;:::i;3731:127::-;;;;;;;;;;-1:-1:-1;3731:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3832:18:0;3805:7;3832:18;;;;;;;;;;;;3731:127;10472:94;;;;;;;;;;;;;:::i;12601:35::-;;;;;;;;;;-1:-1:-1;12601:35:0;;;;;;;;;;;;;;;;5363:25:1;;;5419:2;5404:18;;5397:34;;;;5447:18;;;5440:34;5351:2;5336:18;12601:35:0;5161:319:1;12248:75:0;;;;;;;;;;-1:-1:-1;12248:75:0;;;;-1:-1:-1;;;;;12248:75:0;;;;;;-1:-1:-1;;;;;5649:32:1;;;5631:51;;5619:2;5604:18;12248:75:0;5485:203:1;12406:79:0;;;;;;;;;;;;12443:42;12406:79;;10249:87;;;;;;;;;;-1:-1:-1;10322:6:0;;-1:-1:-1;;;;;10322:6:0;10249:87;;12330:69;;;;;;;;;;-1:-1:-1;12330:69:0;;;;-1:-1:-1;;;;;12330:69:0;;;2659:104;;;;;;;;;;;;;:::i;14532:410::-;;;;;;;;;;-1:-1:-1;14532:410:0;;;;;:::i;:::-;;:::i;11923:19::-;;;;;;;;;;-1:-1:-1;11923:19:0;;;;-1:-1:-1;;;;;11923:19:0;;;14950:165;;;;;;;;;;-1:-1:-1;14950:165:0;;;;;:::i;:::-;;:::i;21329:195::-;;;;;;;;;;-1:-1:-1;21329:195:0;;;;;:::i;:::-;;:::i;12691:41::-;;;;;;;;;;-1:-1:-1;12691:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22181:238;;;;;;;;;;-1:-1:-1;22181:238:0;;;;;:::i;:::-;;:::i;4350:201::-;;;;;;;;;;-1:-1:-1;4350:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4516:18:0;;;4484:7;4516:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4350:201;21071:250;;;;;;;;;;-1:-1:-1;21071:250:0;;;;;:::i;:::-;;:::i;10574:192::-;;;;;;;;;;-1:-1:-1;10574:192:0;;;;;:::i;:::-;;:::i;12643:39::-;;;;;;;;;;-1:-1:-1;12643:39:0;;;;;;;;;;;;11895:21;;;;;;;;;;-1:-1:-1;11895:21:0;;;;-1:-1:-1;;;;;11895:21:0;;;11989:38;;;;;;;;;;-1:-1:-1;11989:38:0;;;;-1:-1:-1;;;11989:38:0;;;;;;2440:100;2494:13;2527:5;2520:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:100;:::o;13651:161::-;13726:4;13743:39;242:10;13766:7;13775:6;13743:8;:39::i;:::-;-1:-1:-1;13800:4:0;13651:161;;;;;:::o;21851:202::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;;;;;;;;;21948:9:::1;21943:103;21967:8;:15;21963:1;:19;21943:103;;;22029:5;22004:9;:22;22014:8;22023:1;22014:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22004:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22004:22:0;:30;;-1:-1:-1;;22004:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21984:3;::::1;::::0;::::1;:::i;:::-;;;;21943:103;;;;21851:202:::0;;:::o;19810:152::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;19928:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19928:26:0::1;-1:-1:-1::0;;;;19928:26:0;;::::1;::::0;;;::::1;::::0;;19810:152::o;21532:183::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21614:23:0;::::1;21606:69;;;;-1:-1:-1::0;;;21606:69:0::1;;;;;;;:::i;:::-;21686:9;:21:::0;;-1:-1:-1;;;;;;21686:21:0::1;-1:-1:-1::0;;;;;21686:21:0;;;::::1;::::0;;;::::1;::::0;;21532:183::o;20841:222::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;20905:14:::1;::::0;-1:-1:-1;;;20905:14:0;::::1;;;20904:15;20896:52;;;::::0;-1:-1:-1;;;20896:52:0;;8064:2:1;20896:52:0::1;::::0;::::1;8046:21:1::0;8103:2;8083:18;;;8076:30;8142:26;8122:18;;;8115:54;8186:18;;20896:52:0::1;7862:348:1::0;20896:52:0::1;20959:14;:21:::0;;-1:-1:-1;;;;20991:25:0;-1:-1:-1;;;20991:25:0;;;21043:12:::1;21027:13;:28:::0;20841:222::o;13820:448::-;13952:4;13969:36;13979:6;13987:9;13998:6;13969:9;:36::i;:::-;-1:-1:-1;;;;;14045:19:0;;14018:24;14045:19;;;:11;:19;;;;;;;;242:10;14045:33;;;;;;;;14097:26;;;;14089:79;;;;-1:-1:-1;;;14089:79:0;;8417:2:1;14089:79:0;;;8399:21:1;8456:2;8436:18;;;8429:30;8495:34;8475:18;;;8468:62;-1:-1:-1;;;8546:18:1;;;8539:38;8594:19;;14089:79:0;8215:404:1;14089:79:0;14179:57;14188:6;242:10;14210:25;14229:6;14210:16;:25;:::i;:::-;14179:8;:57::i;:::-;-1:-1:-1;14256:4:0;;13820:448;-1:-1:-1;;;;13820:448:0:o;21723:120::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21808:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;21808:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21723:120::o;14276:248::-;242:10;14392:4;14446:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14446:34:0;;;;;;;;;;14392:4;;14414:80;;14437:7;;14446:47;;14483:10;;14446:47;:::i;19970:280::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;20108:3:::1;20094:10;:17;;20086:92;;;::::0;-1:-1:-1;;;20086:92:0;;9089:2:1;20086:92:0::1;::::0;::::1;9071:21:1::0;9128:2;9108:18;;;9101:30;9167:34;9147:18;;;9140:62;9238:32;9218:18;;;9211:60;9288:19;;20086:92:0::1;8887:426:1::0;20086:92:0::1;20228:14;3485:2:::0;20228::::1;:14;:::i;:::-;20215:27;::::0;:10;:27:::1;:::i;:::-;20189:23;:53:::0;-1:-1:-1;19970:280:0:o;22061:112::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;10322:6;;22129:36:::1;::::0;-1:-1:-1;;;;;10322:6:0;;;;22129:36;::::1;;;::::0;22155:9;;22129:36:::1;::::0;;;22155:9;10322:6;22129:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22061:112:::0;:::o;20258:281::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;20405:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20397:5:::1;:43:::0;;;;;;;;;;;20495:2:::1;20435:4:::0;20460:23:::1;20423:10:::0;20411;20460:23:::1;:::i;:::-;:30;;;;:::i;:::-;20459:38;;20451:80;;;::::0;-1:-1:-1;;;20451:80:0;;11076:2:1;20451:80:0::1;::::0;::::1;11058:21:1::0;11115:2;11095:18;;;11088:30;11154:31;11134:18;;;11127:59;11203:18;;20451:80:0::1;10874:353:1::0;20547:286:0;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;20699:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20687:9:::1;:47:::0;;;;;;;;;;;20789:2:::1;20729:4:::0;20754:23:::1;20717:10:::0;20705;20754:23:::1;:::i;10472:94::-:0;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;10537:21:::1;10555:1;10537:9;:21::i;:::-;10472:94::o:0;2659:104::-;2715:13;2748:7;2741:14;;;;;:::i;14532:410::-;242:10;14653:4;14702:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14702:34:0;;;;;;;;;;14755:35;;;;14747:85;;;;-1:-1:-1;;;14747:85:0;;11434:2:1;14747:85:0;;;11416:21:1;11473:2;11453:18;;;11446:30;11512:34;11492:18;;;11485:62;-1:-1:-1;;;11563:18:1;;;11556:35;11608:19;;14747:85:0;11232:401:1;14747:85:0;14843:67;242:10;14866:7;14875:34;14894:15;14875:16;:34;:::i;14843:67::-;-1:-1:-1;14930:4:0;;14532:410;-1:-1:-1;;;14532:410:0:o;14950:165::-;15028:4;15045:40;15055:10;15067:9;15078:6;15045:9;:40::i;21329:195::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21417:23:0;::::1;21409:69;;;;-1:-1:-1::0;;;21409:69:0::1;;;;;;;:::i;:::-;21489:15;:27:::0;;-1:-1:-1;;;;;;21489:27:0::1;-1:-1:-1::0;;;;;21489:27:0;;;::::1;::::0;;;::::1;::::0;;21329:195::o;22181:238::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;22294:4:::1;-1:-1:-1::0;;;;;22274:25:0;::::1;::::0;22266:92:::1;;;::::0;-1:-1:-1;;;22266:92:0;;11840:2:1;22266:92:0::1;::::0;::::1;11822:21:1::0;11879:2;11859:18;;;11852:30;11918:34;11898:18;;;11891:62;-1:-1:-1;;;11969:18:1;;;11962:52;12031:19;;22266:92:0::1;11638:418:1::0;22266:92:0::1;22376:8;-1:-1:-1::0;;;;;22369:25:0::1;;22395:7;10322:6:::0;;-1:-1:-1;;;;;10322:6:0;;10249:87;22395:7:::1;22369:42;::::0;-1:-1:-1;;;;;;22369:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12253:32:1;;;22369:42:0::1;::::0;::::1;12235:51:1::0;12302:18;;;12295:34;;;12208:18;;22369:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21071:250::-:0;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;21153:14:::1;::::0;-1:-1:-1;;;21153:14:0;::::1;;;21152:15;21144:65;;;::::0;-1:-1:-1;;;21144:65:0;;12792:2:1;21144:65:0::1;::::0;::::1;12774:21:1::0;12831:2;12811:18;;;12804:30;12870:34;12850:18;;;12843:62;-1:-1:-1;;;12921:18:1;;;12914:35;12966:19;;21144:65:0::1;12590:401:1::0;21144:65:0::1;21240:1;21228:9;:13;21220:62;;;::::0;-1:-1:-1;;;21220:62:0;;13198:2:1;21220:62:0::1;::::0;::::1;13180:21:1::0;13237:2;13217:18;;;13210:30;13276:34;13256:18;;;13249:62;-1:-1:-1;;;13327:18:1;;;13320:35;13372:19;;21220:62:0::1;12996:401:1::0;21220:62:0::1;21293:8;:20:::0;21071:250::o;10574:192::-;10322:6;;-1:-1:-1;;;;;10322:6:0;242:10;10384:23;10376:68;;;;-1:-1:-1;;;10376:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10663:22:0;::::1;10655:73;;;::::0;-1:-1:-1;;;10655:73:0;;13604:2:1;10655:73:0::1;::::0;::::1;13586:21:1::0;13643:2;13623:18;;;13616:30;13682:34;13662:18;;;13655:62;-1:-1:-1;;;13733:18:1;;;13726:36;13779:19;;10655:73:0::1;13402:402:1::0;10655:73:0::1;10739:19;10749:8;10739:9;:19::i;:::-;10574:192:::0;:::o;9282:380::-;-1:-1:-1;;;;;9418:19:0;;9410:68;;;;-1:-1:-1;;;9410:68:0;;14011:2:1;9410:68:0;;;13993:21:1;14050:2;14030:18;;;14023:30;14089:34;14069:18;;;14062:62;-1:-1:-1;;;14140:18:1;;;14133:34;14184:19;;9410:68:0;13809:400:1;9410:68:0;-1:-1:-1;;;;;9497:21:0;;9489:68;;;;-1:-1:-1;;;9489:68:0;;14416:2:1;9489:68:0;;;14398:21:1;14455:2;14435:18;;;14428:30;14494:34;14474:18;;;14467:62;-1:-1:-1;;;14545:18:1;;;14538:32;14587:19;;9489:68:0;14214:398:1;9489:68:0;-1:-1:-1;;;;;9570:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9622:32;;3330:25:1;;;9622:32:0;;3303:18:1;9622:32:0;;;;;;;9282:380;;;:::o;15123:2018::-;15273:1;15264:6;:10;15256:64;;;;-1:-1:-1;;;15256:64:0;;14819:2:1;15256:64:0;;;14801:21:1;14858:2;14838:18;;;14831:30;14897:34;14877:18;;;14870:62;-1:-1:-1;;;14948:18:1;;;14941:39;14997:19;;15256:64:0;14617:405:1;15256:64:0;-1:-1:-1;;;;;15338:17:0;;;;;;:9;:17;;;;;;;;15337:18;:43;;;;-1:-1:-1;;;;;;15360:20:0;;;;;;:9;:20;;;;;;;;15359:21;15337:43;15333:122;;;15405:14;;-1:-1:-1;;;15405:14:0;;;;15397:46;;;;-1:-1:-1;;;15397:46:0;;15229:2:1;15397:46:0;;;15211:21:1;15268:2;15248:18;;;15241:30;-1:-1:-1;;;15287:18:1;;;15280:49;15346:18;;15397:46:0;15027:343:1;15397:46:0;15467:15;15493:14;15518:11;15540:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;15540:25:0;-1:-1:-1;;;;;15599:17:0;;15578;15599;;;:9;:17;;;;;;;;15598:18;:56;;;;-1:-1:-1;;;;;;15634:20:0;;;;;;:9;:20;;;;;;;;15633:21;15598:56;:112;;;;;15702:8;;15686:13;;:24;;;;:::i;:::-;15671:12;:39;15598:112;15798:10;;15578:132;;-1:-1:-1;;;;15798:10:0;;;;;:31;;-1:-1:-1;;;;;;15812:17:0;;;;;;:9;:17;;;;;;;;15798:31;:55;;;-1:-1:-1;;;;;;15833:20:0;;;;;;:9;:20;;;;;;;;15798:55;15794:767;;;15874:1;15868:7;;15794:767;;;15939:4;;-1:-1:-1;;;;;15926:17:0;;;15939:4;;15926:17;:34;;;;;15948:12;15947:13;15926:34;15922:639;;;16088:13;;:9;16043:19;16004;;:58;;16043:19;16004:58;:::i;:::-;:97;;;;:::i;:::-;16147:24;;;;;;;;16162:9;16147:24;;;;;;;;;;;;;;;;;;15977:124;;-1:-1:-1;15977:124:0;;-1:-1:-1;16147:24:0;-1:-1:-1;15922:639:0;;;16203:4;;-1:-1:-1;;;;;16193:14:0;;;16203:4;;16193:14;:46;;;;-1:-1:-1;16232:6:0;;-1:-1:-1;;;;;16211:28:0;;;16232:6;;16211:28;;16193:46;:63;;;;;16244:12;16243:13;16193:63;16189:372;;;16370:9;;:5;16335:15;16300;;:50;;16335:15;16300:50;:::i;:::-;:79;;;;:::i;:::-;16426:20;;;;;;;;16441:5;16426:20;;;;;;;;;;;;;;;;;;16273:106;;-1:-1:-1;16273:106:0;;-1:-1:-1;16426:20:0;-1:-1:-1;16189:372:0;;;16468:12;16464:97;;;16507:9;;;-1:-1:-1;16507:9:0;;-1:-1:-1;16464:97:0;16599:3;16580:15;16589:6;16580;:15;:::i;:::-;16579:23;;;;:::i;:::-;16716:18;;16573:29;;-1:-1:-1;;;;16716:18:0;;;;:36;;;;-1:-1:-1;16748:4:0;;-1:-1:-1;;;;;16738:14:0;;;16748:4;;16738:14;;16716:36;16712:72;;;16754:30;16762:7;16771:12;16754:7;:30::i;:::-;16826:48;16842:6;16850:9;16861:12;16870:3;16861:6;:12;:::i;:::-;16826:15;:48::i;:::-;16889:7;;16885:249;;16961:11;;16957:164;;16993:17;17034:3;17014:16;17023:7;17014:6;:16;:::i;:::-;17013:24;;;;:::i;:::-;16993:44;;17056:49;17072:6;17088:4;17095:9;17056:15;:49::i;:::-;16974:147;16957:164;15245:1896;;;;;15123:2018;;;:::o;10774:173::-;10849:6;;;-1:-1:-1;;;;;10866:17:0;;;-1:-1:-1;;;;;;10866:17:0;;;;;;;10899:40;;10849:6;;;10866:17;10849:6;;10899:40;;10830:16;;10899:40;10819:128;10774:173;:::o;17149:1603::-;12780:10;;-1:-1:-1;;;12780:10:0;;;;12775:110;;12807:10;:17;;-1:-1:-1;;;;12807:17:0;-1:-1:-1;;;12807:17:0;;;17240:49;;17271:7:::1;17240:49;17345:4;17301:23;3832:18:::0;;;;;;;;;;;17385:23:::1;::::0;17366:42;::::1;17362:1383;;17455:1;17429:23;;:27;17425:109;;;-1:-1:-1::0;17495:23:0::1;::::0;17425:109:::1;17605:19;17627:11;:7:::0;17637:1:::1;17627:11;:::i;:::-;17605:33;;17653:32;17747:11;17707:9;:19;;;17689:15;:37;;;;:::i;:::-;17688:70;;;;:::i;:::-;17653:105:::0;-1:-1:-1;17773:14:0::1;17790:42;17653:105:::0;17790:15;:42:::1;:::i;:::-;17773:59:::0;-1:-1:-1;17874:21:0::1;17912:24;17773:59:::0;17912:16:::1;:24::i;:::-;17953:20;17976:38;18000:14:::0;17976:21:::1;:38;:::i;:::-;17953:61;;18029:19;18081:9;:19;;;18067:11;:33;;;;:::i;:::-;18051:50;::::0;:12;:50:::1;:::i;:::-;18029:72;;18116:29;18162:9;:19;;;18148:11;:33;;;;:::i;:::-;18116:65:::0;-1:-1:-1;18202:25:0;;18198:172:::1;;18293:61;18306:24;18332:21;18293:12;:61::i;:::-;18427:19:::0;;18386:20:::1;::::0;18409:15:::1;:11:::0;18423:1:::1;18409:15;:::i;:::-;:37;;;;:::i;:::-;18386:60:::0;-1:-1:-1;18465:16:0;;18461:105:::1;;18510:15;::::0;18502:48:::1;::::0;-1:-1:-1;;;;;18510:15:0::1;18537:12:::0;18502:34:::1;:48::i;:::-;18617:13;::::0;::::1;::::0;18582:14:::1;::::0;18599:15:::1;:11:::0;18613:1:::1;18599:15;:::i;:::-;:31;;;;:::i;:::-;18582:48:::0;-1:-1:-1;18649:10:0;;18645:87:::1;;18688:9;::::0;18680:36:::1;::::0;-1:-1:-1;;;;;18688:9:0::1;18709:6:::0;18680:28:::1;:36::i;:::-;17410:1335;;;;;;;;;17362:1383;17227:1525;12839:1;12855:10:::0;:18;;-1:-1:-1;;;;12855:18:0;;;17149:1603;;:::o;7863:578::-;-1:-1:-1;;;;;8003:20:0;;7995:70;;;;-1:-1:-1;;;7995:70:0;;15799:2:1;7995:70:0;;;15781:21:1;15838:2;15818:18;;;15811:30;15877:34;15857:18;;;15850:62;-1:-1:-1;;;15928:18:1;;;15921:35;15973:19;;7995:70:0;15597:401:1;7995:70:0;-1:-1:-1;;;;;8084:23:0;;8076:71;;;;-1:-1:-1;;;8076:71:0;;16205:2:1;8076:71:0;;;16187:21:1;16244:2;16224:18;;;16217:30;16283:34;16263:18;;;16256:62;-1:-1:-1;;;16334:18:1;;;16327:33;16377:19;;8076:71:0;16003:399:1;8076:71:0;-1:-1:-1;;;;;8184:17:0;;8160:21;8184:17;;;;;;;;;;;8220:23;;;;8212:74;;;;-1:-1:-1;;;8212:74:0;;16609:2:1;8212:74:0;;;16591:21:1;16648:2;16628:18;;;16621:30;16687:34;16667:18;;;16660:62;-1:-1:-1;;;16738:18:1;;;16731:36;16784:19;;8212:74:0;16407:402:1;8212:74:0;8317:22;8333:6;8317:13;:22;:::i;:::-;-1:-1:-1;;;;;8297:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8350:20;;;;;;;;:30;;8374:6;;8297:9;8350:30;;8374:6;;8350:30;:::i;:::-;;;;;;;;8415:9;-1:-1:-1;;;;;8398:35:0;8407:6;-1:-1:-1;;;;;8398:35:0;;8426:6;8398:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8398:35:0;;;;;;;;7984:457;7863:578;;;:::o;18760:534::-;18910:16;;;18924:1;18910:16;;;;;;;;18886:21;;18910:16;;;;;;;;;;-1:-1:-1;18910:16:0;18886:40;;18955:4;18937;18942:1;18937:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18937:23:0;;;:7;;;;;;;;;;:23;;;;18981:6;;:13;;;-1:-1:-1;;;18981:13:0;;;;:6;;;;;:11;;:13;;;;;18937:7;;18981:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18971:4;18976:1;18971:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18971:23:0;;;:7;;;;;;;;;:23;19039:6;;19007:53;;19024:4;;19039:6;19048:11;19007:8;:53::i;:::-;19099:6;;:187;;-1:-1:-1;;;19099:187:0;;-1:-1:-1;;;;;19099:6:0;;;;:57;;:187;;19171:11;;19099:6;;19213:4;;19240;;19260:15;;19099:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18815:479;18760:534;:::o;19302:500::-;19482:6;;19450:53;;19467:4;;-1:-1:-1;;;;;19482:6:0;19491:11;19450:8;:53::i;:::-;19546:6;;:248;;-1:-1:-1;;;19546:248:0;;19611:4;19546:248;;;18396:34:1;18446:18;;;18439:34;;;19546:6:0;18489:18:1;;;18482:34;;;18532:18;;;18525:34;12443:42:0;18575:19:1;;;18568:44;19768:15:0;18628:19:1;;;18621:35;-1:-1:-1;;;;;19546:6:0;;;;:22;;19577:9;;18330:19:1;;19546:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19302:500;;:::o;9692:319::-;9807:6;9782:21;:31;;9774:73;;;;-1:-1:-1;;;9774:73:0;;19180:2:1;9774:73:0;;;19162:21:1;19219:2;19199:18;;;19192:30;19258:31;19238:18;;;19231:59;19307:18;;9774:73:0;18978:353:1;9774:73:0;9861:12;9879:9;-1:-1:-1;;;;;9879:14:0;9902:6;9879:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9860:54;;;9933:7;9925:78;;;;-1:-1:-1;;;9925:78:0;;19748:2:1;9925:78:0;;;19730:21:1;19787:2;19767:18;;;19760:30;19826:34;19806:18;;;19799:62;19897:28;19877:18;;;19870:56;19943:19;;9925:78:0;19546:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:247::-;3425:6;3478:2;3466:9;3457:7;3453:23;3449:32;3446:52;;;3494:1;3491;3484:12;3446:52;3533:9;3520:23;3552:31;3577:5;3552:31;:::i;3618:456::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3945:2:1;3930:18;;3917:32;3958:33;3917:32;3958:33;:::i;:::-;3618:456;;4010:7;;-1:-1:-1;;;4064:2:1;4049:18;;;;4036:32;;3618:456::o;4268:382::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;:::-;4518:5;-1:-1:-1;4575:2:1;4560:18;;4547:32;4588:30;4547:32;4588:30;:::i;:::-;4637:7;4627:17;;;4268:382;;;;;:::o;4655:180::-;4714:6;4767:2;4755:9;4746:7;4742:23;4738:32;4735:52;;;4783:1;4780;4773:12;4735:52;-1:-1:-1;4806:23:1;;4655:180;-1:-1:-1;4655:180:1:o;4840:316::-;4917:6;4925;4933;4986:2;4974:9;4965:7;4961:23;4957:32;4954:52;;;5002:1;4999;4992:12;4954:52;-1:-1:-1;;5025:23:1;;;5095:2;5080:18;;5067:32;;-1:-1:-1;5146:2:1;5131:18;;;5118:32;;4840:316;-1:-1:-1;4840:316:1:o;5693:388::-;5761:6;5769;5822:2;5810:9;5801:7;5797:23;5793:32;5790:52;;;5838:1;5835;5828:12;5790:52;5877:9;5864:23;5896:31;5921:5;5896:31;:::i;:::-;5946:5;-1:-1:-1;6003:2:1;5988:18;;5975:32;6016:33;5975:32;6016:33;:::i;6309:380::-;6388:1;6384:12;;;;6431;;;6452:61;;6506:4;6498:6;6494:17;6484:27;;6452:61;6559:2;6551:6;6548:14;6528:18;6525:38;6522:161;;6605:10;6600:3;6596:20;6593:1;6586:31;6640:4;6637:1;6630:15;6668:4;6665:1;6658:15;6522:161;;6309:380;;;:::o;6694:356::-;6896:2;6878:21;;;6915:18;;;6908:30;6974:34;6969:2;6954:18;;6947:62;7041:2;7026:18;;6694:356::o;7055:127::-;7116:10;7111:3;7107:20;7104:1;7097:31;7147:4;7144:1;7137:15;7171:4;7168:1;7161:15;7187:127;7248:10;7243:3;7239:20;7236:1;7229:31;7279:4;7276:1;7269:15;7303:4;7300:1;7293:15;7319:135;7358:3;7379:17;;;7376:43;;7399:18;;:::i;:::-;-1:-1:-1;7446:1:1;7435:13;;7319:135::o;7459:398::-;7661:2;7643:21;;;7700:2;7680:18;;;7673:30;7739:34;7734:2;7719:18;;7712:62;-1:-1:-1;;;7805:2:1;7790:18;;7783:32;7847:3;7832:19;;7459:398::o;8624:128::-;8691:9;;;8712:11;;;8709:37;;;8726:18;;:::i;8757:125::-;8822:9;;;8843:10;;;8840:36;;;8856:18;;:::i;9318:422::-;9407:1;9450:5;9407:1;9464:270;9485:7;9475:8;9472:21;9464:270;;;9544:4;9540:1;9536:6;9532:17;9526:4;9523:27;9520:53;;;9553:18;;:::i;:::-;9603:7;9593:8;9589:22;9586:55;;;9623:16;;;;9586:55;9702:22;;;;9662:15;;;;9464:270;;;9468:3;9318:422;;;;;:::o;9745:806::-;9794:5;9824:8;9814:80;;-1:-1:-1;9865:1:1;9879:5;;9814:80;9913:4;9903:76;;-1:-1:-1;9950:1:1;9964:5;;9903:76;9995:4;10013:1;10008:59;;;;10081:1;10076:130;;;;9988:218;;10008:59;10038:1;10029:10;;10052:5;;;10076:130;10113:3;10103:8;10100:17;10097:43;;;10120:18;;:::i;:::-;-1:-1:-1;;10176:1:1;10162:16;;10191:5;;9988:218;;10290:2;10280:8;10277:16;10271:3;10265:4;10262:13;10258:36;10252:2;10242:8;10239:16;10234:2;10228:4;10225:12;10221:35;10218:77;10215:159;;;-1:-1:-1;10327:19:1;;;10359:5;;10215:159;10406:34;10431:8;10425:4;10406:34;:::i;:::-;10476:6;10472:1;10468:6;10464:19;10455:7;10452:32;10449:58;;;10487:18;;:::i;:::-;10525:20;;9745:806;-1:-1:-1;;;9745:806:1:o;10556:140::-;10614:5;10643:47;10684:4;10674:8;10670:19;10664:4;10643:47;:::i;10701:168::-;10774:9;;;10805;;10822:15;;;10816:22;;10802:37;10792:71;;10843:18;;:::i;12340:245::-;12407:6;12460:2;12448:9;12439:7;12435:23;12431:32;12428:52;;;12476:1;12473;12466:12;12428:52;12508:9;12502:16;12527:28;12549:5;12527:28;:::i;15375:217::-;15415:1;15441;15431:132;;15485:10;15480:3;15476:20;15473:1;15466:31;15520:4;15517:1;15510:15;15548:4;15545:1;15538:15;15431:132;-1:-1:-1;15577:9:1;;15375:217::o;16814:251::-;16884:6;16937:2;16925:9;16916:7;16912:23;16908:32;16905:52;;;16953:1;16950;16943:12;16905:52;16985:9;16979:16;17004:31;17029:5;17004:31;:::i;17070:980::-;17332:4;17380:3;17369:9;17365:19;17411:6;17400:9;17393:25;17437:2;17475:6;17470:2;17459:9;17455:18;17448:34;17518:3;17513:2;17502:9;17498:18;17491:31;17542:6;17577;17571:13;17608:6;17600;17593:22;17646:3;17635:9;17631:19;17624:26;;17685:2;17677:6;17673:15;17659:29;;17706:1;17716:195;17730:6;17727:1;17724:13;17716:195;;;17795:13;;-1:-1:-1;;;;;17791:39:1;17779:52;;17886:15;;;;17851:12;;;;17827:1;17745:9;17716:195;;;-1:-1:-1;;;;;;;17967:32:1;;;;17962:2;17947:18;;17940:60;-1:-1:-1;;;18031:3:1;18016:19;18009:35;17928:3;17070:980;-1:-1:-1;;;17070:980:1:o;18667:306::-;18755:6;18763;18771;18824:2;18812:9;18803:7;18799:23;18795:32;18792:52;;;18840:1;18837;18830:12;18792:52;18869:9;18863:16;18853:26;;18919:2;18908:9;18904:18;18898:25;18888:35;;18963:2;18952:9;18948:18;18942:25;18932:35;;18667:306;;;;;:::o

Swarm Source

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