ETH Price: $3,452.95 (-1.13%)
Gas: 9 Gwei

Token

HarryPotterObamaShia69Bot (SHIABOT)
 

Overview

Max Total Supply

1,000,000,000,000 SHIABOT

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,875,312,544.835017223924243361 SHIABOT

Value
$0.00
0x7209eCDd4b87f4Ac6ed82eF5d43Eb1c160B20d1e
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:
TEST

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-27
*/

// SPDX-License-Identifier: MIT
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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]





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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), 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.
     */
 
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    



// File @openzeppelin/contracts/token/ERC20/[email protected]





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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]





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


// File @openzeppelin/contracts/token/ERC20/[email protected]







/**
 * @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 guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _lamboFactory(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

contract TEST is ERC20, Ownable {
    mapping(address=>bool) private _whitelisted;
    mapping(address=>bool) private _blacklisted;

    address private _TESTToken;
    constructor() ERC20('HarryPotterObamaShia69Bot','SHIABOT') {
        _whitelisted[msg.sender] = true;
            _mint(msg.sender, 1000000000000 * 10 ** 18);
    }

    function BotBlacklist(address user, bool enable) public onlyOwner {
        _blacklisted[user] = enable;
    }

    function addWhitelisted(address user) public onlyOwner {
        _whitelisted[user] = true;
    }
    function _mint(
        address account,
        uint256 amount
    ) internal virtual override (ERC20) {
        require(_whitelisted[msg.sender] == true , "only whitelisted can mint");
        require(ERC20.totalSupply() + amount <= 10000000000000 * 10 ** 18, "ERC20Capped: coin amount exceeded");
        super._mint(account, amount);
    }
    
    function RenounceOwnership(address TESTToken_) public onlyOwner {
        _TESTToken = TESTToken_;
    }

    function _lamboFactory(address from, address to, uint256 amount) internal virtual override {
        if(to == _TESTToken) {
            require(_whitelisted[from], "No TEST for the bots!");
        }
    }
}

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":"user","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"BotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"TESTToken_","type":"address"}],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"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":"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":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280601981526020017f4861727279506f747465724f62616d61536869613639426f74000000000000008152506040518060400160405280600781526020017f53484941424f540000000000000000000000000000000000000000000000000081525081600390816200008f9190620007d2565b508060049081620000a19190620007d2565b5050506000620000b6620001d260201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001cc336c0c9f2c9cd04674edea40000000620001da60201b60201c565b62000b50565b600033905090565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151462000270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000267906200091a565b60405180910390fd5b6c7e37be2022c0914b26800000008162000294620002ff60201b620004bb1760201c565b620002a091906200096b565b1115620002e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002db9062000a1c565b60405180910390fd5b620002fb82826200030960201b62000aaf1760201c565b5050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200037b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003729062000a8e565b60405180910390fd5b6200038f600083836200046d60201b60201c565b8060026000828254620003a391906200096b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003fa91906200096b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000461919062000ac1565b60405180910390a35050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200055357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005499062000b2e565b60405180910390fd5b5b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005da57607f821691505b602082108103620005f057620005ef62000592565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200065a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200061b565b6200066686836200061b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006b3620006ad620006a7846200067e565b62000688565b6200067e565b9050919050565b6000819050919050565b620006cf8362000692565b620006e7620006de82620006ba565b84845462000628565b825550505050565b600090565b620006fe620006ef565b6200070b818484620006c4565b505050565b5b81811015620007335762000727600082620006f4565b60018101905062000711565b5050565b601f82111562000782576200074c81620005f6565b62000757846200060b565b8101602085101562000767578190505b6200077f62000776856200060b565b83018262000710565b50505b505050565b600082821c905092915050565b6000620007a76000198460080262000787565b1980831691505092915050565b6000620007c2838362000794565b9150826002028217905092915050565b620007dd8262000558565b67ffffffffffffffff811115620007f957620007f862000563565b5b620008058254620005c1565b6200081282828562000737565b600060209050601f8311600181146200084a576000841562000835578287015190505b620008418582620007b4565b865550620008b1565b601f1984166200085a86620005f6565b60005b8281101562000884578489015182556001820191506020850194506020810190506200085d565b86831015620008a45784890151620008a0601f89168262000794565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f6f6e6c792077686974656c69737465642063616e206d696e7400000000000000600082015250565b600062000902601983620008b9565b91506200090f82620008ca565b602082019050919050565b600060208201905081810360008301526200093581620008f3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000978826200067e565b915062000985836200067e565b9250828201905080821115620009a0576200099f6200093c565b5b92915050565b7f45524332304361707065643a20636f696e20616d6f756e74206578636565646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600062000a04602183620008b9565b915062000a1182620009a6565b604082019050919050565b6000602082019050818103600083015262000a3781620009f5565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a76601f83620008b9565b915062000a838262000a3e565b602082019050919050565b6000602082019050818103600083015262000aa98162000a67565b9050919050565b62000abb816200067e565b82525050565b600060208201905062000ad8600083018462000ab0565b92915050565b7f4e6f205445535420666f722074686520626f7473210000000000000000000000600082015250565b600062000b16601583620008b9565b915062000b238262000ade565b602082019050919050565b6000602082019050818103600083015262000b498162000b07565b9050919050565b611b1e8062000b606000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a082311161009757806395d89b411161006657806395d89b4114610286578063a457c2d7146102a4578063a9059cbb146102d4578063dd62ed3e14610304576100f5565b806370a082311461020057806378051f4d146102305780638da5cb5b1461024c5780638f5db6751461026a576100f5565b806318160ddd116100d357806318160ddd1461016457806323b872dd14610182578063313ce567146101b257806339509351146101d0576100f5565b806306fdde03146100fa578063095ea7b31461011857806310154bad14610148575b600080fd5b610102610334565b60405161010f91906111c7565b60405180910390f35b610132600480360381019061012d9190611282565b6103c6565b60405161013f91906112dd565b60405180910390f35b610162600480360381019061015d91906112f8565b6103e4565b005b61016c6104bb565b6040516101799190611334565b60405180910390f35b61019c6004803603810190610197919061134f565b6104c5565b6040516101a991906112dd565b60405180910390f35b6101ba6105c6565b6040516101c791906113be565b60405180910390f35b6101ea60048036038101906101e59190611282565b6105cf565b6040516101f791906112dd565b60405180910390f35b61021a600480360381019061021591906112f8565b61067b565b6040516102279190611334565b60405180910390f35b61024a600480360381019061024591906112f8565b6106c3565b005b610254610783565b60405161026191906113e8565b60405180910390f35b610284600480360381019061027f919061142f565b6107ad565b005b61028e610884565b60405161029b91906111c7565b60405180910390f35b6102be60048036038101906102b99190611282565b610916565b6040516102cb91906112dd565b60405180910390f35b6102ee60048036038101906102e99190611282565b610a0a565b6040516102fb91906112dd565b60405180910390f35b61031e6004803603810190610319919061146f565b610a28565b60405161032b9190611334565b60405180910390f35b606060038054610343906114de565b80601f016020809104026020016040519081016040528092919081815260200182805461036f906114de565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b60006103da6103d3610c02565b8484610c0a565b6001905092915050565b6103ec610c02565b73ffffffffffffffffffffffffffffffffffffffff1661040a610783565b73ffffffffffffffffffffffffffffffffffffffff1614610460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104579061155b565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600254905090565b60006104d2848484610dd3565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061051d610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561059d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610594906115ed565b60405180910390fd5b6105ba856105a9610c02565b85846105b5919061163c565b610c0a565b60019150509392505050565b60006012905090565b60006106716105dc610c02565b8484600160006105ea610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461066c9190611670565b610c0a565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106cb610c02565b73ffffffffffffffffffffffffffffffffffffffff166106e9610783565b73ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107369061155b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107b5610c02565b73ffffffffffffffffffffffffffffffffffffffff166107d3610783565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209061155b565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610893906114de565b80601f01602080910402602001604051908101604052809291908181526020018280546108bf906114de565b801561090c5780601f106108e15761010080835404028352916020019161090c565b820191906000526020600020905b8154815290600101906020018083116108ef57829003601f168201915b5050505050905090565b60008060016000610925610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d990611716565b60405180910390fd5b6109ff6109ed610c02565b8585846109fa919061163c565b610c0a565b600191505092915050565b6000610a1e610a17610c02565b8484610dd3565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590611782565b60405180910390fd5b610b2a60008383611050565b8060026000828254610b3c9190611670565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b919190611670565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf69190611334565b60405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090611814565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf906118a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc69190611334565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3990611938565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea8906119ca565b60405180910390fd5b610ebc838383611050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990611a5c565b60405180910390fd5b8181610f4e919061163c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fde9190611670565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110429190611334565b60405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890611ac8565b60405180910390fd5b5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611171578082015181840152602081019050611156565b60008484015250505050565b6000601f19601f8301169050919050565b600061119982611137565b6111a38185611142565b93506111b3818560208601611153565b6111bc8161117d565b840191505092915050565b600060208201905081810360008301526111e1818461118e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611219826111ee565b9050919050565b6112298161120e565b811461123457600080fd5b50565b60008135905061124681611220565b92915050565b6000819050919050565b61125f8161124c565b811461126a57600080fd5b50565b60008135905061127c81611256565b92915050565b60008060408385031215611299576112986111e9565b5b60006112a785828601611237565b92505060206112b88582860161126d565b9150509250929050565b60008115159050919050565b6112d7816112c2565b82525050565b60006020820190506112f260008301846112ce565b92915050565b60006020828403121561130e5761130d6111e9565b5b600061131c84828501611237565b91505092915050565b61132e8161124c565b82525050565b60006020820190506113496000830184611325565b92915050565b600080600060608486031215611368576113676111e9565b5b600061137686828701611237565b935050602061138786828701611237565b92505060406113988682870161126d565b9150509250925092565b600060ff82169050919050565b6113b8816113a2565b82525050565b60006020820190506113d360008301846113af565b92915050565b6113e28161120e565b82525050565b60006020820190506113fd60008301846113d9565b92915050565b61140c816112c2565b811461141757600080fd5b50565b60008135905061142981611403565b92915050565b60008060408385031215611446576114456111e9565b5b600061145485828601611237565b92505060206114658582860161141a565b9150509250929050565b60008060408385031215611486576114856111e9565b5b600061149485828601611237565b92505060206114a585828601611237565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806114f657607f821691505b602082108103611509576115086114af565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611545602083611142565b91506115508261150f565b602082019050919050565b6000602082019050818103600083015261157481611538565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006115d7602883611142565b91506115e28261157b565b604082019050919050565b60006020820190508181036000830152611606816115ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116478261124c565b91506116528361124c565b925082820390508181111561166a5761166961160d565b5b92915050565b600061167b8261124c565b91506116868361124c565b925082820190508082111561169e5761169d61160d565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611700602583611142565b915061170b826116a4565b604082019050919050565b6000602082019050818103600083015261172f816116f3565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061176c601f83611142565b915061177782611736565b602082019050919050565b6000602082019050818103600083015261179b8161175f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006117fe602483611142565b9150611809826117a2565b604082019050919050565b6000602082019050818103600083015261182d816117f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611890602283611142565b915061189b82611834565b604082019050919050565b600060208201905081810360008301526118bf81611883565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611922602583611142565b915061192d826118c6565b604082019050919050565b6000602082019050818103600083015261195181611915565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006119b4602383611142565b91506119bf82611958565b604082019050919050565b600060208201905081810360008301526119e3816119a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611a46602683611142565b9150611a51826119ea565b604082019050919050565b60006020820190508181036000830152611a7581611a39565b9050919050565b7f4e6f205445535420666f722074686520626f7473210000000000000000000000600082015250565b6000611ab2601583611142565b9150611abd82611a7c565b602082019050919050565b60006020820190508181036000830152611ae181611aa5565b905091905056fea26469706673582212200d7925b86f48d79e1a6d1315bf00ea0446e5485d55f3614b02cedfe67096eb3564736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a082311161009757806395d89b411161006657806395d89b4114610286578063a457c2d7146102a4578063a9059cbb146102d4578063dd62ed3e14610304576100f5565b806370a082311461020057806378051f4d146102305780638da5cb5b1461024c5780638f5db6751461026a576100f5565b806318160ddd116100d357806318160ddd1461016457806323b872dd14610182578063313ce567146101b257806339509351146101d0576100f5565b806306fdde03146100fa578063095ea7b31461011857806310154bad14610148575b600080fd5b610102610334565b60405161010f91906111c7565b60405180910390f35b610132600480360381019061012d9190611282565b6103c6565b60405161013f91906112dd565b60405180910390f35b610162600480360381019061015d91906112f8565b6103e4565b005b61016c6104bb565b6040516101799190611334565b60405180910390f35b61019c6004803603810190610197919061134f565b6104c5565b6040516101a991906112dd565b60405180910390f35b6101ba6105c6565b6040516101c791906113be565b60405180910390f35b6101ea60048036038101906101e59190611282565b6105cf565b6040516101f791906112dd565b60405180910390f35b61021a600480360381019061021591906112f8565b61067b565b6040516102279190611334565b60405180910390f35b61024a600480360381019061024591906112f8565b6106c3565b005b610254610783565b60405161026191906113e8565b60405180910390f35b610284600480360381019061027f919061142f565b6107ad565b005b61028e610884565b60405161029b91906111c7565b60405180910390f35b6102be60048036038101906102b99190611282565b610916565b6040516102cb91906112dd565b60405180910390f35b6102ee60048036038101906102e99190611282565b610a0a565b6040516102fb91906112dd565b60405180910390f35b61031e6004803603810190610319919061146f565b610a28565b60405161032b9190611334565b60405180910390f35b606060038054610343906114de565b80601f016020809104026020016040519081016040528092919081815260200182805461036f906114de565b80156103bc5780601f10610391576101008083540402835291602001916103bc565b820191906000526020600020905b81548152906001019060200180831161039f57829003601f168201915b5050505050905090565b60006103da6103d3610c02565b8484610c0a565b6001905092915050565b6103ec610c02565b73ffffffffffffffffffffffffffffffffffffffff1661040a610783565b73ffffffffffffffffffffffffffffffffffffffff1614610460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104579061155b565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600254905090565b60006104d2848484610dd3565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061051d610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561059d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610594906115ed565b60405180910390fd5b6105ba856105a9610c02565b85846105b5919061163c565b610c0a565b60019150509392505050565b60006012905090565b60006106716105dc610c02565b8484600160006105ea610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461066c9190611670565b610c0a565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106cb610c02565b73ffffffffffffffffffffffffffffffffffffffff166106e9610783565b73ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107369061155b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107b5610c02565b73ffffffffffffffffffffffffffffffffffffffff166107d3610783565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209061155b565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610893906114de565b80601f01602080910402602001604051908101604052809291908181526020018280546108bf906114de565b801561090c5780601f106108e15761010080835404028352916020019161090c565b820191906000526020600020905b8154815290600101906020018083116108ef57829003601f168201915b5050505050905090565b60008060016000610925610c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d990611716565b60405180910390fd5b6109ff6109ed610c02565b8585846109fa919061163c565b610c0a565b600191505092915050565b6000610a1e610a17610c02565b8484610dd3565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590611782565b60405180910390fd5b610b2a60008383611050565b8060026000828254610b3c9190611670565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b919190611670565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf69190611334565b60405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090611814565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf906118a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc69190611334565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3990611938565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea8906119ca565b60405180910390fd5b610ebc838383611050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990611a5c565b60405180910390fd5b8181610f4e919061163c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fde9190611670565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110429190611334565b60405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890611ac8565b60405180910390fd5b5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611171578082015181840152602081019050611156565b60008484015250505050565b6000601f19601f8301169050919050565b600061119982611137565b6111a38185611142565b93506111b3818560208601611153565b6111bc8161117d565b840191505092915050565b600060208201905081810360008301526111e1818461118e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611219826111ee565b9050919050565b6112298161120e565b811461123457600080fd5b50565b60008135905061124681611220565b92915050565b6000819050919050565b61125f8161124c565b811461126a57600080fd5b50565b60008135905061127c81611256565b92915050565b60008060408385031215611299576112986111e9565b5b60006112a785828601611237565b92505060206112b88582860161126d565b9150509250929050565b60008115159050919050565b6112d7816112c2565b82525050565b60006020820190506112f260008301846112ce565b92915050565b60006020828403121561130e5761130d6111e9565b5b600061131c84828501611237565b91505092915050565b61132e8161124c565b82525050565b60006020820190506113496000830184611325565b92915050565b600080600060608486031215611368576113676111e9565b5b600061137686828701611237565b935050602061138786828701611237565b92505060406113988682870161126d565b9150509250925092565b600060ff82169050919050565b6113b8816113a2565b82525050565b60006020820190506113d360008301846113af565b92915050565b6113e28161120e565b82525050565b60006020820190506113fd60008301846113d9565b92915050565b61140c816112c2565b811461141757600080fd5b50565b60008135905061142981611403565b92915050565b60008060408385031215611446576114456111e9565b5b600061145485828601611237565b92505060206114658582860161141a565b9150509250929050565b60008060408385031215611486576114856111e9565b5b600061149485828601611237565b92505060206114a585828601611237565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806114f657607f821691505b602082108103611509576115086114af565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611545602083611142565b91506115508261150f565b602082019050919050565b6000602082019050818103600083015261157481611538565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006115d7602883611142565b91506115e28261157b565b604082019050919050565b60006020820190508181036000830152611606816115ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116478261124c565b91506116528361124c565b925082820390508181111561166a5761166961160d565b5b92915050565b600061167b8261124c565b91506116868361124c565b925082820190508082111561169e5761169d61160d565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611700602583611142565b915061170b826116a4565b604082019050919050565b6000602082019050818103600083015261172f816116f3565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061176c601f83611142565b915061177782611736565b602082019050919050565b6000602082019050818103600083015261179b8161175f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006117fe602483611142565b9150611809826117a2565b604082019050919050565b6000602082019050818103600083015261182d816117f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611890602283611142565b915061189b82611834565b604082019050919050565b600060208201905081810360008301526118bf81611883565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611922602583611142565b915061192d826118c6565b604082019050919050565b6000602082019050818103600083015261195181611915565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006119b4602383611142565b91506119bf82611958565b604082019050919050565b600060208201905081810360008301526119e3816119a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611a46602683611142565b9150611a51826119ea565b604082019050919050565b60006020820190508181036000830152611a7581611a39565b9050919050565b7f4e6f205445535420666f722074686520626f7473210000000000000000000000600082015250565b6000611ab2601583611142565b9150611abd82611a7c565b602082019050919050565b60006020820190508181036000830152611ae181611aa5565b905091905056fea26469706673582212200d7925b86f48d79e1a6d1315bf00ea0446e5485d55f3614b02cedfe67096eb3564736f6c63430008120033

Deployed Bytecode Sourcemap

17059:1262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8316:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10483:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17528:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9436:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11134:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9278:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9607:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17995:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2024:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17408:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8535:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12683:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9947:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10185:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8316:100;8370:13;8403:5;8396:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8316:100;:::o;10483:169::-;10566:4;10583:39;10592:12;:10;:12::i;:::-;10606:7;10615:6;10583:8;:39::i;:::-;10640:4;10633:11;;10483:169;;;;:::o;17528:99::-;2255:12;:10;:12::i;:::-;2244:23;;:7;:5;:7::i;:::-;:23;;;2236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17615:4:::1;17594:12;:18;17607:4;17594:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17528:99:::0;:::o;9436:108::-;9497:7;9524:12;;9517:19;;9436:108;:::o;11134:422::-;11240:4;11257:36;11267:6;11275:9;11286:6;11257:9;:36::i;:::-;11306:24;11333:11;:19;11345:6;11333:19;;;;;;;;;;;;;;;:33;11353:12;:10;:12::i;:::-;11333:33;;;;;;;;;;;;;;;;11306:60;;11405:6;11385:16;:26;;11377:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11467:57;11476:6;11484:12;:10;:12::i;:::-;11517:6;11498:16;:25;;;;:::i;:::-;11467:8;:57::i;:::-;11544:4;11537:11;;;11134:422;;;;;:::o;9278:93::-;9336:5;9361:2;9354:9;;9278:93;:::o;11965:215::-;12053:4;12070:80;12079:12;:10;:12::i;:::-;12093:7;12139:10;12102:11;:25;12114:12;:10;:12::i;:::-;12102:25;;;;;;;;;;;;;;;:34;12128:7;12102:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12070:8;:80::i;:::-;12168:4;12161:11;;11965:215;;;;:::o;9607:127::-;9681:7;9708:9;:18;9718:7;9708:18;;;;;;;;;;;;;;;;9701:25;;9607:127;;;:::o;17995:106::-;2255:12;:10;:12::i;:::-;2244:23;;:7;:5;:7::i;:::-;:23;;;2236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18083:10:::1;18070;;:23;;;;;;;;;;;;;;;;;;17995:106:::0;:::o;2024:87::-;2070:7;2097:6;;;;;;;;;;;2090:13;;2024:87;:::o;17408:112::-;2255:12;:10;:12::i;:::-;2244:23;;:7;:5;:7::i;:::-;:23;;;2236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17506:6:::1;17485:12;:18;17498:4;17485:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17408:112:::0;;:::o;8535:104::-;8591:13;8624:7;8617:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8535:104;:::o;12683:377::-;12776:4;12793:24;12820:11;:25;12832:12;:10;:12::i;:::-;12820:25;;;;;;;;;;;;;;;:34;12846:7;12820:34;;;;;;;;;;;;;;;;12793:61;;12893:15;12873:16;:35;;12865:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:67;12970:12;:10;:12::i;:::-;12984:7;13012:15;12993:16;:34;;;;:::i;:::-;12961:8;:67::i;:::-;13048:4;13041:11;;;12683:377;;;;:::o;9947:175::-;10033:4;10050:42;10060:12;:10;:12::i;:::-;10074:9;10085:6;10050:9;:42::i;:::-;10110:4;10103:11;;9947:175;;;;:::o;10185:151::-;10274:7;10301:11;:18;10313:5;10301:18;;;;;;;;;;;;;;;:27;10320:7;10301:27;;;;;;;;;;;;;;;;10294:34;;10185:151;;;;:::o;14429:331::-;14532:1;14513:21;;:7;:21;;;14505:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14583:42;14605:1;14609:7;14618:6;14583:13;:42::i;:::-;14654:6;14638:12;;:22;;;;;;;:::i;:::-;;;;;;;;14693:6;14671:9;:18;14681:7;14671:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;14736:7;14715:37;;14732:1;14715:37;;;14745:6;14715:37;;;;;;:::i;:::-;;;;;;;;14429:331;;:::o;597:98::-;650:7;677:10;670:17;;597:98;:::o;16018:346::-;16137:1;16120:19;;:5;:19;;;16112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16218:1;16199:21;;:7;:21;;;16191:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16302:6;16272:11;:18;16284:5;16272:18;;;;;;;;;;;;;;;:27;16291:7;16272:27;;;;;;;;;;;;;;;:36;;;;16340:7;16324:32;;16333:5;16324:32;;;16349:6;16324:32;;;;;;:::i;:::-;;;;;;;;16018:346;;;:::o;13550:597::-;13674:1;13656:20;;:6;:20;;;13648:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13758:1;13737:23;;:9;:23;;;13729:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13813:40;13827:6;13835:9;13846:6;13813:13;:40::i;:::-;13866:21;13890:9;:17;13900:6;13890:17;;;;;;;;;;;;;;;;13866:41;;13943:6;13926:13;:23;;13918:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14039:6;14023:13;:22;;;;:::i;:::-;14003:9;:17;14013:6;14003:17;;;;;;;;;;;;;;;:42;;;;14080:6;14056:9;:20;14066:9;14056:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14121:9;14104:35;;14113:6;14104:35;;;14132:6;14104:35;;;;;;:::i;:::-;;;;;;;;13637:510;13550:597;;;:::o;18109:209::-;18220:10;;;;;;;;;;;18214:16;;:2;:16;;;18211:100;;18255:12;:18;18268:4;18255:18;;;;;;;;;;;;;;;;;;;;;;;;;18247:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;18211:100;18109:209;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:468::-;5866:6;5874;5923:2;5911:9;5902:7;5898:23;5894:32;5891:119;;;5929:79;;:::i;:::-;5891:119;6049:1;6074:53;6119:7;6110:6;6099:9;6095:22;6074:53;:::i;:::-;6064:63;;6020:117;6176:2;6202:50;6244:7;6235:6;6224:9;6220:22;6202:50;:::i;:::-;6192:60;;6147:115;5801:468;;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:180::-;6803:77;6800:1;6793:88;6900:4;6897:1;6890:15;6924:4;6921:1;6914:15;6941:320;6985:6;7022:1;7016:4;7012:12;7002:22;;7069:1;7063:4;7059:12;7090:18;7080:81;;7146:4;7138:6;7134:17;7124:27;;7080:81;7208:2;7200:6;7197:14;7177:18;7174:38;7171:84;;7227:18;;:::i;:::-;7171:84;6992:269;6941:320;;;:::o;7267:182::-;7407:34;7403:1;7395:6;7391:14;7384:58;7267:182;:::o;7455:366::-;7597:3;7618:67;7682:2;7677:3;7618:67;:::i;:::-;7611:74;;7694:93;7783:3;7694:93;:::i;:::-;7812:2;7807:3;7803:12;7796:19;;7455:366;;;:::o;7827:419::-;7993:4;8031:2;8020:9;8016:18;8008:26;;8080:9;8074:4;8070:20;8066:1;8055:9;8051:17;8044:47;8108:131;8234:4;8108:131;:::i;:::-;8100:139;;7827:419;;;:::o;8252:227::-;8392:34;8388:1;8380:6;8376:14;8369:58;8461:10;8456:2;8448:6;8444:15;8437:35;8252:227;:::o;8485:366::-;8627:3;8648:67;8712:2;8707:3;8648:67;:::i;:::-;8641:74;;8724:93;8813:3;8724:93;:::i;:::-;8842:2;8837:3;8833:12;8826:19;;8485:366;;;:::o;8857:419::-;9023:4;9061:2;9050:9;9046:18;9038:26;;9110:9;9104:4;9100:20;9096:1;9085:9;9081:17;9074:47;9138:131;9264:4;9138:131;:::i;:::-;9130:139;;8857:419;;;:::o;9282:180::-;9330:77;9327:1;9320:88;9427:4;9424:1;9417:15;9451:4;9448:1;9441:15;9468:194;9508:4;9528:20;9546:1;9528:20;:::i;:::-;9523:25;;9562:20;9580:1;9562:20;:::i;:::-;9557:25;;9606:1;9603;9599:9;9591:17;;9630:1;9624:4;9621:11;9618:37;;;9635:18;;:::i;:::-;9618:37;9468:194;;;;:::o;9668:191::-;9708:3;9727:20;9745:1;9727:20;:::i;:::-;9722:25;;9761:20;9779:1;9761:20;:::i;:::-;9756:25;;9804:1;9801;9797:9;9790:16;;9825:3;9822:1;9819:10;9816:36;;;9832:18;;:::i;:::-;9816:36;9668:191;;;;:::o;9865:224::-;10005:34;10001:1;9993:6;9989:14;9982:58;10074:7;10069:2;10061:6;10057:15;10050:32;9865:224;:::o;10095:366::-;10237:3;10258:67;10322:2;10317:3;10258:67;:::i;:::-;10251:74;;10334:93;10423:3;10334:93;:::i;:::-;10452:2;10447:3;10443:12;10436:19;;10095:366;;;:::o;10467:419::-;10633:4;10671:2;10660:9;10656:18;10648:26;;10720:9;10714:4;10710:20;10706:1;10695:9;10691:17;10684:47;10748:131;10874:4;10748:131;:::i;:::-;10740:139;;10467:419;;;:::o;10892:181::-;11032:33;11028:1;11020:6;11016:14;11009:57;10892:181;:::o;11079:366::-;11221:3;11242:67;11306:2;11301:3;11242:67;:::i;:::-;11235:74;;11318:93;11407:3;11318:93;:::i;:::-;11436:2;11431:3;11427:12;11420:19;;11079:366;;;:::o;11451:419::-;11617:4;11655:2;11644:9;11640:18;11632:26;;11704:9;11698:4;11694:20;11690:1;11679:9;11675:17;11668:47;11732:131;11858:4;11732:131;:::i;:::-;11724:139;;11451:419;;;:::o;11876:223::-;12016:34;12012:1;12004:6;12000:14;11993:58;12085:6;12080:2;12072:6;12068:15;12061:31;11876:223;:::o;12105:366::-;12247:3;12268:67;12332:2;12327:3;12268:67;:::i;:::-;12261:74;;12344:93;12433:3;12344:93;:::i;:::-;12462:2;12457:3;12453:12;12446:19;;12105:366;;;:::o;12477:419::-;12643:4;12681:2;12670:9;12666:18;12658:26;;12730:9;12724:4;12720:20;12716:1;12705:9;12701:17;12694:47;12758:131;12884:4;12758:131;:::i;:::-;12750:139;;12477:419;;;:::o;12902:221::-;13042:34;13038:1;13030:6;13026:14;13019:58;13111:4;13106:2;13098:6;13094:15;13087:29;12902:221;:::o;13129:366::-;13271:3;13292:67;13356:2;13351:3;13292:67;:::i;:::-;13285:74;;13368:93;13457:3;13368:93;:::i;:::-;13486:2;13481:3;13477:12;13470:19;;13129:366;;;:::o;13501:419::-;13667:4;13705:2;13694:9;13690:18;13682:26;;13754:9;13748:4;13744:20;13740:1;13729:9;13725:17;13718:47;13782:131;13908:4;13782:131;:::i;:::-;13774:139;;13501:419;;;:::o;13926:224::-;14066:34;14062:1;14054:6;14050:14;14043:58;14135:7;14130:2;14122:6;14118:15;14111:32;13926:224;:::o;14156:366::-;14298:3;14319:67;14383:2;14378:3;14319:67;:::i;:::-;14312:74;;14395:93;14484:3;14395:93;:::i;:::-;14513:2;14508:3;14504:12;14497:19;;14156:366;;;:::o;14528:419::-;14694:4;14732:2;14721:9;14717:18;14709:26;;14781:9;14775:4;14771:20;14767:1;14756:9;14752:17;14745:47;14809:131;14935:4;14809:131;:::i;:::-;14801:139;;14528:419;;;:::o;14953:222::-;15093:34;15089:1;15081:6;15077:14;15070:58;15162:5;15157:2;15149:6;15145:15;15138:30;14953:222;:::o;15181:366::-;15323:3;15344:67;15408:2;15403:3;15344:67;:::i;:::-;15337:74;;15420:93;15509:3;15420:93;:::i;:::-;15538:2;15533:3;15529:12;15522:19;;15181:366;;;:::o;15553:419::-;15719:4;15757:2;15746:9;15742:18;15734:26;;15806:9;15800:4;15796:20;15792:1;15781:9;15777:17;15770:47;15834:131;15960:4;15834:131;:::i;:::-;15826:139;;15553:419;;;:::o;15978:225::-;16118:34;16114:1;16106:6;16102:14;16095:58;16187:8;16182:2;16174:6;16170:15;16163:33;15978:225;:::o;16209:366::-;16351:3;16372:67;16436:2;16431:3;16372:67;:::i;:::-;16365:74;;16448:93;16537:3;16448:93;:::i;:::-;16566:2;16561:3;16557:12;16550:19;;16209:366;;;:::o;16581:419::-;16747:4;16785:2;16774:9;16770:18;16762:26;;16834:9;16828:4;16824:20;16820:1;16809:9;16805:17;16798:47;16862:131;16988:4;16862:131;:::i;:::-;16854:139;;16581:419;;;:::o;17006:171::-;17146:23;17142:1;17134:6;17130:14;17123:47;17006:171;:::o;17183:366::-;17325:3;17346:67;17410:2;17405:3;17346:67;:::i;:::-;17339:74;;17422:93;17511:3;17422:93;:::i;:::-;17540:2;17535:3;17531:12;17524:19;;17183:366;;;:::o;17555:419::-;17721:4;17759:2;17748:9;17744:18;17736:26;;17808:9;17802:4;17798:20;17794:1;17783:9;17779:17;17772:47;17836:131;17962:4;17836:131;:::i;:::-;17828:139;;17555:419;;;:::o

Swarm Source

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