ETH Price: $2,251.51 (-9.00%)

Token

Lucifer (LCFR)
 

Overview

Max Total Supply

1,000,000 LCFR

Holders

3

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Lucifer

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

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

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 1e3 * 10**18;
    uint256 public maxBuyLimit = 1e4 * 10**18;
    uint256 public maxSellLimit = 1e4 * 10**18;
    uint256 public maxWalletLimit = 1e4 * 10**18;

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

    address public marketingWallet = 0x3F9703daE261B5e6718DFDf58b2F7e57ac0c3Dc1;
    address public gamedevWallet = 0x8BcFd8D6D91Ac7F075E57aED018A1eAD8F775d9D; 
    address private devWallet = 0x206e475b861B99390B2E507dB73973B44CC872f3;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

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

    mapping(address => bool) public exemptFee;

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

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

    constructor(address routerAdd) ERC20("Lucifer", "LCFR") {
        _tokengeneration(msg.sender, 1e6 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(routerAdd);
        // Create a pancake 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[gamedevWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true;

    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

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

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

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

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        uint256 _taxDenominator = sellTaxes.denominator;
        Taxes memory currentTaxes;

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

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

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

        fee = ((amount * feesum) / 100)/_taxDenominator;

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

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

        }
    }

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

        if(feeswap == 0){
            return;
        }	

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

            if (bnbToAddLiquidityWith > 0) {
                // Add liquidity to pancake
                addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
            }

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

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

            uint256 gamedevAmt = (unitBalance * 2 * swapTaxes.gamedev)/swapTaxes.denominator;
            if (gamedevAmt > 0) {
                payable(gamedevWallet).sendValue(gamedevAmt);
            }

        }
    }

    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 <= 1e4, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

        function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _gamedev,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _gamedev + _liquidity + _dev) <= 5 * taxes.denominator, "Must keep fees at 5% or less");
        taxes.marketing = _marketing;
        taxes.gamedev = _gamedev;
        taxes.liquidity = _liquidity;
        taxes.dev = _dev;
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _gamedev,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _gamedev + _liquidity + _dev) <= 5 * sellTaxes.denominator, "Must keep fees at 5% or less");
        sellTaxes.marketing = _marketing;
        sellTaxes.gamedev = _gamedev;
        sellTaxes.liquidity = _liquidity;
        sellTaxes.dev = _dev;
    }

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

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require (_deadline < 5,"Deadline should be less than 5");
        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 updateGamedevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        gamedevWallet = newWallet;
    }

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

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

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

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e3, "Cannot set max buy amount lower than 0.1%");
        require(maxSell >= 1e3, "Cannot set max sell amount lower than 0.1%");
        require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(devWallet).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");
        IERC20(tokenAdd).transfer(devWallet, amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"routerAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_gamedev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_gamedev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gamedevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateGamedevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b19168155683635c9adc5dea0000060085569021e19e0c9bab24000006009819055600a818155600b919091556003600d8190556103de600e55600f80546001600160a01b0319908116733f9703dae261b5e6718dfdf58b2f7e57ac0c3dc117909155601080548216738bcfd8d6d91ac7f075e57aed018a1ead8f775d9d1790556011805490911673206e475b861b99390b2e507db73973b44cc872f3179055608082905260a0839052600060c081905260e0829052610100839052601283905560138490556014819055601582905560168390556101c06040526101208390526101408490526101608190526101808290526101a08390526017839055601893909355601992909255601a91909155601b55601e805460ff19169055603c601f553480156200013857600080fd5b506040516200337b3803806200337b8339810160408190526200015b9162000679565b6040805180820182526007815266263ab1b4b332b960c91b6020808301918252835180850190945260048452632621a32960e11b908401528151919291620001a691600391620005d3565b508051620001bc906004906020840190620005d3565b505050620001d9620001d3620004c060201b60201c565b620004c4565b6200020133620001ec6012600a620006f4565b620001fb90620f4240620007b5565b62000516565b336000908152601c60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200025c57600080fd5b505afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000297919062000679565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e057600080fd5b505afa158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000679565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200036457600080fd5b505af115801562000379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039f919062000679565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601c6020526040808220805460ff199081166001908117909255600f54851684528284208054821683179055601154851684528284208054821683179055601054909416835290822080548416821790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548416821790557f6c1aff534cb60d09ff5c1e28020ddf8fa4318882dab0aa0fb74e99b43cee92b3805484168217905573407993575c91ce7643a4d4ccacc9a98c36ee1bbe9091527fca983b11a40e6ebbc4a86717da279b69d6b15152763691c82a8a73f1d0880af68054909216179055506200082a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200057f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620005e190620007d7565b90600052602060002090601f01602090048101928262000605576000855562000650565b82601f106200062057805160ff191683800117855562000650565b8280016001018555821562000650579182015b828111156200065057825182559160200191906001019062000633565b506200065e92915062000662565b5090565b5b808211156200065e576000815560010162000663565b6000602082840312156200068c57600080fd5b81516001600160a01b0381168114620006a457600080fd5b9392505050565b600181815b80851115620006ec578160001904821115620006d057620006d062000814565b80851615620006de57918102915b93841c9390800290620006b0565b509250929050565b6000620006a460ff8416836000826200071057506001620007af565b816200071f57506000620007af565b8160018114620007385760028114620007435762000763565b6001915050620007af565b60ff84111562000757576200075762000814565b50506001821b620007af565b5060208310610133831016604e8410600b841016171562000788575081810a620007af565b620007948383620006ab565b8060001904821115620007ab57620007ab62000814565b0290505b92915050565b6000816000190483118215151615620007d257620007d262000814565b500290565b600181811c90821680620007ec57607f821691505b602082108114156200080e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612b41806200083a6000396000f3fe60806040526004361061026b5760003560e01c806375f0a87411610144578063c5d32bb2116100b6578063e517f2b91161007a578063e517f2b91461074f578063edaa11681461076f578063ee36e3591461078f578063f2fde38b146107a9578063f887ea40146107c9578063fbe6324e146107e957600080fd5b8063c5d32bb214610683578063c9300ed5146106b3578063d2ce0db2146106d3578063dd62ed3e146106e9578063e1b450ad1461072f57600080fd5b80639321b676116101085780639321b676146105ce57806395d89b41146105ee578063a457c2d714610603578063a8aa1b3114610623578063a9059cbb14610643578063aacebbe31461066357600080fd5b806375f0a8741461052d57806385141a7714610565578063896348891461057b5780638a8c523c1461059b5780638da5cb5b146105b057600080fd5b8063313ce567116101dd5780634ada218b116101a15780634ada218b1461047f578063652e2f04146104a057806366a88d96146104b65780636aa5b37f146104cc57806370a08231146104e2578063715018a61461051857600080fd5b8063313ce567146103e3578063355496ca146103ff578063395093511461041f57806342b6fa111461043f578063441b1d301461045f57600080fd5b80631675d8021161022f5780631675d802146103345780631767e7fb1461035857806318160ddd146103785780631816467f1461038d57806323b872dd146103ad578063274a533c146103cd57600080fd5b806306fdde0314610277578063095ea7b3146102a25780630e375a5c146102d2578063105cafb6146102f45780631340538f1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c61080a565b60405161029991906127b5565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd3660046125ae565b61089c565b6040519015158152602001610299565b3480156102de57600080fd5b506102f26102ed3660046125da565b6108b3565b005b34801561030057600080fd5b506102f261030f366004612783565b610952565b34801561032057600080fd5b506102f261032f3660046126b8565b610a0c565b34801561034057600080fd5b5061034a60085481565b604051908152602001610299565b34801561036457600080fd5b506102f26103733660046124c5565b610a54565b34801561038457600080fd5b5060025461034a565b34801561039957600080fd5b506102f26103a83660046124c5565b610ac6565b3480156103b957600080fd5b506102c26103c836600461253f565b610b38565b3480156103d957600080fd5b5061034a600c5481565b3480156103ef57600080fd5b5060405160128152602001610299565b34801561040b57600080fd5b506102f261041a366004612580565b610be9565b34801561042b57600080fd5b506102c261043a3660046125ae565b610c3e565b34801561044b57600080fd5b506102f261045a366004612710565b610c75565b34801561046b57600080fd5b506102f261047a366004612710565b610d33565b34801561048b57600080fd5b506007546102c290600160b01b900460ff1681565b3480156104ac57600080fd5b5061034a600a5481565b3480156104c257600080fd5b5061034a600b5481565b3480156104d857600080fd5b5061034a60095481565b3480156104ee57600080fd5b5061034a6104fd3660046124c5565b6001600160a01b031660009081526020819052604090205490565b34801561052457600080fd5b506102f2610d9b565b34801561053957600080fd5b50600f5461054d906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561057157600080fd5b5061054d61dead81565b34801561058757600080fd5b5060105461054d906001600160a01b031681565b3480156105a757600080fd5b506102f2610dd1565b3480156105bc57600080fd5b506005546001600160a01b031661054d565b3480156105da57600080fd5b506102f26105e9366004612783565b610e70565b3480156105fa57600080fd5b5061028c610f2a565b34801561060f57600080fd5b506102c261061e3660046125ae565b610f39565b34801561062f57600080fd5b5060075461054d906001600160a01b031681565b34801561064f57600080fd5b506102c261065e3660046125ae565b610fd4565b34801561066f57600080fd5b506102f261067e3660046124c5565b610fe1565b34801561068f57600080fd5b506102c261069e3660046124c5565b601c6020526000908152604090205460ff1681565b3480156106bf57600080fd5b506102f26106ce3660046125ae565b611053565b3480156106df57600080fd5b5061034a601f5481565b3480156106f557600080fd5b5061034a610704366004612506565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561073b57600080fd5b506102f261074a366004612729565b61117b565b34801561075b57600080fd5b506102f261076a3660046126f2565b611324565b34801561077b57600080fd5b506102f261078a366004612710565b6113ca565b34801561079b57600080fd5b50601e546102c29060ff1681565b3480156107b557600080fd5b506102f26107c43660046124c5565b6114b1565b3480156107d557600080fd5b5060065461054d906001600160a01b031681565b3480156107f557600080fd5b506007546102c290600160a81b900460ff1681565b60606003805461081990612a50565b80601f016020809104026020016040519081016040528092919081815260200182805461084590612a50565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b5050505050905090565b60006108a933848461154c565b5060015b92915050565b6005546001600160a01b031633146108e65760405162461bcd60e51b81526004016108dd9061284c565b60405180910390fd5b60005b825181101561094d5781601c600085848151811061090957610909612abc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061094581612a8b565b9150506108e9565b505050565b6005546001600160a01b0316331461097c5760405162461bcd60e51b81526004016108dd9061284c565b601b5461098a906005612a1a565b818361099686886128f2565b6109a091906128f2565b6109aa91906128f2565b11156109f85760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016108dd565b601793909355601891909155601955601a55565b6005546001600160a01b03163314610a365760405162461bcd60e51b81526004016108dd9061284c565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b038116610aa45760405162461bcd60e51b81526004016108dd9061280a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af05760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b038116610b165760405162461bcd60e51b81526004016108dd9061280a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b45848484611670565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108dd565b610bde8533610bd98685612a39565b61154c565b506001949350505050565b6005546001600160a01b03163314610c135760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108a9918590610bd99086906128f2565b6005546001600160a01b03163314610c9f5760405162461bcd60e51b81526004016108dd9061284c565b612710811115610d175760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016108dd565b610d236012600a61296f565b610d2d9082612a1a565b60085550565b6005546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016108dd9061284c565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d97573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610dc55760405162461bcd60e51b81526004016108dd9061284c565b610dcf6000611d36565b565b6005546001600160a01b03163314610dfb5760405162461bcd60e51b81526004016108dd9061284c565b600754600160b01b900460ff1615610e555760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108dd565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610e9a5760405162461bcd60e51b81526004016108dd9061284c565b601654610ea8906005612a1a565b8183610eb486886128f2565b610ebe91906128f2565b610ec891906128f2565b1115610f165760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016108dd565b601293909355601391909155601455601555565b60606004805461081990612a50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108dd565b610fca3385610bd98685612a39565b5060019392505050565b60006108a9338484611670565b6005546001600160a01b0316331461100b5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0381166110315760405162461bcd60e51b81526004016108dd9061280a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461107d5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0382163014156110f55760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016108dd565b60115460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561114357600080fd5b505af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d91906126d5565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016108dd9061284c565b6103e88310156112095760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016108dd565b6103e882101561126e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016108dd565b6127108110156112d35760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b60648201526084016108dd565b6112df6012600a61296f565b6112e99084612a1a565b6009556112f86012600a61296f565b6113029083612a1a565b600a55601261131290600a61296f565b61131c9082612a1a565b600b55505050565b6005546001600160a01b0316331461134e5760405162461bcd60e51b81526004016108dd9061284c565b611359816001612a1a565b601f55601e805460ff1916831515179055603c811115610d975760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642031206d604482015265696e7574657360d01b60648201526084016108dd565b6005546001600160a01b031633146113f45760405162461bcd60e51b81526004016108dd9061284c565b600754600160b01b900460ff161561145c5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016108dd565b600581106114ac5760405162461bcd60e51b815260206004820152601e60248201527f446561646c696e652073686f756c64206265206c657373207468616e2035000060448201526064016108dd565b600d55565b6005546001600160a01b031633146114db5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0381166115405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108dd565b61154981611d36565b50565b6001600160a01b0383166115ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108dd565b6001600160a01b03821661160f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116116d25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108dd565b6001600160a01b0383166000908152601c602052604090205460ff1615801561171457506001600160a01b0382166000908152601c602052604090205460ff16155b1561176857600754600160b01b900460ff166117685760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108dd565b6007546001600160a01b03848116911614801561179e57506001600160a01b0382166000908152601c602052604090205460ff16155b80156117b45750600754600160a01b900460ff16155b156118865760095481111561180b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016108dd565b600b548161182e846001600160a01b031660009081526020819052604090205490565b61183891906128f2565b11156118865760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108dd565b6007546001600160a01b038481169116148015906118bd57506001600160a01b0382166000908152601c602052604090205460ff16155b80156118e257506001600160a01b0383166000908152601c602052604090205460ff16155b80156118f85750600754600160a01b900460ff16155b15611a7157600a5481111561194f5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016108dd565b6007546001600160a01b038381169116146119df57600b5481611987846001600160a01b031660009081526020819052604090205490565b61199191906128f2565b11156119df5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108dd565b601e5460ff1615611a71576001600160a01b0383166000908152601d6020526040812054611a0d9042612a39565b9050601f54811015611a545760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016108dd565b506001600160a01b0383166000908152601d602052604090204290555b6000806000806017600401549050611ab16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0388166000908152601c602052604081205460ff16158015611af357506001600160a01b0388166000908152601c602052604090205460ff16155b8015611b0d5750600d54600c54611b0a91906128f2565b43105b600754909150600160a01b900460ff1680611b4057506001600160a01b0389166000908152601c602052604090205460ff165b80611b6357506001600160a01b0388166000908152601c602052604090205460ff165b15611b715760009350611c7f565b6007546001600160a01b038981169116148015611b8c575080155b15611bfe57601a54601954601854601754611ba791906128f2565b611bb191906128f2565b611bbb91906128f2565b6040805160a0810182526017548152601854602082015260195491810191909152601a546060820152601b54608082018190529197508796509093509150611c7f565b80611c7057601554601454601354601254611c1991906128f2565b611c2391906128f2565b611c2d91906128f2565b6040805160a08101825260125481526013546020820152601454918101919091526015546060820152601654608082018190529197508796509093509150611c7f565b8015611c7f57600e5495508594505b826064611c8c878a612a1a565b611c96919061290a565b611ca0919061290a565b600754909450600160a81b900460ff168015611cca57506007546001600160a01b038a8116911614155b15611cd957611cd98683611d88565b611ced8989611ce8878b612a39565b611f8f565b8315611d2b578515611d2b576000836064611d08898b612a1a565b611d12919061290a565b611d1c919061290a565b9050611d298a3083611f8f565b505b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d97576007805460ff60a01b1916600160a01b17905581611db657611f7e565b306000908152602081905260409020546008548110611f7c5760016008541115611ddf57506008545b6000611dec846002612a1a565b9050600081846040015184611e019190612a1a565b611e0b919061290a565b90506000611e198285612a39565b905047611e2582612167565b6000611e318247612a39565b905060008760800151886040015187611e4a9190612a39565b611e54919061290a565b611e5e908361290a565b905060008860800151896040015183611e779190612a1a565b611e81919061290a565b90508015611e9357611e9386826122d0565b6080890151895160009190611ea9856002612a1a565b611eb39190612a1a565b611ebd919061290a565b90508015611edb57600f54611edb906001600160a01b031682612391565b60008a608001518b60600151856002611ef49190612a1a565b611efe9190612a1a565b611f08919061290a565b90508015611f2657601154611f26906001600160a01b031682612391565b60008b608001518c60200151866002611f3f9190612a1a565b611f499190612a1a565b611f53919061290a565b90508015611f7157601054611f71906001600160a01b031682612391565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611ff35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108dd565b6001600160a01b0382166120555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108dd565b6001600160a01b038316600090815260208190526040902054818110156120cd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108dd565b6120d78282612a39565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061210d9084906128f2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061219c5761219c612abc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121f057600080fd5b505afa158015612204573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222891906124e9565b8160018151811061223b5761223b612abc565b6001600160a01b039283166020918202929092010152600654612261913091168461154c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061229a908590600090869030904290600401612881565b600060405180830381600087803b1580156122b457600080fd5b505af11580156122c8573d6000803e3d6000fd5b505050505050565b6006546122e89030906001600160a01b03168461154c565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561235157600080fd5b505af1158015612365573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061238a9190612755565b5050505050565b804710156123e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108dd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461242e576040519150601f19603f3d011682016040523d82523d6000602084013e612433565b606091505b505090508061094d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108dd565b80356124b581612ae8565b919050565b80356124b581612afd565b6000602082840312156124d757600080fd5b81356124e281612ae8565b9392505050565b6000602082840312156124fb57600080fd5b81516124e281612ae8565b6000806040838503121561251957600080fd5b823561252481612ae8565b9150602083013561253481612ae8565b809150509250929050565b60008060006060848603121561255457600080fd5b833561255f81612ae8565b9250602084013561256f81612ae8565b929592945050506040919091013590565b6000806040838503121561259357600080fd5b823561259e81612ae8565b9150602083013561253481612afd565b600080604083850312156125c157600080fd5b82356125cc81612ae8565b946020939093013593505050565b600080604083850312156125ed57600080fd5b823567ffffffffffffffff8082111561260557600080fd5b818501915085601f83011261261957600080fd5b813560208282111561262d5761262d612ad2565b8160051b604051601f19603f8301168101818110868211171561265257612652612ad2565b604052838152828101945085830182870184018b101561267157600080fd5b600096505b8487101561269b57612687816124aa565b865260019690960195948301948301612676565b5096506126ab90508782016124ba565b9450505050509250929050565b6000602082840312156126ca57600080fd5b81356124e281612afd565b6000602082840312156126e757600080fd5b81516124e281612afd565b6000806040838503121561270557600080fd5b82356125cc81612afd565b60006020828403121561272257600080fd5b5035919050565b60008060006060848603121561273e57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561276a57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561279957600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156127e2578581018301518582016040015282016127c6565b818111156127f4576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d15784516001600160a01b0316835293830193918301916001016128ac565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561290557612905612aa6565b500190565b60008261292757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561296757816000190482111561294d5761294d612aa6565b8085161561295a57918102915b93841c9390800290612931565b509250929050565b60006124e260ff841683600082612988575060016108ad565b81612995575060006108ad565b81600181146129ab57600281146129b5576129d1565b60019150506108ad565b60ff8411156129c6576129c6612aa6565b50506001821b6108ad565b5060208310610133831016604e8410600b84101617156129f4575081810a6108ad565b6129fe838361292c565b8060001904821115612a1257612a12612aa6565b029392505050565b6000816000190483118215151615612a3457612a34612aa6565b500290565b600082821015612a4b57612a4b612aa6565b500390565b600181811c90821680612a6457607f821691505b60208210811415612a8557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a9f57612a9f612aa6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461154957600080fd5b801515811461154957600080fdfea264697066735822122017d6f09ae1ddd3aaaf649e68fcf5934091a5791b11e2dde676f5b63686c9b65864736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061026b5760003560e01c806375f0a87411610144578063c5d32bb2116100b6578063e517f2b91161007a578063e517f2b91461074f578063edaa11681461076f578063ee36e3591461078f578063f2fde38b146107a9578063f887ea40146107c9578063fbe6324e146107e957600080fd5b8063c5d32bb214610683578063c9300ed5146106b3578063d2ce0db2146106d3578063dd62ed3e146106e9578063e1b450ad1461072f57600080fd5b80639321b676116101085780639321b676146105ce57806395d89b41146105ee578063a457c2d714610603578063a8aa1b3114610623578063a9059cbb14610643578063aacebbe31461066357600080fd5b806375f0a8741461052d57806385141a7714610565578063896348891461057b5780638a8c523c1461059b5780638da5cb5b146105b057600080fd5b8063313ce567116101dd5780634ada218b116101a15780634ada218b1461047f578063652e2f04146104a057806366a88d96146104b65780636aa5b37f146104cc57806370a08231146104e2578063715018a61461051857600080fd5b8063313ce567146103e3578063355496ca146103ff578063395093511461041f57806342b6fa111461043f578063441b1d301461045f57600080fd5b80631675d8021161022f5780631675d802146103345780631767e7fb1461035857806318160ddd146103785780631816467f1461038d57806323b872dd146103ad578063274a533c146103cd57600080fd5b806306fdde0314610277578063095ea7b3146102a25780630e375a5c146102d2578063105cafb6146102f45780631340538f1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c61080a565b60405161029991906127b5565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd3660046125ae565b61089c565b6040519015158152602001610299565b3480156102de57600080fd5b506102f26102ed3660046125da565b6108b3565b005b34801561030057600080fd5b506102f261030f366004612783565b610952565b34801561032057600080fd5b506102f261032f3660046126b8565b610a0c565b34801561034057600080fd5b5061034a60085481565b604051908152602001610299565b34801561036457600080fd5b506102f26103733660046124c5565b610a54565b34801561038457600080fd5b5060025461034a565b34801561039957600080fd5b506102f26103a83660046124c5565b610ac6565b3480156103b957600080fd5b506102c26103c836600461253f565b610b38565b3480156103d957600080fd5b5061034a600c5481565b3480156103ef57600080fd5b5060405160128152602001610299565b34801561040b57600080fd5b506102f261041a366004612580565b610be9565b34801561042b57600080fd5b506102c261043a3660046125ae565b610c3e565b34801561044b57600080fd5b506102f261045a366004612710565b610c75565b34801561046b57600080fd5b506102f261047a366004612710565b610d33565b34801561048b57600080fd5b506007546102c290600160b01b900460ff1681565b3480156104ac57600080fd5b5061034a600a5481565b3480156104c257600080fd5b5061034a600b5481565b3480156104d857600080fd5b5061034a60095481565b3480156104ee57600080fd5b5061034a6104fd3660046124c5565b6001600160a01b031660009081526020819052604090205490565b34801561052457600080fd5b506102f2610d9b565b34801561053957600080fd5b50600f5461054d906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561057157600080fd5b5061054d61dead81565b34801561058757600080fd5b5060105461054d906001600160a01b031681565b3480156105a757600080fd5b506102f2610dd1565b3480156105bc57600080fd5b506005546001600160a01b031661054d565b3480156105da57600080fd5b506102f26105e9366004612783565b610e70565b3480156105fa57600080fd5b5061028c610f2a565b34801561060f57600080fd5b506102c261061e3660046125ae565b610f39565b34801561062f57600080fd5b5060075461054d906001600160a01b031681565b34801561064f57600080fd5b506102c261065e3660046125ae565b610fd4565b34801561066f57600080fd5b506102f261067e3660046124c5565b610fe1565b34801561068f57600080fd5b506102c261069e3660046124c5565b601c6020526000908152604090205460ff1681565b3480156106bf57600080fd5b506102f26106ce3660046125ae565b611053565b3480156106df57600080fd5b5061034a601f5481565b3480156106f557600080fd5b5061034a610704366004612506565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561073b57600080fd5b506102f261074a366004612729565b61117b565b34801561075b57600080fd5b506102f261076a3660046126f2565b611324565b34801561077b57600080fd5b506102f261078a366004612710565b6113ca565b34801561079b57600080fd5b50601e546102c29060ff1681565b3480156107b557600080fd5b506102f26107c43660046124c5565b6114b1565b3480156107d557600080fd5b5060065461054d906001600160a01b031681565b3480156107f557600080fd5b506007546102c290600160a81b900460ff1681565b60606003805461081990612a50565b80601f016020809104026020016040519081016040528092919081815260200182805461084590612a50565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b5050505050905090565b60006108a933848461154c565b5060015b92915050565b6005546001600160a01b031633146108e65760405162461bcd60e51b81526004016108dd9061284c565b60405180910390fd5b60005b825181101561094d5781601c600085848151811061090957610909612abc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061094581612a8b565b9150506108e9565b505050565b6005546001600160a01b0316331461097c5760405162461bcd60e51b81526004016108dd9061284c565b601b5461098a906005612a1a565b818361099686886128f2565b6109a091906128f2565b6109aa91906128f2565b11156109f85760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016108dd565b601793909355601891909155601955601a55565b6005546001600160a01b03163314610a365760405162461bcd60e51b81526004016108dd9061284c565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b038116610aa45760405162461bcd60e51b81526004016108dd9061280a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af05760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b038116610b165760405162461bcd60e51b81526004016108dd9061280a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b45848484611670565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108dd565b610bde8533610bd98685612a39565b61154c565b506001949350505050565b6005546001600160a01b03163314610c135760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108a9918590610bd99086906128f2565b6005546001600160a01b03163314610c9f5760405162461bcd60e51b81526004016108dd9061284c565b612710811115610d175760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016108dd565b610d236012600a61296f565b610d2d9082612a1a565b60085550565b6005546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016108dd9061284c565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d97573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610dc55760405162461bcd60e51b81526004016108dd9061284c565b610dcf6000611d36565b565b6005546001600160a01b03163314610dfb5760405162461bcd60e51b81526004016108dd9061284c565b600754600160b01b900460ff1615610e555760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016108dd565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610e9a5760405162461bcd60e51b81526004016108dd9061284c565b601654610ea8906005612a1a565b8183610eb486886128f2565b610ebe91906128f2565b610ec891906128f2565b1115610f165760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016108dd565b601293909355601391909155601455601555565b60606004805461081990612a50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108dd565b610fca3385610bd98685612a39565b5060019392505050565b60006108a9338484611670565b6005546001600160a01b0316331461100b5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0381166110315760405162461bcd60e51b81526004016108dd9061280a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461107d5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0382163014156110f55760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016108dd565b60115460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561114357600080fd5b505af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d91906126d5565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016108dd9061284c565b6103e88310156112095760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016108dd565b6103e882101561126e5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016108dd565b6127108110156112d35760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b60648201526084016108dd565b6112df6012600a61296f565b6112e99084612a1a565b6009556112f86012600a61296f565b6113029083612a1a565b600a55601261131290600a61296f565b61131c9082612a1a565b600b55505050565b6005546001600160a01b0316331461134e5760405162461bcd60e51b81526004016108dd9061284c565b611359816001612a1a565b601f55601e805460ff1916831515179055603c811115610d975760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642031206d604482015265696e7574657360d01b60648201526084016108dd565b6005546001600160a01b031633146113f45760405162461bcd60e51b81526004016108dd9061284c565b600754600160b01b900460ff161561145c5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016108dd565b600581106114ac5760405162461bcd60e51b815260206004820152601e60248201527f446561646c696e652073686f756c64206265206c657373207468616e2035000060448201526064016108dd565b600d55565b6005546001600160a01b031633146114db5760405162461bcd60e51b81526004016108dd9061284c565b6001600160a01b0381166115405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108dd565b61154981611d36565b50565b6001600160a01b0383166115ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108dd565b6001600160a01b03821661160f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116116d25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108dd565b6001600160a01b0383166000908152601c602052604090205460ff1615801561171457506001600160a01b0382166000908152601c602052604090205460ff16155b1561176857600754600160b01b900460ff166117685760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108dd565b6007546001600160a01b03848116911614801561179e57506001600160a01b0382166000908152601c602052604090205460ff16155b80156117b45750600754600160a01b900460ff16155b156118865760095481111561180b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016108dd565b600b548161182e846001600160a01b031660009081526020819052604090205490565b61183891906128f2565b11156118865760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108dd565b6007546001600160a01b038481169116148015906118bd57506001600160a01b0382166000908152601c602052604090205460ff16155b80156118e257506001600160a01b0383166000908152601c602052604090205460ff16155b80156118f85750600754600160a01b900460ff16155b15611a7157600a5481111561194f5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016108dd565b6007546001600160a01b038381169116146119df57600b5481611987846001600160a01b031660009081526020819052604090205490565b61199191906128f2565b11156119df5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108dd565b601e5460ff1615611a71576001600160a01b0383166000908152601d6020526040812054611a0d9042612a39565b9050601f54811015611a545760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016108dd565b506001600160a01b0383166000908152601d602052604090204290555b6000806000806017600401549050611ab16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0388166000908152601c602052604081205460ff16158015611af357506001600160a01b0388166000908152601c602052604090205460ff16155b8015611b0d5750600d54600c54611b0a91906128f2565b43105b600754909150600160a01b900460ff1680611b4057506001600160a01b0389166000908152601c602052604090205460ff165b80611b6357506001600160a01b0388166000908152601c602052604090205460ff165b15611b715760009350611c7f565b6007546001600160a01b038981169116148015611b8c575080155b15611bfe57601a54601954601854601754611ba791906128f2565b611bb191906128f2565b611bbb91906128f2565b6040805160a0810182526017548152601854602082015260195491810191909152601a546060820152601b54608082018190529197508796509093509150611c7f565b80611c7057601554601454601354601254611c1991906128f2565b611c2391906128f2565b611c2d91906128f2565b6040805160a08101825260125481526013546020820152601454918101919091526015546060820152601654608082018190529197508796509093509150611c7f565b8015611c7f57600e5495508594505b826064611c8c878a612a1a565b611c96919061290a565b611ca0919061290a565b600754909450600160a81b900460ff168015611cca57506007546001600160a01b038a8116911614155b15611cd957611cd98683611d88565b611ced8989611ce8878b612a39565b611f8f565b8315611d2b578515611d2b576000836064611d08898b612a1a565b611d12919061290a565b611d1c919061290a565b9050611d298a3083611f8f565b505b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d97576007805460ff60a01b1916600160a01b17905581611db657611f7e565b306000908152602081905260409020546008548110611f7c5760016008541115611ddf57506008545b6000611dec846002612a1a565b9050600081846040015184611e019190612a1a565b611e0b919061290a565b90506000611e198285612a39565b905047611e2582612167565b6000611e318247612a39565b905060008760800151886040015187611e4a9190612a39565b611e54919061290a565b611e5e908361290a565b905060008860800151896040015183611e779190612a1a565b611e81919061290a565b90508015611e9357611e9386826122d0565b6080890151895160009190611ea9856002612a1a565b611eb39190612a1a565b611ebd919061290a565b90508015611edb57600f54611edb906001600160a01b031682612391565b60008a608001518b60600151856002611ef49190612a1a565b611efe9190612a1a565b611f08919061290a565b90508015611f2657601154611f26906001600160a01b031682612391565b60008b608001518c60200151866002611f3f9190612a1a565b611f499190612a1a565b611f53919061290a565b90508015611f7157601054611f71906001600160a01b031682612391565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611ff35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108dd565b6001600160a01b0382166120555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108dd565b6001600160a01b038316600090815260208190526040902054818110156120cd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108dd565b6120d78282612a39565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061210d9084906128f2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061219c5761219c612abc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121f057600080fd5b505afa158015612204573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222891906124e9565b8160018151811061223b5761223b612abc565b6001600160a01b039283166020918202929092010152600654612261913091168461154c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061229a908590600090869030904290600401612881565b600060405180830381600087803b1580156122b457600080fd5b505af11580156122c8573d6000803e3d6000fd5b505050505050565b6006546122e89030906001600160a01b03168461154c565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561235157600080fd5b505af1158015612365573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061238a9190612755565b5050505050565b804710156123e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108dd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461242e576040519150601f19603f3d011682016040523d82523d6000602084013e612433565b606091505b505090508061094d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108dd565b80356124b581612ae8565b919050565b80356124b581612afd565b6000602082840312156124d757600080fd5b81356124e281612ae8565b9392505050565b6000602082840312156124fb57600080fd5b81516124e281612ae8565b6000806040838503121561251957600080fd5b823561252481612ae8565b9150602083013561253481612ae8565b809150509250929050565b60008060006060848603121561255457600080fd5b833561255f81612ae8565b9250602084013561256f81612ae8565b929592945050506040919091013590565b6000806040838503121561259357600080fd5b823561259e81612ae8565b9150602083013561253481612afd565b600080604083850312156125c157600080fd5b82356125cc81612ae8565b946020939093013593505050565b600080604083850312156125ed57600080fd5b823567ffffffffffffffff8082111561260557600080fd5b818501915085601f83011261261957600080fd5b813560208282111561262d5761262d612ad2565b8160051b604051601f19603f8301168101818110868211171561265257612652612ad2565b604052838152828101945085830182870184018b101561267157600080fd5b600096505b8487101561269b57612687816124aa565b865260019690960195948301948301612676565b5096506126ab90508782016124ba565b9450505050509250929050565b6000602082840312156126ca57600080fd5b81356124e281612afd565b6000602082840312156126e757600080fd5b81516124e281612afd565b6000806040838503121561270557600080fd5b82356125cc81612afd565b60006020828403121561272257600080fd5b5035919050565b60008060006060848603121561273e57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561276a57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561279957600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156127e2578581018301518582016040015282016127c6565b818111156127f4576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d15784516001600160a01b0316835293830193918301916001016128ac565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561290557612905612aa6565b500190565b60008261292757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561296757816000190482111561294d5761294d612aa6565b8085161561295a57918102915b93841c9390800290612931565b509250929050565b60006124e260ff841683600082612988575060016108ad565b81612995575060006108ad565b81600181146129ab57600281146129b5576129d1565b60019150506108ad565b60ff8411156129c6576129c6612aa6565b50506001821b6108ad565b5060208310610133831016604e8410600b84101617156129f4575081810a6108ad565b6129fe838361292c565b8060001904821115612a1257612a12612aa6565b029392505050565b6000816000190483118215151615612a3457612a34612aa6565b500290565b600082821015612a4b57612a4b612aa6565b500390565b600181811c90821680612a6457607f821691505b60208210811415612a8557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a9f57612a9f612aa6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461154957600080fd5b801515811461154957600080fdfea264697066735822122017d6f09ae1ddd3aaaf649e68fcf5934091a5791b11e2dde676f5b63686c9b65864736f6c63430008070033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAdd (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

13599:13828:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15947:161;;;;;;;;;;-1:-1:-1;15947:161:0;;;;;:::i;:::-;;:::i;:::-;;;7053:14:1;;7046:22;7028:41;;7016:2;7001:18;15947:161:0;6888:187:1;26291:202:0;;;;;;;;;;-1:-1:-1;26291:202:0;;;;;:::i;:::-;;:::i;:::-;;24402:444;;;;;;;;;;-1:-1:-1;24402:444:0;;;;;:::i;:::-;;:::i;23516:152::-;;;;;;;;;;-1:-1:-1;23516:152:0;;;;;:::i;:::-;;:::i;13870:53::-;;;;;;;;;;;;;;;;;;;18998:25:1;;;18986:2;18971:18;13870:53:0;18852:177:1;25731:191:0;;;;;;;;;;-1:-1:-1;25731:191:0;;;;;:::i;:::-;;:::i;3497:108::-;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;25540:183;;;;;;;;;;-1:-1:-1;25540:183:0;;;;;:::i;:::-;;:::i;16116:448::-;;;;;;;;;;-1:-1:-1;16116:448:0;;;;;:::i;:::-;;:::i;14080:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;20161:36:1;;20149:2;20134:18;3339:93:0;20019:184:1;26163:120:0;;;;;;;;;;-1:-1:-1;26163:120:0;;;;;:::i;:::-;;:::i;16572:248::-;;;;;;;;;;-1:-1:-1;16572:248:0;;;;;:::i;:::-;;:::i;23676:280::-;;;;;;;;;;-1:-1:-1;23676:280:0;;;;;:::i;:::-;;:::i;27007:114::-;;;;;;;;;;-1:-1:-1;27007:114:0;;;;;:::i;:::-;;:::i;13827:34::-;;;;;;;;;;-1:-1:-1;13827:34:0;;;;-1:-1:-1;;;13827:34:0;;;;;;13978:42;;;;;;;;;;;;;;;;14027:44;;;;;;;;;;;;;;;;13930:41;;;;;;;;;;;;;;;;3668:127;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;12262:94;;;;;;;;;;;;;:::i;14190:75::-;;;;;;;;;;-1:-1:-1;14190:75:0;;;;-1:-1:-1;;;;;14190:75:0;;;;;;-1:-1:-1;;;;;5953:32:1;;;5935:51;;5923:2;5908:18;14190:75:0;5789:203:1;14427:79:0;;;;;;;;;;;;14464:42;14427:79;;14272:73;;;;;;;;;;-1:-1:-1;14272:73:0;;;;-1:-1:-1;;;;;14272:73:0;;;24853:224;;;;;;;;;;;;;:::i;12039:87::-;;;;;;;;;;-1:-1:-1;12112:6:0;;-1:-1:-1;;;;;12112:6:0;12039:87;;23968:426;;;;;;;;;;-1:-1:-1;23968:426:0;;;;;:::i;:::-;;:::i;2596:104::-;;;;;;;;;;;;;:::i;16828:410::-;;;;;;;;;;-1:-1:-1;16828:410:0;;;;;:::i;:::-;;:::i;13711:19::-;;;;;;;;;;-1:-1:-1;13711:19:0;;;;-1:-1:-1;;;;;13711:19:0;;;17246:165;;;;;;;;;;-1:-1:-1;17246:165:0;;;;;:::i;:::-;;:::i;25337:195::-;;;;;;;;;;-1:-1:-1;25337:195:0;;;;;:::i;:::-;;:::i;14794:41::-;;;;;;;;;;-1:-1:-1;14794:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;27129:240;;;;;;;;;;-1:-1:-1;27129:240:0;;;;;:::i;:::-;;:::i;14955:40::-;;;;;;;;;;;;;;;;4287:201;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;26501:498;;;;;;;;;;-1:-1:-1;26501:498:0;;;;;:::i;:::-;;:::i;25930:225::-;;;;;;;;;;-1:-1:-1;25930:225:0;;;;;:::i;:::-;;:::i;25085:244::-;;;;;;;;;;-1:-1:-1;25085:244:0;;;;;:::i;:::-;;:::i;14913:35::-;;;;;;;;;;-1:-1:-1;14913:35:0;;;;;;;;12364:192;;;;;;;;;;-1:-1:-1;12364:192:0;;;;;:::i;:::-;;:::i;13683:21::-;;;;;;;;;;-1:-1:-1;13683:21:0;;;;-1:-1:-1;;;;;13683:21:0;;;13782:38;;;;;;;;;;-1:-1:-1;13782:38:0;;;;-1:-1:-1;;;13782:38:0;;;;;;2377:100;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;15947:161::-;16022:4;16039:39;179:10;16062:7;16071:6;16039:8;:39::i;:::-;-1:-1:-1;16096:4:0;15947:161;;;;;:::o;26291:202::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;;;;;;;;;26388:9:::1;26383:103;26407:8;:15;26403:1;:19;26383:103;;;26469:5;26444:9;:22;26454:8;26463:1;26454:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26444:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26444:22:0;:30;;-1:-1:-1;;26444:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26424:3;::::1;::::0;::::1;:::i;:::-;;;;26383:103;;;;26291:202:::0;;:::o;24402:444::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;24628:21;;24624:25:::1;::::0;:1:::1;:25;:::i;:::-;24615:4:::0;24602:10;24578:21:::1;24591:8:::0;24578:10;:21:::1;:::i;:::-;:34;;;;:::i;:::-;:41;;;;:::i;:::-;24577:72;;24569:113;;;::::0;-1:-1:-1;;;24569:113:0;;15307:2:1;24569:113:0::1;::::0;::::1;15289:21:1::0;15346:2;15326:18;;;15319:30;15385;15365:18;;;15358:58;15433:18;;24569:113:0::1;15105:352:1::0;24569:113:0::1;24693:9;:32:::0;;;;24736:17;:28;;;;24775:19;:32;24818:13;:20;24402:444::o;23516:152::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;23634:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;23634:26:0::1;-1:-1:-1::0;;;;23634:26:0;;::::1;::::0;;;::::1;::::0;;23516:152::o;25731:191::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25817:23:0;::::1;25809:69;;;;-1:-1:-1::0;;;25809:69:0::1;;;;;;;:::i;:::-;25889:13;:25:::0;;-1:-1:-1;;;;;;25889:25:0::1;-1:-1:-1::0;;;;;25889:25:0;;;::::1;::::0;;;::::1;::::0;;25731:191::o;25540:183::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25622:23:0;::::1;25614:69;;;;-1:-1:-1::0;;;25614:69:0::1;;;;;;;:::i;:::-;25694:9;:21:::0;;-1:-1:-1;;;;;;25694:21:0::1;-1:-1:-1::0;;;;;25694:21:0;;;::::1;::::0;;;::::1;::::0;;25540:183::o;16116:448::-;16248:4;16265:36;16275:6;16283:9;16294:6;16265:9;:36::i;:::-;-1:-1:-1;;;;;16341:19:0;;16314:24;16341:19;;;:11;:19;;;;;;;;179:10;16341:33;;;;;;;;16393:26;;;;16385:79;;;;-1:-1:-1;;;16385:79:0;;14127:2:1;16385:79:0;;;14109:21:1;14166:2;14146:18;;;14139:30;14205:34;14185:18;;;14178:62;-1:-1:-1;;;14256:18:1;;;14249:38;14304:19;;16385:79:0;13925:404:1;16385:79:0;16475:57;16484:6;179:10;16506:25;16525:6;16506:16;:25;:::i;:::-;16475:8;:57::i;:::-;-1:-1:-1;16552:4:0;;16116:448;-1:-1:-1;;;;16116:448:0:o;26163:120::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26248:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26248:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26163:120::o;16572:248::-;179:10;16688:4;16742:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16742:34:0;;;;;;;;;;16688:4;;16710:80;;16733:7;;16742:47;;16779:10;;16742:47;:::i;23676:280::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;23814:3:::1;23800:10;:17;;23792:92;;;::::0;-1:-1:-1;;;23792:92:0;;11281:2:1;23792:92:0::1;::::0;::::1;11263:21:1::0;11320:2;11300:18;;;11293:30;11359:34;11339:18;;;11332:62;11430:32;11410:18;;;11403:60;11480:19;;23792:92:0::1;11079:426:1::0;23792:92:0::1;23934:14;3422:2:::0;23934::::1;:14;:::i;:::-;23921:27;::::0;:10;:27:::1;:::i;:::-;23895:23;:53:::0;-1:-1:-1;23676:280:0:o;27007:114::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;27083:9:::1;::::0;27075:38:::1;::::0;-1:-1:-1;;;;;27083:9:0;;::::1;::::0;27075:38;::::1;;;::::0;27103:9;;27083::::1;27075:38:::0;27083:9;27075:38;27103:9;27083;27075:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27007:114:::0;:::o;12262:94::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;12327:21:::1;12345:1;12327:9;:21::i;:::-;12262:94::o:0;24853:224::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;24917:14:::1;::::0;-1:-1:-1;;;24917:14:0;::::1;;;24916:15;24908:54;;;::::0;-1:-1:-1;;;24908:54:0;;17934:2:1;24908:54:0::1;::::0;::::1;17916:21:1::0;17973:2;17953:18;;;17946:30;18012:28;17992:18;;;17985:56;18058:18;;24908:54:0::1;17732:350:1::0;24908:54:0::1;24973:14;:21:::0;;-1:-1:-1;;;;25005:25:0;-1:-1:-1;;;25005:25:0;;;25057:12:::1;25041:13;:28:::0;24853:224::o;23968:426::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;24196:17;;24192:21:::1;::::0;:1:::1;:21;:::i;:::-;24183:4:::0;24170:10;24146:21:::1;24159:8:::0;24146:10;:21:::1;:::i;:::-;:34;;;;:::i;:::-;:41;;;;:::i;:::-;24145:68;;24137:109;;;::::0;-1:-1:-1;;;24137:109:0;;15307:2:1;24137:109:0::1;::::0;::::1;15289:21:1::0;15346:2;15326:18;;;15319:30;15385;15365:18;;;15358:58;15433:18;;24137:109:0::1;15105:352:1::0;24137:109:0::1;24257:5;:28:::0;;;;24296:13;:24;;;;24331:15;:28;24370:9;:16;23968:426::o;2596:104::-;2652:13;2685:7;2678:14;;;;;:::i;16828:410::-;179:10;16949:4;16998:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16998:34:0;;;;;;;;;;17051:35;;;;17043:85;;;;-1:-1:-1;;;17043:85:0;;18648:2:1;17043:85:0;;;18630:21:1;18687:2;18667:18;;;18660:30;18726:34;18706:18;;;18699:62;-1:-1:-1;;;18777:18:1;;;18770:35;18822:19;;17043:85:0;18446:401:1;17043:85:0;17139:67;179:10;17162:7;17171:34;17190:15;17171:16;:34;:::i;17139:67::-;-1:-1:-1;17226:4:0;;16828:410;-1:-1:-1;;;16828:410:0:o;17246:165::-;17324:4;17341:40;17351:10;17363:9;17374:6;17341:9;:40::i;25337:195::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25425:23:0;::::1;25417:69;;;;-1:-1:-1::0;;;25417:69:0::1;;;;;;;:::i;:::-;25497:15;:27:::0;;-1:-1:-1;;;;;;25497:27:0::1;-1:-1:-1::0;;;;;25497:27:0;;;::::1;::::0;;;::::1;::::0;;25337:195::o;27129:240::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27222:25:0;::::1;27242:4;27222:25;;27214:92;;;::::0;-1:-1:-1;;;27214:92:0;;10090:2:1;27214:92:0::1;::::0;::::1;10072:21:1::0;10129:2;10109:18;;;10102:30;10168:34;10148:18;;;10141:62;-1:-1:-1;;;10219:18:1;;;10212:52;10281:19;;27214:92:0::1;9888:418:1::0;27214:92:0::1;27343:9;::::0;27317:44:::1;::::0;-1:-1:-1;;;27317:44:0;;-1:-1:-1;;;;;27343:9:0;;::::1;27317:44;::::0;::::1;6171:51:1::0;6238:18;;;6231:34;;;27317:25:0;;::::1;::::0;::::1;::::0;6144:18:1;;27317:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;26501:498::-:0;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;26627:3:::1;26617:6;:13;;26609:67;;;::::0;-1:-1:-1;;;26609:67:0;;12497:2:1;26609:67:0::1;::::0;::::1;12479:21:1::0;12536:2;12516:18;;;12509:30;12575:34;12555:18;;;12548:62;-1:-1:-1;;;12626:18:1;;;12619:39;12675:19;;26609:67:0::1;12295:405:1::0;26609:67:0::1;26706:3;26695:7;:14;;26687:69;;;::::0;-1:-1:-1;;;26687:69:0;;9679:2:1;26687:69:0::1;::::0;::::1;9661:21:1::0;9718:2;9698:18;;;9691:30;9757:34;9737:18;;;9730:62;-1:-1:-1;;;9808:18:1;;;9801:40;9858:19;;26687:69:0::1;9477:406:1::0;26687:69:0::1;26788:3;26775:9;:16;;26767:71;;;::::0;-1:-1:-1;;;26767:71:0;;12907:2:1;26767:71:0::1;::::0;::::1;12889:21:1::0;12946:2;12926:18;;;12919:30;12985:34;12965:18;;;12958:62;-1:-1:-1;;;13036:18:1;;;13029:40;13086:19;;26767:71:0::1;12705:406:1::0;26767:71:0::1;26872:14;3422:2:::0;26872::::1;:14;:::i;:::-;26863:23;::::0;:6;:23:::1;:::i;:::-;26849:11;:37:::0;26922:14:::1;3422:2:::0;26922::::1;:14;:::i;:::-;26912:24;::::0;:7;:24:::1;:::i;:::-;26897:12;:39:::0;3422:2;26976:14:::1;::::0;:2:::1;:14;:::i;:::-;26964:26;::::0;:9;:26:::1;:::i;:::-;26947:14;:43:::0;-1:-1:-1;;;26501:498:0:o;25930:225::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;26025:16:::1;:4:::0;26032:9:::1;26025:16;:::i;:::-;26010:12;:31:::0;26052:15:::1;:23:::0;;-1:-1:-1;;26052:23:0::1;::::0;::::1;;;::::0;;26102:2:::1;26094:10:::0;::::1;;26086:61;;;::::0;-1:-1:-1;;;26086:61:0;;17527:2:1;26086:61:0::1;::::0;::::1;17509:21:1::0;17566:2;17546:18;;;17539:30;17605:34;17585:18;;;17578:62;-1:-1:-1;;;17656:18:1;;;17649:36;17702:19;;26086:61:0::1;17325:402:1::0;25085:244:0;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;25167:14:::1;::::0;-1:-1:-1;;;25167:14:0;::::1;;;25166:15;25158:65;;;::::0;-1:-1:-1;;;25158:65:0;;13721:2:1;25158:65:0::1;::::0;::::1;13703:21:1::0;13760:2;13740:18;;;13733:30;13799:34;13779:18;;;13772:62;-1:-1:-1;;;13850:18:1;;;13843:35;13895:19;;25158:65:0::1;13519:401:1::0;25158:65:0::1;25255:1;25243:9;:13;25234:56;;;::::0;-1:-1:-1;;;25234:56:0;;17168:2:1;25234:56:0::1;::::0;::::1;17150:21:1::0;17207:2;17187:18;;;17180:30;17246:32;17226:18;;;17219:60;17296:18;;25234:56:0::1;16966:354:1::0;25234:56:0::1;25301:8;:20:::0;25085:244::o;12364:192::-;12112:6;;-1:-1:-1;;;;;12112:6:0;179:10;12174:23;12166:68;;;;-1:-1:-1;;;12166:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12453:22:0;::::1;12445:73;;;::::0;-1:-1:-1;;;12445:73:0;;8869:2:1;12445:73:0::1;::::0;::::1;8851:21:1::0;8908:2;8888:18;;;8881:30;8947:34;8927:18;;;8920:62;-1:-1:-1;;;8998:18:1;;;8991:36;9044:19;;12445:73:0::1;8667:402:1::0;12445:73:0::1;12529:19;12539:8;12529:9;:19::i;:::-;12364:192:::0;:::o;10338:380::-;-1:-1:-1;;;;;10474:19:0;;10466:68;;;;-1:-1:-1;;;10466:68:0;;16763:2:1;10466:68:0;;;16745:21:1;16802:2;16782:18;;;16775:30;16841:34;16821:18;;;16814:62;-1:-1:-1;;;16892:18:1;;;16885:34;16936:19;;10466:68:0;16561:400:1;10466:68:0;-1:-1:-1;;;;;10553:21:0;;10545:68;;;;-1:-1:-1;;;10545:68:0;;9276:2:1;10545:68:0;;;9258:21:1;9315:2;9295:18;;;9288:30;9354:34;9334:18;;;9327:62;-1:-1:-1;;;9405:18:1;;;9398:32;9447:19;;10545:68:0;9074:398:1;10545:68:0;-1:-1:-1;;;;;10626:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10678:32;;18998:25:1;;;10678:32:0;;18971:18:1;10678:32:0;;;;;;;10338:380;;;:::o;17419:3119::-;17569:1;17560:6;:10;17552:64;;;;-1:-1:-1;;;17552:64:0;;14897:2:1;17552:64:0;;;14879:21:1;14936:2;14916:18;;;14909:30;14975:34;14955:18;;;14948:62;-1:-1:-1;;;15026:18:1;;;15019:39;15075:19;;17552:64:0;14695:405:1;17552:64:0;-1:-1:-1;;;;;17634:17:0;;;;;;:9;:17;;;;;;;;17633:18;:43;;;;-1:-1:-1;;;;;;17656:20:0;;;;;;:9;:20;;;;;;;;17655:21;17633:43;17629:122;;;17701:14;;-1:-1:-1;;;17701:14:0;;;;17693:46;;;;-1:-1:-1;;;17693:46:0;;15664:2:1;17693:46:0;;;15646:21:1;15703:2;15683:18;;;15676:30;-1:-1:-1;;;15722:18:1;;;15715:49;15781:18;;17693:46:0;15462:343:1;17693:46:0;17777:4;;-1:-1:-1;;;;;17767:14:0;;;17777:4;;17767:14;:39;;;;-1:-1:-1;;;;;;17786:20:0;;;;;;:9;:20;;;;;;;;17785:21;17767:39;:59;;;;-1:-1:-1;17811:15:0;;-1:-1:-1;;;17811:15:0;;;;17810:16;17767:59;17763:311;;;17861:11;;17851:6;:21;;17843:63;;;;-1:-1:-1;;;17843:63:0;;8511:2:1;17843:63:0;;;8493:21:1;8550:2;8530:18;;;8523:30;8589:31;8569:18;;;8562:59;8638:18;;17843:63:0;8309:353:1;17843:63:0;17980:14;;17970:6;17947:20;17957:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;17947:20;:29;;;;:::i;:::-;:47;;17921:141;;;;-1:-1:-1;;;17921:141:0;;10920:2:1;17921:141:0;;;10902:21:1;;;10939:18;;;10932:30;10998:34;10978:18;;;10971:62;11050:18;;17921:141:0;10718:356:1;17921:141:0;18114:4;;-1:-1:-1;;;;;18104:14:0;;;18114:4;;18104:14;;;;:39;;-1:-1:-1;;;;;;18123:20:0;;;;;;:9;:20;;;;;;;;18122:21;18104:39;:61;;;;-1:-1:-1;;;;;;18148:17:0;;;;;;:9;:17;;;;;;;;18147:18;18104:61;:81;;;;-1:-1:-1;18170:15:0;;-1:-1:-1;;;18170:15:0;;;;18169:16;18104:81;18086:682;;;18230:12;;18220:6;:22;;18212:65;;;;-1:-1:-1;;;18212:65:0;;18289:2:1;18212:65:0;;;18271:21:1;18328:2;18308:18;;;18301:30;18367:32;18347:18;;;18340:60;18417:18;;18212:65:0;18087:354:1;18212:65:0;18309:4;;-1:-1:-1;;;;;18296:17:0;;;18309:4;;18296:17;18292:211;;18397:14;;18387:6;18364:20;18374:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;18364:20;:29;;;;:::i;:::-;:47;;18334:153;;;;-1:-1:-1;;;18334:153:0;;10920:2:1;18334:153:0;;;10902:21:1;;;10939:18;;;10932:30;10998:34;10978:18;;;10971:62;11050:18;;18334:153:0;10718:356:1;18334:153:0;18521:15;;;;18517:240;;;-1:-1:-1;;;;;18596:17:0;;18557:18;18596:17;;;:9;:17;;;;;;18578:35;;:15;:35;:::i;:::-;18557:56;;18654:12;;18640:10;:26;;18632:55;;;;-1:-1:-1;;;18632:55:0;;16012:2:1;18632:55:0;;;15994:21:1;16051:2;16031:18;;;16024:30;-1:-1:-1;;;16070:18:1;;;16063:46;16126:18;;18632:55:0;15810:340:1;18632:55:0;-1:-1:-1;;;;;;18706:17:0;;;;;;:9;:17;;;;;18726:15;18706:35;;18517:240;18780:15;18806:14;18831:11;18853:23;18879:9;:21;;;18853:47;;18911:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18911:25:0;-1:-1:-1;;;;;18970:17:0;;18949;18970;;;:9;:17;;;;;;;;18969:18;:56;;;;-1:-1:-1;;;;;;19005:20:0;;;;;;:9;:20;;;;;;;;19004:21;18969:56;:112;;;;;19073:8;;19057:13;;:24;;;;:::i;:::-;19042:12;:39;18969:112;19169:15;;18949:132;;-1:-1:-1;;;;19169:15:0;;;;;:36;;-1:-1:-1;;;;;;19188:17:0;;;;;;:9;:17;;;;;;;;19169:36;:60;;;-1:-1:-1;;;;;;19209:20:0;;;;;;:9;:20;;;;;;;;19169:60;19165:753;;;19250:1;19244:7;;19165:753;;;19315:4;;-1:-1:-1;;;;;19302:17:0;;;19315:4;;19302:17;:34;;;;;19324:12;19323:13;19302:34;19298:620;;;19427:13;;19405:19;;19385:17;;19427:9;19363:19;:39;;19385:17;19363:39;:::i;:::-;:61;;;;:::i;:::-;:77;;;;:::i;:::-;19486:24;;;;;;;;19501:9;19486:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19353:87;;-1:-1:-1;19353:87:0;;-1:-1:-1;19486:24:0;;-1:-1:-1;19486:24:0;-1:-1:-1;19298:620:0;;;19587:12;19582:336;;19678:9;;19660:15;;19644:13;;19678:5;19626:15;:31;;19644:13;19626:31;:::i;:::-;:49;;;;:::i;:::-;:61;;;;:::i;:::-;19733:20;;;;;;;;19748:5;19733:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19616:71;;-1:-1:-1;19616:71:0;;-1:-1:-1;19733:20:0;;-1:-1:-1;19733:20:0;-1:-1:-1;19582:336:0;;;19825:12;19821:97;;;19864:9;;;-1:-1:-1;19864:9:0;;-1:-1:-1;19821:97:0;19962:15;19957:3;19938:15;19947:6;19938;:15;:::i;:::-;19937:23;;;;:::i;:::-;19936:41;;;;:::i;:::-;20091:18;;19930:47;;-1:-1:-1;;;;20091:18:0;;;;:36;;;;-1:-1:-1;20123:4:0;;-1:-1:-1;;;;;20113:14:0;;;20123:4;;20113:14;;20091:36;20087:76;;;20129:34;20141:7;20150:12;20129:11;:34::i;:::-;20205:48;20221:6;20229:9;20240:12;20249:3;20240:6;:12;:::i;:::-;20205:15;:48::i;:::-;20268:7;;20264:267;;20340:11;;20336:182;;20372:17;20419:15;20414:3;20394:16;20403:7;20394:6;:16;:::i;:::-;20393:24;;;;:::i;:::-;20392:42;;;;:::i;:::-;20372:62;;20453:49;20469:6;20485:4;20492:9;20453:15;:49::i;:::-;20353:165;20336:182;17541:2997;;;;;;17419:3119;;;:::o;12564:173::-;12639:6;;;-1:-1:-1;;;;;12656:17:0;;;-1:-1:-1;;;;;;12656:17:0;;;;;;;12689:40;;12639:6;;;12656:17;12639:6;;12689:40;;12620:16;;12689:40;12609:128;12564:173;:::o;20546:1912::-;15041:15;;-1:-1:-1;;;15041:15:0;;;;15036:125;;15073:15;:22;;-1:-1:-1;;;;15073:22:0;-1:-1:-1;;;15073:22:0;;;20642:12;20639:49:::1;;20670:7;;20639:49;20745:4;20701:23;3769:18:::0;;;;;;;;;;;20785:23:::1;::::0;20766:42;::::1;20762:1689;;20855:1;20829:23;;:27;20825:109;;;-1:-1:-1::0;20895:23:0::1;::::0;20825:109:::1;21005:19;21027:11;:7:::0;21037:1:::1;21027:11;:::i;:::-;21005:33;;21053:32;21147:11;21107:9;:19;;;21089:15;:37;;;;:::i;:::-;21088:70;;;;:::i;:::-;21053:105:::0;-1:-1:-1;21173:14:0::1;21190:42;21053:105:::0;21190:15;:42:::1;:::i;:::-;21173:59:::0;-1:-1:-1;21274:21:0::1;21312:24;21173:59:::0;21312:16:::1;:24::i;:::-;21353:20;21376:38;21400:14:::0;21376:21:::1;:38;:::i;:::-;21353:61;;21429:19;21503:9;:21;;;21482:9;:19;;;21468:11;:33;;;;:::i;:::-;21467:57;;;;:::i;:::-;21451:74;::::0;:12;:74:::1;:::i;:::-;21429:96;;21540:29;21608:9;:21;;;21587:9;:19;;;21573:11;:33;;;;:::i;:::-;21572:57;;;;:::i;:::-;21540:89:::0;-1:-1:-1;21650:25:0;;21646:172:::1;;21741:61;21754:24;21780:21;21741:12;:61::i;:::-;21897:21;::::0;::::1;::::0;21876:19;;21834:20:::1;::::0;21897:21;21858:15:::1;:11:::0;21872:1:::1;21858:15;:::i;:::-;:37;;;;:::i;:::-;21857:61;;;;:::i;:::-;21834:84:::0;-1:-1:-1;21937:16:0;;21933:105:::1;;21982:15;::::0;21974:48:::1;::::0;-1:-1:-1;;;;;21982:15:0::1;22009:12:::0;21974:34:::1;:48::i;:::-;22054:14;22105:9;:21;;;22090:9;:13;;;22072:11;22086:1;22072:15;;;;:::i;:::-;:31;;;;:::i;:::-;22071:55;;;;:::i;:::-;22054:72:::0;-1:-1:-1;22145:10:0;;22141:87:::1;;22184:9;::::0;22176:36:::1;::::0;-1:-1:-1;;;;;22184:9:0::1;22205:6:::0;22176:28:::1;:36::i;:::-;22244:18;22303:9;:21;;;22284:9;:17;;;22266:11;22280:1;22266:15;;;;:::i;:::-;:35;;;;:::i;:::-;22265:59;;;;:::i;:::-;22244:80:::0;-1:-1:-1;22343:14:0;;22339:99:::1;;22386:13;::::0;22378:44:::1;::::0;-1:-1:-1;;;;;22386:13:0::1;22411:10:::0;22378:32:::1;:44::i;:::-;20810:1641;;;;;;;;;;20762:1689;20626:1832;15110:1;15126:15:::0;:23;;-1:-1:-1;;;;15126:23:0;;;20546:1912;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;16357:2:1;7932:70:0;;;16339:21:1;16396:2;16376:18;;;16369:30;16435:34;16415:18;;;16408:62;-1:-1:-1;;;16486:18:1;;;16479:35;16531:19;;7932:70:0;16155:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;8107:2:1;8013:71:0;;;8089:21:1;8146:2;8126:18;;;8119:30;8185:34;8165:18;;;8158:62;-1:-1:-1;;;8236:18:1;;;8229:33;8279:19;;8013:71:0;7905:399:1;8013:71:0;-1:-1:-1;;;;;8181:17:0;;8157:21;8181:17;;;;;;;;;;;8217:23;;;;8209:74;;;;-1:-1:-1;;;8209:74:0;;10513:2:1;8209:74:0;;;10495:21:1;10552:2;10532:18;;;10525:30;10591:34;10571:18;;;10564:62;-1:-1:-1;;;10642:18:1;;;10635:36;10688:19;;8209:74:0;10311:402:1;8209:74:0;8314:22;8330:6;8314:13;:22;:::i;:::-;-1:-1:-1;;;;;8294:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8347:20;;;;;;;;:30;;8371:6;;8294:9;8347:30;;8371:6;;8347:30;:::i;:::-;;;;;;;;8412:9;-1:-1:-1;;;;;8395:35:0;8404:6;-1:-1:-1;;;;;8395:35:0;;8423:6;8395:35;;;;18998:25:1;;18986:2;18971:18;;18852:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::o;22466:534::-;22616:16;;;22630:1;22616:16;;;;;;;;22592:21;;22616:16;;;;;;;;;;-1:-1:-1;22616:16:0;22592:40;;22661:4;22643;22648:1;22643:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22643:23:0;;;:7;;;;;;;;;;:23;;;;22687:6;;:13;;;-1:-1:-1;;;22687:13:0;;;;:6;;;;;:11;;:13;;;;;22643:7;;22687:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22677:4;22682:1;22677:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22677:23:0;;;:7;;;;;;;;;:23;22745:6;;22713:53;;22730:4;;22745:6;22754:11;22713:8;:53::i;:::-;22805:6;;:187;;-1:-1:-1;;;22805:187:0;;-1:-1:-1;;;;;22805:6:0;;;;:57;;:187;;22877:11;;22805:6;;22919:4;;22946;;22966:15;;22805:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22521:479;22466:534;:::o;23008:500::-;23188:6;;23156:53;;23173:4;;-1:-1:-1;;;;;23188:6:0;23197:11;23156:8;:53::i;:::-;23252:6;;:248;;-1:-1:-1;;;23252:248:0;;23317:4;23252:248;;;6617:34:1;6667:18;;;6660:34;;;23252:6:0;6710:18:1;;;6703:34;;;6753:18;;;6746:34;14464:42:0;6796:19:1;;;6789:44;23474:15:0;6849:19:1;;;6842:35;-1:-1:-1;;;;;23252:6:0;;;;:22;;23283:9;;6551:19:1;;23252:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23008:500;;:::o;11482:319::-;11597:6;11572:21;:31;;11564:73;;;;-1:-1:-1;;;11564:73:0;;12139:2:1;11564:73:0;;;12121:21:1;12178:2;12158:18;;;12151:30;12217:31;12197:18;;;12190:59;12266:18;;11564:73:0;11937:353:1;11564:73:0;11651:12;11669:9;-1:-1:-1;;;;;11669:14:0;11692:6;11669:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11650:54;;;11723:7;11715:78;;;;-1:-1:-1;;;11715:78:0;;11712:2:1;11715:78:0;;;11694:21:1;11751:2;11731:18;;;11724:30;11790:34;11770:18;;;11763:62;11861:28;11841:18;;;11834:56;11907:19;;11715:78:0;11510:422:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;:::-;522:5;286:247;-1:-1:-1;;;286:247:1:o;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:382::-;1713:6;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:30;1927:32;1968:30;:::i;2035:315::-;2103:6;2111;2164:2;2152:9;2143:7;2139:23;2135:32;2132:52;;;2180:1;2177;2170:12;2132:52;2219:9;2206:23;2238:31;2263:5;2238:31;:::i;:::-;2288:5;2340:2;2325:18;;;;2312:32;;-1:-1:-1;;;2035:315:1:o;2355:1202::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2562:9;2549:23;2591:18;2632:2;2624:6;2621:14;2618:34;;;2648:1;2645;2638:12;2618:34;2686:6;2675:9;2671:22;2661:32;;2731:7;2724:4;2720:2;2716:13;2712:27;2702:55;;2753:1;2750;2743:12;2702:55;2789:2;2776:16;2811:4;2834:2;2830;2827:10;2824:36;;;2840:18;;:::i;:::-;2886:2;2883:1;2879:10;2918:2;2912:9;2981:2;2977:7;2972:2;2968;2964:11;2960:25;2952:6;2948:38;3036:6;3024:10;3021:22;3016:2;3004:10;3001:18;2998:46;2995:72;;;3047:18;;:::i;:::-;3083:2;3076:22;3133:18;;;3167:15;;;;-1:-1:-1;3202:11:1;;;3232;;;3228:20;;3225:33;-1:-1:-1;3222:53:1;;;3271:1;3268;3261:12;3222:53;3293:1;3284:10;;3303:169;3317:2;3314:1;3311:9;3303:169;;;3374:23;3393:3;3374:23;:::i;:::-;3362:36;;3335:1;3328:9;;;;;3418:12;;;;3450;;3303:169;;;-1:-1:-1;3491:6:1;-1:-1:-1;3516:35:1;;-1:-1:-1;3532:18:1;;;3516:35;:::i;:::-;3506:45;;;;;;2355:1202;;;;;:::o;3562:241::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;3726:9;3713:23;3745:28;3767:5;3745:28;:::i;3808:245::-;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;3976:9;3970:16;3995:28;4017:5;3995:28;:::i;4058:309::-;4123:6;4131;4184:2;4172:9;4163:7;4159:23;4155:32;4152:52;;;4200:1;4197;4190:12;4152:52;4239:9;4226:23;4258:28;4280:5;4258:28;:::i;4372:180::-;4431:6;4484:2;4472:9;4463:7;4459:23;4455:32;4452:52;;;4500:1;4497;4490:12;4452:52;-1:-1:-1;4523:23:1;;4372:180;-1:-1:-1;4372:180:1:o;4557:316::-;4634:6;4642;4650;4703:2;4691:9;4682:7;4678:23;4674:32;4671:52;;;4719:1;4716;4709:12;4671:52;-1:-1:-1;;4742:23:1;;;4812:2;4797:18;;4784:32;;-1:-1:-1;4863:2:1;4848:18;;;4835:32;;4557:316;-1:-1:-1;4557:316:1:o;4878:306::-;4966:6;4974;4982;5035:2;5023:9;5014:7;5010:23;5006:32;5003:52;;;5051:1;5048;5041:12;5003:52;5080:9;5074:16;5064:26;;5130:2;5119:9;5115:18;5109:25;5099:35;;5174:2;5163:9;5159:18;5153:25;5143:35;;4878:306;;;;;:::o;5189:385::-;5275:6;5283;5291;5299;5352:3;5340:9;5331:7;5327:23;5323:33;5320:53;;;5369:1;5366;5359:12;5320:53;-1:-1:-1;;5392:23:1;;;5462:2;5447:18;;5434:32;;-1:-1:-1;5513:2:1;5498:18;;5485:32;;5564:2;5549:18;5536:32;;-1:-1:-1;5189:385:1;-1:-1:-1;5189:385:1:o;7303:597::-;7415:4;7444:2;7473;7462:9;7455:21;7505:6;7499:13;7548:6;7543:2;7532:9;7528:18;7521:34;7573:1;7583:140;7597:6;7594:1;7591:13;7583:140;;;7692:14;;;7688:23;;7682:30;7658:17;;;7677:2;7654:26;7647:66;7612:10;;7583:140;;;7741:6;7738:1;7735:13;7732:91;;;7811:1;7806:2;7797:6;7786:9;7782:22;7778:31;7771:42;7732:91;-1:-1:-1;7884:2:1;7863:15;-1:-1:-1;;7859:29:1;7844:45;;;;7891:2;7840:54;;7303:597;-1:-1:-1;;;7303:597:1:o;13116:398::-;13318:2;13300:21;;;13357:2;13337:18;;;13330:30;13396:34;13391:2;13376:18;;13369:62;-1:-1:-1;;;13462:2:1;13447:18;;13440:32;13504:3;13489:19;;13116:398::o;14334:356::-;14536:2;14518:21;;;14555:18;;;14548:30;14614:34;14609:2;14594:18;;14587:62;14681:2;14666:18;;14334:356::o;19034:980::-;19296:4;19344:3;19333:9;19329:19;19375:6;19364:9;19357:25;19401:2;19439:6;19434:2;19423:9;19419:18;19412:34;19482:3;19477:2;19466:9;19462:18;19455:31;19506:6;19541;19535:13;19572:6;19564;19557:22;19610:3;19599:9;19595:19;19588:26;;19649:2;19641:6;19637:15;19623:29;;19670:1;19680:195;19694:6;19691:1;19688:13;19680:195;;;19759:13;;-1:-1:-1;;;;;19755:39:1;19743:52;;19850:15;;;;19815:12;;;;19791:1;19709:9;19680:195;;;-1:-1:-1;;;;;;;19931:32:1;;;;19926:2;19911:18;;19904:60;-1:-1:-1;;;19995:3:1;19980:19;19973:35;19892:3;19034:980;-1:-1:-1;;;19034:980:1:o;20208:128::-;20248:3;20279:1;20275:6;20272:1;20269:13;20266:39;;;20285:18;;:::i;:::-;-1:-1:-1;20321:9:1;;20208:128::o;20341:217::-;20381:1;20407;20397:132;;20451:10;20446:3;20442:20;20439:1;20432:31;20486:4;20483:1;20476:15;20514:4;20511:1;20504:15;20397:132;-1:-1:-1;20543:9:1;;20341:217::o;20563:422::-;20652:1;20695:5;20652:1;20709:270;20730:7;20720:8;20717:21;20709:270;;;20789:4;20785:1;20781:6;20777:17;20771:4;20768:27;20765:53;;;20798:18;;:::i;:::-;20848:7;20838:8;20834:22;20831:55;;;20868:16;;;;20831:55;20947:22;;;;20907:15;;;;20709:270;;;20713:3;20563:422;;;;;:::o;20990:140::-;21048:5;21077:47;21118:4;21108:8;21104:19;21098:4;21184:5;21214:8;21204:80;;-1:-1:-1;21255:1:1;21269:5;;21204:80;21303:4;21293:76;;-1:-1:-1;21340:1:1;21354:5;;21293:76;21385:4;21403:1;21398:59;;;;21471:1;21466:130;;;;21378:218;;21398:59;21428:1;21419:10;;21442:5;;;21466:130;21503:3;21493:8;21490:17;21487:43;;;21510:18;;:::i;:::-;-1:-1:-1;;21566:1:1;21552:16;;21581:5;;21378:218;;21680:2;21670:8;21667:16;21661:3;21655:4;21652:13;21648:36;21642:2;21632:8;21629:16;21624:2;21618:4;21615:12;21611:35;21608:77;21605:159;;;-1:-1:-1;21717:19:1;;;21749:5;;21605:159;21796:34;21821:8;21815:4;21796:34;:::i;:::-;21866:6;21862:1;21858:6;21854:19;21845:7;21842:32;21839:58;;;21877:18;;:::i;:::-;21915:20;;21135:806;-1:-1:-1;;;21135:806:1:o;21946:168::-;21986:7;22052:1;22048;22044:6;22040:14;22037:1;22034:21;22029:1;22022:9;22015:17;22011:45;22008:71;;;22059:18;;:::i;:::-;-1:-1:-1;22099:9:1;;21946:168::o;22119:125::-;22159:4;22187:1;22184;22181:8;22178:34;;;22192:18;;:::i;:::-;-1:-1:-1;22229:9:1;;22119:125::o;22249:380::-;22328:1;22324:12;;;;22371;;;22392:61;;22446:4;22438:6;22434:17;22424:27;;22392:61;22499:2;22491:6;22488:14;22468:18;22465:38;22462:161;;;22545:10;22540:3;22536:20;22533:1;22526:31;22580:4;22577:1;22570:15;22608:4;22605:1;22598:15;22462:161;;22249:380;;;:::o;22634:135::-;22673:3;-1:-1:-1;;22694:17:1;;22691:43;;;22714:18;;:::i;:::-;-1:-1:-1;22761:1:1;22750:13;;22634:135::o;22774:127::-;22835:10;22830:3;22826:20;22823:1;22816:31;22866:4;22863:1;22856:15;22890:4;22887:1;22880:15;22906:127;22967:10;22962:3;22958:20;22955:1;22948:31;22998:4;22995:1;22988:15;23022:4;23019:1;23012:15;23038:127;23099:10;23094:3;23090:20;23087:1;23080:31;23130:4;23127:1;23120:15;23154:4;23151:1;23144:15;23170:131;-1:-1:-1;;;;;23245:31:1;;23235:42;;23225:70;;23291:1;23288;23281:12;23306:118;23392:5;23385:13;23378:21;23371:5;23368:32;23358:60;;23414:1;23411;23404:12

Swarm Source

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