ETH Price: $3,340.62 (-1.03%)
Gas: 8 Gwei

Token

twitter2.0 (twitter2.0)
 

Overview

Max Total Supply

19,710,628,000 twitter2.0

Holders

163

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
fomoplz.eth
Balance
6,166,388.280648312 twitter2.0

Value
$0.00
0x87f8652128dd9ddc7938b277b14311dbf05240ab
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:
token

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-10-27
*/

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 `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);

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.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;
    }
}


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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * 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}.
 */

 abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor  () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is Context, IERC20,Ownable {
    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}.
     *
     * 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_) Ownable() {
        _name = name_;
        _symbol = symbol_;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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 pure returns (uint8) {
        return 9;
    }

    /**
     * @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 `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:
     *
     * - `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;
        }
        _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;
        _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 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 {}
}

contract token is ERC20{

    mapping(address => bool) public isBot;

    bool public startTrade;

    constructor() ERC20('twitter2.0', 'twitter2.0') {
        _mint(msg.sender, 19710628000 * (10**decimals()));
        startTrade = false;
    }

    
    function rmBot(address[] memory adrs) public onlyOwner {
        for(uint i=0;i<adrs.length;i++){
            isBot[adrs[i]] = false;
        }
    }

    function setStart() public onlyOwner{
        startTrade = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require( !isBot[from] );

        if(!startTrade){
            isBot[to] = true;
        }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"rmBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f74776974746572322e30000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f74776974746572322e30000000000000000000000000000000000000000000008152506200008e620001de60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600490805190602001906200016092919062000373565b5080600590805190602001906200017992919062000373565b505050620001bd3362000191620001e660201b60201c565b600a6200019f919062000563565b640496d850a0620001b19190620006a0565b620001ef60201b60201c565b6000600760006101000a81548160ff021916908315150217905550620007e2565b600033905090565b60006009905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000259906200045b565b60405180910390fd5b62000276600083836200036960201b60201c565b80600360008282546200028a9190620004ab565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002e29190620004ab565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200034991906200047d565b60405180910390a362000365600083836200036e60201b60201c565b5050565b505050565b505050565b828054620003819062000718565b90600052602060002090601f016020900481019282620003a55760008555620003f1565b82601f10620003c057805160ff1916838001178555620003f1565b82800160010185558215620003f1579182015b82811115620003f0578251825591602001919060010190620003d3565b5b50905062000400919062000404565b5090565b5b808211156200041f57600081600090555060010162000405565b5090565b600062000432601f836200049a565b91506200043f82620007b9565b602082019050919050565b620004558162000701565b82525050565b60006020820190508181036000830152620004768162000423565b9050919050565b60006020820190506200049460008301846200044a565b92915050565b600082825260208201905092915050565b6000620004b88262000701565b9150620004c58362000701565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004fd57620004fc6200074e565b5b828201905092915050565b6000808291508390505b60018511156200055a578086048111156200053257620005316200074e565b5b6001851615620005425780820291505b80810290506200055285620007ac565b945062000512565b94509492505050565b6000620005708262000701565b91506200057d836200070b565b9250620005ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b4565b905092915050565b600082620005c6576001905062000699565b81620005d6576000905062000699565b8160018114620005ef5760028114620005fa5762000630565b600191505062000699565b60ff8411156200060f576200060e6200074e565b5b8360020a9150848211156200062957620006286200074e565b5b5062000699565b5060208310610133831016604e8410600b84101617156200066a5782820a9050838111156200066457620006636200074e565b5b62000699565b62000679848484600162000508565b925090508184048111156200069357620006926200074e565b5b81810290505b9392505050565b6000620006ad8262000701565b9150620006ba8362000701565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f657620006f56200074e565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200073157607f821691505b602082108114156200074857620007476200077d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611cdd80620007f26000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636c580801116100a257806395d89b411161007157806395d89b41146102d1578063a457c2d7146102ef578063a9059cbb1461031f578063dd62ed3e1461034f578063f2fde38b1461037f57610116565b80636c5808011461025b57806370a0823114610279578063715018a6146102a95780638da5cb5b146102b357610116565b8063313ce567116100e9578063313ce567146101b757806335975a37146101d557806339509351146101df5780633bbac5791461020f57806356e41e561461023f57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b61012361039b565b60405161013091906115ae565b60405180910390f35b610153600480360381019061014e919061133f565b61042d565b6040516101609190611593565b60405180910390f35b610171610450565b60405161017e91906116f0565b60405180910390f35b6101a1600480360381019061019c91906112ec565b61045a565b6040516101ae9190611593565b60405180910390f35b6101bf610489565b6040516101cc919061170b565b60405180910390f35b6101dd610492565b005b6101f960048036038101906101f4919061133f565b61053d565b6040516102069190611593565b60405180910390f35b6102296004803603810190610224919061127f565b610574565b6040516102369190611593565b60405180910390f35b6102596004803603810190610254919061137f565b610594565b005b6102636106b7565b6040516102709190611593565b60405180910390f35b610293600480360381019061028e919061127f565b6106ca565b6040516102a091906116f0565b60405180910390f35b6102b1610713565b005b6102bb61085f565b6040516102c89190611578565b60405180910390f35b6102d9610888565b6040516102e691906115ae565b60405180910390f35b6103096004803603810190610304919061133f565b61091a565b6040516103169190611593565b60405180910390f35b6103396004803603810190610334919061133f565b610991565b6040516103469190611593565b60405180910390f35b610369600480360381019061036491906112ac565b6109b4565b60405161037691906116f0565b60405180910390f35b6103996004803603810190610394919061127f565b610a3b565b005b6060600480546103aa90611871565b80601f01602080910402602001604051908101604052809291908181526020018280546103d690611871565b80156104235780601f106103f857610100808354040283529160200191610423565b820191906000526020600020905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b600080610438610bf6565b9050610445818585610bfe565b600191505092915050565b6000600354905090565b600080610465610bf6565b9050610472858285610dc9565b61047d858585610e55565b60019150509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051790611670565b60405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b600080610548610bf6565b905061056981858561055a85896109b4565b6105649190611793565b610bfe565b600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061990611670565b60405180910390fd5b60005b81518110156106b3576000600660008484815181106106475761064661197b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106ab906118d4565b915050610625565b5050565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461089790611871565b80601f01602080910402602001604051908101604052809291908181526020018280546108c390611871565b80156109105780601f106108e557610100808354040283529160200191610910565b820191906000526020600020905b8154815290600101906020018083116108f357829003601f168201915b5050505050905090565b600080610925610bf6565b9050600061093382866109b4565b905083811015610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906116d0565b60405180910390fd5b6109858286868403610bfe565b60019250505092915050565b60008061099c610bf6565b90506109a9818585610e55565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906115f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c65906116b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590611610565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dbc91906116f0565b60405180910390a3505050565b6000610dd584846109b4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e4f5781811015610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890611630565b60405180910390fd5b610e4e8484848403610bfe565b5b50505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610eac57600080fd5b600760009054906101000a900460ff16610f19576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b610f24838383610f29565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090611690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611000906115d0565b60405180910390fd5b6110148383836111ad565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290611650565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111309190611793565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161119491906116f0565b60405180910390a36111a78484846111b2565b50505050565b505050565b505050565b60006111ca6111c58461174b565b611726565b905080838252602082019050828560208602820111156111ed576111ec6119de565b5b60005b8581101561121d57816112038882611227565b8452602084019350602083019250506001810190506111f0565b5050509392505050565b60008135905061123681611c79565b92915050565b600082601f830112611251576112506119d9565b5b81356112618482602086016111b7565b91505092915050565b60008135905061127981611c90565b92915050565b600060208284031215611295576112946119e8565b5b60006112a384828501611227565b91505092915050565b600080604083850312156112c3576112c26119e8565b5b60006112d185828601611227565b92505060206112e285828601611227565b9150509250929050565b600080600060608486031215611305576113046119e8565b5b600061131386828701611227565b935050602061132486828701611227565b92505060406113358682870161126a565b9150509250925092565b60008060408385031215611356576113556119e8565b5b600061136485828601611227565b92505060206113758582860161126a565b9150509250929050565b600060208284031215611395576113946119e8565b5b600082013567ffffffffffffffff8111156113b3576113b26119e3565b5b6113bf8482850161123c565b91505092915050565b6113d1816117e9565b82525050565b6113e0816117fb565b82525050565b60006113f182611777565b6113fb8185611782565b935061140b81856020860161183e565b611414816119ed565b840191505092915050565b600061142c602383611782565b9150611437826119fe565b604082019050919050565b600061144f602683611782565b915061145a82611a4d565b604082019050919050565b6000611472602283611782565b915061147d82611a9c565b604082019050919050565b6000611495601d83611782565b91506114a082611aeb565b602082019050919050565b60006114b8602683611782565b91506114c382611b14565b604082019050919050565b60006114db602083611782565b91506114e682611b63565b602082019050919050565b60006114fe602583611782565b915061150982611b8c565b604082019050919050565b6000611521602483611782565b915061152c82611bdb565b604082019050919050565b6000611544602583611782565b915061154f82611c2a565b604082019050919050565b61156381611827565b82525050565b61157281611831565b82525050565b600060208201905061158d60008301846113c8565b92915050565b60006020820190506115a860008301846113d7565b92915050565b600060208201905081810360008301526115c881846113e6565b905092915050565b600060208201905081810360008301526115e98161141f565b9050919050565b6000602082019050818103600083015261160981611442565b9050919050565b6000602082019050818103600083015261162981611465565b9050919050565b6000602082019050818103600083015261164981611488565b9050919050565b60006020820190508181036000830152611669816114ab565b9050919050565b60006020820190508181036000830152611689816114ce565b9050919050565b600060208201905081810360008301526116a9816114f1565b9050919050565b600060208201905081810360008301526116c981611514565b9050919050565b600060208201905081810360008301526116e981611537565b9050919050565b6000602082019050611705600083018461155a565b92915050565b60006020820190506117206000830184611569565b92915050565b6000611730611741565b905061173c82826118a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611766576117656119aa565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061179e82611827565b91506117a983611827565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117de576117dd61191d565b5b828201905092915050565b60006117f482611807565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561185c578082015181840152602081019050611841565b8381111561186b576000848401525b50505050565b6000600282049050600182168061188957607f821691505b6020821081141561189d5761189c61194c565b5b50919050565b6118ac826119ed565b810181811067ffffffffffffffff821117156118cb576118ca6119aa565b5b80604052505050565b60006118df82611827565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119125761191161191d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611c82816117e9565b8114611c8d57600080fd5b50565b611c9981611827565b8114611ca457600080fd5b5056fea264697066735822122041fe3c77cbaf075a4de6a27284dfa3f6ebca093c1f84212c234371a820e76e5564736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c80636c580801116100a257806395d89b411161007157806395d89b41146102d1578063a457c2d7146102ef578063a9059cbb1461031f578063dd62ed3e1461034f578063f2fde38b1461037f57610116565b80636c5808011461025b57806370a0823114610279578063715018a6146102a95780638da5cb5b146102b357610116565b8063313ce567116100e9578063313ce567146101b757806335975a37146101d557806339509351146101df5780633bbac5791461020f57806356e41e561461023f57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b61012361039b565b60405161013091906115ae565b60405180910390f35b610153600480360381019061014e919061133f565b61042d565b6040516101609190611593565b60405180910390f35b610171610450565b60405161017e91906116f0565b60405180910390f35b6101a1600480360381019061019c91906112ec565b61045a565b6040516101ae9190611593565b60405180910390f35b6101bf610489565b6040516101cc919061170b565b60405180910390f35b6101dd610492565b005b6101f960048036038101906101f4919061133f565b61053d565b6040516102069190611593565b60405180910390f35b6102296004803603810190610224919061127f565b610574565b6040516102369190611593565b60405180910390f35b6102596004803603810190610254919061137f565b610594565b005b6102636106b7565b6040516102709190611593565b60405180910390f35b610293600480360381019061028e919061127f565b6106ca565b6040516102a091906116f0565b60405180910390f35b6102b1610713565b005b6102bb61085f565b6040516102c89190611578565b60405180910390f35b6102d9610888565b6040516102e691906115ae565b60405180910390f35b6103096004803603810190610304919061133f565b61091a565b6040516103169190611593565b60405180910390f35b6103396004803603810190610334919061133f565b610991565b6040516103469190611593565b60405180910390f35b610369600480360381019061036491906112ac565b6109b4565b60405161037691906116f0565b60405180910390f35b6103996004803603810190610394919061127f565b610a3b565b005b6060600480546103aa90611871565b80601f01602080910402602001604051908101604052809291908181526020018280546103d690611871565b80156104235780601f106103f857610100808354040283529160200191610423565b820191906000526020600020905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b600080610438610bf6565b9050610445818585610bfe565b600191505092915050565b6000600354905090565b600080610465610bf6565b9050610472858285610dc9565b61047d858585610e55565b60019150509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051790611670565b60405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b600080610548610bf6565b905061056981858561055a85896109b4565b6105649190611793565b610bfe565b600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061990611670565b60405180910390fd5b60005b81518110156106b3576000600660008484815181106106475761064661197b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106ab906118d4565b915050610625565b5050565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461089790611871565b80601f01602080910402602001604051908101604052809291908181526020018280546108c390611871565b80156109105780601f106108e557610100808354040283529160200191610910565b820191906000526020600020905b8154815290600101906020018083116108f357829003601f168201915b5050505050905090565b600080610925610bf6565b9050600061093382866109b4565b905083811015610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906116d0565b60405180910390fd5b6109858286868403610bfe565b60019250505092915050565b60008061099c610bf6565b90506109a9818585610e55565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906115f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c65906116b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590611610565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dbc91906116f0565b60405180910390a3505050565b6000610dd584846109b4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e4f5781811015610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890611630565b60405180910390fd5b610e4e8484848403610bfe565b5b50505050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610eac57600080fd5b600760009054906101000a900460ff16610f19576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b610f24838383610f29565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090611690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611000906115d0565b60405180910390fd5b6110148383836111ad565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290611650565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111309190611793565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161119491906116f0565b60405180910390a36111a78484846111b2565b50505050565b505050565b505050565b60006111ca6111c58461174b565b611726565b905080838252602082019050828560208602820111156111ed576111ec6119de565b5b60005b8581101561121d57816112038882611227565b8452602084019350602083019250506001810190506111f0565b5050509392505050565b60008135905061123681611c79565b92915050565b600082601f830112611251576112506119d9565b5b81356112618482602086016111b7565b91505092915050565b60008135905061127981611c90565b92915050565b600060208284031215611295576112946119e8565b5b60006112a384828501611227565b91505092915050565b600080604083850312156112c3576112c26119e8565b5b60006112d185828601611227565b92505060206112e285828601611227565b9150509250929050565b600080600060608486031215611305576113046119e8565b5b600061131386828701611227565b935050602061132486828701611227565b92505060406113358682870161126a565b9150509250925092565b60008060408385031215611356576113556119e8565b5b600061136485828601611227565b92505060206113758582860161126a565b9150509250929050565b600060208284031215611395576113946119e8565b5b600082013567ffffffffffffffff8111156113b3576113b26119e3565b5b6113bf8482850161123c565b91505092915050565b6113d1816117e9565b82525050565b6113e0816117fb565b82525050565b60006113f182611777565b6113fb8185611782565b935061140b81856020860161183e565b611414816119ed565b840191505092915050565b600061142c602383611782565b9150611437826119fe565b604082019050919050565b600061144f602683611782565b915061145a82611a4d565b604082019050919050565b6000611472602283611782565b915061147d82611a9c565b604082019050919050565b6000611495601d83611782565b91506114a082611aeb565b602082019050919050565b60006114b8602683611782565b91506114c382611b14565b604082019050919050565b60006114db602083611782565b91506114e682611b63565b602082019050919050565b60006114fe602583611782565b915061150982611b8c565b604082019050919050565b6000611521602483611782565b915061152c82611bdb565b604082019050919050565b6000611544602583611782565b915061154f82611c2a565b604082019050919050565b61156381611827565b82525050565b61157281611831565b82525050565b600060208201905061158d60008301846113c8565b92915050565b60006020820190506115a860008301846113d7565b92915050565b600060208201905081810360008301526115c881846113e6565b905092915050565b600060208201905081810360008301526115e98161141f565b9050919050565b6000602082019050818103600083015261160981611442565b9050919050565b6000602082019050818103600083015261162981611465565b9050919050565b6000602082019050818103600083015261164981611488565b9050919050565b60006020820190508181036000830152611669816114ab565b9050919050565b60006020820190508181036000830152611689816114ce565b9050919050565b600060208201905081810360008301526116a9816114f1565b9050919050565b600060208201905081810360008301526116c981611514565b9050919050565b600060208201905081810360008301526116e981611537565b9050919050565b6000602082019050611705600083018461155a565b92915050565b60006020820190506117206000830184611569565b92915050565b6000611730611741565b905061173c82826118a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611766576117656119aa565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061179e82611827565b91506117a983611827565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117de576117dd61191d565b5b828201905092915050565b60006117f482611807565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561185c578082015181840152602081019050611841565b8381111561186b576000848401525b50505050565b6000600282049050600182168061188957607f821691505b6020821081141561189d5761189c61194c565b5b50919050565b6118ac826119ed565b810181811067ffffffffffffffff821117156118cb576118ca6119aa565b5b80604052505050565b60006118df82611827565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119125761191161191d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611c82816117e9565b8114611c8d57600080fd5b50565b611c9981611827565b8114611ca457600080fd5b5056fea264697066735822122041fe3c77cbaf075a4de6a27284dfa3f6ebca093c1f84212c234371a820e76e5564736f6c63430008070033

Deployed Bytecode Sourcemap

17265:783:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6522:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8821:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7590:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7450:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17694:72;;;:::i;:::-;;10306:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17297:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17533:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17343:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7761:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5335:148;;;:::i;:::-;;5125:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6724:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11047:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8094:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8350:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6522:83;6559:13;6592:5;6585:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6522:83;:::o;8821:201::-;8904:4;8921:13;8937:12;:10;:12::i;:::-;8921:28;;8960:32;8969:5;8976:7;8985:6;8960:8;:32::i;:::-;9010:4;9003:11;;;8821:201;;;;:::o;7590:108::-;7651:7;7678:12;;7671:19;;7590:108;:::o;9602:295::-;9733:4;9750:15;9768:12;:10;:12::i;:::-;9750:30;;9791:38;9807:4;9813:7;9822:6;9791:15;:38::i;:::-;9840:27;9850:4;9856:2;9860:6;9840:9;:27::i;:::-;9885:4;9878:11;;;9602:295;;;;;:::o;7450:75::-;7491:5;7516:1;7509:8;;7450:75;:::o;17694:72::-;5262:10;5252:20;;:6;;;;;;;;;;:20;;;5244:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17754:4:::1;17741:10;;:17;;;;;;;;;;;;;;;;;;17694:72::o:0;10306:238::-;10394:4;10411:13;10427:12;:10;:12::i;:::-;10411:28;;10450:64;10459:5;10466:7;10503:10;10475:25;10485:5;10492:7;10475:9;:25::i;:::-;:38;;;;:::i;:::-;10450:8;:64::i;:::-;10532:4;10525:11;;;10306:238;;;;:::o;17297:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;17533:153::-;5262:10;5252:20;;:6;;;;;;;;;;:20;;;5244:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17603:6:::1;17599:80;17614:4;:11;17612:1;:13;17599:80;;;17662:5;17645;:14;17651:4;17656:1;17651:7;;;;;;;;:::i;:::-;;;;;;;;17645:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17626:3;;;;;:::i;:::-;;;;17599:80;;;;17533:153:::0;:::o;17343:22::-;;;;;;;;;;;;;:::o;7761:127::-;7835:7;7862:9;:18;7872:7;7862:18;;;;;;;;;;;;;;;;7855:25;;7761:127;;;:::o;5335:148::-;5262:10;5252:20;;:6;;;;;;;;;;:20;;;5244:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5442:1:::1;5405:40;;5426:6;::::0;::::1;;;;;;;;5405:40;;;;;;;;;;;;5473:1;5456:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5335:148::o:0;5125:79::-;5163:7;5190:6;;;;;;;;;;;5183:13;;5125:79;:::o;6724:87::-;6763:13;6796:7;6789:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6724:87;:::o;11047:436::-;11140:4;11157:13;11173:12;:10;:12::i;:::-;11157:28;;11196:24;11223:25;11233:5;11240:7;11223:9;:25::i;:::-;11196:52;;11287:15;11267:16;:35;;11259:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11380:60;11389:5;11396:7;11424:15;11405:16;:34;11380:8;:60::i;:::-;11471:4;11464:11;;;;11047:436;;;;:::o;8094:193::-;8173:4;8190:13;8206:12;:10;:12::i;:::-;8190:28;;8229;8239:5;8246:2;8250:6;8229:9;:28::i;:::-;8275:4;8268:11;;;8094:193;;;;:::o;8350:151::-;8439:7;8466:11;:18;8478:5;8466:18;;;;;;;;;;;;;;;:27;8485:7;8466:27;;;;;;;;;;;;;;;;8459:34;;8350:151;;;;:::o;5489:244::-;5262:10;5252:20;;:6;;;;;;;;;;:20;;;5244:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5598:1:::1;5578:22;;:8;:22;;;;5570:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5688:8;5659:38;;5680:6;::::0;::::1;;;;;;;;5659:38;;;;;;;;;;;;5717:8;5708:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5489:244:::0;:::o;3398:98::-;3451:7;3478:10;3471:17;;3398:98;:::o;14681:380::-;14834:1;14817:19;;:5;:19;;;;14809:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14915:1;14896:21;;:7;:21;;;;14888:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14999:6;14969:11;:18;14981:5;14969:18;;;;;;;;;;;;;;;:27;14988:7;14969:27;;;;;;;;;;;;;;;:36;;;;15037:7;15021:32;;15030:5;15021:32;;;15046:6;15021:32;;;;;;:::i;:::-;;;;;;;;14681:380;;;:::o;15352:453::-;15487:24;15514:25;15524:5;15531:7;15514:9;:25::i;:::-;15487:52;;15574:17;15554:16;:37;15550:248;;15636:6;15616:16;:26;;15608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15720:51;15729:5;15736:7;15764:6;15745:16;:25;15720:8;:51::i;:::-;15550:248;15476:329;15352:453;;;:::o;17774:269::-;17908:5;:11;17914:4;17908:11;;;;;;;;;;;;;;;;;;;;;;;;;17907:12;17898:23;;;;;;17938:10;;;;;;;;;;;17934:58;;17976:4;17964:5;:9;17970:2;17964:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;17934:58;18004:31;18020:4;18025:2;18028:6;18004:15;:31::i;:::-;17774:269;;;:::o;11962:671::-;12109:1;12093:18;;:4;:18;;;;12085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12186:1;12172:16;;:2;:16;;;;12164:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12241:38;12262:4;12268:2;12272:6;12241:20;:38::i;:::-;12292:19;12314:9;:15;12324:4;12314:15;;;;;;;;;;;;;;;;12292:37;;12363:6;12348:11;:21;;12340:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12480:6;12466:11;:20;12448:9;:15;12458:4;12448:15;;;;;;;;;;;;;;;:38;;;;12525:6;12508:9;:13;12518:2;12508:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;12564:2;12549:26;;12558:4;12549:26;;;12568:6;12549:26;;;;;;:::i;:::-;;;;;;;;12588:37;12608:4;12614:2;12618:6;12588:19;:37::i;:::-;12074:559;11962:671;;;:::o;16405:125::-;;;;:::o;17134:124::-;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;914:370::-;985:5;1034:3;1027:4;1019:6;1015:17;1011:27;1001:122;;1042:79;;:::i;:::-;1001:122;1159:6;1146:20;1184:94;1274:3;1266:6;1259:4;1251:6;1247:17;1184:94;:::i;:::-;1175:103;;991:293;914:370;;;;:::o;1290:139::-;1336:5;1374:6;1361:20;1352:29;;1390:33;1417:5;1390:33;:::i;:::-;1290:139;;;;:::o;1435:329::-;1494:6;1543:2;1531:9;1522:7;1518:23;1514:32;1511:119;;;1549:79;;:::i;:::-;1511:119;1669:1;1694:53;1739:7;1730:6;1719:9;1715:22;1694:53;:::i;:::-;1684:63;;1640:117;1435:329;;;;:::o;1770:474::-;1838:6;1846;1895:2;1883:9;1874:7;1870:23;1866:32;1863:119;;;1901:79;;:::i;:::-;1863:119;2021:1;2046:53;2091:7;2082:6;2071:9;2067:22;2046:53;:::i;:::-;2036:63;;1992:117;2148:2;2174:53;2219:7;2210:6;2199:9;2195:22;2174:53;:::i;:::-;2164:63;;2119:118;1770:474;;;;;:::o;2250:619::-;2327:6;2335;2343;2392:2;2380:9;2371:7;2367:23;2363:32;2360:119;;;2398:79;;:::i;:::-;2360:119;2518:1;2543:53;2588:7;2579:6;2568:9;2564:22;2543:53;:::i;:::-;2533:63;;2489:117;2645:2;2671:53;2716:7;2707:6;2696:9;2692:22;2671:53;:::i;:::-;2661:63;;2616:118;2773:2;2799:53;2844:7;2835:6;2824:9;2820:22;2799:53;:::i;:::-;2789:63;;2744:118;2250:619;;;;;:::o;2875:474::-;2943:6;2951;3000:2;2988:9;2979:7;2975:23;2971:32;2968:119;;;3006:79;;:::i;:::-;2968:119;3126:1;3151:53;3196:7;3187:6;3176:9;3172:22;3151:53;:::i;:::-;3141:63;;3097:117;3253:2;3279:53;3324:7;3315:6;3304:9;3300:22;3279:53;:::i;:::-;3269:63;;3224:118;2875:474;;;;;:::o;3355:539::-;3439:6;3488:2;3476:9;3467:7;3463:23;3459:32;3456:119;;;3494:79;;:::i;:::-;3456:119;3642:1;3631:9;3627:17;3614:31;3672:18;3664:6;3661:30;3658:117;;;3694:79;;:::i;:::-;3658:117;3799:78;3869:7;3860:6;3849:9;3845:22;3799:78;:::i;:::-;3789:88;;3585:302;3355:539;;;;:::o;3900:118::-;3987:24;4005:5;3987:24;:::i;:::-;3982:3;3975:37;3900:118;;:::o;4024:109::-;4105:21;4120:5;4105:21;:::i;:::-;4100:3;4093:34;4024:109;;:::o;4139:364::-;4227:3;4255:39;4288:5;4255:39;:::i;:::-;4310:71;4374:6;4369:3;4310:71;:::i;:::-;4303:78;;4390:52;4435:6;4430:3;4423:4;4416:5;4412:16;4390:52;:::i;:::-;4467:29;4489:6;4467:29;:::i;:::-;4462:3;4458:39;4451:46;;4231:272;4139:364;;;;:::o;4509:366::-;4651:3;4672:67;4736:2;4731:3;4672:67;:::i;:::-;4665:74;;4748:93;4837:3;4748:93;:::i;:::-;4866:2;4861:3;4857:12;4850:19;;4509:366;;;:::o;4881:::-;5023:3;5044:67;5108:2;5103:3;5044:67;:::i;:::-;5037:74;;5120:93;5209:3;5120:93;:::i;:::-;5238:2;5233:3;5229:12;5222:19;;4881:366;;;:::o;5253:::-;5395:3;5416:67;5480:2;5475:3;5416:67;:::i;:::-;5409:74;;5492:93;5581:3;5492:93;:::i;:::-;5610:2;5605:3;5601:12;5594:19;;5253:366;;;:::o;5625:::-;5767:3;5788:67;5852:2;5847:3;5788:67;:::i;:::-;5781:74;;5864:93;5953:3;5864:93;:::i;:::-;5982:2;5977:3;5973:12;5966:19;;5625:366;;;:::o;5997:::-;6139:3;6160:67;6224:2;6219:3;6160:67;:::i;:::-;6153:74;;6236:93;6325:3;6236:93;:::i;:::-;6354:2;6349:3;6345:12;6338:19;;5997:366;;;:::o;6369:::-;6511:3;6532:67;6596:2;6591:3;6532:67;:::i;:::-;6525:74;;6608:93;6697:3;6608:93;:::i;:::-;6726:2;6721:3;6717:12;6710:19;;6369:366;;;:::o;6741:::-;6883:3;6904:67;6968:2;6963:3;6904:67;:::i;:::-;6897:74;;6980:93;7069:3;6980:93;:::i;:::-;7098:2;7093:3;7089:12;7082:19;;6741:366;;;:::o;7113:::-;7255:3;7276:67;7340:2;7335:3;7276:67;:::i;:::-;7269:74;;7352:93;7441:3;7352:93;:::i;:::-;7470:2;7465:3;7461:12;7454:19;;7113:366;;;:::o;7485:::-;7627:3;7648:67;7712:2;7707:3;7648:67;:::i;:::-;7641:74;;7724:93;7813:3;7724:93;:::i;:::-;7842:2;7837:3;7833:12;7826:19;;7485:366;;;:::o;7857:118::-;7944:24;7962:5;7944:24;:::i;:::-;7939:3;7932:37;7857:118;;:::o;7981:112::-;8064:22;8080:5;8064:22;:::i;:::-;8059:3;8052:35;7981:112;;:::o;8099:222::-;8192:4;8230:2;8219:9;8215:18;8207:26;;8243:71;8311:1;8300:9;8296:17;8287:6;8243:71;:::i;:::-;8099:222;;;;:::o;8327:210::-;8414:4;8452:2;8441:9;8437:18;8429:26;;8465:65;8527:1;8516:9;8512:17;8503:6;8465:65;:::i;:::-;8327:210;;;;:::o;8543:313::-;8656:4;8694:2;8683:9;8679:18;8671:26;;8743:9;8737:4;8733:20;8729:1;8718:9;8714:17;8707:47;8771:78;8844:4;8835:6;8771:78;:::i;:::-;8763:86;;8543:313;;;;:::o;8862:419::-;9028:4;9066:2;9055:9;9051:18;9043:26;;9115:9;9109:4;9105:20;9101:1;9090:9;9086:17;9079:47;9143:131;9269:4;9143:131;:::i;:::-;9135:139;;8862:419;;;:::o;9287:::-;9453:4;9491:2;9480:9;9476:18;9468:26;;9540:9;9534:4;9530:20;9526:1;9515:9;9511:17;9504:47;9568:131;9694:4;9568:131;:::i;:::-;9560:139;;9287:419;;;:::o;9712:::-;9878:4;9916:2;9905:9;9901:18;9893:26;;9965:9;9959:4;9955:20;9951:1;9940:9;9936:17;9929:47;9993:131;10119:4;9993:131;:::i;:::-;9985:139;;9712:419;;;:::o;10137:::-;10303:4;10341:2;10330:9;10326:18;10318:26;;10390:9;10384:4;10380:20;10376:1;10365:9;10361:17;10354:47;10418:131;10544:4;10418:131;:::i;:::-;10410:139;;10137:419;;;:::o;10562:::-;10728:4;10766:2;10755:9;10751:18;10743:26;;10815:9;10809:4;10805:20;10801:1;10790:9;10786:17;10779:47;10843:131;10969:4;10843:131;:::i;:::-;10835:139;;10562:419;;;:::o;10987:::-;11153:4;11191:2;11180:9;11176:18;11168:26;;11240:9;11234:4;11230:20;11226:1;11215:9;11211:17;11204:47;11268:131;11394:4;11268:131;:::i;:::-;11260:139;;10987:419;;;:::o;11412:::-;11578:4;11616:2;11605:9;11601:18;11593:26;;11665:9;11659:4;11655:20;11651:1;11640:9;11636:17;11629:47;11693:131;11819:4;11693:131;:::i;:::-;11685:139;;11412:419;;;:::o;11837:::-;12003:4;12041:2;12030:9;12026:18;12018:26;;12090:9;12084:4;12080:20;12076:1;12065:9;12061:17;12054:47;12118:131;12244:4;12118:131;:::i;:::-;12110:139;;11837:419;;;:::o;12262:::-;12428:4;12466:2;12455:9;12451:18;12443:26;;12515:9;12509:4;12505:20;12501:1;12490:9;12486:17;12479:47;12543:131;12669:4;12543:131;:::i;:::-;12535:139;;12262:419;;;:::o;12687:222::-;12780:4;12818:2;12807:9;12803:18;12795:26;;12831:71;12899:1;12888:9;12884:17;12875:6;12831:71;:::i;:::-;12687:222;;;;:::o;12915:214::-;13004:4;13042:2;13031:9;13027:18;13019:26;;13055:67;13119:1;13108:9;13104:17;13095:6;13055:67;:::i;:::-;12915:214;;;;:::o;13135:129::-;13169:6;13196:20;;:::i;:::-;13186:30;;13225:33;13253:4;13245:6;13225:33;:::i;:::-;13135:129;;;:::o;13270:75::-;13303:6;13336:2;13330:9;13320:19;;13270:75;:::o;13351:311::-;13428:4;13518:18;13510:6;13507:30;13504:56;;;13540:18;;:::i;:::-;13504:56;13590:4;13582:6;13578:17;13570:25;;13650:4;13644;13640:15;13632:23;;13351:311;;;:::o;13668:99::-;13720:6;13754:5;13748:12;13738:22;;13668:99;;;:::o;13773:169::-;13857:11;13891:6;13886:3;13879:19;13931:4;13926:3;13922:14;13907:29;;13773:169;;;;:::o;13948:305::-;13988:3;14007:20;14025:1;14007:20;:::i;:::-;14002:25;;14041:20;14059:1;14041:20;:::i;:::-;14036:25;;14195:1;14127:66;14123:74;14120:1;14117:81;14114:107;;;14201:18;;:::i;:::-;14114:107;14245:1;14242;14238:9;14231:16;;13948:305;;;;:::o;14259:96::-;14296:7;14325:24;14343:5;14325:24;:::i;:::-;14314:35;;14259:96;;;:::o;14361:90::-;14395:7;14438:5;14431:13;14424:21;14413:32;;14361:90;;;:::o;14457:126::-;14494:7;14534:42;14527:5;14523:54;14512:65;;14457:126;;;:::o;14589:77::-;14626:7;14655:5;14644:16;;14589:77;;;:::o;14672:86::-;14707:7;14747:4;14740:5;14736:16;14725:27;;14672:86;;;:::o;14764:307::-;14832:1;14842:113;14856:6;14853:1;14850:13;14842:113;;;14941:1;14936:3;14932:11;14926:18;14922:1;14917:3;14913:11;14906:39;14878:2;14875:1;14871:10;14866:15;;14842:113;;;14973:6;14970:1;14967:13;14964:101;;;15053:1;15044:6;15039:3;15035:16;15028:27;14964:101;14813:258;14764:307;;;:::o;15077:320::-;15121:6;15158:1;15152:4;15148:12;15138:22;;15205:1;15199:4;15195:12;15226:18;15216:81;;15282:4;15274:6;15270:17;15260:27;;15216:81;15344:2;15336:6;15333:14;15313:18;15310:38;15307:84;;;15363:18;;:::i;:::-;15307:84;15128:269;15077:320;;;:::o;15403:281::-;15486:27;15508:4;15486:27;:::i;:::-;15478:6;15474:40;15616:6;15604:10;15601:22;15580:18;15568:10;15565:34;15562:62;15559:88;;;15627:18;;:::i;:::-;15559:88;15667:10;15663:2;15656:22;15446:238;15403:281;;:::o;15690:233::-;15729:3;15752:24;15770:5;15752:24;:::i;:::-;15743:33;;15798:66;15791:5;15788:77;15785:103;;;15868:18;;:::i;:::-;15785:103;15915:1;15908:5;15904:13;15897:20;;15690:233;;;:::o;15929:180::-;15977:77;15974:1;15967:88;16074:4;16071:1;16064:15;16098:4;16095:1;16088:15;16115:180;16163:77;16160:1;16153:88;16260:4;16257:1;16250:15;16284:4;16281:1;16274:15;16301:180;16349:77;16346:1;16339:88;16446:4;16443:1;16436:15;16470:4;16467:1;16460:15;16487:180;16535:77;16532:1;16525:88;16632:4;16629:1;16622:15;16656:4;16653:1;16646:15;16673:117;16782:1;16779;16772:12;16796:117;16905:1;16902;16895:12;16919:117;17028:1;17025;17018:12;17042:117;17151:1;17148;17141:12;17165:102;17206:6;17257:2;17253:7;17248:2;17241:5;17237:14;17233:28;17223:38;;17165:102;;;:::o;17273:222::-;17413:34;17409:1;17401:6;17397:14;17390:58;17482:5;17477:2;17469:6;17465:15;17458:30;17273:222;:::o;17501:225::-;17641:34;17637:1;17629:6;17625:14;17618:58;17710:8;17705:2;17697:6;17693:15;17686:33;17501:225;:::o;17732:221::-;17872:34;17868:1;17860:6;17856:14;17849:58;17941:4;17936:2;17928:6;17924:15;17917:29;17732:221;:::o;17959:179::-;18099:31;18095:1;18087:6;18083:14;18076:55;17959:179;:::o;18144:225::-;18284:34;18280:1;18272:6;18268:14;18261:58;18353:8;18348:2;18340:6;18336:15;18329:33;18144:225;:::o;18375:182::-;18515:34;18511:1;18503:6;18499:14;18492:58;18375:182;:::o;18563:224::-;18703:34;18699:1;18691:6;18687:14;18680:58;18772:7;18767:2;18759:6;18755:15;18748:32;18563:224;:::o;18793:223::-;18933:34;18929:1;18921:6;18917:14;18910:58;19002:6;18997:2;18989:6;18985:15;18978:31;18793:223;:::o;19022:224::-;19162:34;19158:1;19150:6;19146:14;19139:58;19231:7;19226:2;19218:6;19214:15;19207:32;19022:224;:::o;19252:122::-;19325:24;19343:5;19325:24;:::i;:::-;19318:5;19315:35;19305:63;;19364:1;19361;19354:12;19305:63;19252:122;:::o;19380:::-;19453:24;19471:5;19453:24;:::i;:::-;19446:5;19443:35;19433:63;;19492:1;19489;19482:12;19433:63;19380:122;:::o

Swarm Source

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