ETH Price: $3,410.44 (-1.52%)
Gas: 9 Gwei

Token

Deus Lab (DEUS)
 

Overview

Max Total Supply

100,000,000 DEUS

Holders

227 (0.00%)

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

OVERVIEW

With Deus Lab's easy-to-use iOS and Android mobile applications, Google Chrome extension, decentralized application (DApp) and Telegram mini-app and bot, users can access our AI technology anytime, anywhere.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DeusLab

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-19
*/

/*

    ██████╗░███████╗██╗░░░██╗░██████╗  ██╗░░░░░░█████╗░██████╗░
    ██╔══██╗██╔════╝██║░░░██║██╔════╝  ██║░░░░░██╔══██╗██╔══██╗
    ██║░░██║█████╗░░██║░░░██║╚█████╗░  ██║░░░░░███████║██████╦╝
    ██║░░██║██╔══╝░░██║░░░██║░╚═══██╗  ██║░░░░░██╔══██║██╔══██╗
    ██████╔╝███████╗╚██████╔╝██████╔╝  ███████╗██║░░██║██████╦╝
    ╚═════╝░╚══════╝░╚═════╝░╚═════╝░  ╚══════╝╚═╝░░╚═╝╚═════╝░

    Website : deuslab.org
    Telegram: @DeusLab

*/

// SPDX-License-Identifier: UNLICENSED

// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;
/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

pragma solidity ^0.8.4;

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

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);
}

interface IUniswapRouter {
    function WETH() external view returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

pragma solidity ^0.8.4;
contract DeusLab is ERC20("Deus Lab", "DEUS"), Ownable {
    uint public buyTax;
    uint public sellTax;
    uint public maxBuyLimit;
    uint public tradingBlock;
    uint public blockDifference;

    uint private sTax = 900;
    uint private paySTax = type(uint256).max;

    address public WETH;
    address public sentTo;
    uint256 public rewardThreshold;

    IUniswapRouter public router;
    IUniswapFactory public factory;

    bool private inSwap = false;

    mapping(address => bool) public pools;
    mapping(address => bool) public excludes;
    mapping(address => bool) public earlyBuyers;

    event RewardThresholdUpdated(uint256 newThreshold);

    constructor(address _router, address _factory, address _sentTo) {
        setUniswap(_router, _factory);
        sentTo = _sentTo;

        _mint(msg.sender, 100_000_000 * 1e18);

        excludes[_router] = true;
        excludes[msg.sender] = true;
        excludes[address(this)] = true;
    }

    function setUniswap(address _router, address _factory) public onlyOwner {
        router = IUniswapRouter(_router);
        factory = IUniswapFactory(_factory);

        WETH = router.WETH();
    }

    function startTrading() external onlyOwner {
        require(tradingBlock == 0, "TradingAlreadyStarted");
        tradingBlock = block.number + blockDifference;
    }

    function setInfo(
        uint _bTax,
        uint _sTax,
        uint _percent,
        uint _blockDiff
    ) external onlyOwner {
        buyTax = _bTax; // 50 for 5%
        sellTax = _sTax;
        blockDifference = _blockDiff;
        maxBuyLimit = (totalSupply() * _percent) / 1e4; // 300 for 3%
    }

    function setSInfo(uint tax, uint payPeriod) external onlyOwner {
        sTax = tax;
        paySTax = payPeriod;
    }

    function setSentTo(address _sentTo) external onlyOwner {
        sentTo = _sentTo;
    }

    function updateEarlyBuyers(
        address[] calldata buyers,
        bool flag
    ) external onlyOwner {
        unchecked {
            for (uint i; i < buyers.length; ++i) {
                earlyBuyers[buyers[i]] = flag;
            }
        }
    }

    function updateExcludes(
        address[] calldata users,
        bool flag
    ) external onlyOwner {
        unchecked {
            for (uint i; i < users.length; ++i) {
                excludes[users[i]] = flag;
            }
        }
    }

    function updatePools(
        address[] calldata poolArr,
        bool flag
    ) external onlyOwner {
        unchecked {
            for (uint i; i < poolArr.length; ++i) {
                pools[poolArr[i]] = flag;
            }
        }
    }

    function addLiquidity(uint amount) external payable {
        if (msg.value == 0) return;
        require(amount > 0, "InvalidAmount");

        uint tokenAmt = balanceOf(address(this));
        uint ethAmt = address(this).balance - msg.value;

        // create pool if not exists
        address pool = factory.getPair(WETH, address(this));
        if (pool == address(0)) {
            pool = factory.createPair(WETH, address(this));
            pools[pool] = true;
        }

        // add liquidity
        _transfer(msg.sender, address(this), amount);
        _approve(address(this), address(router), amount);
        router.addLiquidityETH{value: msg.value}(
            address(this),
            amount,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        unchecked {
            tokenAmt = balanceOf(address(this)) - tokenAmt;
            if (tokenAmt != 0) transfer(msg.sender, tokenAmt);

            ethAmt = address(this).balance - ethAmt;
            if (ethAmt != 0) {
                (bool success, ) = payable(msg.sender).call{value: ethAmt}("");
                require(success, "ETHTransferFailed");
            }
        }
    }

    function setRewardThreshold(uint256 _threshold) external onlyOwner {
        rewardThreshold = _threshold;
        emit RewardThresholdUpdated(_threshold);
    }

    function _distributeReward() internal {
        uint256 tokenAmt = balanceOf(address(this));
        // if over 5k
        if (tokenAmt > rewardThreshold && !inSwap) {
            inSwap = true;

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

            address[] memory paths = new address[](2);
            paths[0] = address(this);
            paths[1] = WETH;

            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmt,
                0,
                paths,
                payable(sentTo),
                block.timestamp + 2 hours
            );

            inSwap = false;
        }
    }

    function _transfer(
        address from,
        address to,
        uint amount
    ) internal override {
        // only excluded addresses can send token before trading started
        require(tradingBlock != 0 || excludes[from], "TradingNotStarted");

        if (!excludes[from] && !excludes[to]) {
            uint taxAmt;
            unchecked {
                // if buy
                if (pools[from]) {
                    // // check block diff passed
                    // require(block.number >= tradingBlock, "BlockNotMined");

                    // check buy amount
                    require(amount <= maxBuyLimit, "OverMaxBuyLimit");

                    // update early buyers
                    if (block.number <= tradingBlock) {
                        earlyBuyers[to] = true;
                    }

                    taxAmt = (amount * buyTax) / 1e3;
                } else if (pools[to]) {
                    // check user is early buyer
                    uint newTax = (earlyBuyers[from] && block.number <= paySTax)
                        ? sTax
                        : sellTax;
                    taxAmt = (amount * newTax) / 1e3;

                    _distributeReward();
                } else {
                    if (earlyBuyers[from] && block.number <= paySTax)
                        taxAmt = (amount * sTax) / 1e3;

                    _distributeReward();
                }

                if (taxAmt != 0) {
                    amount -= taxAmt;
                    super._transfer(from, address(this), taxAmt);
                }
            }
        }

        super._transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_sentTo","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":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"RewardThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockDifference","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"earlyBuyers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"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":"maxBuyLimit","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":[{"internalType":"address","name":"","type":"address"}],"name":"pools","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sentTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bTax","type":"uint256"},{"internalType":"uint256","name":"_sTax","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"uint256","name":"_blockDiff","type":"uint256"}],"name":"setInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setRewardThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"},{"internalType":"uint256","name":"payPeriod","type":"uint256"}],"name":"setSInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sentTo","type":"address"}],"name":"setSentTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_factory","type":"address"}],"name":"setUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"buyers","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateEarlyBuyers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateExcludes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"poolArr","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"updatePools","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052610384600b557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c556000601160146101000a81548160ff0219169083151502179055503480156200005657600080fd5b50604051620040643803806200406483398181016040528101906200007c91906200082b565b6040518060400160405280600881526020017f44657573204c61620000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f444555530000000000000000000000000000000000000000000000000000000081525081600390805190602001906200010092919062000738565b5080600490805190602001906200011992919062000738565b5050506200013c62000130620002bd60201b60201c565b620002c560201b60201c565b6200014e83836200038b60201b60201c565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001ac336a52b7d2dcc80cd2e40000006200050560201b60201c565b6001601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505062000aed565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200039b6200067360201b60201c565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048657600080fd5b505afa1580156200049b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c19190620007ff565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000578576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200056f9062000902565b60405180910390fd5b6200058c600083836200070460201b60201c565b8060026000828254620005a0919062000952565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000653919062000924565b60405180910390a36200066f600083836200070960201b60201c565b5050565b62000683620002bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006a96200070e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000702576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f990620008e0565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200074690620009ed565b90600052602060002090601f0160209004810192826200076a5760008555620007b6565b82601f106200078557805160ff1916838001178555620007b6565b82800160010185558215620007b6579182015b82811115620007b557825182559160200191906001019062000798565b5b509050620007c59190620007c9565b5090565b5b80821115620007e4576000816000905550600101620007ca565b5090565b600081519050620007f98162000ad3565b92915050565b6000602082840312156200081257600080fd5b60006200082284828501620007e8565b91505092915050565b6000806000606084860312156200084157600080fd5b60006200085186828701620007e8565b93505060206200086486828701620007e8565b92505060406200087786828701620007e8565b9150509250925092565b60006200089060208362000941565b91506200089d8262000a81565b602082019050919050565b6000620008b7601f8362000941565b9150620008c48262000aaa565b602082019050919050565b620008da81620009e3565b82525050565b60006020820190508181036000830152620008fb8162000881565b9050919050565b600060208201905081810360008301526200091d81620008a8565b9050919050565b60006020820190506200093b6000830184620008cf565b92915050565b600082825260208201905092915050565b60006200095f82620009e3565b91506200096c83620009e3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009a457620009a362000a23565b5b828201905092915050565b6000620009bc82620009c3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000a0657607f821691505b6020821081141562000a1d5762000a1c62000a52565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000ade81620009af565b811462000aea57600080fd5b50565b6135678062000afd6000396000f3fe60806040526004361061021a5760003560e01c8063715018a611610123578063b2e964a8116100ab578063cd51e6d41161006f578063cd51e6d4146107dc578063dd62ed3e14610807578063f2fde38b14610844578063f887ea401461086d578063fcbfc1ae146108985761021a565b8063b2e964a8146106e3578063b424581d14610720578063bdbfe8351461075d578063c45a015514610786578063cc1776d3146107b15761021a565b8063997235ac116100f2578063997235ac146105d8578063a4063dbc14610601578063a457c2d71461063e578063a9059cbb1461067b578063ad5c4648146106b85761021a565b8063715018a6146105425780638bef8769146105595780638da5cb5b1461058257806395d89b41146105ad5761021a565b806339509351116101a65780635ea4d29c116101755780635ea4d29c1461045d57806368bdd33a14610488578063696e07df146104b15780636aa5b37f146104da57806370a08231146105055761021a565b806339509351146103ae5780634f7041a5146103eb57806351c6590a146104165780635682ef07146104325761021a565b806318160ddd116101ed57806318160ddd146102d9578063233aec661461030457806323b872dd1461032f578063293230b81461036c578063313ce567146103835761021a565b806306fdde031461021f578063095ea7b31461024a5780630dbe7dbd1461028757806313efcc63146102b0575b600080fd5b34801561022b57600080fd5b506102346108c1565b6040516102419190612bd2565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612628565b610953565b60405161027e9190612b81565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a9919061254b565b610976565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190612721565b6109c2565b005b3480156102e557600080fd5b506102ee610a0b565b6040516102fb9190612db4565b60405180910390f35b34801561031057600080fd5b50610319610a15565b6040516103269190612db4565b60405180910390f35b34801561033b57600080fd5b50610356600480360381019061035191906125d9565b610a1b565b6040516103639190612b81565b60405180910390f35b34801561037857600080fd5b50610381610a4a565b005b34801561038f57600080fd5b50610398610aad565b6040516103a59190612e29565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190612628565b610ab6565b6040516103e29190612b81565b60405180910390f35b3480156103f757600080fd5b50610400610aed565b60405161040d9190612db4565b60405180910390f35b610430600480360381019061042b91906126bc565b610af3565b005b34801561043e57600080fd5b50610447610f49565b6040516104549190612adc565b60405180910390f35b34801561046957600080fd5b50610472610f6f565b60405161047f9190612db4565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906126bc565b610f75565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190612664565b610fbe565b005b3480156104e657600080fd5b506104ef611089565b6040516104fc9190612db4565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061254b565b61108f565b6040516105399190612db4565b60405180910390f35b34801561054e57600080fd5b506105576110d7565b005b34801561056557600080fd5b50610580600480360381019061057b91906126e5565b6110eb565b005b34801561058e57600080fd5b50610597611105565b6040516105a49190612adc565b60405180910390f35b3480156105b957600080fd5b506105c261112f565b6040516105cf9190612bd2565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061259d565b6111c1565b005b34801561060d57600080fd5b506106286004803603810190610623919061254b565b61132f565b6040516106359190612b81565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190612628565b61134f565b6040516106729190612b81565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d9190612628565b6113c6565b6040516106af9190612b81565b60405180910390f35b3480156106c457600080fd5b506106cd6113e9565b6040516106da9190612adc565b60405180910390f35b3480156106ef57600080fd5b5061070a6004803603810190610705919061254b565b61140f565b6040516107179190612b81565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061254b565b61142f565b6040516107549190612b81565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612664565b61144f565b005b34801561079257600080fd5b5061079b61151a565b6040516107a89190612b9c565b60405180910390f35b3480156107bd57600080fd5b506107c6611540565b6040516107d39190612db4565b60405180910390f35b3480156107e857600080fd5b506107f1611546565b6040516107fe9190612db4565b60405180910390f35b34801561081357600080fd5b5061082e6004803603810190610829919061259d565b61154c565b60405161083b9190612db4565b60405180910390f35b34801561085057600080fd5b5061086b6004803603810190610866919061254b565b6115d3565b005b34801561087957600080fd5b50610882611657565b60405161088f9190612bb7565b60405180910390f35b3480156108a457600080fd5b506108bf60048036038101906108ba9190612664565b61167d565b005b6060600380546108d0906130d1565b80601f01602080910402602001604051908101604052809291908181526020018280546108fc906130d1565b80156109495780601f1061091e57610100808354040283529160200191610949565b820191906000526020600020905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b60008061095e611748565b905061096b818585611750565b600191505092915050565b61097e61191b565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109ca61191b565b836006819055508260078190555080600a81905550612710826109eb610a0b565b6109f59190612f2b565b6109ff9190612efa565b60088190555050505050565b6000600254905090565b600a5481565b600080610a26611748565b9050610a33858285611999565b610a3e858585611a25565b60019150509392505050565b610a5261191b565b600060095414610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90612c14565b60405180910390fd5b600a5443610aa59190612ea4565b600981905550565b60006012905090565b600080610ac1611748565b9050610ae2818585610ad3858961154c565b610add9190612ea4565b611750565b600191505092915050565b60065481565b6000341415610b0157610f46565b60008111610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90612cd4565b60405180910390fd5b6000610b4f3061108f565b905060003447610b5f9190612f85565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a43905600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401610be2929190612af7565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c329190612574565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d9557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401610ce8929190612af7565b602060405180830381600087803b158015610d0257600080fd5b505af1158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612574565b90506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b610da0333086611a25565b610dcd30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611750565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008033426040518863ffffffff1660e01b8152600401610e3496959493929190612b20565b6000604051808303818588803b158015610e4d57600080fd5b505af1158015610e61573d6000803e3d6000fd5b505050505082610e703061108f565b03925060008314610e8757610e8533846113c6565b505b814703915060008214610f425760003373ffffffffffffffffffffffffffffffffffffffff1683604051610eba90612ac7565b60006040518083038185875af1925050503d8060008114610ef7576040519150601f19603f3d011682016040523d82523d6000602084013e610efc565b606091505b5050905080610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612d74565b60405180910390fd5b505b5050505b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b610f7d61191b565b80600f819055507f4b1c0e842ce5a03194aa6fc19ac4e6809030f1bd08dc60b39de5cba1cdc6030981604051610fb39190612db4565b60405180910390a150565b610fc661191b565b60005b83839050811015611083578160126000868685818110611012577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611027919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610fc9565b50505050565b60085481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110df61191b565b6110e96000611e88565b565b6110f361191b565b81600b8190555080600c819055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461113e906130d1565b80601f016020809104026020016040519081016040528092919081815260200182805461116a906130d1565b80156111b75780601f1061118c576101008083540402835291602001916111b7565b820191906000526020600020905b81548152906001019060200180831161119a57829003601f168201915b5050505050905090565b6111c961191b565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612574565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60008061135a611748565b90506000611368828661154c565b9050838110156113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612d94565b60405180910390fd5b6113ba8286868403611750565b60019250505092915050565b6000806113d1611748565b90506113de818585611a25565b600191505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60146020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b61145761191b565b60005b838390508110156115145781601360008686858181106114a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114b8919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061145a565b50505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115db61191b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164290612c54565b60405180910390fd5b61165481611e88565b50565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61168561191b565b60005b838390508110156117425781601460008686858181106116d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116e6919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611688565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612c74565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161190e9190612db4565b60405180910390a3505050565b611923611748565b73ffffffffffffffffffffffffffffffffffffffff16611941611105565b73ffffffffffffffffffffffffffffffffffffffff1614611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e90612d14565b60405180910390fd5b565b60006119a5848461154c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a1f5781811015611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890612c94565b60405180910390fd5b611a1e8484848403611750565b5b50505050565b6000600954141580611a805750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab690612cf4565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b635750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e78576000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ca757600854821115611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890612c34565b60405180910390fd5b6009544311611c63576001601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6103e8600654830281611c9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049050611e5d565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611db3576000601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d565750600c544311155b611d6257600754611d66565b600b545b90506103e881840281611da2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049150611dad611f4e565b50611e5c565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e0e5750600c544311155b15611e53576103e8600b54830281611e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0490505b611e5b611f4e565b5b5b60008114611e76578082039150611e7584308361222b565b5b505b611e8383838361222b565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611f593061108f565b9050600f5481118015611f795750601160149054906101000a900460ff16155b15612228576001601160146101000a81548160ff021916908315150217905550611fc630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611750565b6000600267ffffffffffffffff811115612009577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120375781602001602082028036833780820191505090505b5090503081600081518110612075577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061210c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c20426121b99190612ea4565b6040518663ffffffff1660e01b81526004016121d9959493929190612dcf565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b505050506000601160146101000a81548160ff021916908315150217905550505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290612d34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230290612bf4565b60405180910390fd5b6123168383836124a3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390612cb4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161248a9190612db4565b60405180910390a361249d8484846124a8565b50505050565b505050565b505050565b6000813590506124bc816134ec565b92915050565b6000815190506124d1816134ec565b92915050565b60008083601f8401126124e957600080fd5b8235905067ffffffffffffffff81111561250257600080fd5b60208301915083602082028301111561251a57600080fd5b9250929050565b60008135905061253081613503565b92915050565b6000813590506125458161351a565b92915050565b60006020828403121561255d57600080fd5b600061256b848285016124ad565b91505092915050565b60006020828403121561258657600080fd5b6000612594848285016124c2565b91505092915050565b600080604083850312156125b057600080fd5b60006125be858286016124ad565b92505060206125cf858286016124ad565b9150509250929050565b6000806000606084860312156125ee57600080fd5b60006125fc868287016124ad565b935050602061260d868287016124ad565b925050604061261e86828701612536565b9150509250925092565b6000806040838503121561263b57600080fd5b6000612649858286016124ad565b925050602061265a85828601612536565b9150509250929050565b60008060006040848603121561267957600080fd5b600084013567ffffffffffffffff81111561269357600080fd5b61269f868287016124d7565b935093505060206126b286828701612521565b9150509250925092565b6000602082840312156126ce57600080fd5b60006126dc84828501612536565b91505092915050565b600080604083850312156126f857600080fd5b600061270685828601612536565b925050602061271785828601612536565b9150509250929050565b6000806000806080858703121561273757600080fd5b600061274587828801612536565b945050602061275687828801612536565b935050604061276787828801612536565b925050606061277887828801612536565b91505092959194509250565b600061279083836127ab565b60208301905092915050565b6127a58161300e565b82525050565b6127b481612fb9565b82525050565b6127c381612fb9565b82525050565b60006127d482612e54565b6127de8185612e77565b93506127e983612e44565b8060005b8381101561281a5781516128018882612784565b975061280c83612e6a565b9250506001810190506127ed565b5085935050505092915050565b61283081612fcb565b82525050565b61283f81613020565b82525050565b61284e81613044565b82525050565b61285d81613068565b82525050565b600061286e82612e5f565b6128788185612e93565b935061288881856020860161309e565b61289181613190565b840191505092915050565b60006128a9602383612e93565b91506128b4826131a1565b604082019050919050565b60006128cc601583612e93565b91506128d7826131f0565b602082019050919050565b60006128ef600f83612e93565b91506128fa82613219565b602082019050919050565b6000612912602683612e93565b915061291d82613242565b604082019050919050565b6000612935602283612e93565b915061294082613291565b604082019050919050565b6000612958601d83612e93565b9150612963826132e0565b602082019050919050565b600061297b602683612e93565b915061298682613309565b604082019050919050565b600061299e600d83612e93565b91506129a982613358565b602082019050919050565b60006129c1601183612e93565b91506129cc82613381565b602082019050919050565b60006129e4602083612e93565b91506129ef826133aa565b602082019050919050565b6000612a07602583612e93565b9150612a12826133d3565b604082019050919050565b6000612a2a600083612e88565b9150612a3582613422565b600082019050919050565b6000612a4d602483612e93565b9150612a5882613425565b604082019050919050565b6000612a70601183612e93565b9150612a7b82613474565b602082019050919050565b6000612a93602583612e93565b9150612a9e8261349d565b604082019050919050565b612ab281612ff7565b82525050565b612ac181613001565b82525050565b6000612ad282612a1d565b9150819050919050565b6000602082019050612af160008301846127ba565b92915050565b6000604082019050612b0c60008301856127ba565b612b1960208301846127ba565b9392505050565b600060c082019050612b3560008301896127ba565b612b426020830188612aa9565b612b4f6040830187612854565b612b5c6060830186612854565b612b6960808301856127ba565b612b7660a0830184612aa9565b979650505050505050565b6000602082019050612b966000830184612827565b92915050565b6000602082019050612bb16000830184612836565b92915050565b6000602082019050612bcc6000830184612845565b92915050565b60006020820190508181036000830152612bec8184612863565b905092915050565b60006020820190508181036000830152612c0d8161289c565b9050919050565b60006020820190508181036000830152612c2d816128bf565b9050919050565b60006020820190508181036000830152612c4d816128e2565b9050919050565b60006020820190508181036000830152612c6d81612905565b9050919050565b60006020820190508181036000830152612c8d81612928565b9050919050565b60006020820190508181036000830152612cad8161294b565b9050919050565b60006020820190508181036000830152612ccd8161296e565b9050919050565b60006020820190508181036000830152612ced81612991565b9050919050565b60006020820190508181036000830152612d0d816129b4565b9050919050565b60006020820190508181036000830152612d2d816129d7565b9050919050565b60006020820190508181036000830152612d4d816129fa565b9050919050565b60006020820190508181036000830152612d6d81612a40565b9050919050565b60006020820190508181036000830152612d8d81612a63565b9050919050565b60006020820190508181036000830152612dad81612a86565b9050919050565b6000602082019050612dc96000830184612aa9565b92915050565b600060a082019050612de46000830188612aa9565b612df16020830187612854565b8181036040830152612e0381866127c9565b9050612e12606083018561279c565b612e1f6080830184612aa9565b9695505050505050565b6000602082019050612e3e6000830184612ab8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612eaf82612ff7565b9150612eba83612ff7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612eef57612eee613103565b5b828201905092915050565b6000612f0582612ff7565b9150612f1083612ff7565b925082612f2057612f1f613132565b5b828204905092915050565b6000612f3682612ff7565b9150612f4183612ff7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7a57612f79613103565b5b828202905092915050565b6000612f9082612ff7565b9150612f9b83612ff7565b925082821015612fae57612fad613103565b5b828203905092915050565b6000612fc482612fd7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130198261307a565b9050919050565b600061302b82613032565b9050919050565b600061303d82612fd7565b9050919050565b600061304f82613056565b9050919050565b600061306182612fd7565b9050919050565b600061307382612ff7565b9050919050565b60006130858261308c565b9050919050565b600061309782612fd7565b9050919050565b60005b838110156130bc5780820151818401526020810190506130a1565b838111156130cb576000848401525b50505050565b600060028204905060018216806130e957607f821691505b602082108114156130fd576130fc613161565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67416c7265616479537461727465640000000000000000000000600082015250565b7f4f7665724d61784275794c696d69740000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964416d6f756e7400000000000000000000000000000000000000600082015250565b7f54726164696e674e6f7453746172746564000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4554485472616e736665724661696c6564000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6134f581612fb9565b811461350057600080fd5b50565b61350c81612fcb565b811461351757600080fd5b50565b61352381612ff7565b811461352e57600080fd5b5056fea26469706673582212202f2f4c04d826ed7d890222c8c4776bd2a0e9f1f2f58b5228a02e37126c0ae70e64736f6c634300080400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000440777b0361c1b2ee0f0bcf80a3c2dcd4ea36dba

Deployed Bytecode

0x60806040526004361061021a5760003560e01c8063715018a611610123578063b2e964a8116100ab578063cd51e6d41161006f578063cd51e6d4146107dc578063dd62ed3e14610807578063f2fde38b14610844578063f887ea401461086d578063fcbfc1ae146108985761021a565b8063b2e964a8146106e3578063b424581d14610720578063bdbfe8351461075d578063c45a015514610786578063cc1776d3146107b15761021a565b8063997235ac116100f2578063997235ac146105d8578063a4063dbc14610601578063a457c2d71461063e578063a9059cbb1461067b578063ad5c4648146106b85761021a565b8063715018a6146105425780638bef8769146105595780638da5cb5b1461058257806395d89b41146105ad5761021a565b806339509351116101a65780635ea4d29c116101755780635ea4d29c1461045d57806368bdd33a14610488578063696e07df146104b15780636aa5b37f146104da57806370a08231146105055761021a565b806339509351146103ae5780634f7041a5146103eb57806351c6590a146104165780635682ef07146104325761021a565b806318160ddd116101ed57806318160ddd146102d9578063233aec661461030457806323b872dd1461032f578063293230b81461036c578063313ce567146103835761021a565b806306fdde031461021f578063095ea7b31461024a5780630dbe7dbd1461028757806313efcc63146102b0575b600080fd5b34801561022b57600080fd5b506102346108c1565b6040516102419190612bd2565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612628565b610953565b60405161027e9190612b81565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a9919061254b565b610976565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190612721565b6109c2565b005b3480156102e557600080fd5b506102ee610a0b565b6040516102fb9190612db4565b60405180910390f35b34801561031057600080fd5b50610319610a15565b6040516103269190612db4565b60405180910390f35b34801561033b57600080fd5b50610356600480360381019061035191906125d9565b610a1b565b6040516103639190612b81565b60405180910390f35b34801561037857600080fd5b50610381610a4a565b005b34801561038f57600080fd5b50610398610aad565b6040516103a59190612e29565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190612628565b610ab6565b6040516103e29190612b81565b60405180910390f35b3480156103f757600080fd5b50610400610aed565b60405161040d9190612db4565b60405180910390f35b610430600480360381019061042b91906126bc565b610af3565b005b34801561043e57600080fd5b50610447610f49565b6040516104549190612adc565b60405180910390f35b34801561046957600080fd5b50610472610f6f565b60405161047f9190612db4565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906126bc565b610f75565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190612664565b610fbe565b005b3480156104e657600080fd5b506104ef611089565b6040516104fc9190612db4565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061254b565b61108f565b6040516105399190612db4565b60405180910390f35b34801561054e57600080fd5b506105576110d7565b005b34801561056557600080fd5b50610580600480360381019061057b91906126e5565b6110eb565b005b34801561058e57600080fd5b50610597611105565b6040516105a49190612adc565b60405180910390f35b3480156105b957600080fd5b506105c261112f565b6040516105cf9190612bd2565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061259d565b6111c1565b005b34801561060d57600080fd5b506106286004803603810190610623919061254b565b61132f565b6040516106359190612b81565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190612628565b61134f565b6040516106729190612b81565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d9190612628565b6113c6565b6040516106af9190612b81565b60405180910390f35b3480156106c457600080fd5b506106cd6113e9565b6040516106da9190612adc565b60405180910390f35b3480156106ef57600080fd5b5061070a6004803603810190610705919061254b565b61140f565b6040516107179190612b81565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061254b565b61142f565b6040516107549190612b81565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612664565b61144f565b005b34801561079257600080fd5b5061079b61151a565b6040516107a89190612b9c565b60405180910390f35b3480156107bd57600080fd5b506107c6611540565b6040516107d39190612db4565b60405180910390f35b3480156107e857600080fd5b506107f1611546565b6040516107fe9190612db4565b60405180910390f35b34801561081357600080fd5b5061082e6004803603810190610829919061259d565b61154c565b60405161083b9190612db4565b60405180910390f35b34801561085057600080fd5b5061086b6004803603810190610866919061254b565b6115d3565b005b34801561087957600080fd5b50610882611657565b60405161088f9190612bb7565b60405180910390f35b3480156108a457600080fd5b506108bf60048036038101906108ba9190612664565b61167d565b005b6060600380546108d0906130d1565b80601f01602080910402602001604051908101604052809291908181526020018280546108fc906130d1565b80156109495780601f1061091e57610100808354040283529160200191610949565b820191906000526020600020905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b60008061095e611748565b905061096b818585611750565b600191505092915050565b61097e61191b565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109ca61191b565b836006819055508260078190555080600a81905550612710826109eb610a0b565b6109f59190612f2b565b6109ff9190612efa565b60088190555050505050565b6000600254905090565b600a5481565b600080610a26611748565b9050610a33858285611999565b610a3e858585611a25565b60019150509392505050565b610a5261191b565b600060095414610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90612c14565b60405180910390fd5b600a5443610aa59190612ea4565b600981905550565b60006012905090565b600080610ac1611748565b9050610ae2818585610ad3858961154c565b610add9190612ea4565b611750565b600191505092915050565b60065481565b6000341415610b0157610f46565b60008111610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90612cd4565b60405180910390fd5b6000610b4f3061108f565b905060003447610b5f9190612f85565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a43905600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401610be2929190612af7565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c329190612574565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d9557601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401610ce8929190612af7565b602060405180830381600087803b158015610d0257600080fd5b505af1158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612574565b90506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b610da0333086611a25565b610dcd30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611750565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008033426040518863ffffffff1660e01b8152600401610e3496959493929190612b20565b6000604051808303818588803b158015610e4d57600080fd5b505af1158015610e61573d6000803e3d6000fd5b505050505082610e703061108f565b03925060008314610e8757610e8533846113c6565b505b814703915060008214610f425760003373ffffffffffffffffffffffffffffffffffffffff1683604051610eba90612ac7565b60006040518083038185875af1925050503d8060008114610ef7576040519150601f19603f3d011682016040523d82523d6000602084013e610efc565b606091505b5050905080610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612d74565b60405180910390fd5b505b5050505b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b610f7d61191b565b80600f819055507f4b1c0e842ce5a03194aa6fc19ac4e6809030f1bd08dc60b39de5cba1cdc6030981604051610fb39190612db4565b60405180910390a150565b610fc661191b565b60005b83839050811015611083578160126000868685818110611012577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611027919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610fc9565b50505050565b60085481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110df61191b565b6110e96000611e88565b565b6110f361191b565b81600b8190555080600c819055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461113e906130d1565b80601f016020809104026020016040519081016040528092919081815260200182805461116a906130d1565b80156111b75780601f1061118c576101008083540402835291602001916111b7565b820191906000526020600020905b81548152906001019060200180831161119a57829003601f168201915b5050505050905090565b6111c961191b565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612574565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60008061135a611748565b90506000611368828661154c565b9050838110156113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612d94565b60405180910390fd5b6113ba8286868403611750565b60019250505092915050565b6000806113d1611748565b90506113de818585611a25565b600191505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60146020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b61145761191b565b60005b838390508110156115145781601360008686858181106114a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114b8919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061145a565b50505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115db61191b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164290612c54565b60405180910390fd5b61165481611e88565b50565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61168561191b565b60005b838390508110156117425781601460008686858181106116d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116e6919061254b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611688565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612c74565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161190e9190612db4565b60405180910390a3505050565b611923611748565b73ffffffffffffffffffffffffffffffffffffffff16611941611105565b73ffffffffffffffffffffffffffffffffffffffff1614611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e90612d14565b60405180910390fd5b565b60006119a5848461154c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a1f5781811015611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890612c94565b60405180910390fd5b611a1e8484848403611750565b5b50505050565b6000600954141580611a805750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab690612cf4565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b635750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e78576000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ca757600854821115611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890612c34565b60405180910390fd5b6009544311611c63576001601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6103e8600654830281611c9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049050611e5d565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611db3576000601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d565750600c544311155b611d6257600754611d66565b600b545b90506103e881840281611da2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049150611dad611f4e565b50611e5c565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e0e5750600c544311155b15611e53576103e8600b54830281611e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0490505b611e5b611f4e565b5b5b60008114611e76578082039150611e7584308361222b565b5b505b611e8383838361222b565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611f593061108f565b9050600f5481118015611f795750601160149054906101000a900460ff16155b15612228576001601160146101000a81548160ff021916908315150217905550611fc630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611750565b6000600267ffffffffffffffff811115612009577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120375781602001602082028036833780820191505090505b5090503081600081518110612075577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061210c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c20426121b99190612ea4565b6040518663ffffffff1660e01b81526004016121d9959493929190612dcf565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b505050506000601160146101000a81548160ff021916908315150217905550505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290612d34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230290612bf4565b60405180910390fd5b6123168383836124a3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390612cb4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161248a9190612db4565b60405180910390a361249d8484846124a8565b50505050565b505050565b505050565b6000813590506124bc816134ec565b92915050565b6000815190506124d1816134ec565b92915050565b60008083601f8401126124e957600080fd5b8235905067ffffffffffffffff81111561250257600080fd5b60208301915083602082028301111561251a57600080fd5b9250929050565b60008135905061253081613503565b92915050565b6000813590506125458161351a565b92915050565b60006020828403121561255d57600080fd5b600061256b848285016124ad565b91505092915050565b60006020828403121561258657600080fd5b6000612594848285016124c2565b91505092915050565b600080604083850312156125b057600080fd5b60006125be858286016124ad565b92505060206125cf858286016124ad565b9150509250929050565b6000806000606084860312156125ee57600080fd5b60006125fc868287016124ad565b935050602061260d868287016124ad565b925050604061261e86828701612536565b9150509250925092565b6000806040838503121561263b57600080fd5b6000612649858286016124ad565b925050602061265a85828601612536565b9150509250929050565b60008060006040848603121561267957600080fd5b600084013567ffffffffffffffff81111561269357600080fd5b61269f868287016124d7565b935093505060206126b286828701612521565b9150509250925092565b6000602082840312156126ce57600080fd5b60006126dc84828501612536565b91505092915050565b600080604083850312156126f857600080fd5b600061270685828601612536565b925050602061271785828601612536565b9150509250929050565b6000806000806080858703121561273757600080fd5b600061274587828801612536565b945050602061275687828801612536565b935050604061276787828801612536565b925050606061277887828801612536565b91505092959194509250565b600061279083836127ab565b60208301905092915050565b6127a58161300e565b82525050565b6127b481612fb9565b82525050565b6127c381612fb9565b82525050565b60006127d482612e54565b6127de8185612e77565b93506127e983612e44565b8060005b8381101561281a5781516128018882612784565b975061280c83612e6a565b9250506001810190506127ed565b5085935050505092915050565b61283081612fcb565b82525050565b61283f81613020565b82525050565b61284e81613044565b82525050565b61285d81613068565b82525050565b600061286e82612e5f565b6128788185612e93565b935061288881856020860161309e565b61289181613190565b840191505092915050565b60006128a9602383612e93565b91506128b4826131a1565b604082019050919050565b60006128cc601583612e93565b91506128d7826131f0565b602082019050919050565b60006128ef600f83612e93565b91506128fa82613219565b602082019050919050565b6000612912602683612e93565b915061291d82613242565b604082019050919050565b6000612935602283612e93565b915061294082613291565b604082019050919050565b6000612958601d83612e93565b9150612963826132e0565b602082019050919050565b600061297b602683612e93565b915061298682613309565b604082019050919050565b600061299e600d83612e93565b91506129a982613358565b602082019050919050565b60006129c1601183612e93565b91506129cc82613381565b602082019050919050565b60006129e4602083612e93565b91506129ef826133aa565b602082019050919050565b6000612a07602583612e93565b9150612a12826133d3565b604082019050919050565b6000612a2a600083612e88565b9150612a3582613422565b600082019050919050565b6000612a4d602483612e93565b9150612a5882613425565b604082019050919050565b6000612a70601183612e93565b9150612a7b82613474565b602082019050919050565b6000612a93602583612e93565b9150612a9e8261349d565b604082019050919050565b612ab281612ff7565b82525050565b612ac181613001565b82525050565b6000612ad282612a1d565b9150819050919050565b6000602082019050612af160008301846127ba565b92915050565b6000604082019050612b0c60008301856127ba565b612b1960208301846127ba565b9392505050565b600060c082019050612b3560008301896127ba565b612b426020830188612aa9565b612b4f6040830187612854565b612b5c6060830186612854565b612b6960808301856127ba565b612b7660a0830184612aa9565b979650505050505050565b6000602082019050612b966000830184612827565b92915050565b6000602082019050612bb16000830184612836565b92915050565b6000602082019050612bcc6000830184612845565b92915050565b60006020820190508181036000830152612bec8184612863565b905092915050565b60006020820190508181036000830152612c0d8161289c565b9050919050565b60006020820190508181036000830152612c2d816128bf565b9050919050565b60006020820190508181036000830152612c4d816128e2565b9050919050565b60006020820190508181036000830152612c6d81612905565b9050919050565b60006020820190508181036000830152612c8d81612928565b9050919050565b60006020820190508181036000830152612cad8161294b565b9050919050565b60006020820190508181036000830152612ccd8161296e565b9050919050565b60006020820190508181036000830152612ced81612991565b9050919050565b60006020820190508181036000830152612d0d816129b4565b9050919050565b60006020820190508181036000830152612d2d816129d7565b9050919050565b60006020820190508181036000830152612d4d816129fa565b9050919050565b60006020820190508181036000830152612d6d81612a40565b9050919050565b60006020820190508181036000830152612d8d81612a63565b9050919050565b60006020820190508181036000830152612dad81612a86565b9050919050565b6000602082019050612dc96000830184612aa9565b92915050565b600060a082019050612de46000830188612aa9565b612df16020830187612854565b8181036040830152612e0381866127c9565b9050612e12606083018561279c565b612e1f6080830184612aa9565b9695505050505050565b6000602082019050612e3e6000830184612ab8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612eaf82612ff7565b9150612eba83612ff7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612eef57612eee613103565b5b828201905092915050565b6000612f0582612ff7565b9150612f1083612ff7565b925082612f2057612f1f613132565b5b828204905092915050565b6000612f3682612ff7565b9150612f4183612ff7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7a57612f79613103565b5b828202905092915050565b6000612f9082612ff7565b9150612f9b83612ff7565b925082821015612fae57612fad613103565b5b828203905092915050565b6000612fc482612fd7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130198261307a565b9050919050565b600061302b82613032565b9050919050565b600061303d82612fd7565b9050919050565b600061304f82613056565b9050919050565b600061306182612fd7565b9050919050565b600061307382612ff7565b9050919050565b60006130858261308c565b9050919050565b600061309782612fd7565b9050919050565b60005b838110156130bc5780820151818401526020810190506130a1565b838111156130cb576000848401525b50505050565b600060028204905060018216806130e957607f821691505b602082108114156130fd576130fc613161565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67416c7265616479537461727465640000000000000000000000600082015250565b7f4f7665724d61784275794c696d69740000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964416d6f756e7400000000000000000000000000000000000000600082015250565b7f54726164696e674e6f7453746172746564000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4554485472616e736665724661696c6564000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6134f581612fb9565b811461350057600080fd5b50565b61350c81612fcb565b811461351757600080fd5b50565b61352381612ff7565b811461352e57600080fd5b5056fea26469706673582212202f2f4c04d826ed7d890222c8c4776bd2a0e9f1f2f58b5228a02e37126c0ae70e64736f6c63430008040033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000440777b0361c1b2ee0f0bcf80a3c2dcd4ea36dba

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _factory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [2] : _sentTo (address): 0x440777b0361C1B2Ee0f0Bcf80a3c2DCD4ea36dBa

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [2] : 000000000000000000000000440777b0361c1b2ee0f0bcf80a3c2dcd4ea36dba


Deployed Bytecode Sourcemap

22454:6554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7572:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9932:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24303:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23848:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8701:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22628:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10713:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23671:169;;;;;;;;;;;;;:::i;:::-;;8543:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11383:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22516:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25199:1236;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22769:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22797:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26443:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24936:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22567:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8872:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21612:103;;;;;;;;;;;;;:::i;:::-;;24173:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20971:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7791:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23461:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22946:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12124:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9205:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22743:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23037:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22990:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24673:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22871:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22541:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22597:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9461:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21870:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22836:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24401:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7572:100;7626:13;7659:5;7652:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7572:100;:::o;9932:201::-;10015:4;10032:13;10048:12;:10;:12::i;:::-;10032:28;;10071:32;10080:5;10087:7;10096:6;10071:8;:32::i;:::-;10121:4;10114:11;;;9932:201;;;;:::o;24303:90::-;20857:13;:11;:13::i;:::-;24378:7:::1;24369:6;;:16;;;;;;;;;;;;;;;;;;24303:90:::0;:::o;23848:317::-;20857:13;:11;:13::i;:::-;24003:5:::1;23994:6;:14;;;;24042:5;24032:7;:15;;;;24076:10;24058:15;:28;;;;24140:3;24128:8;24112:13;:11;:13::i;:::-;:24;;;;:::i;:::-;24111:32;;;;:::i;:::-;24097:11;:46;;;;23848:317:::0;;;;:::o;8701:108::-;8762:7;8789:12;;8782:19;;8701:108;:::o;22628:27::-;;;;:::o;10713:261::-;10810:4;10827:15;10845:12;:10;:12::i;:::-;10827:30;;10868:38;10884:4;10890:7;10899:6;10868:15;:38::i;:::-;10917:27;10927:4;10933:2;10937:6;10917:9;:27::i;:::-;10962:4;10955:11;;;10713:261;;;;;:::o;23671:169::-;20857:13;:11;:13::i;:::-;23749:1:::1;23733:12;;:17;23725:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;23817:15;;23802:12;:30;;;;:::i;:::-;23787:12;:45;;;;23671:169::o:0;8543:93::-;8601:5;8626:2;8619:9;;8543:93;:::o;11383:238::-;11471:4;11488:13;11504:12;:10;:12::i;:::-;11488:28;;11527:64;11536:5;11543:7;11580:10;11552:25;11562:5;11569:7;11552:9;:25::i;:::-;:38;;;;:::i;:::-;11527:8;:64::i;:::-;11609:4;11602:11;;;11383:238;;;;:::o;22516:18::-;;;;:::o;25199:1236::-;25279:1;25266:9;:14;25262:27;;;25282:7;;25262:27;25316:1;25307:6;:10;25299:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;25348:13;25364:24;25382:4;25364:9;:24::i;:::-;25348:40;;25399:11;25437:9;25413:21;:33;;;;:::i;:::-;25399:47;;25497:12;25512:7;;;;;;;;;;;:15;;;25528:4;;;;;;;;;;;25542;25512:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25497:51;;25579:1;25563:18;;:4;:18;;;25559:130;;;25605:7;;;;;;;;;;;:18;;;25624:4;;;;;;;;;;;25638;25605:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25598:46;;25673:4;25659:5;:11;25665:4;25659:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;25559:130;25727:44;25737:10;25757:4;25764:6;25727:9;:44::i;:::-;25782:48;25799:4;25814:6;;;;;;;;;;;25823;25782:8;:48::i;:::-;25841:6;;;;;;;;;;;:22;;;25871:9;25904:4;25924:6;25945:1;25961;25977:10;26002:15;25841:187;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26104:8;26077:24;26095:4;26077:9;:24::i;:::-;:35;26066:46;;26143:1;26131:8;:13;26127:49;;26146:30;26155:10;26167:8;26146;:30::i;:::-;;26127:49;26226:6;26202:21;:30;26193:39;;26261:1;26251:6;:11;26247:170;;26284:12;26310:10;26302:24;;26334:6;26302:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26283:62;;;26372:7;26364:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;26247:170;;25199:1236;;;;;:::o;22769:21::-;;;;;;;;;;;;;:::o;22797:30::-;;;;:::o;26443:164::-;20857:13;:11;:13::i;:::-;26539:10:::1;26521:15;:28;;;;26565:34;26588:10;26565:34;;;;;;:::i;:::-;;;;;;;;26443:164:::0;:::o;24936:255::-;20857:13;:11;:13::i;:::-;25081:6:::1;25076:97;25093:7;;:14;;25089:1;:18;25076:97;;;25153:4;25133:5;:17;25139:7;;25147:1;25139:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25133:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;25109:3;;;;;25076:97;;;;24936:255:::0;;;:::o;22567:23::-;;;;:::o;8872:127::-;8946:7;8973:9;:18;8983:7;8973:18;;;;;;;;;;;;;;;;8966:25;;8872:127;;;:::o;21612:103::-;20857:13;:11;:13::i;:::-;21677:30:::1;21704:1;21677:18;:30::i;:::-;21612:103::o:0;24173:122::-;20857:13;:11;:13::i;:::-;24254:3:::1;24247:4;:10;;;;24278:9;24268:7;:19;;;;24173:122:::0;;:::o;20971:87::-;21017:7;21044:6;;;;;;;;;;;21037:13;;20971:87;:::o;7791:104::-;7847:13;7880:7;7873:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:104;:::o;23461:202::-;20857:13;:11;:13::i;:::-;23568:7:::1;23544:6;;:32;;;;;;;;;;;;;;;;;;23613:8;23587:7;;:35;;;;;;;;;;;;;;;;;;23642:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23635:4;;:20;;;;;;;;;;;;;;;;;;23461:202:::0;;:::o;22946:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;12124:436::-;12217:4;12234:13;12250:12;:10;:12::i;:::-;12234:28;;12273:24;12300:25;12310:5;12317:7;12300:9;:25::i;:::-;12273:52;;12364:15;12344:16;:35;;12336:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12457:60;12466:5;12473:7;12501:15;12482:16;:34;12457:8;:60::i;:::-;12548:4;12541:11;;;;12124:436;;;;:::o;9205:193::-;9284:4;9301:13;9317:12;:10;:12::i;:::-;9301:28;;9340;9350:5;9357:2;9361:6;9340:9;:28::i;:::-;9386:4;9379:11;;;9205:193;;;;:::o;22743:19::-;;;;;;;;;;;;;:::o;23037:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;22990:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;24673:255::-;20857:13;:11;:13::i;:::-;24819:6:::1;24814:96;24831:5;;:12;;24827:1;:16;24814:96;;;24890:4;24869:8;:18;24878:5;;24884:1;24878:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24869:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;24845:3;;;;;24814:96;;;;24673:255:::0;;;:::o;22871:30::-;;;;;;;;;;;;;:::o;22541:19::-;;;;:::o;22597:24::-;;;;:::o;9461:151::-;9550:7;9577:11;:18;9589:5;9577:18;;;;;;;;;;;;;;;:27;9596:7;9577:27;;;;;;;;;;;;;;;;9570:34;;9461:151;;;;:::o;21870:201::-;20857:13;:11;:13::i;:::-;21979:1:::1;21959:22;;:8;:22;;;;21951:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22035:28;22054:8;22035:18;:28::i;:::-;21870:201:::0;:::o;22836:28::-;;;;;;;;;;;;;:::o;24401:264::-;20857:13;:11;:13::i;:::-;24551:6:::1;24546:101;24563:6;;:13;;24559:1;:17;24546:101;;;24627:4;24602:11;:22;24614:6;;24621:1;24614:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24602:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;24578:3;;;;;24546:101;;;;24401:264:::0;;;:::o;1843:98::-;1896:7;1923:10;1916:17;;1843:98;:::o;16117:346::-;16236:1;16219:19;;:5;:19;;;;16211:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16317:1;16298:21;;:7;:21;;;;16290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16401:6;16371:11;:18;16383:5;16371:18;;;;;;;;;;;;;;;:27;16390:7;16371:27;;;;;;;;;;;;;;;:36;;;;16439:7;16423:32;;16432:5;16423:32;;;16448:6;16423:32;;;;;;:::i;:::-;;;;;;;;16117:346;;;:::o;21136:132::-;21211:12;:10;:12::i;:::-;21200:23;;:7;:5;:7::i;:::-;:23;;;21192:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21136:132::o;16754:419::-;16855:24;16882:25;16892:5;16899:7;16882:9;:25::i;:::-;16855:52;;16942:17;16922:16;:37;16918:248;;17004:6;16984:16;:26;;16976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17088:51;17097:5;17104:7;17132:6;17113:16;:25;17088:8;:51::i;:::-;16918:248;16754:419;;;;:::o;27302:1703::-;27521:1;27505:12;;:17;;:35;;;;27526:8;:14;27535:4;27526:14;;;;;;;;;;;;;;;;;;;;;;;;;27505:35;27497:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;27580:8;:14;27589:4;27580:14;;;;;;;;;;;;;;;;;;;;;;;;;27579:15;:32;;;;;27599:8;:12;27608:2;27599:12;;;;;;;;;;;;;;;;;;;;;;;;;27598:13;27579:32;27575:1377;;;27628:11;27714:5;:11;27720:4;27714:11;;;;;;;;;;;;;;;;;;;;;;;;;27710:1053;;;27942:11;;27932:6;:21;;27924:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;28062:12;;28046;:28;28042:107;;28121:4;28103:11;:15;28115:2;28103:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;28042:107;28202:3;28192:6;;28183;:15;28182:23;;;;;;;;;;;;;;28173:32;;27710:1053;;;28235:5;:9;28241:2;28235:9;;;;;;;;;;;;;;;;;;;;;;;;;28231:532;;;28319:11;28334;:17;28346:4;28334:17;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;28371:7;;28355:12;:23;;28334:44;28333:113;;28439:7;;28333:113;;;28407:4;;28333:113;28319:127;;28498:3;28488:6;28479;:15;28478:23;;;;;;;;;;;;;;28469:32;;28526:19;:17;:19::i;:::-;28231:532;;;;28598:11;:17;28610:4;28598:17;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;28635:7;;28619:12;:23;;28598:44;28594:105;;;28696:3;28688:4;;28679:6;:13;28678:21;;;;;;;;;;;;;;28669:30;;28594:105;28724:19;:17;:19::i;:::-;28231:532;27710:1053;28797:1;28787:6;:11;28783:143;;28833:6;28823:16;;;;28862:44;28878:4;28892;28899:6;28862:15;:44::i;:::-;28783:143;27575:1377;;28964:33;28980:4;28986:2;28990:6;28964:15;:33::i;:::-;27302:1703;;;:::o;22231:191::-;22305:16;22324:6;;;;;;;;;;;22305:25;;22350:8;22341:6;;:17;;;;;;;;;;;;;;;;;;22405:8;22374:40;;22395:8;22374:40;;;;;;;;;;;;22231:191;;:::o;26615:679::-;26664:16;26683:24;26701:4;26683:9;:24::i;:::-;26664:43;;26756:15;;26745:8;:26;:37;;;;;26776:6;;;;;;;;;;;26775:7;26745:37;26741:546;;;26808:4;26799:6;;:13;;;;;;;;;;;;;;;;;;26829:50;26846:4;26861:6;;;;;;;;;;;26870:8;26829;:50::i;:::-;26896:22;26935:1;26921:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26896:41;;26971:4;26952:5;26958:1;26952:8;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;27002:4;;;;;;;;;;;26991:5;26997:1;26991:8;;;;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;27023:6;;;;;;;;;;;:57;;;27099:8;27126:1;27146:5;27178:6;;;;;;;;;;;27222:7;27204:15;:25;;;;:::i;:::-;27023:221;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27270:5;27261:6;;:14;;;;;;;;;;;;;;;;;;26741:546;;26615:679;:::o;13030:806::-;13143:1;13127:18;;:4;:18;;;;13119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13220:1;13206:16;;:2;:16;;;;13198:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13275:38;13296:4;13302:2;13306:6;13275:20;:38::i;:::-;13326:19;13348:9;:15;13358:4;13348:15;;;;;;;;;;;;;;;;13326:37;;13397:6;13382:11;:21;;13374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13514:6;13500:11;:20;13482:9;:15;13492:4;13482:15;;;;;;;;;;;;;;;:38;;;;13717:6;13700:9;:13;13710:2;13700:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13767:2;13752:26;;13761:4;13752:26;;;13771:6;13752:26;;;;;;:::i;:::-;;;;;;;;13791:37;13811:4;13817:2;13821:6;13791:19;:37::i;:::-;13030:806;;;;:::o;17773:91::-;;;;:::o;18468:90::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:133::-;734:5;772:6;759:20;750:29;;788:30;812:5;788:30;:::i;:::-;740:84;;;;:::o;830:139::-;876:5;914:6;901:20;892:29;;930:33;957:5;930:33;:::i;:::-;882:87;;;;:::o;975:262::-;1034:6;1083:2;1071:9;1062:7;1058:23;1054:32;1051:2;;;1099:1;1096;1089:12;1051:2;1142:1;1167:53;1212:7;1203:6;1192:9;1188:22;1167:53;:::i;:::-;1157:63;;1113:117;1041:196;;;;:::o;1243:284::-;1313:6;1362:2;1350:9;1341:7;1337:23;1333:32;1330:2;;;1378:1;1375;1368:12;1330:2;1421:1;1446:64;1502:7;1493:6;1482:9;1478:22;1446:64;:::i;:::-;1436:74;;1392:128;1320:207;;;;:::o;1533:407::-;1601:6;1609;1658:2;1646:9;1637:7;1633:23;1629:32;1626:2;;;1674:1;1671;1664:12;1626:2;1717:1;1742:53;1787:7;1778:6;1767:9;1763:22;1742:53;:::i;:::-;1732:63;;1688:117;1844:2;1870:53;1915:7;1906:6;1895:9;1891:22;1870:53;:::i;:::-;1860:63;;1815:118;1616:324;;;;;:::o;1946:552::-;2023:6;2031;2039;2088:2;2076:9;2067:7;2063:23;2059:32;2056:2;;;2104:1;2101;2094:12;2056:2;2147:1;2172:53;2217:7;2208:6;2197:9;2193:22;2172:53;:::i;:::-;2162:63;;2118:117;2274:2;2300:53;2345:7;2336:6;2325:9;2321:22;2300:53;:::i;:::-;2290:63;;2245:118;2402:2;2428:53;2473:7;2464:6;2453:9;2449:22;2428:53;:::i;:::-;2418:63;;2373:118;2046:452;;;;;:::o;2504:407::-;2572:6;2580;2629:2;2617:9;2608:7;2604:23;2600:32;2597:2;;;2645:1;2642;2635:12;2597:2;2688:1;2713:53;2758:7;2749:6;2738:9;2734:22;2713:53;:::i;:::-;2703:63;;2659:117;2815:2;2841:53;2886:7;2877:6;2866:9;2862:22;2841:53;:::i;:::-;2831:63;;2786:118;2587:324;;;;;:::o;2917:564::-;3009:6;3017;3025;3074:2;3062:9;3053:7;3049:23;3045:32;3042:2;;;3090:1;3087;3080:12;3042:2;3161:1;3150:9;3146:17;3133:31;3191:18;3183:6;3180:30;3177:2;;;3223:1;3220;3213:12;3177:2;3259:80;3331:7;3322:6;3311:9;3307:22;3259:80;:::i;:::-;3241:98;;;;3104:245;3388:2;3414:50;3456:7;3447:6;3436:9;3432:22;3414:50;:::i;:::-;3404:60;;3359:115;3032:449;;;;;:::o;3487:262::-;3546:6;3595:2;3583:9;3574:7;3570:23;3566:32;3563:2;;;3611:1;3608;3601:12;3563:2;3654:1;3679:53;3724:7;3715:6;3704:9;3700:22;3679:53;:::i;:::-;3669:63;;3625:117;3553:196;;;;:::o;3755:407::-;3823:6;3831;3880:2;3868:9;3859:7;3855:23;3851:32;3848:2;;;3896:1;3893;3886:12;3848:2;3939:1;3964:53;4009:7;4000:6;3989:9;3985:22;3964:53;:::i;:::-;3954:63;;3910:117;4066:2;4092:53;4137:7;4128:6;4117:9;4113:22;4092:53;:::i;:::-;4082:63;;4037:118;3838:324;;;;;:::o;4168:698::-;4254:6;4262;4270;4278;4327:3;4315:9;4306:7;4302:23;4298:33;4295:2;;;4344:1;4341;4334:12;4295:2;4387:1;4412:53;4457:7;4448:6;4437:9;4433:22;4412:53;:::i;:::-;4402:63;;4358:117;4514:2;4540:53;4585:7;4576:6;4565:9;4561:22;4540:53;:::i;:::-;4530:63;;4485:118;4642:2;4668:53;4713:7;4704:6;4693:9;4689:22;4668:53;:::i;:::-;4658:63;;4613:118;4770:2;4796:53;4841:7;4832:6;4821:9;4817:22;4796:53;:::i;:::-;4786:63;;4741:118;4285:581;;;;;;;:::o;4872:179::-;4941:10;4962:46;5004:3;4996:6;4962:46;:::i;:::-;5040:4;5035:3;5031:14;5017:28;;4952:99;;;;:::o;5057:147::-;5152:45;5191:5;5152:45;:::i;:::-;5147:3;5140:58;5130:74;;:::o;5210:108::-;5287:24;5305:5;5287:24;:::i;:::-;5282:3;5275:37;5265:53;;:::o;5324:118::-;5411:24;5429:5;5411:24;:::i;:::-;5406:3;5399:37;5389:53;;:::o;5478:732::-;5597:3;5626:54;5674:5;5626:54;:::i;:::-;5696:86;5775:6;5770:3;5696:86;:::i;:::-;5689:93;;5806:56;5856:5;5806:56;:::i;:::-;5885:7;5916:1;5901:284;5926:6;5923:1;5920:13;5901:284;;;6002:6;5996:13;6029:63;6088:3;6073:13;6029:63;:::i;:::-;6022:70;;6115:60;6168:6;6115:60;:::i;:::-;6105:70;;5961:224;5948:1;5945;5941:9;5936:14;;5901:284;;;5905:14;6201:3;6194:10;;5602:608;;;;;;;:::o;6216:109::-;6297:21;6312:5;6297:21;:::i;:::-;6292:3;6285:34;6275:50;;:::o;6331:177::-;6441:60;6495:5;6441:60;:::i;:::-;6436:3;6429:73;6419:89;;:::o;6514:175::-;6623:59;6676:5;6623:59;:::i;:::-;6618:3;6611:72;6601:88;;:::o;6695:147::-;6790:45;6829:5;6790:45;:::i;:::-;6785:3;6778:58;6768:74;;:::o;6848:364::-;6936:3;6964:39;6997:5;6964:39;:::i;:::-;7019:71;7083:6;7078:3;7019:71;:::i;:::-;7012:78;;7099:52;7144:6;7139:3;7132:4;7125:5;7121:16;7099:52;:::i;:::-;7176:29;7198:6;7176:29;:::i;:::-;7171:3;7167:39;7160:46;;6940:272;;;;;:::o;7218:366::-;7360:3;7381:67;7445:2;7440:3;7381:67;:::i;:::-;7374:74;;7457:93;7546:3;7457:93;:::i;:::-;7575:2;7570:3;7566:12;7559:19;;7364:220;;;:::o;7590:366::-;7732:3;7753:67;7817:2;7812:3;7753:67;:::i;:::-;7746:74;;7829:93;7918:3;7829:93;:::i;:::-;7947:2;7942:3;7938:12;7931:19;;7736:220;;;:::o;7962:366::-;8104:3;8125:67;8189:2;8184:3;8125:67;:::i;:::-;8118:74;;8201:93;8290:3;8201:93;:::i;:::-;8319:2;8314:3;8310:12;8303:19;;8108:220;;;:::o;8334:366::-;8476:3;8497:67;8561:2;8556:3;8497:67;:::i;:::-;8490:74;;8573:93;8662:3;8573:93;:::i;:::-;8691:2;8686:3;8682:12;8675:19;;8480:220;;;:::o;8706:366::-;8848:3;8869:67;8933:2;8928:3;8869:67;:::i;:::-;8862:74;;8945:93;9034:3;8945:93;:::i;:::-;9063:2;9058:3;9054:12;9047:19;;8852:220;;;:::o;9078:366::-;9220:3;9241:67;9305:2;9300:3;9241:67;:::i;:::-;9234:74;;9317:93;9406:3;9317:93;:::i;:::-;9435:2;9430:3;9426:12;9419:19;;9224:220;;;:::o;9450:366::-;9592:3;9613:67;9677:2;9672:3;9613:67;:::i;:::-;9606:74;;9689:93;9778:3;9689:93;:::i;:::-;9807:2;9802:3;9798:12;9791:19;;9596:220;;;:::o;9822:366::-;9964:3;9985:67;10049:2;10044:3;9985:67;:::i;:::-;9978:74;;10061:93;10150:3;10061:93;:::i;:::-;10179:2;10174:3;10170:12;10163:19;;9968:220;;;:::o;10194:366::-;10336:3;10357:67;10421:2;10416:3;10357:67;:::i;:::-;10350:74;;10433:93;10522:3;10433:93;:::i;:::-;10551:2;10546:3;10542:12;10535:19;;10340:220;;;:::o;10566:366::-;10708:3;10729:67;10793:2;10788:3;10729:67;:::i;:::-;10722:74;;10805:93;10894:3;10805:93;:::i;:::-;10923:2;10918:3;10914:12;10907:19;;10712:220;;;:::o;10938:366::-;11080:3;11101:67;11165:2;11160:3;11101:67;:::i;:::-;11094:74;;11177:93;11266:3;11177:93;:::i;:::-;11295:2;11290:3;11286:12;11279:19;;11084:220;;;:::o;11310:398::-;11469:3;11490:83;11571:1;11566:3;11490:83;:::i;:::-;11483:90;;11582:93;11671:3;11582:93;:::i;:::-;11700:1;11695:3;11691:11;11684:18;;11473:235;;;:::o;11714:366::-;11856:3;11877:67;11941:2;11936:3;11877:67;:::i;:::-;11870:74;;11953:93;12042:3;11953:93;:::i;:::-;12071:2;12066:3;12062:12;12055:19;;11860:220;;;:::o;12086:366::-;12228:3;12249:67;12313:2;12308:3;12249:67;:::i;:::-;12242:74;;12325:93;12414:3;12325:93;:::i;:::-;12443:2;12438:3;12434:12;12427:19;;12232:220;;;:::o;12458:366::-;12600:3;12621:67;12685:2;12680:3;12621:67;:::i;:::-;12614:74;;12697:93;12786:3;12697:93;:::i;:::-;12815:2;12810:3;12806:12;12799:19;;12604:220;;;:::o;12830:118::-;12917:24;12935:5;12917:24;:::i;:::-;12912:3;12905:37;12895:53;;:::o;12954:112::-;13037:22;13053:5;13037:22;:::i;:::-;13032:3;13025:35;13015:51;;:::o;13072:379::-;13256:3;13278:147;13421:3;13278:147;:::i;:::-;13271:154;;13442:3;13435:10;;13260:191;;;:::o;13457:222::-;13550:4;13588:2;13577:9;13573:18;13565:26;;13601:71;13669:1;13658:9;13654:17;13645:6;13601:71;:::i;:::-;13555:124;;;;:::o;13685:332::-;13806:4;13844:2;13833:9;13829:18;13821:26;;13857:71;13925:1;13914:9;13910:17;13901:6;13857:71;:::i;:::-;13938:72;14006:2;13995:9;13991:18;13982:6;13938:72;:::i;:::-;13811:206;;;;;:::o;14023:807::-;14272:4;14310:3;14299:9;14295:19;14287:27;;14324:71;14392:1;14381:9;14377:17;14368:6;14324:71;:::i;:::-;14405:72;14473:2;14462:9;14458:18;14449:6;14405:72;:::i;:::-;14487:80;14563:2;14552:9;14548:18;14539:6;14487:80;:::i;:::-;14577;14653:2;14642:9;14638:18;14629:6;14577:80;:::i;:::-;14667:73;14735:3;14724:9;14720:19;14711:6;14667:73;:::i;:::-;14750;14818:3;14807:9;14803:19;14794:6;14750:73;:::i;:::-;14277:553;;;;;;;;;:::o;14836:210::-;14923:4;14961:2;14950:9;14946:18;14938:26;;14974:65;15036:1;15025:9;15021:17;15012:6;14974:65;:::i;:::-;14928:118;;;;:::o;15052:268::-;15168:4;15206:2;15195:9;15191:18;15183:26;;15219:94;15310:1;15299:9;15295:17;15286:6;15219:94;:::i;:::-;15173:147;;;;:::o;15326:266::-;15441:4;15479:2;15468:9;15464:18;15456:26;;15492:93;15582:1;15571:9;15567:17;15558:6;15492:93;:::i;:::-;15446:146;;;;:::o;15598:313::-;15711:4;15749:2;15738:9;15734:18;15726:26;;15798:9;15792:4;15788:20;15784:1;15773:9;15769:17;15762:47;15826:78;15899:4;15890:6;15826:78;:::i;:::-;15818:86;;15716:195;;;;:::o;15917:419::-;16083:4;16121:2;16110:9;16106:18;16098:26;;16170:9;16164:4;16160:20;16156:1;16145:9;16141:17;16134:47;16198:131;16324:4;16198:131;:::i;:::-;16190:139;;16088:248;;;:::o;16342:419::-;16508:4;16546:2;16535:9;16531:18;16523:26;;16595:9;16589:4;16585:20;16581:1;16570:9;16566:17;16559:47;16623:131;16749:4;16623:131;:::i;:::-;16615:139;;16513:248;;;:::o;16767:419::-;16933:4;16971:2;16960:9;16956:18;16948:26;;17020:9;17014:4;17010:20;17006:1;16995:9;16991:17;16984:47;17048:131;17174:4;17048:131;:::i;:::-;17040:139;;16938:248;;;:::o;17192:419::-;17358:4;17396:2;17385:9;17381:18;17373:26;;17445:9;17439:4;17435:20;17431:1;17420:9;17416:17;17409:47;17473:131;17599:4;17473:131;:::i;:::-;17465:139;;17363:248;;;:::o;17617:419::-;17783:4;17821:2;17810:9;17806:18;17798:26;;17870:9;17864:4;17860:20;17856:1;17845:9;17841:17;17834:47;17898:131;18024:4;17898:131;:::i;:::-;17890:139;;17788:248;;;:::o;18042:419::-;18208:4;18246:2;18235:9;18231:18;18223:26;;18295:9;18289:4;18285:20;18281:1;18270:9;18266:17;18259:47;18323:131;18449:4;18323:131;:::i;:::-;18315:139;;18213:248;;;:::o;18467:419::-;18633:4;18671:2;18660:9;18656:18;18648:26;;18720:9;18714:4;18710:20;18706:1;18695:9;18691:17;18684:47;18748:131;18874:4;18748:131;:::i;:::-;18740:139;;18638:248;;;:::o;18892:419::-;19058:4;19096:2;19085:9;19081:18;19073:26;;19145:9;19139:4;19135:20;19131:1;19120:9;19116:17;19109:47;19173:131;19299:4;19173:131;:::i;:::-;19165:139;;19063:248;;;:::o;19317:419::-;19483:4;19521:2;19510:9;19506:18;19498:26;;19570:9;19564:4;19560:20;19556:1;19545:9;19541:17;19534:47;19598:131;19724:4;19598:131;:::i;:::-;19590:139;;19488:248;;;:::o;19742:419::-;19908:4;19946:2;19935:9;19931:18;19923:26;;19995:9;19989:4;19985:20;19981:1;19970:9;19966:17;19959:47;20023:131;20149:4;20023:131;:::i;:::-;20015:139;;19913:248;;;:::o;20167:419::-;20333:4;20371:2;20360:9;20356:18;20348:26;;20420:9;20414:4;20410:20;20406:1;20395:9;20391:17;20384:47;20448:131;20574:4;20448:131;:::i;:::-;20440:139;;20338:248;;;:::o;20592:419::-;20758:4;20796:2;20785:9;20781:18;20773:26;;20845:9;20839:4;20835:20;20831:1;20820:9;20816:17;20809:47;20873:131;20999:4;20873:131;:::i;:::-;20865:139;;20763:248;;;:::o;21017:419::-;21183:4;21221:2;21210:9;21206:18;21198:26;;21270:9;21264:4;21260:20;21256:1;21245:9;21241:17;21234:47;21298:131;21424:4;21298:131;:::i;:::-;21290:139;;21188:248;;;:::o;21442:419::-;21608:4;21646:2;21635:9;21631:18;21623:26;;21695:9;21689:4;21685:20;21681:1;21670:9;21666:17;21659:47;21723:131;21849:4;21723:131;:::i;:::-;21715:139;;21613:248;;;:::o;21867:222::-;21960:4;21998:2;21987:9;21983:18;21975:26;;22011:71;22079:1;22068:9;22064:17;22055:6;22011:71;:::i;:::-;21965:124;;;;:::o;22095:847::-;22366:4;22404:3;22393:9;22389:19;22381:27;;22418:71;22486:1;22475:9;22471:17;22462:6;22418:71;:::i;:::-;22499:80;22575:2;22564:9;22560:18;22551:6;22499:80;:::i;:::-;22626:9;22620:4;22616:20;22611:2;22600:9;22596:18;22589:48;22654:108;22757:4;22748:6;22654:108;:::i;:::-;22646:116;;22772:80;22848:2;22837:9;22833:18;22824:6;22772:80;:::i;:::-;22862:73;22930:3;22919:9;22915:19;22906:6;22862:73;:::i;:::-;22371:571;;;;;;;;:::o;22948:214::-;23037:4;23075:2;23064:9;23060:18;23052:26;;23088:67;23152:1;23141:9;23137:17;23128:6;23088:67;:::i;:::-;23042:120;;;;:::o;23168:132::-;23235:4;23258:3;23250:11;;23288:4;23283:3;23279:14;23271:22;;23240:60;;;:::o;23306:114::-;23373:6;23407:5;23401:12;23391:22;;23380:40;;;:::o;23426:99::-;23478:6;23512:5;23506:12;23496:22;;23485:40;;;:::o;23531:113::-;23601:4;23633;23628:3;23624:14;23616:22;;23606:38;;;:::o;23650:184::-;23749:11;23783:6;23778:3;23771:19;23823:4;23818:3;23814:14;23799:29;;23761:73;;;;:::o;23840:147::-;23941:11;23978:3;23963:18;;23953:34;;;;:::o;23993:169::-;24077:11;24111:6;24106:3;24099:19;24151:4;24146:3;24142:14;24127:29;;24089:73;;;;:::o;24168:305::-;24208:3;24227:20;24245:1;24227:20;:::i;:::-;24222:25;;24261:20;24279:1;24261:20;:::i;:::-;24256:25;;24415:1;24347:66;24343:74;24340:1;24337:81;24334:2;;;24421:18;;:::i;:::-;24334:2;24465:1;24462;24458:9;24451:16;;24212:261;;;;:::o;24479:185::-;24519:1;24536:20;24554:1;24536:20;:::i;:::-;24531:25;;24570:20;24588:1;24570:20;:::i;:::-;24565:25;;24609:1;24599:2;;24614:18;;:::i;:::-;24599:2;24656:1;24653;24649:9;24644:14;;24521:143;;;;:::o;24670:348::-;24710:7;24733:20;24751:1;24733:20;:::i;:::-;24728:25;;24767:20;24785:1;24767:20;:::i;:::-;24762:25;;24955:1;24887:66;24883:74;24880:1;24877:81;24872:1;24865:9;24858:17;24854:105;24851:2;;;24962:18;;:::i;:::-;24851:2;25010:1;25007;25003:9;24992:20;;24718:300;;;;:::o;25024:191::-;25064:4;25084:20;25102:1;25084:20;:::i;:::-;25079:25;;25118:20;25136:1;25118:20;:::i;:::-;25113:25;;25157:1;25154;25151:8;25148:2;;;25162:18;;:::i;:::-;25148:2;25207:1;25204;25200:9;25192:17;;25069:146;;;;:::o;25221:96::-;25258:7;25287:24;25305:5;25287:24;:::i;:::-;25276:35;;25266:51;;;:::o;25323:90::-;25357:7;25400:5;25393:13;25386:21;25375:32;;25365:48;;;:::o;25419:126::-;25456:7;25496:42;25489:5;25485:54;25474:65;;25464:81;;;:::o;25551:77::-;25588:7;25617:5;25606:16;;25596:32;;;:::o;25634:86::-;25669:7;25709:4;25702:5;25698:16;25687:27;;25677:43;;;:::o;25726:134::-;25784:9;25817:37;25848:5;25817:37;:::i;:::-;25804:50;;25794:66;;;:::o;25866:172::-;25939:9;25972:60;26026:5;25972:60;:::i;:::-;25959:73;;25949:89;;;:::o;26044:136::-;26117:9;26150:24;26168:5;26150:24;:::i;:::-;26137:37;;26127:53;;;:::o;26186:170::-;26258:9;26291:59;26344:5;26291:59;:::i;:::-;26278:72;;26268:88;;;:::o;26362:135::-;26434:9;26467:24;26485:5;26467:24;:::i;:::-;26454:37;;26444:53;;;:::o;26503:121::-;26561:9;26594:24;26612:5;26594:24;:::i;:::-;26581:37;;26571:53;;;:::o;26630:126::-;26680:9;26713:37;26744:5;26713:37;:::i;:::-;26700:50;;26690:66;;;:::o;26762:113::-;26812:9;26845:24;26863:5;26845:24;:::i;:::-;26832:37;;26822:53;;;:::o;26881:307::-;26949:1;26959:113;26973:6;26970:1;26967:13;26959:113;;;27058:1;27053:3;27049:11;27043:18;27039:1;27034:3;27030:11;27023:39;26995:2;26992:1;26988:10;26983:15;;26959:113;;;27090:6;27087:1;27084:13;27081:2;;;27170:1;27161:6;27156:3;27152:16;27145:27;27081:2;26930:258;;;;:::o;27194:320::-;27238:6;27275:1;27269:4;27265:12;27255:22;;27322:1;27316:4;27312:12;27343:18;27333:2;;27399:4;27391:6;27387:17;27377:27;;27333:2;27461;27453:6;27450:14;27430:18;27427:38;27424:2;;;27480:18;;:::i;:::-;27424:2;27245:269;;;;:::o;27520:180::-;27568:77;27565:1;27558:88;27665:4;27662:1;27655:15;27689:4;27686:1;27679:15;27706:180;27754:77;27751:1;27744:88;27851:4;27848:1;27841:15;27875:4;27872:1;27865:15;27892:180;27940:77;27937:1;27930:88;28037:4;28034:1;28027:15;28061:4;28058:1;28051:15;28078:102;28119:6;28170:2;28166:7;28161:2;28154:5;28150:14;28146:28;28136:38;;28126:54;;;:::o;28186:222::-;28326:34;28322:1;28314:6;28310:14;28303:58;28395:5;28390:2;28382:6;28378:15;28371:30;28292:116;:::o;28414:171::-;28554:23;28550:1;28542:6;28538:14;28531:47;28520:65;:::o;28591:165::-;28731:17;28727:1;28719:6;28715:14;28708:41;28697:59;:::o;28762:225::-;28902:34;28898:1;28890:6;28886:14;28879:58;28971:8;28966:2;28958:6;28954:15;28947:33;28868:119;:::o;28993:221::-;29133:34;29129:1;29121:6;29117:14;29110:58;29202:4;29197:2;29189:6;29185:15;29178:29;29099:115;:::o;29220:179::-;29360:31;29356:1;29348:6;29344:14;29337:55;29326:73;:::o;29405:225::-;29545:34;29541:1;29533:6;29529:14;29522:58;29614:8;29609:2;29601:6;29597:15;29590:33;29511:119;:::o;29636:163::-;29776:15;29772:1;29764:6;29760:14;29753:39;29742:57;:::o;29805:167::-;29945:19;29941:1;29933:6;29929:14;29922:43;29911:61;:::o;29978:182::-;30118:34;30114:1;30106:6;30102:14;30095:58;30084:76;:::o;30166:224::-;30306:34;30302:1;30294:6;30290:14;30283:58;30375:7;30370:2;30362:6;30358:15;30351:32;30272:118;:::o;30396:114::-;30502:8;:::o;30516:223::-;30656:34;30652:1;30644:6;30640:14;30633:58;30725:6;30720:2;30712:6;30708:15;30701:31;30622:117;:::o;30745:167::-;30885:19;30881:1;30873:6;30869:14;30862:43;30851:61;:::o;30918:224::-;31058:34;31054:1;31046:6;31042:14;31035:58;31127:7;31122:2;31114:6;31110:15;31103:32;31024:118;:::o;31148:122::-;31221:24;31239:5;31221:24;:::i;:::-;31214:5;31211:35;31201:2;;31260:1;31257;31250:12;31201:2;31191:79;:::o;31276:116::-;31346:21;31361:5;31346:21;:::i;:::-;31339:5;31336:32;31326:2;;31382:1;31379;31372:12;31326:2;31316:76;:::o;31398:122::-;31471:24;31489:5;31471:24;:::i;:::-;31464:5;31461:35;31451:2;;31510:1;31507;31500:12;31451:2;31441:79;:::o

Swarm Source

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