ETH Price: $3,134.91 (+3.57%)

Token

Multiverse (AI)
 

Overview

Max Total Supply

25,000,000,000 AI

Holders

2,524

Market

Price

$0.00 @ 0.000000 ETH (+21.38%)

Onchain Market Cap

$2,059,750.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,864.680460155521100882 AI

Value
$0.40 ( ~0.000127595512086132 Eth) [0.0000%]
0x181cc1cf65685112bc79631ca31516cb9b1692f0
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Multiverse aims to provide decentralized machine-learning platform in a low-code environment with minimal technical barriers to entry. Each Planet project has its own token, product, economy, governance, and inflation/deflation rates.

Market

Volume (24H):$835.50
Market Capitalization:$0.00
Circulating Supply:0.00 AI
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MultiverseToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-12
*/

// SPDX-License-Identifier: Unlicense
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;
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * 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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

/**
 * Depositor is a ERC20 proxy for the MultiverseToken whose only supported transaction is
 * `transfer()`, which is converted to a `MultiverseToken.depositFrom()` call with the
 * `depository` associated via `MultiverseToken.createDepositor()`.
 */
contract Depositor is Context, IERC20, IERC20Metadata {
    MultiverseToken private _multiverseToken;
    string private _name;

    constructor(MultiverseToken multiverseToken_, string memory name_) {
        _multiverseToken = multiverseToken_;
        _name = name_;
    }

    /**
     * @dev The Despositor fulfills the ERC20 `transfer` operation by transferring
     * the specified `value` from the `msg.sender` to the Depositor's `depository`,
     * destined for specified `account`.
     */
    function transfer(address account, uint256 value) public virtual override returns (bool) {
        return _multiverseToken.depositFrom(_msgSender(), account, value);
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _multiverseToken.symbol();
    }

    function decimals() public view virtual override returns (uint8) {
        return _multiverseToken.decimals();
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _multiverseToken.totalSupply();
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _multiverseToken.balanceOf(account);
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _multiverseToken.allowance(owner, spender);
    }

    function approve(address, uint256) public virtual override returns (bool) {
        require(false, "approve() is not supported. call the MultiverseToken directly");
        return false;
    }

    function transferFrom(address, address, uint256) public virtual override returns (bool) {
        require(false, "transferFrom() is not supported. call the MultiverseToken directly");
        return false;
    }
}

/**
 * ERC20 token for the Multiverse.
 */
contract MultiverseToken is ERC20 {
    address private reserve;
    mapping (address => address) private depositors;

    /**
     * @dev Constructor that initializes the initial token supply under the care of the "reserve" account.
     */
    constructor(
        string memory name,
        string memory symbol,
        uint256 initialSupply,
        address reserveAddr
    ) ERC20(name, symbol) {
        reserve = reserveAddr;
        emit ReserveChanged(address(0), reserve);
        _mint(reserve, initialSupply);
    }

    modifier reserved() {
        require(_msgSender() == reserve, "operation is reserved");
        _;
    }

    /**
     * @dev Decreases the money supply.
     */
    function burn(uint256 value) reserved external {
        _burn(reserve, value);
    }

    /**
     * @dev Emitted when the `reserve` is changed from one account (`from`) to
     * another (`to`).
     */
    event ReserveChanged(address indexed from, address indexed to);

    /**
     * @dev Transfers the role of the reserve to a new account (e.g. key rotation).
     *      Note that allowances are NOT transferred.
     */
    function setReserve(address newReserve) reserved external {
        transfer(newReserve, balanceOf(reserve));
        reserve = newReserve;
        emit ReserveChanged(_msgSender(), newReserve);
    }

    /**
     * @dev Gets the current reserve.
     */
    function getReserve() external view returns (address) {
        return reserve;
    }

    /** @dev Emitted when a Deposit is made to a `depository` destined for a depository-managed `account`. */
    event Deposit(address indexed from, address indexed depository, uint256 value, address indexed account);

    /**
     * @dev Transfers `value` tokens from the `msg.sender` to the `depository`, destined for
     * the specified `account`. This emits an ERC20 `Transfer()` event to the depository, and a corresponding
     * `Deposit()` event that indicates the `account` address, to be managed off-chain by the depository.
     */
    function deposit(address depository, uint256 value, address account) external returns (bool) {
      return _deposit(_msgSender(), depository, value, account);
    }

    /**
     * @dev A _deposit() is essentially a transfer to a `depository` that emits a special `Deposit()`
     * event reporting the destination `account`, which is managed off-chain by the depository.
     */
    function _deposit(address from, address depository, uint256 value, address account) internal returns (bool) {
      emit Deposit(from, depository, value, account);
      _transfer(from, depository, value);
      return true;
    }

    /**
     * @dev Emitted when a Depositor is created.
     */
    event DepositorCreated(address depositor, address indexed depository);

    /**
     * @dev Deploys a new Depositor ERC20 contract that deposits to a specified `depository`
     * in response to the `transfer(account, value)` operation, essentially converting it
     * to `deposit(despository, value, account)` on behalf of the sender. Only the reserve
     * can call this method.
     */
    function createDepositor(string memory name, address depository) reserved external returns (address) {
        require(depository != address(0), "cannot deposit to zero address");
        Depositor depositor = new Depositor(this, name);

        address depositorAddress = address(depositor);
        depositors[depositorAddress] = depository;

        emit DepositorCreated(depositorAddress, depository);
        return depositorAddress;
    }

    /** @dev Returns the depository for the specified Depositor address. */
    function getDepository(address depositor) external view returns (address) {
        return depositors[depositor];
    }

    /**
     * @dev Transfers `value` tokens from the `from` address to the calling Depositor's depository,
     * emiting a `Deposit()` event that indicates the destination `account`. Only Depositors created
     * via `createDepositor()` can call this method.
     */
    function depositFrom(address from, address account, uint256 value) external returns (bool) {
      address depository = depositors[_msgSender()];
      require(depository != address(0), "depositFrom() can only be called by Depositors created by this contract");

      return _deposit(from, depository, value, account);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"reserveAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"depository","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"depository","type":"address"}],"name":"DepositorCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ReserveChanged","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":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"depository","type":"address"}],"name":"createDepositor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","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":"depository","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"depositFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"depositor","type":"address"}],"name":"getDepository","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newReserve","type":"address"}],"name":"setReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"}]

60806040523480156200001157600080fd5b5060405162003fa938038062003fa9833981810160405281019062000037919062000423565b8383816003908051906020019062000051929190620002d3565b5080600490805190602001906200006a929190620002d3565b50505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f603843a6dd1d6acb956bb55e8300061ced1a658c146dc06073c2081fd6b7af6a60405160405180910390a36200015f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200016960201b60201c565b50505050620007e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d390620004f9565b60405180910390fd5b620001f060008383620002ce60201b60201c565b8060026000828254620002049190620005a8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200025b9190620005a8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002c291906200051b565b60405180910390a35050565b505050565b828054620002e19062000679565b90600052602060002090601f01602090048101928262000305576000855562000351565b82601f106200032057805160ff191683800117855562000351565b8280016001018555821562000351579182015b828111156200035057825182559160200191906001019062000333565b5b50905062000360919062000364565b5090565b5b808211156200037f57600081600090555060010162000365565b5090565b60006200039a620003948462000561565b62000538565b905082815260208101848484011115620003b357600080fd5b620003c084828562000643565b509392505050565b600081519050620003d981620007ac565b92915050565b600082601f830112620003f157600080fd5b81516200040384826020860162000383565b91505092915050565b6000815190506200041d81620007c6565b92915050565b600080600080608085870312156200043a57600080fd5b600085015167ffffffffffffffff8111156200045557600080fd5b6200046387828801620003df565b945050602085015167ffffffffffffffff8111156200048157600080fd5b6200048f87828801620003df565b9350506040620004a2878288016200040c565b9250506060620004b587828801620003c8565b91505092959194509250565b6000620004d0601f8362000597565b9150620004dd8262000783565b602082019050919050565b620004f38162000639565b82525050565b600060208201905081810360008301526200051481620004c1565b9050919050565b6000602082019050620005326000830184620004e8565b92915050565b60006200054462000557565b9050620005528282620006af565b919050565b6000604051905090565b600067ffffffffffffffff8211156200057f576200057e62000743565b5b6200058a8262000772565b9050602081019050919050565b600082825260208201905092915050565b6000620005b58262000639565b9150620005c28362000639565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005fa57620005f9620006e5565b5b828201905092915050565b6000620006128262000619565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200066357808201518184015260208101905062000646565b8381111562000673576000848401525b50505050565b600060028204905060018216806200069257607f821691505b60208210811415620006a957620006a862000714565b5b50919050565b620006ba8262000772565b810181811067ffffffffffffffff82111715620006dc57620006db62000743565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620007b78162000605565b8114620007c357600080fd5b50565b620007d18162000639565b8114620007dd57600080fd5b50565b6137b980620007f06000396000f3fe60806040523480156200001157600080fd5b5060043610620001305760003560e01c806370a0823111620000b1578063a48c5421116200007b578063a48c54211462000363578063a9059cbb1462000399578063dd62ed3e14620003cf578063e5bdcd5b1462000405578063f45346dc146200043b5762000130565b806370a0823114620002b557806395d89b4114620002eb5780639cecc80a146200030d578063a457c2d7146200032d5762000130565b8063313ce56711620000ff578063313ce56714620001e557806339509351146200020757806342966c68146200023d57806359bf5d39146200025d57806368a9674d146200027f5762000130565b806306fdde031462000135578063095ea7b3146200015757806318160ddd146200018d57806323b872dd14620001af575b600080fd5b6200013f62000471565b6040516200014e919062001c02565b60405180910390f35b6200017560048036038101906200016f91906200180d565b6200050b565b60405162000184919062001bb1565b60405180910390f35b620001976200052d565b604051620001a6919062001dbe565b60405180910390f35b620001cd6004803603810190620001c79190620017b7565b62000537565b604051620001dc919062001bb1565b60405180910390f35b620001ef62000645565b604051620001fe919062001ddb565b60405180910390f35b6200022560048036038101906200021f91906200180d565b6200064e565b60405162000234919062001bb1565b60405180910390f35b6200025b6004803603810190620002559190620018fe565b62000702565b005b62000267620007cf565b60405162000276919062001b94565b60405180910390f35b6200029d6004803603810190620002979190620017b7565b620007f9565b604051620002ac919062001bb1565b60405180910390f35b620002d36004803603810190620002cd91906200174a565b620008f2565b604051620002e2919062001dbe565b60405180910390f35b620002f56200093a565b60405162000304919062001c02565b60405180910390f35b6200032b60048036038101906200032591906200174a565b620009d4565b005b6200034b60048036038101906200034591906200180d565b62000b50565b6040516200035a919062001bb1565b60405180910390f35b6200038160048036038101906200037b9190620018a4565b62000c4f565b60405162000390919062001b94565b60405180910390f35b620003b76004803603810190620003b191906200180d565b62000e7d565b604051620003c6919062001bb1565b60405180910390f35b620003ed6004803603810190620003e7919062001776565b62000e9f565b604051620003fc919062001dbe565b60405180910390f35b6200042360048036038101906200041d91906200174a565b62000f26565b60405162000432919062001b94565b60405180910390f35b6200045960048036038101906200045391906200184e565b62000f8f565b60405162000468919062001bb1565b60405180910390f35b606060038054620004829062001fcf565b80601f0160208091040260200160405190810160405280929190818152602001828054620004b09062001fcf565b8015620005015780601f10620004d55761010080835404028352916020019162000501565b820191906000526020600020905b815481529060010190602001808311620004e357829003601f168201915b5050505050905090565b6000620005236200051b62000fb1565b848462000fb9565b6001905092915050565b6000600254905090565b6000620005468484846200118c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200059362000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101562000616576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060d9062001cd0565b60405180910390fd5b62000639856200062562000fb1565b858462000633919062001ed0565b62000fb9565b60019150509392505050565b60006012905090565b6000620006f86200065e62000fb1565b8484600160006200066e62000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006f2919062001e73565b62000fb9565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166200074562000fb1565b73ffffffffffffffffffffffffffffffffffffffff16146200079e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007959062001cf2565b60405180910390fd5b620007cc600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200141c565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600660006200080a62000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620008da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d19062001c48565b60405180910390fd5b620008e885828587620015fe565b9150509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546200094b9062001fcf565b80601f0160208091040260200160405190810160405280929190818152602001828054620009799062001fcf565b8015620009ca5780601f106200099e57610100808354040283529160200191620009ca565b820191906000526020600020905b815481529060010190602001808311620009ac57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000a1762000fb1565b73ffffffffffffffffffffffffffffffffffffffff161462000a70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a679062001cf2565b60405180910390fd5b62000aa88162000aa2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620008f2565b62000e7d565b5080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1662000b0b62000fb1565b73ffffffffffffffffffffffffffffffffffffffff167f603843a6dd1d6acb956bb55e8300061ced1a658c146dc06073c2081fd6b7af6a60405160405180910390a350565b6000806001600062000b6162000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101562000c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c189062001d7a565b60405180910390fd5b62000c4462000c2f62000fb1565b85858462000c3e919062001ed0565b62000fb9565b600191505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000c9462000fb1565b73ffffffffffffffffffffffffffffffffffffffff161462000ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce49062001cf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d579062001d9c565b60405180910390fd5b6000308460405162000d72906200169c565b62000d7f92919062001bce565b604051809103906000f08015801562000d9c573d6000803e3d6000fd5b509050600081905083600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff167f792066aad4d317f630d90582786d51adcfb0cadb12bf19ff64ce545d30cc3df18260405162000e6a919062001b94565b60405180910390a2809250505092915050565b600062000e9562000e8d62000fb1565b84846200118c565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600062000fa862000f9f62000fb1565b858585620015fe565b90509392505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200102c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010239062001d58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200109f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010969062001c8c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200117f919062001dbe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620011ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011f69062001d36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562001272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620012699062001c26565b60405180910390fd5b6200127f83838362001697565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562001308576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620012ff9062001cae565b60405180910390fd5b818162001316919062001ed0565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620013a8919062001e73565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200140e919062001dbe565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620014869062001d14565b60405180910390fd5b6200149d8260008362001697565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562001526576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200151d9062001c6a565b60405180910390fd5b818162001534919062001ed0565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546200158a919062001ed0565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620015f1919062001dbe565b60405180910390a3505050565b60008173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f364bb76a44233df8584c690de6da7810626a5e77192f3ebc942c35bcb1add24f8660405162001676919062001dbe565b60405180910390a46200168b8585856200118c565b60019050949350505050565b505050565b6112e8806200249c83390190565b6000620016c1620016bb8462001e21565b62001df8565b905082815260208101848484011115620016da57600080fd5b620016e784828562001f8a565b509392505050565b600081359050620017008162002467565b92915050565b600082601f8301126200171857600080fd5b81356200172a848260208601620016aa565b91505092915050565b600081359050620017448162002481565b92915050565b6000602082840312156200175d57600080fd5b60006200176d84828501620016ef565b91505092915050565b600080604083850312156200178a57600080fd5b60006200179a85828601620016ef565b9250506020620017ad85828601620016ef565b9150509250929050565b600080600060608486031215620017cd57600080fd5b6000620017dd86828701620016ef565b9350506020620017f086828701620016ef565b9250506040620018038682870162001733565b9150509250925092565b600080604083850312156200182157600080fd5b60006200183185828601620016ef565b9250506020620018448582860162001733565b9150509250929050565b6000806000606084860312156200186457600080fd5b60006200187486828701620016ef565b9350506020620018878682870162001733565b92505060406200189a86828701620016ef565b9150509250925092565b60008060408385031215620018b857600080fd5b600083013567ffffffffffffffff811115620018d357600080fd5b620018e18582860162001706565b9250506020620018f485828601620016ef565b9150509250929050565b6000602082840312156200191157600080fd5b6000620019218482850162001733565b91505092915050565b620019358162001f0b565b82525050565b620019468162001f1f565b82525050565b620019578162001f62565b82525050565b60006200196a8262001e57565b62001976818562001e62565b93506200198881856020860162001f99565b6200199381620020c8565b840191505092915050565b6000620019ad60238362001e62565b9150620019ba82620020d9565b604082019050919050565b6000620019d460478362001e62565b9150620019e18262002128565b606082019050919050565b6000620019fb60228362001e62565b915062001a08826200219d565b604082019050919050565b600062001a2260228362001e62565b915062001a2f82620021ec565b604082019050919050565b600062001a4960268362001e62565b915062001a56826200223b565b604082019050919050565b600062001a7060288362001e62565b915062001a7d826200228a565b604082019050919050565b600062001a9760158362001e62565b915062001aa482620022d9565b602082019050919050565b600062001abe60218362001e62565b915062001acb8262002302565b604082019050919050565b600062001ae560258362001e62565b915062001af28262002351565b604082019050919050565b600062001b0c60248362001e62565b915062001b1982620023a0565b604082019050919050565b600062001b3360258362001e62565b915062001b4082620023ef565b604082019050919050565b600062001b5a601e8362001e62565b915062001b67826200243e565b602082019050919050565b62001b7d8162001f4b565b82525050565b62001b8e8162001f55565b82525050565b600060208201905062001bab60008301846200192a565b92915050565b600060208201905062001bc860008301846200193b565b92915050565b600060408201905062001be560008301856200194c565b818103602083015262001bf981846200195d565b90509392505050565b6000602082019050818103600083015262001c1e81846200195d565b905092915050565b6000602082019050818103600083015262001c41816200199e565b9050919050565b6000602082019050818103600083015262001c6381620019c5565b9050919050565b6000602082019050818103600083015262001c8581620019ec565b9050919050565b6000602082019050818103600083015262001ca78162001a13565b9050919050565b6000602082019050818103600083015262001cc98162001a3a565b9050919050565b6000602082019050818103600083015262001ceb8162001a61565b9050919050565b6000602082019050818103600083015262001d0d8162001a88565b9050919050565b6000602082019050818103600083015262001d2f8162001aaf565b9050919050565b6000602082019050818103600083015262001d518162001ad6565b9050919050565b6000602082019050818103600083015262001d738162001afd565b9050919050565b6000602082019050818103600083015262001d958162001b24565b9050919050565b6000602082019050818103600083015262001db78162001b4b565b9050919050565b600060208201905062001dd5600083018462001b72565b92915050565b600060208201905062001df2600083018462001b83565b92915050565b600062001e0462001e17565b905062001e12828262002005565b919050565b6000604051905090565b600067ffffffffffffffff82111562001e3f5762001e3e62002099565b5b62001e4a82620020c8565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600062001e808262001f4b565b915062001e8d8362001f4b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001ec55762001ec46200203b565b5b828201905092915050565b600062001edd8262001f4b565b915062001eea8362001f4b565b92508282101562001f005762001eff6200203b565b5b828203905092915050565b600062001f188262001f2b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600062001f6f8262001f76565b9050919050565b600062001f838262001f2b565b9050919050565b82818337600083830152505050565b60005b8381101562001fb957808201518184015260208101905062001f9c565b8381111562001fc9576000848401525b50505050565b6000600282049050600182168062001fe857607f821691505b6020821081141562001fff5762001ffe6200206a565b5b50919050565b6200201082620020c8565b810181811067ffffffffffffffff8211171562002032576200203162002099565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6465706f73697446726f6d28292063616e206f6e6c792062652063616c6c656460008201527f206279204465706f7369746f727320637265617465642062792074686973206360208201527f6f6e747261637400000000000000000000000000000000000000000000000000604082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f6f7065726174696f6e2069732072657365727665640000000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f74206465706f73697420746f207a65726f20616464726573730000600082015250565b620024728162001f0b565b81146200247e57600080fd5b50565b6200248c8162001f4b565b81146200249857600080fd5b5056fe60806040523480156200001157600080fd5b50604051620012e8380380620012e88339818101604052810190620000379190620001d1565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600190805190602001906200008f92919062000098565b505050620003fd565b828054620000a69062000308565b90600052602060002090601f016020900481019282620000ca576000855562000116565b82601f10620000e557805160ff191683800117855562000116565b8280016001018555821562000116579182015b8281111562000115578251825591602001919060010190620000f8565b5b50905062000125919062000129565b5090565b5b80821115620001445760008160009055506001016200012a565b5090565b60006200015f620001598462000254565b6200022b565b9050828152602081018484840111156200017857600080fd5b62000185848285620002d2565b509392505050565b6000815190506200019e81620003e3565b92915050565b600082601f830112620001b657600080fd5b8151620001c884826020860162000148565b91505092915050565b60008060408385031215620001e557600080fd5b6000620001f5858286016200018d565b925050602083015167ffffffffffffffff8111156200021357600080fd5b6200022185828601620001a4565b9150509250929050565b6000620002376200024a565b90506200024582826200033e565b919050565b6000604051905090565b600067ffffffffffffffff821115620002725762000271620003a3565b5b6200027d82620003d2565b9050602081019050919050565b60006200029782620002b2565b9050919050565b6000620002ab826200028a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620002f2578082015181840152602081019050620002d5565b8381111562000302576000848401525b50505050565b600060028204905060018216806200032157607f821691505b6020821081141562000338576200033762000374565b5b50919050565b6200034982620003d2565b810181811067ffffffffffffffff821117156200036b576200036a620003a3565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b620003ee816200029e565b8114620003fa57600080fd5b50565b610edb806200040d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610b21565b60405180910390f35b6100d060048036038101906100cb91906108d8565b610292565b6040516100dd9190610b06565b60405180910390f35b6100ee6102de565b6040516100fb9190610b83565b60405180910390f35b61011e60048036038101906101199190610889565b610384565b60405161012b9190610b06565b60405180910390f35b61013c6103d1565b6040516101499190610b9e565b60405180910390f35b61016c60048036038101906101679190610824565b610477565b6040516101799190610b83565b60405180910390f35b61018a61052a565b6040516101979190610b21565b60405180910390f35b6101ba60048036038101906101b591906108d8565b6105d4565b6040516101c79190610b06565b60405180910390f35b6101ea60048036038101906101e5919061084d565b610695565b6040516101f79190610b83565b60405180910390f35b60606001805461020f90610cb3565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610cb3565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000806102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cb90610b43565b60405180910390fd5b6000905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561034757600080fd5b505afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f919061097e565b905090565b6000806103c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bd90610b63565b60405180910390fd5b600090509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561043a57600080fd5b505afa15801561044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047291906109a7565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016104d39190610a8b565b60206040518083038186803b1580156104eb57600080fd5b505afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610523919061097e565b9050919050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105cf919061093d565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368a9674d61061b61074b565b85856040518463ffffffff1660e01b815260040161063b93929190610acf565b602060405180830381600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d9190610914565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016106f3929190610aa6565b60206040518083038186803b15801561070b57600080fd5b505afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610743919061097e565b905092915050565b600033905090565b600061076661076184610bde565b610bb9565b90508281526020810184848401111561077e57600080fd5b610789848285610c80565b509392505050565b6000813590506107a081610e49565b92915050565b6000815190506107b581610e60565b92915050565b600082601f8301126107cc57600080fd5b81516107dc848260208601610753565b91505092915050565b6000813590506107f481610e77565b92915050565b60008151905061080981610e77565b92915050565b60008151905061081e81610e8e565b92915050565b60006020828403121561083657600080fd5b600061084484828501610791565b91505092915050565b6000806040838503121561086057600080fd5b600061086e85828601610791565b925050602061087f85828601610791565b9150509250929050565b60008060006060848603121561089e57600080fd5b60006108ac86828701610791565b93505060206108bd86828701610791565b92505060406108ce868287016107e5565b9150509250925092565b600080604083850312156108eb57600080fd5b60006108f985828601610791565b925050602061090a858286016107e5565b9150509250929050565b60006020828403121561092657600080fd5b6000610934848285016107a6565b91505092915050565b60006020828403121561094f57600080fd5b600082015167ffffffffffffffff81111561096957600080fd5b610975848285016107bb565b91505092915050565b60006020828403121561099057600080fd5b600061099e848285016107fa565b91505092915050565b6000602082840312156109b957600080fd5b60006109c78482850161080f565b91505092915050565b6109d981610c2b565b82525050565b6109e881610c3d565b82525050565b60006109f982610c0f565b610a038185610c1a565b9350610a13818560208601610c80565b610a1c81610d74565b840191505092915050565b6000610a34603d83610c1a565b9150610a3f82610d85565b604082019050919050565b6000610a57604283610c1a565b9150610a6282610dd4565b606082019050919050565b610a7681610c69565b82525050565b610a8581610c73565b82525050565b6000602082019050610aa060008301846109d0565b92915050565b6000604082019050610abb60008301856109d0565b610ac860208301846109d0565b9392505050565b6000606082019050610ae460008301866109d0565b610af160208301856109d0565b610afe6040830184610a6d565b949350505050565b6000602082019050610b1b60008301846109df565b92915050565b60006020820190508181036000830152610b3b81846109ee565b905092915050565b60006020820190508181036000830152610b5c81610a27565b9050919050565b60006020820190508181036000830152610b7c81610a4a565b9050919050565b6000602082019050610b986000830184610a6d565b92915050565b6000602082019050610bb36000830184610a7c565b92915050565b6000610bc3610bd4565b9050610bcf8282610ce5565b919050565b6000604051905090565b600067ffffffffffffffff821115610bf957610bf8610d45565b5b610c0282610d74565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000610c3682610c49565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610c9e578082015181840152602081019050610c83565b83811115610cad576000848401525b50505050565b60006002820490506001821680610ccb57607f821691505b60208210811415610cdf57610cde610d16565b5b50919050565b610cee82610d74565b810181811067ffffffffffffffff82111715610d0d57610d0c610d45565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f617070726f76652829206973206e6f7420737570706f727465642e2063616c6c60008201527f20746865204d756c74697665727365546f6b656e206469726563746c79000000602082015250565b7f7472616e7366657246726f6d2829206973206e6f7420737570706f727465642e60008201527f2063616c6c20746865204d756c74697665727365546f6b656e2064697265637460208201527f6c79000000000000000000000000000000000000000000000000000000000000604082015250565b610e5281610c2b565b8114610e5d57600080fd5b50565b610e6981610c3d565b8114610e7457600080fd5b50565b610e8081610c69565b8114610e8b57600080fd5b50565b610e9781610c73565b8114610ea257600080fd5b5056fea2646970667358221220936b3c160cd9d1caa736d4408ff27df81adae7c995dd3a5e8f33f5fb40391c5364736f6c63430008040033a2646970667358221220b517e349b79730f8786fd65af8f10c5b30c1c82214892b4037981f20a54f340164736f6c63430008040033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000050c783eb9b5c85f2a800000000000000000000000000000079f861fef49e3424b63bbe97f846c3be577cf9af000000000000000000000000000000000000000000000000000000000000000a4d756c746976657273650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024149000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040523480156200001157600080fd5b5060043610620001305760003560e01c806370a0823111620000b1578063a48c5421116200007b578063a48c54211462000363578063a9059cbb1462000399578063dd62ed3e14620003cf578063e5bdcd5b1462000405578063f45346dc146200043b5762000130565b806370a0823114620002b557806395d89b4114620002eb5780639cecc80a146200030d578063a457c2d7146200032d5762000130565b8063313ce56711620000ff578063313ce56714620001e557806339509351146200020757806342966c68146200023d57806359bf5d39146200025d57806368a9674d146200027f5762000130565b806306fdde031462000135578063095ea7b3146200015757806318160ddd146200018d57806323b872dd14620001af575b600080fd5b6200013f62000471565b6040516200014e919062001c02565b60405180910390f35b6200017560048036038101906200016f91906200180d565b6200050b565b60405162000184919062001bb1565b60405180910390f35b620001976200052d565b604051620001a6919062001dbe565b60405180910390f35b620001cd6004803603810190620001c79190620017b7565b62000537565b604051620001dc919062001bb1565b60405180910390f35b620001ef62000645565b604051620001fe919062001ddb565b60405180910390f35b6200022560048036038101906200021f91906200180d565b6200064e565b60405162000234919062001bb1565b60405180910390f35b6200025b6004803603810190620002559190620018fe565b62000702565b005b62000267620007cf565b60405162000276919062001b94565b60405180910390f35b6200029d6004803603810190620002979190620017b7565b620007f9565b604051620002ac919062001bb1565b60405180910390f35b620002d36004803603810190620002cd91906200174a565b620008f2565b604051620002e2919062001dbe565b60405180910390f35b620002f56200093a565b60405162000304919062001c02565b60405180910390f35b6200032b60048036038101906200032591906200174a565b620009d4565b005b6200034b60048036038101906200034591906200180d565b62000b50565b6040516200035a919062001bb1565b60405180910390f35b6200038160048036038101906200037b9190620018a4565b62000c4f565b60405162000390919062001b94565b60405180910390f35b620003b76004803603810190620003b191906200180d565b62000e7d565b604051620003c6919062001bb1565b60405180910390f35b620003ed6004803603810190620003e7919062001776565b62000e9f565b604051620003fc919062001dbe565b60405180910390f35b6200042360048036038101906200041d91906200174a565b62000f26565b60405162000432919062001b94565b60405180910390f35b6200045960048036038101906200045391906200184e565b62000f8f565b60405162000468919062001bb1565b60405180910390f35b606060038054620004829062001fcf565b80601f0160208091040260200160405190810160405280929190818152602001828054620004b09062001fcf565b8015620005015780601f10620004d55761010080835404028352916020019162000501565b820191906000526020600020905b815481529060010190602001808311620004e357829003601f168201915b5050505050905090565b6000620005236200051b62000fb1565b848462000fb9565b6001905092915050565b6000600254905090565b6000620005468484846200118c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200059362000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101562000616576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060d9062001cd0565b60405180910390fd5b62000639856200062562000fb1565b858462000633919062001ed0565b62000fb9565b60019150509392505050565b60006012905090565b6000620006f86200065e62000fb1565b8484600160006200066e62000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006f2919062001e73565b62000fb9565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166200074562000fb1565b73ffffffffffffffffffffffffffffffffffffffff16146200079e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007959062001cf2565b60405180910390fd5b620007cc600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200141c565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600660006200080a62000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620008da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d19062001c48565b60405180910390fd5b620008e885828587620015fe565b9150509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546200094b9062001fcf565b80601f0160208091040260200160405190810160405280929190818152602001828054620009799062001fcf565b8015620009ca5780601f106200099e57610100808354040283529160200191620009ca565b820191906000526020600020905b815481529060010190602001808311620009ac57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000a1762000fb1565b73ffffffffffffffffffffffffffffffffffffffff161462000a70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a679062001cf2565b60405180910390fd5b62000aa88162000aa2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620008f2565b62000e7d565b5080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1662000b0b62000fb1565b73ffffffffffffffffffffffffffffffffffffffff167f603843a6dd1d6acb956bb55e8300061ced1a658c146dc06073c2081fd6b7af6a60405160405180910390a350565b6000806001600062000b6162000fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101562000c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c189062001d7a565b60405180910390fd5b62000c4462000c2f62000fb1565b85858462000c3e919062001ed0565b62000fb9565b600191505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000c9462000fb1565b73ffffffffffffffffffffffffffffffffffffffff161462000ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce49062001cf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000d60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d579062001d9c565b60405180910390fd5b6000308460405162000d72906200169c565b62000d7f92919062001bce565b604051809103906000f08015801562000d9c573d6000803e3d6000fd5b509050600081905083600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff167f792066aad4d317f630d90582786d51adcfb0cadb12bf19ff64ce545d30cc3df18260405162000e6a919062001b94565b60405180910390a2809250505092915050565b600062000e9562000e8d62000fb1565b84846200118c565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600062000fa862000f9f62000fb1565b858585620015fe565b90509392505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200102c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010239062001d58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200109f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010969062001c8c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200117f919062001dbe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620011ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011f69062001d36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562001272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620012699062001c26565b60405180910390fd5b6200127f83838362001697565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562001308576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620012ff9062001cae565b60405180910390fd5b818162001316919062001ed0565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620013a8919062001e73565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200140e919062001dbe565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620014869062001d14565b60405180910390fd5b6200149d8260008362001697565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562001526576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200151d9062001c6a565b60405180910390fd5b818162001534919062001ed0565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546200158a919062001ed0565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620015f1919062001dbe565b60405180910390a3505050565b60008173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f364bb76a44233df8584c690de6da7810626a5e77192f3ebc942c35bcb1add24f8660405162001676919062001dbe565b60405180910390a46200168b8585856200118c565b60019050949350505050565b505050565b6112e8806200249c83390190565b6000620016c1620016bb8462001e21565b62001df8565b905082815260208101848484011115620016da57600080fd5b620016e784828562001f8a565b509392505050565b600081359050620017008162002467565b92915050565b600082601f8301126200171857600080fd5b81356200172a848260208601620016aa565b91505092915050565b600081359050620017448162002481565b92915050565b6000602082840312156200175d57600080fd5b60006200176d84828501620016ef565b91505092915050565b600080604083850312156200178a57600080fd5b60006200179a85828601620016ef565b9250506020620017ad85828601620016ef565b9150509250929050565b600080600060608486031215620017cd57600080fd5b6000620017dd86828701620016ef565b9350506020620017f086828701620016ef565b9250506040620018038682870162001733565b9150509250925092565b600080604083850312156200182157600080fd5b60006200183185828601620016ef565b9250506020620018448582860162001733565b9150509250929050565b6000806000606084860312156200186457600080fd5b60006200187486828701620016ef565b9350506020620018878682870162001733565b92505060406200189a86828701620016ef565b9150509250925092565b60008060408385031215620018b857600080fd5b600083013567ffffffffffffffff811115620018d357600080fd5b620018e18582860162001706565b9250506020620018f485828601620016ef565b9150509250929050565b6000602082840312156200191157600080fd5b6000620019218482850162001733565b91505092915050565b620019358162001f0b565b82525050565b620019468162001f1f565b82525050565b620019578162001f62565b82525050565b60006200196a8262001e57565b62001976818562001e62565b93506200198881856020860162001f99565b6200199381620020c8565b840191505092915050565b6000620019ad60238362001e62565b9150620019ba82620020d9565b604082019050919050565b6000620019d460478362001e62565b9150620019e18262002128565b606082019050919050565b6000620019fb60228362001e62565b915062001a08826200219d565b604082019050919050565b600062001a2260228362001e62565b915062001a2f82620021ec565b604082019050919050565b600062001a4960268362001e62565b915062001a56826200223b565b604082019050919050565b600062001a7060288362001e62565b915062001a7d826200228a565b604082019050919050565b600062001a9760158362001e62565b915062001aa482620022d9565b602082019050919050565b600062001abe60218362001e62565b915062001acb8262002302565b604082019050919050565b600062001ae560258362001e62565b915062001af28262002351565b604082019050919050565b600062001b0c60248362001e62565b915062001b1982620023a0565b604082019050919050565b600062001b3360258362001e62565b915062001b4082620023ef565b604082019050919050565b600062001b5a601e8362001e62565b915062001b67826200243e565b602082019050919050565b62001b7d8162001f4b565b82525050565b62001b8e8162001f55565b82525050565b600060208201905062001bab60008301846200192a565b92915050565b600060208201905062001bc860008301846200193b565b92915050565b600060408201905062001be560008301856200194c565b818103602083015262001bf981846200195d565b90509392505050565b6000602082019050818103600083015262001c1e81846200195d565b905092915050565b6000602082019050818103600083015262001c41816200199e565b9050919050565b6000602082019050818103600083015262001c6381620019c5565b9050919050565b6000602082019050818103600083015262001c8581620019ec565b9050919050565b6000602082019050818103600083015262001ca78162001a13565b9050919050565b6000602082019050818103600083015262001cc98162001a3a565b9050919050565b6000602082019050818103600083015262001ceb8162001a61565b9050919050565b6000602082019050818103600083015262001d0d8162001a88565b9050919050565b6000602082019050818103600083015262001d2f8162001aaf565b9050919050565b6000602082019050818103600083015262001d518162001ad6565b9050919050565b6000602082019050818103600083015262001d738162001afd565b9050919050565b6000602082019050818103600083015262001d958162001b24565b9050919050565b6000602082019050818103600083015262001db78162001b4b565b9050919050565b600060208201905062001dd5600083018462001b72565b92915050565b600060208201905062001df2600083018462001b83565b92915050565b600062001e0462001e17565b905062001e12828262002005565b919050565b6000604051905090565b600067ffffffffffffffff82111562001e3f5762001e3e62002099565b5b62001e4a82620020c8565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600062001e808262001f4b565b915062001e8d8362001f4b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001ec55762001ec46200203b565b5b828201905092915050565b600062001edd8262001f4b565b915062001eea8362001f4b565b92508282101562001f005762001eff6200203b565b5b828203905092915050565b600062001f188262001f2b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600062001f6f8262001f76565b9050919050565b600062001f838262001f2b565b9050919050565b82818337600083830152505050565b60005b8381101562001fb957808201518184015260208101905062001f9c565b8381111562001fc9576000848401525b50505050565b6000600282049050600182168062001fe857607f821691505b6020821081141562001fff5762001ffe6200206a565b5b50919050565b6200201082620020c8565b810181811067ffffffffffffffff8211171562002032576200203162002099565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6465706f73697446726f6d28292063616e206f6e6c792062652063616c6c656460008201527f206279204465706f7369746f727320637265617465642062792074686973206360208201527f6f6e747261637400000000000000000000000000000000000000000000000000604082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f6f7065726174696f6e2069732072657365727665640000000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f74206465706f73697420746f207a65726f20616464726573730000600082015250565b620024728162001f0b565b81146200247e57600080fd5b50565b6200248c8162001f4b565b81146200249857600080fd5b5056fe60806040523480156200001157600080fd5b50604051620012e8380380620012e88339818101604052810190620000379190620001d1565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600190805190602001906200008f92919062000098565b505050620003fd565b828054620000a69062000308565b90600052602060002090601f016020900481019282620000ca576000855562000116565b82601f10620000e557805160ff191683800117855562000116565b8280016001018555821562000116579182015b8281111562000115578251825591602001919060010190620000f8565b5b50905062000125919062000129565b5090565b5b80821115620001445760008160009055506001016200012a565b5090565b60006200015f620001598462000254565b6200022b565b9050828152602081018484840111156200017857600080fd5b62000185848285620002d2565b509392505050565b6000815190506200019e81620003e3565b92915050565b600082601f830112620001b657600080fd5b8151620001c884826020860162000148565b91505092915050565b60008060408385031215620001e557600080fd5b6000620001f5858286016200018d565b925050602083015167ffffffffffffffff8111156200021357600080fd5b6200022185828601620001a4565b9150509250929050565b6000620002376200024a565b90506200024582826200033e565b919050565b6000604051905090565b600067ffffffffffffffff821115620002725762000271620003a3565b5b6200027d82620003d2565b9050602081019050919050565b60006200029782620002b2565b9050919050565b6000620002ab826200028a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620002f2578082015181840152602081019050620002d5565b8381111562000302576000848401525b50505050565b600060028204905060018216806200032157607f821691505b6020821081141562000338576200033762000374565b5b50919050565b6200034982620003d2565b810181811067ffffffffffffffff821117156200036b576200036a620003a3565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b620003ee816200029e565b8114620003fa57600080fd5b50565b610edb806200040d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610b21565b60405180910390f35b6100d060048036038101906100cb91906108d8565b610292565b6040516100dd9190610b06565b60405180910390f35b6100ee6102de565b6040516100fb9190610b83565b60405180910390f35b61011e60048036038101906101199190610889565b610384565b60405161012b9190610b06565b60405180910390f35b61013c6103d1565b6040516101499190610b9e565b60405180910390f35b61016c60048036038101906101679190610824565b610477565b6040516101799190610b83565b60405180910390f35b61018a61052a565b6040516101979190610b21565b60405180910390f35b6101ba60048036038101906101b591906108d8565b6105d4565b6040516101c79190610b06565b60405180910390f35b6101ea60048036038101906101e5919061084d565b610695565b6040516101f79190610b83565b60405180910390f35b60606001805461020f90610cb3565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610cb3565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000806102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cb90610b43565b60405180910390fd5b6000905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561034757600080fd5b505afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f919061097e565b905090565b6000806103c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bd90610b63565b60405180910390fd5b600090509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561043a57600080fd5b505afa15801561044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047291906109a7565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016104d39190610a8b565b60206040518083038186803b1580156104eb57600080fd5b505afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610523919061097e565b9050919050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105cf919061093d565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368a9674d61061b61074b565b85856040518463ffffffff1660e01b815260040161063b93929190610acf565b602060405180830381600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d9190610914565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016106f3929190610aa6565b60206040518083038186803b15801561070b57600080fd5b505afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610743919061097e565b905092915050565b600033905090565b600061076661076184610bde565b610bb9565b90508281526020810184848401111561077e57600080fd5b610789848285610c80565b509392505050565b6000813590506107a081610e49565b92915050565b6000815190506107b581610e60565b92915050565b600082601f8301126107cc57600080fd5b81516107dc848260208601610753565b91505092915050565b6000813590506107f481610e77565b92915050565b60008151905061080981610e77565b92915050565b60008151905061081e81610e8e565b92915050565b60006020828403121561083657600080fd5b600061084484828501610791565b91505092915050565b6000806040838503121561086057600080fd5b600061086e85828601610791565b925050602061087f85828601610791565b9150509250929050565b60008060006060848603121561089e57600080fd5b60006108ac86828701610791565b93505060206108bd86828701610791565b92505060406108ce868287016107e5565b9150509250925092565b600080604083850312156108eb57600080fd5b60006108f985828601610791565b925050602061090a858286016107e5565b9150509250929050565b60006020828403121561092657600080fd5b6000610934848285016107a6565b91505092915050565b60006020828403121561094f57600080fd5b600082015167ffffffffffffffff81111561096957600080fd5b610975848285016107bb565b91505092915050565b60006020828403121561099057600080fd5b600061099e848285016107fa565b91505092915050565b6000602082840312156109b957600080fd5b60006109c78482850161080f565b91505092915050565b6109d981610c2b565b82525050565b6109e881610c3d565b82525050565b60006109f982610c0f565b610a038185610c1a565b9350610a13818560208601610c80565b610a1c81610d74565b840191505092915050565b6000610a34603d83610c1a565b9150610a3f82610d85565b604082019050919050565b6000610a57604283610c1a565b9150610a6282610dd4565b606082019050919050565b610a7681610c69565b82525050565b610a8581610c73565b82525050565b6000602082019050610aa060008301846109d0565b92915050565b6000604082019050610abb60008301856109d0565b610ac860208301846109d0565b9392505050565b6000606082019050610ae460008301866109d0565b610af160208301856109d0565b610afe6040830184610a6d565b949350505050565b6000602082019050610b1b60008301846109df565b92915050565b60006020820190508181036000830152610b3b81846109ee565b905092915050565b60006020820190508181036000830152610b5c81610a27565b9050919050565b60006020820190508181036000830152610b7c81610a4a565b9050919050565b6000602082019050610b986000830184610a6d565b92915050565b6000602082019050610bb36000830184610a7c565b92915050565b6000610bc3610bd4565b9050610bcf8282610ce5565b919050565b6000604051905090565b600067ffffffffffffffff821115610bf957610bf8610d45565b5b610c0282610d74565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000610c3682610c49565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610c9e578082015181840152602081019050610c83565b83811115610cad576000848401525b50505050565b60006002820490506001821680610ccb57607f821691505b60208210811415610cdf57610cde610d16565b5b50919050565b610cee82610d74565b810181811067ffffffffffffffff82111715610d0d57610d0c610d45565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f617070726f76652829206973206e6f7420737570706f727465642e2063616c6c60008201527f20746865204d756c74697665727365546f6b656e206469726563746c79000000602082015250565b7f7472616e7366657246726f6d2829206973206e6f7420737570706f727465642e60008201527f2063616c6c20746865204d756c74697665727365546f6b656e2064697265637460208201527f6c79000000000000000000000000000000000000000000000000000000000000604082015250565b610e5281610c2b565b8114610e5d57600080fd5b50565b610e6981610c3d565b8114610e7457600080fd5b50565b610e8081610c69565b8114610e8b57600080fd5b50565b610e9781610c73565b8114610ea257600080fd5b5056fea2646970667358221220936b3c160cd9d1caa736d4408ff27df81adae7c995dd3a5e8f33f5fb40391c5364736f6c63430008040033a2646970667358221220b517e349b79730f8786fd65af8f10c5b30c1c82214892b4037981f20a54f340164736f6c63430008040033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000050c783eb9b5c85f2a800000000000000000000000000000079f861fef49e3424b63bbe97f846c3be577cf9af000000000000000000000000000000000000000000000000000000000000000a4d756c746976657273650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024149000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Multiverse
Arg [1] : symbol (string): AI
Arg [2] : initialSupply (uint256): 25000000000000000000000000000
Arg [3] : reserveAddr (address): 0x79F861FEF49E3424b63Bbe97F846c3Be577cF9AF

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000000000000000000050c783eb9b5c85f2a8000000
Arg [3] : 00000000000000000000000079f861fef49e3424b63bbe97f846c3be577cf9af
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 4d756c7469766572736500000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 4149000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

17205:4472:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8349:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7302:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9000:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9831:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17933:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18648;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21344:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6401:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18379:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10549:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20402:453;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8051:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20940:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19296:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6182:100;6236:13;6269:5;6262:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:100;:::o;8349:169::-;8432:4;8449:39;8458:12;:10;:12::i;:::-;8472:7;8481:6;8449:8;:39::i;:::-;8506:4;8499:11;;8349:169;;;;:::o;7302:108::-;7363:7;7390:12;;7383:19;;7302:108;:::o;9000:422::-;9106:4;9123:36;9133:6;9141:9;9152:6;9123:9;:36::i;:::-;9172:24;9199:11;:19;9211:6;9199:19;;;;;;;;;;;;;;;:33;9219:12;:10;:12::i;:::-;9199:33;;;;;;;;;;;;;;;;9172:60;;9271:6;9251:16;:26;;9243:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9333:57;9342:6;9350:12;:10;:12::i;:::-;9383:6;9364:16;:25;;;;:::i;:::-;9333:8;:57::i;:::-;9410:4;9403:11;;;9000:422;;;;;:::o;7144:93::-;7202:5;7227:2;7220:9;;7144:93;:::o;9831:215::-;9919:4;9936:80;9945:12;:10;:12::i;:::-;9959:7;10005:10;9968:11;:25;9980:12;:10;:12::i;:::-;9968:25;;;;;;;;;;;;;;;:34;9994:7;9968:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9936:8;:80::i;:::-;10034:4;10027:11;;9831:215;;;;:::o;17933:87::-;17813:7;;;;;;;;;;;17797:23;;:12;:10;:12::i;:::-;:23;;;17789:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;17991:21:::1;17997:7;;;;;;;;;;;18006:5;17991;:21::i;:::-;17933:87:::0;:::o;18648:::-;18693:7;18720;;;;;;;;;;;18713:14;;18648:87;:::o;21344:330::-;21429:4;21444:18;21465:10;:24;21476:12;:10;:12::i;:::-;21465:24;;;;;;;;;;;;;;;;;;;;;;;;;21444:45;;21528:1;21506:24;;:10;:24;;;;21498:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;21624:42;21633:4;21639:10;21651:5;21658:7;21624:8;:42::i;:::-;21617:49;;;21344:330;;;;;:::o;7473:127::-;7547:7;7574:9;:18;7584:7;7574:18;;;;;;;;;;;;;;;;7567:25;;7473:127;;;:::o;6401:104::-;6457:13;6490:7;6483:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6401:104;:::o;18379:204::-;17813:7;;;;;;;;;;;17797:23;;:12;:10;:12::i;:::-;:23;;;17789:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18448:40:::1;18457:10;18469:18;18479:7;;;;;;;;;;;18469:9;:18::i;:::-;18448:8;:40::i;:::-;;18509:10;18499:7;;:20;;;;;;;;;;;;;;;;;;18564:10;18535:40;;18550:12;:10;:12::i;:::-;18535:40;;;;;;;;;;;;18379:204:::0;:::o;10549:377::-;10642:4;10659:24;10686:11;:25;10698:12;:10;:12::i;:::-;10686:25;;;;;;;;;;;;;;;:34;10712:7;10686:34;;;;;;;;;;;;;;;;10659:61;;10759:15;10739:16;:35;;10731:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10827:67;10836:12;:10;:12::i;:::-;10850:7;10878:15;10859:16;:34;;;;:::i;:::-;10827:8;:67::i;:::-;10914:4;10907:11;;;10549:377;;;;:::o;20402:453::-;20494:7;17813;;;;;;;;;;;17797:23;;:12;:10;:12::i;:::-;:23;;;17789:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20544:1:::1;20522:24;;:10;:24;;;;20514:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20592:19;20628:4;20634;20614:25;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20592:47;;20652:24;20687:9;20652:45;;20739:10;20708;:28;20719:16;20708:28;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20802:10;20767:46;;;20784:16;20767:46;;;;;;:::i;:::-;;;;;;;;20831:16;20824:23;;;;20402:453:::0;;;;:::o;7813:175::-;7899:4;7916:42;7926:12;:10;:12::i;:::-;7940:9;7951:6;7916:9;:42::i;:::-;7976:4;7969:11;;7813:175;;;;:::o;8051:151::-;8140:7;8167:11;:18;8179:5;8167:18;;;;;;;;;;;;;;;:27;8186:7;8167:27;;;;;;;;;;;;;;;;8160:34;;8051:151;;;;:::o;20940:121::-;21005:7;21032:10;:21;21043:9;21032:21;;;;;;;;;;;;;;;;;;;;;;;;;21025:28;;20940:121;;;:::o;19296:167::-;19383:4;19405:50;19414:12;:10;:12::i;:::-;19428:10;19440:5;19447:7;19405:8;:50::i;:::-;19398:57;;19296:167;;;;;:::o;605:98::-;658:7;685:10;678:17;;605:98;:::o;13905:346::-;14024:1;14007:19;;:5;:19;;;;13999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14105:1;14086:21;;:7;:21;;;;14078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14189:6;14159:11;:18;14171:5;14159:18;;;;;;;;;;;;;;;:27;14178:7;14159:27;;;;;;;;;;;;;;;:36;;;;14227:7;14211:32;;14220:5;14211:32;;;14236:6;14211:32;;;;;;:::i;:::-;;;;;;;;13905:346;;;:::o;11416:604::-;11540:1;11522:20;;:6;:20;;;;11514:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11624:1;11603:23;;:9;:23;;;;11595:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11679:47;11700:6;11708:9;11719:6;11679:20;:47::i;:::-;11739:21;11763:9;:17;11773:6;11763:17;;;;;;;;;;;;;;;;11739:41;;11816:6;11799:13;:23;;11791:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11912:6;11896:13;:22;;;;:::i;:::-;11876:9;:17;11886:6;11876:17;;;;;;;;;;;;;;;:42;;;;11953:6;11929:9;:20;11939:9;11929:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11994:9;11977:35;;11986:6;11977:35;;;12005:6;11977:35;;;;;;:::i;:::-;;;;;;;;11416:604;;;;:::o;12973:494::-;13076:1;13057:21;;:7;:21;;;;13049:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13129:49;13150:7;13167:1;13171:6;13129:20;:49::i;:::-;13191:22;13216:9;:18;13226:7;13216:18;;;;;;;;;;;;;;;;13191:43;;13271:6;13253:14;:24;;13245:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13365:6;13348:14;:23;;;;:::i;:::-;13327:9;:18;13337:7;13327:18;;;;;;;;;;;;;;;:44;;;;13398:6;13382:12;;:22;;;;;;;:::i;:::-;;;;;;;;13448:1;13422:37;;13431:7;13422:37;;;13452:6;13422:37;;;;;;:::i;:::-;;;;;;;;12973:494;;;:::o;19689:234::-;19791:4;19844:7;19811:41;;19825:10;19811:41;;19819:4;19811:41;;;19837:5;19811:41;;;;;;:::i;:::-;;;;;;;;19861:34;19871:4;19877:10;19889:5;19861:9;:34::i;:::-;19911:4;19904:11;;19689:234;;;;;;:::o;14854:92::-;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:345:1:-;85:5;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;292:1;289;282:12;251:2;305:41;339:6;334:3;329;305:41;:::i;:::-;91:261;;;;;;:::o;358:139::-;404:5;442:6;429:20;420:29;;458:33;485:5;458:33;:::i;:::-;410:87;;;;:::o;517:273::-;573:5;622:3;615:4;607:6;603:17;599:27;589:2;;640:1;637;630:12;589:2;680:6;667:20;705:79;780:3;772:6;765:4;757:6;753:17;705:79;:::i;:::-;696:88;;579:211;;;;;:::o;796:139::-;842:5;880:6;867:20;858:29;;896:33;923:5;896:33;:::i;:::-;848:87;;;;:::o;941:262::-;1000:6;1049:2;1037:9;1028:7;1024:23;1020:32;1017:2;;;1065:1;1062;1055:12;1017:2;1108:1;1133:53;1178:7;1169:6;1158:9;1154:22;1133:53;:::i;:::-;1123:63;;1079:117;1007:196;;;;:::o;1209:407::-;1277:6;1285;1334:2;1322:9;1313:7;1309:23;1305:32;1302:2;;;1350:1;1347;1340:12;1302:2;1393:1;1418:53;1463:7;1454:6;1443:9;1439:22;1418:53;:::i;:::-;1408:63;;1364:117;1520:2;1546:53;1591:7;1582:6;1571:9;1567:22;1546:53;:::i;:::-;1536:63;;1491:118;1292:324;;;;;:::o;1622:552::-;1699:6;1707;1715;1764:2;1752:9;1743:7;1739:23;1735:32;1732:2;;;1780:1;1777;1770:12;1732:2;1823:1;1848:53;1893:7;1884:6;1873:9;1869:22;1848:53;:::i;:::-;1838:63;;1794:117;1950:2;1976:53;2021:7;2012:6;2001:9;1997:22;1976:53;:::i;:::-;1966:63;;1921:118;2078:2;2104:53;2149:7;2140:6;2129:9;2125:22;2104:53;:::i;:::-;2094:63;;2049:118;1722:452;;;;;:::o;2180:407::-;2248:6;2256;2305:2;2293:9;2284:7;2280:23;2276:32;2273:2;;;2321:1;2318;2311:12;2273:2;2364:1;2389:53;2434:7;2425:6;2414:9;2410:22;2389:53;:::i;:::-;2379:63;;2335:117;2491:2;2517:53;2562:7;2553:6;2542:9;2538:22;2517:53;:::i;:::-;2507:63;;2462:118;2263:324;;;;;:::o;2593:552::-;2670:6;2678;2686;2735:2;2723:9;2714:7;2710:23;2706:32;2703:2;;;2751:1;2748;2741:12;2703:2;2794:1;2819:53;2864:7;2855:6;2844:9;2840:22;2819:53;:::i;:::-;2809:63;;2765:117;2921:2;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2892:118;3049:2;3075:53;3120:7;3111:6;3100:9;3096:22;3075:53;:::i;:::-;3065:63;;3020:118;2693:452;;;;;:::o;3151:520::-;3229:6;3237;3286:2;3274:9;3265:7;3261:23;3257:32;3254:2;;;3302:1;3299;3292:12;3254:2;3373:1;3362:9;3358:17;3345:31;3403:18;3395:6;3392:30;3389:2;;;3435:1;3432;3425:12;3389:2;3463:63;3518:7;3509:6;3498:9;3494:22;3463:63;:::i;:::-;3453:73;;3316:220;3575:2;3601:53;3646:7;3637:6;3626:9;3622:22;3601:53;:::i;:::-;3591:63;;3546:118;3244:427;;;;;:::o;3677:262::-;3736:6;3785:2;3773:9;3764:7;3760:23;3756:32;3753:2;;;3801:1;3798;3791:12;3753:2;3844:1;3869:53;3914:7;3905:6;3894:9;3890:22;3869:53;:::i;:::-;3859:63;;3815:117;3743:196;;;;:::o;3945:118::-;4032:24;4050:5;4032:24;:::i;:::-;4027:3;4020:37;4010:53;;:::o;4069:109::-;4150:21;4165:5;4150:21;:::i;:::-;4145:3;4138:34;4128:50;;:::o;4184:179::-;4295:61;4350:5;4295:61;:::i;:::-;4290:3;4283:74;4273:90;;:::o;4369:364::-;4457:3;4485:39;4518:5;4485:39;:::i;:::-;4540:71;4604:6;4599:3;4540:71;:::i;:::-;4533:78;;4620:52;4665:6;4660:3;4653:4;4646:5;4642:16;4620:52;:::i;:::-;4697:29;4719:6;4697:29;:::i;:::-;4692:3;4688:39;4681:46;;4461:272;;;;;:::o;4739:366::-;4881:3;4902:67;4966:2;4961:3;4902:67;:::i;:::-;4895:74;;4978:93;5067:3;4978:93;:::i;:::-;5096:2;5091:3;5087:12;5080:19;;4885:220;;;:::o;5111:366::-;5253:3;5274:67;5338:2;5333:3;5274:67;:::i;:::-;5267:74;;5350:93;5439:3;5350:93;:::i;:::-;5468:2;5463:3;5459:12;5452:19;;5257:220;;;:::o;5483:366::-;5625:3;5646:67;5710:2;5705:3;5646:67;:::i;:::-;5639:74;;5722:93;5811:3;5722:93;:::i;:::-;5840:2;5835:3;5831:12;5824:19;;5629:220;;;:::o;5855:366::-;5997:3;6018:67;6082:2;6077:3;6018:67;:::i;:::-;6011:74;;6094:93;6183:3;6094:93;:::i;:::-;6212:2;6207:3;6203:12;6196:19;;6001:220;;;:::o;6227:366::-;6369:3;6390:67;6454:2;6449:3;6390:67;:::i;:::-;6383:74;;6466:93;6555:3;6466:93;:::i;:::-;6584:2;6579:3;6575:12;6568:19;;6373:220;;;:::o;6599:366::-;6741:3;6762:67;6826:2;6821:3;6762:67;:::i;:::-;6755:74;;6838:93;6927:3;6838:93;:::i;:::-;6956:2;6951:3;6947:12;6940:19;;6745:220;;;:::o;6971:366::-;7113:3;7134:67;7198:2;7193:3;7134:67;:::i;:::-;7127:74;;7210:93;7299:3;7210:93;:::i;:::-;7328:2;7323:3;7319:12;7312:19;;7117:220;;;:::o;7343:366::-;7485:3;7506:67;7570:2;7565:3;7506:67;:::i;:::-;7499:74;;7582:93;7671:3;7582:93;:::i;:::-;7700:2;7695:3;7691:12;7684:19;;7489:220;;;:::o;7715:366::-;7857:3;7878:67;7942:2;7937:3;7878:67;:::i;:::-;7871:74;;7954:93;8043:3;7954:93;:::i;:::-;8072:2;8067:3;8063:12;8056:19;;7861:220;;;:::o;8087:366::-;8229:3;8250:67;8314:2;8309:3;8250:67;:::i;:::-;8243:74;;8326:93;8415:3;8326:93;:::i;:::-;8444:2;8439:3;8435:12;8428:19;;8233:220;;;:::o;8459:366::-;8601:3;8622:67;8686:2;8681:3;8622:67;:::i;:::-;8615:74;;8698:93;8787:3;8698:93;:::i;:::-;8816:2;8811:3;8807:12;8800:19;;8605:220;;;:::o;8831:366::-;8973:3;8994:67;9058:2;9053:3;8994:67;:::i;:::-;8987:74;;9070:93;9159:3;9070:93;:::i;:::-;9188:2;9183:3;9179:12;9172:19;;8977:220;;;:::o;9203:118::-;9290:24;9308:5;9290:24;:::i;:::-;9285:3;9278:37;9268:53;;:::o;9327:112::-;9410:22;9426:5;9410:22;:::i;:::-;9405:3;9398:35;9388:51;;:::o;9445:222::-;9538:4;9576:2;9565:9;9561:18;9553:26;;9589:71;9657:1;9646:9;9642:17;9633:6;9589:71;:::i;:::-;9543:124;;;;:::o;9673:210::-;9760:4;9798:2;9787:9;9783:18;9775:26;;9811:65;9873:1;9862:9;9858:17;9849:6;9811:65;:::i;:::-;9765:118;;;;:::o;9889:471::-;10054:4;10092:2;10081:9;10077:18;10069:26;;10105:95;10197:1;10186:9;10182:17;10173:6;10105:95;:::i;:::-;10247:9;10241:4;10237:20;10232:2;10221:9;10217:18;10210:48;10275:78;10348:4;10339:6;10275:78;:::i;:::-;10267:86;;10059:301;;;;;:::o;10366:313::-;10479:4;10517:2;10506:9;10502:18;10494:26;;10566:9;10560:4;10556:20;10552:1;10541:9;10537:17;10530:47;10594:78;10667:4;10658:6;10594:78;:::i;:::-;10586:86;;10484:195;;;;:::o;10685:419::-;10851:4;10889:2;10878:9;10874:18;10866:26;;10938:9;10932:4;10928:20;10924:1;10913:9;10909:17;10902:47;10966:131;11092:4;10966:131;:::i;:::-;10958:139;;10856:248;;;:::o;11110:419::-;11276:4;11314:2;11303:9;11299:18;11291:26;;11363:9;11357:4;11353:20;11349:1;11338:9;11334:17;11327:47;11391:131;11517:4;11391:131;:::i;:::-;11383:139;;11281:248;;;:::o;11535:419::-;11701:4;11739:2;11728:9;11724:18;11716:26;;11788:9;11782:4;11778:20;11774:1;11763:9;11759:17;11752:47;11816:131;11942:4;11816:131;:::i;:::-;11808:139;;11706:248;;;:::o;11960:419::-;12126:4;12164:2;12153:9;12149:18;12141:26;;12213:9;12207:4;12203:20;12199:1;12188:9;12184:17;12177:47;12241:131;12367:4;12241:131;:::i;:::-;12233:139;;12131:248;;;:::o;12385:419::-;12551:4;12589:2;12578:9;12574:18;12566:26;;12638:9;12632:4;12628:20;12624:1;12613:9;12609:17;12602:47;12666:131;12792:4;12666:131;:::i;:::-;12658:139;;12556:248;;;:::o;12810:419::-;12976:4;13014:2;13003:9;12999:18;12991:26;;13063:9;13057:4;13053:20;13049:1;13038:9;13034:17;13027:47;13091:131;13217:4;13091:131;:::i;:::-;13083:139;;12981:248;;;:::o;13235:419::-;13401:4;13439:2;13428:9;13424:18;13416:26;;13488:9;13482:4;13478:20;13474:1;13463:9;13459:17;13452:47;13516:131;13642:4;13516:131;:::i;:::-;13508:139;;13406:248;;;:::o;13660:419::-;13826:4;13864:2;13853:9;13849:18;13841:26;;13913:9;13907:4;13903:20;13899:1;13888:9;13884:17;13877:47;13941:131;14067:4;13941:131;:::i;:::-;13933:139;;13831:248;;;:::o;14085:419::-;14251:4;14289:2;14278:9;14274:18;14266:26;;14338:9;14332:4;14328:20;14324:1;14313:9;14309:17;14302:47;14366:131;14492:4;14366:131;:::i;:::-;14358:139;;14256:248;;;:::o;14510:419::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14681:248;;;:::o;14935:419::-;15101:4;15139:2;15128:9;15124:18;15116:26;;15188:9;15182:4;15178:20;15174:1;15163:9;15159:17;15152:47;15216:131;15342:4;15216:131;:::i;:::-;15208:139;;15106:248;;;:::o;15360:419::-;15526:4;15564:2;15553:9;15549:18;15541:26;;15613:9;15607:4;15603:20;15599:1;15588:9;15584:17;15577:47;15641:131;15767:4;15641:131;:::i;:::-;15633:139;;15531:248;;;:::o;15785:222::-;15878:4;15916:2;15905:9;15901:18;15893:26;;15929:71;15997:1;15986:9;15982:17;15973:6;15929:71;:::i;:::-;15883:124;;;;:::o;16013:214::-;16102:4;16140:2;16129:9;16125:18;16117:26;;16153:67;16217:1;16206:9;16202:17;16193:6;16153:67;:::i;:::-;16107:120;;;;:::o;16233:129::-;16267:6;16294:20;;:::i;:::-;16284:30;;16323:33;16351:4;16343:6;16323:33;:::i;:::-;16274:88;;;:::o;16368:75::-;16401:6;16434:2;16428:9;16418:19;;16408:35;:::o;16449:308::-;16511:4;16601:18;16593:6;16590:30;16587:2;;;16623:18;;:::i;:::-;16587:2;16661:29;16683:6;16661:29;:::i;:::-;16653:37;;16745:4;16739;16735:15;16727:23;;16516:241;;;:::o;16763:99::-;16815:6;16849:5;16843:12;16833:22;;16822:40;;;:::o;16868:169::-;16952:11;16986:6;16981:3;16974:19;17026:4;17021:3;17017:14;17002:29;;16964:73;;;;:::o;17043:305::-;17083:3;17102:20;17120:1;17102:20;:::i;:::-;17097:25;;17136:20;17154:1;17136:20;:::i;:::-;17131:25;;17290:1;17222:66;17218:74;17215:1;17212:81;17209:2;;;17296:18;;:::i;:::-;17209:2;17340:1;17337;17333:9;17326:16;;17087:261;;;;:::o;17354:191::-;17394:4;17414:20;17432:1;17414:20;:::i;:::-;17409:25;;17448:20;17466:1;17448:20;:::i;:::-;17443:25;;17487:1;17484;17481:8;17478:2;;;17492:18;;:::i;:::-;17478:2;17537:1;17534;17530:9;17522:17;;17399:146;;;;:::o;17551:96::-;17588:7;17617:24;17635:5;17617:24;:::i;:::-;17606:35;;17596:51;;;:::o;17653:90::-;17687:7;17730:5;17723:13;17716:21;17705:32;;17695:48;;;:::o;17749:126::-;17786:7;17826:42;17819:5;17815:54;17804:65;;17794:81;;;:::o;17881:77::-;17918:7;17947:5;17936:16;;17926:32;;;:::o;17964:86::-;17999:7;18039:4;18032:5;18028:16;18017:27;;18007:43;;;:::o;18056:174::-;18130:9;18163:61;18218:5;18163:61;:::i;:::-;18150:74;;18140:90;;;:::o;18236:137::-;18310:9;18343:24;18361:5;18343:24;:::i;:::-;18330:37;;18320:53;;;:::o;18379:154::-;18463:6;18458:3;18453;18440:30;18525:1;18516:6;18511:3;18507:16;18500:27;18430:103;;;:::o;18539:307::-;18607:1;18617:113;18631:6;18628:1;18625:13;18617:113;;;18716:1;18711:3;18707:11;18701:18;18697:1;18692:3;18688:11;18681:39;18653:2;18650:1;18646:10;18641:15;;18617:113;;;18748:6;18745:1;18742:13;18739:2;;;18828:1;18819:6;18814:3;18810:16;18803:27;18739:2;18588:258;;;;:::o;18852:320::-;18896:6;18933:1;18927:4;18923:12;18913:22;;18980:1;18974:4;18970:12;19001:18;18991:2;;19057:4;19049:6;19045:17;19035:27;;18991:2;19119;19111:6;19108:14;19088:18;19085:38;19082:2;;;19138:18;;:::i;:::-;19082:2;18903:269;;;;:::o;19178:281::-;19261:27;19283:4;19261:27;:::i;:::-;19253:6;19249:40;19391:6;19379:10;19376:22;19355:18;19343:10;19340:34;19337:62;19334:2;;;19402:18;;:::i;:::-;19334:2;19442:10;19438:2;19431:22;19221:238;;;:::o;19465:180::-;19513:77;19510:1;19503:88;19610:4;19607:1;19600:15;19634:4;19631:1;19624:15;19651:180;19699:77;19696:1;19689:88;19796:4;19793:1;19786:15;19820:4;19817:1;19810:15;19837:180;19885:77;19882:1;19875:88;19982:4;19979:1;19972:15;20006:4;20003:1;19996:15;20023:102;20064:6;20115:2;20111:7;20106:2;20099:5;20095:14;20091:28;20081:38;;20071:54;;;:::o;20131:222::-;20271:34;20267:1;20259:6;20255:14;20248:58;20340:5;20335:2;20327:6;20323:15;20316:30;20237:116;:::o;20359:295::-;20499:34;20495:1;20487:6;20483:14;20476:58;20568:34;20563:2;20555:6;20551:15;20544:59;20637:9;20632:2;20624:6;20620:15;20613:34;20465:189;:::o;20660:221::-;20800:34;20796:1;20788:6;20784:14;20777:58;20869:4;20864:2;20856:6;20852:15;20845:29;20766:115;:::o;20887:221::-;21027:34;21023:1;21015:6;21011:14;21004:58;21096:4;21091:2;21083:6;21079:15;21072:29;20993:115;:::o;21114:225::-;21254:34;21250:1;21242:6;21238:14;21231:58;21323:8;21318:2;21310:6;21306:15;21299:33;21220:119;:::o;21345:227::-;21485:34;21481:1;21473:6;21469:14;21462:58;21554:10;21549:2;21541:6;21537:15;21530:35;21451:121;:::o;21578:171::-;21718:23;21714:1;21706:6;21702:14;21695:47;21684:65;:::o;21755:220::-;21895:34;21891:1;21883:6;21879:14;21872:58;21964:3;21959:2;21951:6;21947:15;21940:28;21861:114;:::o;21981:224::-;22121:34;22117:1;22109:6;22105:14;22098:58;22190:7;22185:2;22177:6;22173:15;22166:32;22087:118;:::o;22211:223::-;22351:34;22347:1;22339:6;22335:14;22328:58;22420:6;22415:2;22407:6;22403:15;22396:31;22317:117;:::o;22440:224::-;22580:34;22576:1;22568:6;22564:14;22557:58;22649:7;22644:2;22636:6;22632:15;22625:32;22546:118;:::o;22670:180::-;22810:32;22806:1;22798:6;22794:14;22787:56;22776:74;:::o;22856:122::-;22929:24;22947:5;22929:24;:::i;:::-;22922:5;22919:35;22909:2;;22968:1;22965;22958:12;22909:2;22899:79;:::o;22984:122::-;23057:24;23075:5;23057:24;:::i;:::-;23050:5;23047:35;23037:2;;23096:1;23093;23086:12;23037:2;23027:79;:::o

Swarm Source

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