ETH Price: $3,154.41 (+0.33%)
Gas: 1 Gwei

Token

HotPad (HTD)
 

Overview

Max Total Supply

100,000,000 HTD

Holders

374

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.289113130426401771 HTD

Value
$0.00
0xa0638a858f527f3954cda9b3f1b9ca652144c9ae
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HtdToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(
        address recipient,
        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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @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 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);
}

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

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

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;
    uint8 private _decimals;

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

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

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

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

    function _decimal(uint8 decimal_) internal virtual {
        _decimals = decimal_;
    }

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `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;
        _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;
        }
        _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 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 {}
}

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() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(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"
        );
        _setOwner(newOwner);
    }

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

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

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

    function WETH() external pure returns (address);
}

interface IUniswapV2Pair {
    function totalSupply() external view returns (uint);
}

contract HtdToken is ERC20, Ownable {
    string private constant name_ = "HotPad";
    string private constant symbol_ = "HTD";
    uint8 private constant decimal_ = 18;
    uint256 private constant total_ = 1 * (10 ** 8) * (10 ** uint256(decimal_));

    mapping(address => bool) public blocklist;
    mapping(address => bool) public pairs;

    uint256 public tradingTime = 1672502400;
    uint256 public lockSecond;
    IUniswapV2Pair uniswapV2Pair;
    IERC20 currency;

    event UpdateBlocklist(address account, bool isBlock);

    constructor(
        address _router,
        address _currency
    ) ERC20(name_, symbol_, decimal_) {
        _mint(msg.sender, total_);
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(_router);
        address uniswapV2PairAddress = IUniswapV2Factory(
            uniswapV2Router.factory()
        ).createPair(address(this), _currency);
        uniswapV2Pair = IUniswapV2Pair(uniswapV2PairAddress);
        currency = IERC20(_currency);
        pairs[uniswapV2PairAddress] = true;
    }

    function setBlocklist(address account, bool _block) external onlyOwner {
        _addBlocklist(account, _block);
    }

    function setTimeInfo(
        uint256 _tradingTime,
        uint256 _lock_s
    ) external onlyOwner {
        tradingTime = _tradingTime;
        lockSecond = _lock_s;
    }

    function _addBlocklist(address account, bool _block) internal {
        blocklist[account] = _block;
        emit UpdateBlocklist(account, _block);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(!blocklist[sender], "blocklist");

        if (pairs[recipient] || pairs[sender]) {
            if (checkIsBlock() && !_isOwnerTransfer(sender, recipient)) {
                _addBlock(sender);
                _addBlock(recipient);
            }
        }

        super._transfer(sender, recipient, amount);
    }

    function _isOwnerTransfer(
        address _sender,
        address _recipient
    ) internal view returns (bool) {
        return _sender == owner() || _recipient == owner();
    }

    function _addBlock(address addr) internal {
        if (!pairs[addr]) {
            _addBlocklist(addr, true);
        }
    }

    function checkIsBlock() internal view returns (bool) {
        return tradingTime + lockSecond > block.timestamp;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_currency","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlock","type":"bool"}],"name":"UpdateBlocklist","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blocklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockSecond","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":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_block","type":"bool"}],"name":"setBlocklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tradingTime","type":"uint256"},{"internalType":"uint256","name":"_lock_s","type":"uint256"}],"name":"setTimeInfo","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":"tradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526363b05c806008553480156200001957600080fd5b506040516200293b3803806200293b83398181016040528101906200003f919062000697565b6040518060400160405280600681526020017f486f7450616400000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f485444000000000000000000000000000000000000000000000000000000000081525060128260039080519060200190620000c5929190620005a4565b508160049080519060200190620000de929190620005a4565b5080600560006101000a81548160ff021916908360ff1602179055505050506200011d620001116200035360201b60201c565b6200035b60201b60201c565b6200015233601260ff16600a62000135919062000871565b6305f5e100620001469190620009ae565b6200042160201b60201c565b600082905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a057600080fd5b505afa158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db91906200066b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401620002179291906200073c565b602060405180830381600087803b1580156200023257600080fd5b505af115801562000247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026d91906200066b565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505062000b08565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000494576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200048b9062000769565b60405180910390fd5b620004a8600083836200059a60201b60201c565b8060026000828254620004bc9190620007b9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620005139190620007b9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200057a91906200078b565b60405180910390a362000596600083836200059f60201b60201c565b5050565b505050565b505050565b828054620005b29062000a4d565b90600052602060002090601f016020900481019282620005d6576000855562000622565b82601f10620005f157805160ff191683800117855562000622565b8280016001018555821562000622579182015b828111156200062157825182559160200191906001019062000604565b5b50905062000631919062000635565b5090565b5b808211156200065057600081600090555060010162000636565b5090565b600081519050620006658162000aee565b92915050565b6000602082840312156200067e57600080fd5b60006200068e8482850162000654565b91505092915050565b60008060408385031215620006ab57600080fd5b6000620006bb8582860162000654565b9250506020620006ce8582860162000654565b9150509250929050565b620006e38162000a0f565b82525050565b6000620006f8601f83620007a8565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620007368162000a43565b82525050565b6000604082019050620007536000830185620006d8565b620007626020830184620006d8565b9392505050565b600060208201905081810360008301526200078481620006e9565b9050919050565b6000602082019050620007a260008301846200072b565b92915050565b600082825260208201905092915050565b6000620007c68262000a43565b9150620007d38362000a43565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200080b576200080a62000a83565b5b828201905092915050565b6000808291508390505b6001851115620008685780860481111562000840576200083f62000a83565b5b6001851615620008505780820291505b8081029050620008608562000ae1565b945062000820565b94509492505050565b60006200087e8262000a43565b91506200088b8362000a43565b9250620008ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008c2565b905092915050565b600082620008d45760019050620009a7565b81620008e45760009050620009a7565b8160018114620008fd576002811462000908576200093e565b6001915050620009a7565b60ff8411156200091d576200091c62000a83565b5b8360020a91508482111562000937576200093662000a83565b5b50620009a7565b5060208310610133831016604e8410600b8410161715620009785782820a90508381111562000972576200097162000a83565b5b620009a7565b62000987848484600162000816565b92509050818404811115620009a157620009a062000a83565b5b81810290505b9392505050565b6000620009bb8262000a43565b9150620009c88362000a43565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a045762000a0362000a83565b5b828202905092915050565b600062000a1c8262000a23565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000a6657607f821691505b6020821081141562000a7d5762000a7c62000ab2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000af98162000a0f565b811462000b0557600080fd5b50565b611e238062000b186000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806391694308116100ad578063b8158d6011610071578063b8158d6014610347578063dd62ed3e14610365578063e5c7160b14610395578063f2fde38b146103c5578063fe33b302146103e15761012c565b8063916943081461029157806393f9440d146102ad57806395d89b41146102c9578063a457c2d7146102e7578063a9059cbb146103175761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806370a0823114610239578063715018a6146102695780638da5cb5b146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806325841647146101cd575b600080fd5b610139610411565b6040516101469190611a75565b60405180910390f35b61016960048036038101906101649190611579565b6104a3565b6040516101769190611a5a565b60405180910390f35b6101876104c1565b6040516101949190611bd7565b60405180910390f35b6101b760048036038101906101b291906114ee565b6104cb565b6040516101c49190611a5a565b60405180910390f35b6101d56105ea565b6040516101e29190611bd7565b60405180910390f35b6101f36105f0565b6040516102009190611bf2565b60405180910390f35b610223600480360381019061021e9190611579565b610607565b6040516102309190611a5a565b60405180910390f35b610253600480360381019061024e9190611489565b6106b3565b6040516102609190611bd7565b60405180910390f35b6102716106fb565b005b61027b610783565b6040516102889190611a16565b60405180910390f35b6102ab60048036038101906102a6919061153d565b6107ad565b005b6102c760048036038101906102c291906115b5565b610837565b005b6102d16108c5565b6040516102de9190611a75565b60405180910390f35b61030160048036038101906102fc9190611579565b610957565b60405161030e9190611a5a565b60405180910390f35b610331600480360381019061032c9190611579565b610a42565b60405161033e9190611a5a565b60405180910390f35b61034f610a60565b60405161035c9190611bd7565b60405180910390f35b61037f600480360381019061037a91906114b2565b610a66565b60405161038c9190611bd7565b60405180910390f35b6103af60048036038101906103aa9190611489565b610aed565b6040516103bc9190611a5a565b60405180910390f35b6103df60048036038101906103da9190611489565b610b0d565b005b6103fb60048036038101906103f69190611489565b610c05565b6040516104089190611a5a565b60405180910390f35b60606003805461042090611d07565b80601f016020809104026020016040519081016040528092919081815260200182805461044c90611d07565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b60006104b76104b0610c25565b8484610c2d565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610517610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105d357828110156105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590611b17565b60405180910390fd5b6105d2856105ca610c25565b858403610c2d565b5b6105de858585610df8565b60019150509392505050565b60095481565b6000600560009054906101000a900460ff16905090565b60006106a9610614610c25565b848460016000610622610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106a49190611c29565b610c2d565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610703610c25565b73ffffffffffffffffffffffffffffffffffffffff16610721610783565b73ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e90611b37565b60405180910390fd5b6107816000610f6f565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107b5610c25565b73ffffffffffffffffffffffffffffffffffffffff166107d3610783565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090611b37565b60405180910390fd5b6108338282611035565b5050565b61083f610c25565b73ffffffffffffffffffffffffffffffffffffffff1661085d610783565b73ffffffffffffffffffffffffffffffffffffffff16146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90611b37565b60405180910390fd5b81600881905550806009819055505050565b6060600480546108d490611d07565b80601f016020809104026020016040519081016040528092919081815260200182805461090090611d07565b801561094d5780601f106109225761010080835404028352916020019161094d565b820191906000526020600020905b81548152906001019060200180831161093057829003601f168201915b5050505050905090565b60008060016000610966610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90611bb7565b60405180910390fd5b610a37610a2e610c25565b85858403610c2d565b600191505092915050565b6000610a56610a4f610c25565b8484610df8565b6001905092915050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b610b15610c25565b73ffffffffffffffffffffffffffffffffffffffff16610b33610783565b73ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090611b37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090611ab7565b60405180910390fd5b610c0281610f6f565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490611b77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611ad7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610deb9190611bd7565b60405180910390a3505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90611b97565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f265750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f5f57610f336110c9565b8015610f465750610f4483836110e2565b155b15610f5e57610f548361115f565b610f5d8261115f565b5b5b610f6a8383836111bf565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc2c53acd3dace763a5afa895b0cbba47886fa87dae4b949edb1142f219eef63382826040516110bd929190611a31565b60405180910390a15050565b6000426009546008546110dc9190611c29565b11905090565b60006110ec610783565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806111575750611128610783565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111bc576111bb816001611035565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690611b57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690611a97565b60405180910390fd5b6112aa838383611440565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790611af7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113c39190611c29565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114279190611bd7565b60405180910390a361143a848484611445565b50505050565b505050565b505050565b60008135905061145981611da8565b92915050565b60008135905061146e81611dbf565b92915050565b60008135905061148381611dd6565b92915050565b60006020828403121561149b57600080fd5b60006114a98482850161144a565b91505092915050565b600080604083850312156114c557600080fd5b60006114d38582860161144a565b92505060206114e48582860161144a565b9150509250929050565b60008060006060848603121561150357600080fd5b60006115118682870161144a565b93505060206115228682870161144a565b925050604061153386828701611474565b9150509250925092565b6000806040838503121561155057600080fd5b600061155e8582860161144a565b925050602061156f8582860161145f565b9150509250929050565b6000806040838503121561158c57600080fd5b600061159a8582860161144a565b92505060206115ab85828601611474565b9150509250929050565b600080604083850312156115c857600080fd5b60006115d685828601611474565b92505060206115e785828601611474565b9150509250929050565b6115fa81611c7f565b82525050565b61160981611c91565b82525050565b600061161a82611c0d565b6116248185611c18565b9350611634818560208601611cd4565b61163d81611d97565b840191505092915050565b6000611655602383611c18565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116bb602683611c18565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611721602283611c18565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611787602683611c18565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117ed602883611c18565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611853602083611c18565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611893602583611c18565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118f9602483611c18565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061195f600983611c18565b91507f626c6f636b6c69737400000000000000000000000000000000000000000000006000830152602082019050919050565b600061199f602583611c18565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611a0181611cbd565b82525050565b611a1081611cc7565b82525050565b6000602082019050611a2b60008301846115f1565b92915050565b6000604082019050611a4660008301856115f1565b611a536020830184611600565b9392505050565b6000602082019050611a6f6000830184611600565b92915050565b60006020820190508181036000830152611a8f818461160f565b905092915050565b60006020820190508181036000830152611ab081611648565b9050919050565b60006020820190508181036000830152611ad0816116ae565b9050919050565b60006020820190508181036000830152611af081611714565b9050919050565b60006020820190508181036000830152611b108161177a565b9050919050565b60006020820190508181036000830152611b30816117e0565b9050919050565b60006020820190508181036000830152611b5081611846565b9050919050565b60006020820190508181036000830152611b7081611886565b9050919050565b60006020820190508181036000830152611b90816118ec565b9050919050565b60006020820190508181036000830152611bb081611952565b9050919050565b60006020820190508181036000830152611bd081611992565b9050919050565b6000602082019050611bec60008301846119f8565b92915050565b6000602082019050611c076000830184611a07565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c3482611cbd565b9150611c3f83611cbd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c7457611c73611d39565b5b828201905092915050565b6000611c8a82611c9d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b60006002820490506001821680611d1f57607f821691505b60208210811415611d3357611d32611d68565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611db181611c7f565b8114611dbc57600080fd5b50565b611dc881611c91565b8114611dd357600080fd5b50565b611ddf81611cbd565b8114611dea57600080fd5b5056fea264697066735822122075b980c625e6894ab0c376302c690d223196bc415da6a5a4d136737fabf04a5c64736f6c634300080000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806391694308116100ad578063b8158d6011610071578063b8158d6014610347578063dd62ed3e14610365578063e5c7160b14610395578063f2fde38b146103c5578063fe33b302146103e15761012c565b8063916943081461029157806393f9440d146102ad57806395d89b41146102c9578063a457c2d7146102e7578063a9059cbb146103175761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806370a0823114610239578063715018a6146102695780638da5cb5b146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806325841647146101cd575b600080fd5b610139610411565b6040516101469190611a75565b60405180910390f35b61016960048036038101906101649190611579565b6104a3565b6040516101769190611a5a565b60405180910390f35b6101876104c1565b6040516101949190611bd7565b60405180910390f35b6101b760048036038101906101b291906114ee565b6104cb565b6040516101c49190611a5a565b60405180910390f35b6101d56105ea565b6040516101e29190611bd7565b60405180910390f35b6101f36105f0565b6040516102009190611bf2565b60405180910390f35b610223600480360381019061021e9190611579565b610607565b6040516102309190611a5a565b60405180910390f35b610253600480360381019061024e9190611489565b6106b3565b6040516102609190611bd7565b60405180910390f35b6102716106fb565b005b61027b610783565b6040516102889190611a16565b60405180910390f35b6102ab60048036038101906102a6919061153d565b6107ad565b005b6102c760048036038101906102c291906115b5565b610837565b005b6102d16108c5565b6040516102de9190611a75565b60405180910390f35b61030160048036038101906102fc9190611579565b610957565b60405161030e9190611a5a565b60405180910390f35b610331600480360381019061032c9190611579565b610a42565b60405161033e9190611a5a565b60405180910390f35b61034f610a60565b60405161035c9190611bd7565b60405180910390f35b61037f600480360381019061037a91906114b2565b610a66565b60405161038c9190611bd7565b60405180910390f35b6103af60048036038101906103aa9190611489565b610aed565b6040516103bc9190611a5a565b60405180910390f35b6103df60048036038101906103da9190611489565b610b0d565b005b6103fb60048036038101906103f69190611489565b610c05565b6040516104089190611a5a565b60405180910390f35b60606003805461042090611d07565b80601f016020809104026020016040519081016040528092919081815260200182805461044c90611d07565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b60006104b76104b0610c25565b8484610c2d565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610517610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105d357828110156105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590611b17565b60405180910390fd5b6105d2856105ca610c25565b858403610c2d565b5b6105de858585610df8565b60019150509392505050565b60095481565b6000600560009054906101000a900460ff16905090565b60006106a9610614610c25565b848460016000610622610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106a49190611c29565b610c2d565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610703610c25565b73ffffffffffffffffffffffffffffffffffffffff16610721610783565b73ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e90611b37565b60405180910390fd5b6107816000610f6f565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107b5610c25565b73ffffffffffffffffffffffffffffffffffffffff166107d3610783565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090611b37565b60405180910390fd5b6108338282611035565b5050565b61083f610c25565b73ffffffffffffffffffffffffffffffffffffffff1661085d610783565b73ffffffffffffffffffffffffffffffffffffffff16146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90611b37565b60405180910390fd5b81600881905550806009819055505050565b6060600480546108d490611d07565b80601f016020809104026020016040519081016040528092919081815260200182805461090090611d07565b801561094d5780601f106109225761010080835404028352916020019161094d565b820191906000526020600020905b81548152906001019060200180831161093057829003601f168201915b5050505050905090565b60008060016000610966610c25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90611bb7565b60405180910390fd5b610a37610a2e610c25565b85858403610c2d565b600191505092915050565b6000610a56610a4f610c25565b8484610df8565b6001905092915050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b610b15610c25565b73ffffffffffffffffffffffffffffffffffffffff16610b33610783565b73ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090611b37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090611ab7565b60405180910390fd5b610c0281610f6f565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490611b77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611ad7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610deb9190611bd7565b60405180910390a3505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90611b97565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f265750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f5f57610f336110c9565b8015610f465750610f4483836110e2565b155b15610f5e57610f548361115f565b610f5d8261115f565b5b5b610f6a8383836111bf565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc2c53acd3dace763a5afa895b0cbba47886fa87dae4b949edb1142f219eef63382826040516110bd929190611a31565b60405180910390a15050565b6000426009546008546110dc9190611c29565b11905090565b60006110ec610783565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806111575750611128610783565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111bc576111bb816001611035565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690611b57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690611a97565b60405180910390fd5b6112aa838383611440565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790611af7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113c39190611c29565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114279190611bd7565b60405180910390a361143a848484611445565b50505050565b505050565b505050565b60008135905061145981611da8565b92915050565b60008135905061146e81611dbf565b92915050565b60008135905061148381611dd6565b92915050565b60006020828403121561149b57600080fd5b60006114a98482850161144a565b91505092915050565b600080604083850312156114c557600080fd5b60006114d38582860161144a565b92505060206114e48582860161144a565b9150509250929050565b60008060006060848603121561150357600080fd5b60006115118682870161144a565b93505060206115228682870161144a565b925050604061153386828701611474565b9150509250925092565b6000806040838503121561155057600080fd5b600061155e8582860161144a565b925050602061156f8582860161145f565b9150509250929050565b6000806040838503121561158c57600080fd5b600061159a8582860161144a565b92505060206115ab85828601611474565b9150509250929050565b600080604083850312156115c857600080fd5b60006115d685828601611474565b92505060206115e785828601611474565b9150509250929050565b6115fa81611c7f565b82525050565b61160981611c91565b82525050565b600061161a82611c0d565b6116248185611c18565b9350611634818560208601611cd4565b61163d81611d97565b840191505092915050565b6000611655602383611c18565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116bb602683611c18565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611721602283611c18565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611787602683611c18565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117ed602883611c18565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611853602083611c18565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611893602583611c18565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118f9602483611c18565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061195f600983611c18565b91507f626c6f636b6c69737400000000000000000000000000000000000000000000006000830152602082019050919050565b600061199f602583611c18565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611a0181611cbd565b82525050565b611a1081611cc7565b82525050565b6000602082019050611a2b60008301846115f1565b92915050565b6000604082019050611a4660008301856115f1565b611a536020830184611600565b9392505050565b6000602082019050611a6f6000830184611600565b92915050565b60006020820190508181036000830152611a8f818461160f565b905092915050565b60006020820190508181036000830152611ab081611648565b9050919050565b60006020820190508181036000830152611ad0816116ae565b9050919050565b60006020820190508181036000830152611af081611714565b9050919050565b60006020820190508181036000830152611b108161177a565b9050919050565b60006020820190508181036000830152611b30816117e0565b9050919050565b60006020820190508181036000830152611b5081611846565b9050919050565b60006020820190508181036000830152611b7081611886565b9050919050565b60006020820190508181036000830152611b90816118ec565b9050919050565b60006020820190508181036000830152611bb081611952565b9050919050565b60006020820190508181036000830152611bd081611992565b9050919050565b6000602082019050611bec60008301846119f8565b92915050565b6000602082019050611c076000830184611a07565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c3482611cbd565b9150611c3f83611cbd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c7457611c73611d39565b5b828201905092915050565b6000611c8a82611c9d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b60006002820490506001821680611d1f57607f821691505b60208210811415611d3357611d32611d68565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611db181611c7f565b8114611dbc57600080fd5b50565b611dc881611c91565b8114611dd357600080fd5b50565b611ddf81611cbd565b8114611dea57600080fd5b5056fea264697066735822122075b980c625e6894ab0c376302c690d223196bc415da6a5a4d136737fabf04a5c64736f6c63430008000033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _currency (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

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


Deployed Bytecode Sourcemap

17486:2489:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4604:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7115:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5829:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7902:622;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17889:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5566:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8933:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6000:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16428:94;;;:::i;:::-;;15777:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18567:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18695:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4823:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9726:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6356:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17843:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6619:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17749:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16677:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17797:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4604:100;4658:13;4691:5;4684:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4604:100;:::o;7115:194::-;7223:4;7240:39;7249:12;:10;:12::i;:::-;7263:7;7272:6;7240:8;:39::i;:::-;7297:4;7290:11;;7115:194;;;;:::o;5829:108::-;5890:7;5917:12;;5910:19;;5829:108;:::o;7902:622::-;8042:4;8059:24;8086:11;:19;8098:6;8086:19;;;;;;;;;;;;;;;:33;8106:12;:10;:12::i;:::-;8086:33;;;;;;;;;;;;;;;;8059:60;;8154:17;8134:16;:37;8130:314;;8234:6;8214:16;:26;;8188:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8360:57;8369:6;8377:12;:10;:12::i;:::-;8410:6;8391:16;:25;8360:8;:57::i;:::-;8130:314;8456:36;8466:6;8474:9;8485:6;8456:9;:36::i;:::-;8512:4;8505:11;;;7902:622;;;;;:::o;17889:25::-;;;;:::o;5566:100::-;5624:5;5649:9;;;;;;;;;;;5642:16;;5566:100;:::o;8933:290::-;9046:4;9063:130;9086:12;:10;:12::i;:::-;9113:7;9172:10;9135:11;:25;9147:12;:10;:12::i;:::-;9135:25;;;;;;;;;;;;;;;:34;9161:7;9135:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9063:8;:130::i;:::-;9211:4;9204:11;;8933:290;;;;:::o;6000:143::-;6090:7;6117:9;:18;6127:7;6117:18;;;;;;;;;;;;;;;;6110:25;;6000:143;;;:::o;16428:94::-;16008:12;:10;:12::i;:::-;15997:23;;:7;:5;:7::i;:::-;:23;;;15989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16493:21:::1;16511:1;16493:9;:21::i;:::-;16428:94::o:0;15777:87::-;15823:7;15850:6;;;;;;;;;;;15843:13;;15777:87;:::o;18567:120::-;16008:12;:10;:12::i;:::-;15997:23;;:7;:5;:7::i;:::-;:23;;;15989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18649:30:::1;18663:7;18672:6;18649:13;:30::i;:::-;18567:120:::0;;:::o;18695:180::-;16008:12;:10;:12::i;:::-;15997:23;;:7;:5;:7::i;:::-;:23;;;15989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18824:12:::1;18810:11;:26;;;;18860:7;18847:10;:20;;;;18695:180:::0;;:::o;4823:104::-;4879:13;4912:7;4905:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4823:104;:::o;9726:475::-;9844:4;9861:24;9888:11;:25;9900:12;:10;:12::i;:::-;9888:25;;;;;;;;;;;;;;;:34;9914:7;9888:34;;;;;;;;;;;;;;;;9861:61;;9975:15;9955:16;:35;;9933:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;10091:67;10100:12;:10;:12::i;:::-;10114:7;10142:15;10123:16;:34;10091:8;:67::i;:::-;10189:4;10182:11;;;9726:475;;;;:::o;6356:200::-;6467:4;6484:42;6494:12;:10;:12::i;:::-;6508:9;6519:6;6484:9;:42::i;:::-;6544:4;6537:11;;6356:200;;;;:::o;17843:39::-;;;;:::o;6619:176::-;6733:7;6760:11;:18;6772:5;6760:18;;;;;;;;;;;;;;;:27;6779:7;6760:27;;;;;;;;;;;;;;;;6753:34;;6619:176;;;;:::o;17749:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;16677:229::-;16008:12;:10;:12::i;:::-;15997:23;;:7;:5;:7::i;:::-;:23;;;15989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16800:1:::1;16780:22;;:8;:22;;;;16758:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16879:19;16889:8;16879:9;:19::i;:::-;16677:229:::0;:::o;17797:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3531:98::-;3584:7;3611:10;3604:17;;3531:98;:::o;13509:380::-;13662:1;13645:19;;:5;:19;;;;13637:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13743:1;13724:21;;:7;:21;;;;13716:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13827:6;13797:11;:18;13809:5;13797:18;;;;;;;;;;;;;;;:27;13816:7;13797:27;;;;;;;;;;;;;;;:36;;;;13865:7;13849:32;;13858:5;13849:32;;;13874:6;13849:32;;;;;;:::i;:::-;;;;;;;;13509:380;;;:::o;19047:464::-;19189:9;:17;19199:6;19189:17;;;;;;;;;;;;;;;;;;;;;;;;;19188:18;19180:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;19237:5;:16;19243:9;19237:16;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;19257:5;:13;19263:6;19257:13;;;;;;;;;;;;;;;;;;;;;;;;;19237:33;19233:216;;;19291:14;:12;:14::i;:::-;:54;;;;;19310:35;19327:6;19335:9;19310:16;:35::i;:::-;19309:36;19291:54;19287:151;;;19366:17;19376:6;19366:9;:17::i;:::-;19402:20;19412:9;19402;:20::i;:::-;19287:151;19233:216;19461:42;19477:6;19485:9;19496:6;19461:15;:42::i;:::-;19047:464;;;:::o;16914:173::-;16970:16;16989:6;;;;;;;;;;;16970:25;;17015:8;17006:6;;:17;;;;;;;;;;;;;;;;;;17070:8;17039:40;;17060:8;17039:40;;;;;;;;;;;;16914:173;;:::o;18883:156::-;18977:6;18956:9;:18;18966:7;18956:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18999:32;19015:7;19024:6;18999:32;;;;;;;:::i;:::-;;;;;;;;18883:156;;:::o;19851:121::-;19898:4;19949:15;19936:10;;19922:11;;:24;;;;:::i;:::-;:42;19915:49;;19851:121;:::o;19519:186::-;19630:4;19665:7;:5;:7::i;:::-;19654:18;;:7;:18;;;:43;;;;19690:7;:5;:7::i;:::-;19676:21;;:10;:21;;;19654:43;19647:50;;19519:186;;;;:::o;19713:130::-;19771:5;:11;19777:4;19771:11;;;;;;;;;;;;;;;;;;;;;;;;;19766:70;;19799:25;19813:4;19819;19799:13;:25::i;:::-;19766:70;19713:130;:::o;10691:770::-;10849:1;10831:20;;:6;:20;;;;10823:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10933:1;10912:23;;:9;:23;;;;10904:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10988:47;11009:6;11017:9;11028:6;10988:20;:47::i;:::-;11048:21;11072:9;:17;11082:6;11072:17;;;;;;;;;;;;;;;;11048:41;;11139:6;11122:13;:23;;11100:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11283:6;11267:13;:22;11247:9;:17;11257:6;11247:17;;;;;;;;;;;;;;;:42;;;;11335:6;11311:9;:20;11321:9;11311:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11376:9;11359:35;;11368:6;11359:35;;;11387:6;11359:35;;;;;;:::i;:::-;;;;;;;;11407:46;11427:6;11435:9;11446:6;11407:19;:46::i;:::-;10691:770;;;;:::o;14489:125::-;;;;:::o;15218:124::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;;;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;;;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:407::-;;;2620:2;2608:9;2599:7;2595:23;2591:32;2588:2;;;2636:1;2633;2626:12;2588:2;2679:1;2704:53;2749:7;2740:6;2729:9;2725:22;2704:53;:::i;:::-;2694:63;;2650:117;2806:2;2832:53;2877:7;2868:6;2857:9;2853:22;2832:53;:::i;:::-;2822:63;;2777:118;2578:324;;;;;:::o;2908:118::-;2995:24;3013:5;2995:24;:::i;:::-;2990:3;2983:37;2973:53;;:::o;3032:109::-;3113:21;3128:5;3113:21;:::i;:::-;3108:3;3101:34;3091:50;;:::o;3147:364::-;;3263:39;3296:5;3263:39;:::i;:::-;3318:71;3382:6;3377:3;3318:71;:::i;:::-;3311:78;;3398:52;3443:6;3438:3;3431:4;3424:5;3420:16;3398:52;:::i;:::-;3475:29;3497:6;3475:29;:::i;:::-;3470:3;3466:39;3459:46;;3239:272;;;;;:::o;3517:367::-;;3680:67;3744:2;3739:3;3680:67;:::i;:::-;3673:74;;3777:34;3773:1;3768:3;3764:11;3757:55;3843:5;3838:2;3833:3;3829:12;3822:27;3875:2;3870:3;3866:12;3859:19;;3663:221;;;:::o;3890:370::-;;4053:67;4117:2;4112:3;4053:67;:::i;:::-;4046:74;;4150:34;4146:1;4141:3;4137:11;4130:55;4216:8;4211:2;4206:3;4202:12;4195:30;4251:2;4246:3;4242:12;4235:19;;4036:224;;;:::o;4266:366::-;;4429:67;4493:2;4488:3;4429:67;:::i;:::-;4422:74;;4526:34;4522:1;4517:3;4513:11;4506:55;4592:4;4587:2;4582:3;4578:12;4571:26;4623:2;4618:3;4614:12;4607:19;;4412:220;;;:::o;4638:370::-;;4801:67;4865:2;4860:3;4801:67;:::i;:::-;4794:74;;4898:34;4894:1;4889:3;4885:11;4878:55;4964:8;4959:2;4954:3;4950:12;4943:30;4999:2;4994:3;4990:12;4983:19;;4784:224;;;:::o;5014:372::-;;5177:67;5241:2;5236:3;5177:67;:::i;:::-;5170:74;;5274:34;5270:1;5265:3;5261:11;5254:55;5340:10;5335:2;5330:3;5326:12;5319:32;5377:2;5372:3;5368:12;5361:19;;5160:226;;;:::o;5392:330::-;;5555:67;5619:2;5614:3;5555:67;:::i;:::-;5548:74;;5652:34;5648:1;5643:3;5639:11;5632:55;5713:2;5708:3;5704:12;5697:19;;5538:184;;;:::o;5728:369::-;;5891:67;5955:2;5950:3;5891:67;:::i;:::-;5884:74;;5988:34;5984:1;5979:3;5975:11;5968:55;6054:7;6049:2;6044:3;6040:12;6033:29;6088:2;6083:3;6079:12;6072:19;;5874:223;;;:::o;6103:368::-;;6266:67;6330:2;6325:3;6266:67;:::i;:::-;6259:74;;6363:34;6359:1;6354:3;6350:11;6343:55;6429:6;6424:2;6419:3;6415:12;6408:28;6462:2;6457:3;6453:12;6446:19;;6249:222;;;:::o;6477:306::-;;6640:66;6704:1;6699:3;6640:66;:::i;:::-;6633:73;;6736:11;6732:1;6727:3;6723:11;6716:32;6774:2;6769:3;6765:12;6758:19;;6623:160;;;:::o;6789:369::-;;6952:67;7016:2;7011:3;6952:67;:::i;:::-;6945:74;;7049:34;7045:1;7040:3;7036:11;7029:55;7115:7;7110:2;7105:3;7101:12;7094:29;7149:2;7144:3;7140:12;7133:19;;6935:223;;;:::o;7164:118::-;7251:24;7269:5;7251:24;:::i;:::-;7246:3;7239:37;7229:53;;:::o;7288:112::-;7371:22;7387:5;7371:22;:::i;:::-;7366:3;7359:35;7349:51;;:::o;7406:222::-;;7537:2;7526:9;7522:18;7514:26;;7550:71;7618:1;7607:9;7603:17;7594:6;7550:71;:::i;:::-;7504:124;;;;:::o;7634:320::-;;7787:2;7776:9;7772:18;7764:26;;7800:71;7868:1;7857:9;7853:17;7844:6;7800:71;:::i;:::-;7881:66;7943:2;7932:9;7928:18;7919:6;7881:66;:::i;:::-;7754:200;;;;;:::o;7960:210::-;;8085:2;8074:9;8070:18;8062:26;;8098:65;8160:1;8149:9;8145:17;8136:6;8098:65;:::i;:::-;8052:118;;;;:::o;8176:313::-;;8327:2;8316:9;8312:18;8304:26;;8376:9;8370:4;8366:20;8362:1;8351:9;8347:17;8340:47;8404:78;8477:4;8468:6;8404:78;:::i;:::-;8396:86;;8294:195;;;;:::o;8495:419::-;;8699:2;8688:9;8684:18;8676:26;;8748:9;8742:4;8738:20;8734:1;8723:9;8719:17;8712:47;8776:131;8902:4;8776:131;:::i;:::-;8768:139;;8666:248;;;:::o;8920:419::-;;9124:2;9113:9;9109:18;9101:26;;9173:9;9167:4;9163:20;9159:1;9148:9;9144:17;9137:47;9201:131;9327:4;9201:131;:::i;:::-;9193:139;;9091:248;;;:::o;9345:419::-;;9549:2;9538:9;9534:18;9526:26;;9598:9;9592:4;9588:20;9584:1;9573:9;9569:17;9562:47;9626:131;9752:4;9626:131;:::i;:::-;9618:139;;9516:248;;;:::o;9770:419::-;;9974:2;9963:9;9959:18;9951:26;;10023:9;10017:4;10013:20;10009:1;9998:9;9994:17;9987:47;10051:131;10177:4;10051:131;:::i;:::-;10043:139;;9941:248;;;:::o;10195:419::-;;10399:2;10388:9;10384:18;10376:26;;10448:9;10442:4;10438:20;10434:1;10423:9;10419:17;10412:47;10476:131;10602:4;10476:131;:::i;:::-;10468:139;;10366:248;;;:::o;10620:419::-;;10824:2;10813:9;10809:18;10801:26;;10873:9;10867:4;10863:20;10859:1;10848:9;10844:17;10837:47;10901:131;11027:4;10901:131;:::i;:::-;10893:139;;10791:248;;;:::o;11045:419::-;;11249:2;11238:9;11234:18;11226:26;;11298:9;11292:4;11288:20;11284:1;11273:9;11269:17;11262:47;11326:131;11452:4;11326:131;:::i;:::-;11318:139;;11216:248;;;:::o;11470:419::-;;11674:2;11663:9;11659:18;11651:26;;11723:9;11717:4;11713:20;11709:1;11698:9;11694:17;11687:47;11751:131;11877:4;11751:131;:::i;:::-;11743:139;;11641:248;;;:::o;11895:419::-;;12099:2;12088:9;12084:18;12076:26;;12148:9;12142:4;12138:20;12134:1;12123:9;12119:17;12112:47;12176:131;12302:4;12176:131;:::i;:::-;12168:139;;12066:248;;;:::o;12320:419::-;;12524:2;12513:9;12509:18;12501:26;;12573:9;12567:4;12563:20;12559:1;12548:9;12544:17;12537:47;12601:131;12727:4;12601:131;:::i;:::-;12593:139;;12491:248;;;:::o;12745:222::-;;12876:2;12865:9;12861:18;12853:26;;12889:71;12957:1;12946:9;12942:17;12933:6;12889:71;:::i;:::-;12843:124;;;;:::o;12973:214::-;;13100:2;13089:9;13085:18;13077:26;;13113:67;13177:1;13166:9;13162:17;13153:6;13113:67;:::i;:::-;13067:120;;;;:::o;13193:99::-;;13279:5;13273:12;13263:22;;13252:40;;;:::o;13298:169::-;;13416:6;13411:3;13404:19;13456:4;13451:3;13447:14;13432:29;;13394:73;;;;:::o;13473:305::-;;13532:20;13550:1;13532:20;:::i;:::-;13527:25;;13566:20;13584:1;13566:20;:::i;:::-;13561:25;;13720:1;13652:66;13648:74;13645:1;13642:81;13639:2;;;13726:18;;:::i;:::-;13639:2;13770:1;13767;13763:9;13756:16;;13517:261;;;;:::o;13784:96::-;;13850:24;13868:5;13850:24;:::i;:::-;13839:35;;13829:51;;;:::o;13886:90::-;;13963:5;13956:13;13949:21;13938:32;;13928:48;;;:::o;13982:126::-;;14059:42;14052:5;14048:54;14037:65;;14027:81;;;:::o;14114:77::-;;14180:5;14169:16;;14159:32;;;:::o;14197:86::-;;14272:4;14265:5;14261:16;14250:27;;14240:43;;;:::o;14289:307::-;14357:1;14367:113;14381:6;14378:1;14375:13;14367:113;;;14466:1;14461:3;14457:11;14451:18;14447:1;14442:3;14438:11;14431:39;14403:2;14400:1;14396:10;14391:15;;14367:113;;;14498:6;14495:1;14492:13;14489:2;;;14578:1;14569:6;14564:3;14560:16;14553:27;14489:2;14338:258;;;;:::o;14602:320::-;;14683:1;14677:4;14673:12;14663:22;;14730:1;14724:4;14720:12;14751:18;14741:2;;14807:4;14799:6;14795:17;14785:27;;14741:2;14869;14861:6;14858:14;14838:18;14835:38;14832:2;;;14888:18;;:::i;:::-;14832:2;14653:269;;;;:::o;14928:180::-;14976:77;14973:1;14966:88;15073:4;15070:1;15063:15;15097:4;15094:1;15087:15;15114:180;15162:77;15159:1;15152:88;15259:4;15256:1;15249:15;15283:4;15280:1;15273:15;15300:102;;15392:2;15388:7;15383:2;15376:5;15372:14;15368:28;15358:38;;15348:54;;;:::o;15408:122::-;15481:24;15499:5;15481:24;:::i;:::-;15474:5;15471:35;15461:2;;15520:1;15517;15510:12;15461:2;15451:79;:::o;15536:116::-;15606:21;15621:5;15606:21;:::i;:::-;15599:5;15596:32;15586:2;;15642:1;15639;15632:12;15586:2;15576:76;:::o;15658:122::-;15731:24;15749:5;15731:24;:::i;:::-;15724:5;15721:35;15711:2;;15770:1;15767;15760:12;15711:2;15701:79;:::o

Swarm Source

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