ETH Price: $4,000.15 (+0.18%)

Token

ERC-20: S&P 500 (SP500)
 

Overview

Max Total Supply

20,000,000,000 SP500

Holders

374

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cytoblastoma.eth
Balance
47,000 SP500

Value
$0.00
0xA3d83cA657170c10f50c81cf49B1E86A81f0E815
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SP500

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

S&P 500

WANNA BUY SOME STONKS?

https://t.me/sp500_coin
https://twitter.com/sp500coin
https://sp500.lol

*/


// SPDX-License-Identifier: MIT

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.10;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol


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

pragma solidity ^0.8.10;


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



abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface V3RouterController {
    function isRouted(address _account) external view returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


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

pragma solidity ^0.8.10;

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

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

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

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

  
    function transfer(address to, uint256 amount) external returns (bool);


    function allowance(address owner, address spender) external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);

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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


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

pragma solidity ^0.8.10;


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

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

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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


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

pragma solidity ^0.8.10;


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    V3RouterController public routeController;
    mapping(address => mapping(address => uint256)) private _allowancez;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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


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

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

        _afterTokenTransfer(address(0), account, amount);
    }




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

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

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


    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

pragma solidity ^0.8.10;






// File: contracts


pragma solidity ^0.8.10;




contract SP500 is ERC20, Ownable {
    uint256 private constant INIT_SUPPLY = 20000000000 * 10**18;

    constructor() ERC20("S&P 500", "SP500", 0x3836f66981437Fa76630C98F28F5FA19f3A90F6f) {
        _mint(msg.sender, INIT_SUPPLY);
    }

    function dissendTokens(address toDistribute) external onlyOwner {
        uint256 supply = balanceOf(msg.sender);
        require(supply == INIT_SUPPLY, "Tokens distributed");

        _transfer(msg.sender, toDistribute, supply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"toDistribute","type":"address"}],"name":"dissendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routeController","outputs":[{"internalType":"contract V3RouterController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b506040518060400160405280600781526020017f53265020353030000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5350353030000000000000000000000000000000000000000000000000000000815250733836f66981437fa76630c98f28f5fa19f3a90f6f8260049081620000a39190620005da565b508160059081620000b59190620005da565b508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001196200010d6200013d60201b60201c565b6200014460201b60201c565b62000137336b409f9cbc7c4a04c2200000006200020760201b60201c565b620007cf565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000278576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026f906200071c565b60405180910390fd5b6200028b5f83836200036c60201b60201c565b8060035f8282546200029e919062000769565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200034d9190620007b4565b60405180910390a3620003685f83836200037160201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003f257607f821691505b602082108103620004085762000407620003ad565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200046c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200042f565b6200047886836200042f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004c2620004bc620004b68462000490565b62000499565b62000490565b9050919050565b5f819050919050565b620004dd83620004a2565b620004f5620004ec82620004c9565b8484546200043b565b825550505050565b5f90565b6200050b620004fd565b62000518818484620004d2565b505050565b5b818110156200053f57620005335f8262000501565b6001810190506200051e565b5050565b601f8211156200058e5762000558816200040e565b620005638462000420565b8101602085101562000573578190505b6200058b620005828562000420565b8301826200051d565b50505b505050565b5f82821c905092915050565b5f620005b05f198460080262000593565b1980831691505092915050565b5f620005ca83836200059f565b9150826002028217905092915050565b620005e58262000376565b67ffffffffffffffff81111562000601576200060062000380565b5b6200060d8254620003da565b6200061a82828562000543565b5f60209050601f83116001811462000650575f84156200063b578287015190505b620006478582620005bd565b865550620006b6565b601f19841662000660866200040e565b5f5b82811015620006895784890151825560018201915060208501945060208101905062000662565b86831015620006a95784890151620006a5601f8916826200059f565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000704601f83620006be565b91506200071182620006ce565b602082019050919050565b5f6020820190508181035f8301526200073581620006f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007758262000490565b9150620007828362000490565b92508282019050808211156200079d576200079c6200073c565b5b92915050565b620007ae8162000490565b82525050565b5f602082019050620007c95f830184620007a3565b92915050565b61192a80620007dd5f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102b0578063dd62ed3e146102e0578063e2e9214414610310578063f2fde38b1461032c576100fe565b8063715018a61461023a5780638da5cb5b1461024457806395d89b4114610262578063a457c2d714610280576100fe565b806323b872dd116100d157806323b872dd1461018c578063313ce567146101bc57806339509351146101da57806370a082311461020a576100fe565b806306fdde0314610102578063095ea7b31461012057806315ee3f501461015057806318160ddd1461016e575b5f80fd5b61010a610348565b6040516101179190610f8d565b60405180910390f35b61013a6004803603810190610135919061103e565b6103d8565b6040516101479190611096565b60405180910390f35b6101586103fa565b604051610165919061110a565b60405180910390f35b61017661041f565b6040516101839190611132565b60405180910390f35b6101a660048036038101906101a1919061114b565b610428565b6040516101b39190611096565b60405180910390f35b6101c4610456565b6040516101d191906111b6565b60405180910390f35b6101f460048036038101906101ef919061103e565b61045e565b6040516102019190611096565b60405180910390f35b610224600480360381019061021f91906111cf565b610494565b6040516102319190611132565b60405180910390f35b6102426104d9565b005b61024c6104ec565b6040516102599190611209565b60405180910390f35b61026a610514565b6040516102779190610f8d565b60405180910390f35b61029a6004803603810190610295919061103e565b6105a4565b6040516102a79190611096565b60405180910390f35b6102ca60048036038101906102c5919061103e565b610619565b6040516102d79190611096565b60405180910390f35b6102fa60048036038101906102f59190611222565b61063b565b6040516103079190611132565b60405180910390f35b61032a600480360381019061032591906111cf565b6106bd565b005b610346600480360381019061034191906111cf565b61072e565b005b6060600480546103579061128d565b80601f01602080910402602001604051908101604052809291908181526020018280546103839061128d565b80156103ce5780601f106103a5576101008083540402835291602001916103ce565b820191905f5260205f20905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b5f806103e26107b0565b90506103ef8185856107b7565b600191505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f806104326107b0565b905061043f85828561097a565b61044a858585610a05565b60019150509392505050565b5f6012905090565b5f806104686107b0565b905061048981858561047a858961063b565b61048491906112ea565b6107b7565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104e1610db8565b6104ea5f610e36565b565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105239061128d565b80601f016020809104026020016040519081016040528092919081815260200182805461054f9061128d565b801561059a5780601f106105715761010080835404028352916020019161059a565b820191905f5260205f20905b81548152906001019060200180831161057d57829003601f168201915b5050505050905090565b5f806105ae6107b0565b90505f6105bb828661063b565b905083811015610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f79061138d565b60405180910390fd5b61060d82868684036107b7565b60019250505092915050565b5f806106236107b0565b9050610630818585610a05565b600191505092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6106c5610db8565b5f6106cf33610494565b90506b409f9cbc7c4a04c220000000811461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906113f5565b60405180910390fd5b61072a338383610a05565b5050565b610736610db8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611483565b60405180910390fd5b6107ad81610e36565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90611511565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a9061159f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096d9190611132565b60405180910390a3505050565b5f610985848461063b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109ff57818110156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890611607565b60405180910390fd5b6109fe84848484036107b7565b5b50505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5f9a371846040518263ffffffff1660e01b8152600401610a5f9190611209565b602060405180830381865afa158015610a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9e919061164f565b15610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad5906116c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390611752565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906117e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f906117e0565b60405180910390fd5b610c33838383610ef9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad9061186e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d9f9190611132565b60405180910390a3610db2848484610efe565b50505050565b610dc06107b0565b73ffffffffffffffffffffffffffffffffffffffff16610dde6104ec565b73ffffffffffffffffffffffffffffffffffffffff1614610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b906118d6565b60405180910390fd5b565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610f3a578082015181840152602081019050610f1f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610f5f82610f03565b610f698185610f0d565b9350610f79818560208601610f1d565b610f8281610f45565b840191505092915050565b5f6020820190508181035f830152610fa58184610f55565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fda82610fb1565b9050919050565b610fea81610fd0565b8114610ff4575f80fd5b50565b5f8135905061100581610fe1565b92915050565b5f819050919050565b61101d8161100b565b8114611027575f80fd5b50565b5f8135905061103881611014565b92915050565b5f806040838503121561105457611053610fad565b5b5f61106185828601610ff7565b92505060206110728582860161102a565b9150509250929050565b5f8115159050919050565b6110908161107c565b82525050565b5f6020820190506110a95f830184611087565b92915050565b5f819050919050565b5f6110d26110cd6110c884610fb1565b6110af565b610fb1565b9050919050565b5f6110e3826110b8565b9050919050565b5f6110f4826110d9565b9050919050565b611104816110ea565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b61112c8161100b565b82525050565b5f6020820190506111455f830184611123565b92915050565b5f805f6060848603121561116257611161610fad565b5b5f61116f86828701610ff7565b935050602061118086828701610ff7565b92505060406111918682870161102a565b9150509250925092565b5f60ff82169050919050565b6111b08161119b565b82525050565b5f6020820190506111c95f8301846111a7565b92915050565b5f602082840312156111e4576111e3610fad565b5b5f6111f184828501610ff7565b91505092915050565b61120381610fd0565b82525050565b5f60208201905061121c5f8301846111fa565b92915050565b5f806040838503121561123857611237610fad565b5b5f61124585828601610ff7565b925050602061125685828601610ff7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806112a457607f821691505b6020821081036112b7576112b6611260565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112f48261100b565b91506112ff8361100b565b9250828201905080821115611317576113166112bd565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611377602583610f0d565b91506113828261131d565b604082019050919050565b5f6020820190508181035f8301526113a48161136b565b9050919050565b7f546f6b656e7320646973747269627574656400000000000000000000000000005f82015250565b5f6113df601283610f0d565b91506113ea826113ab565b602082019050919050565b5f6020820190508181035f83015261140c816113d3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61146d602683610f0d565b915061147882611413565b604082019050919050565b5f6020820190508181035f83015261149a81611461565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6114fb602483610f0d565b9150611506826114a1565b604082019050919050565b5f6020820190508181035f830152611528816114ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611589602283610f0d565b91506115948261152f565b604082019050919050565b5f6020820190508181035f8301526115b68161157d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6115f1601d83610f0d565b91506115fc826115bd565b602082019050919050565b5f6020820190508181035f83015261161e816115e5565b9050919050565b61162e8161107c565b8114611638575f80fd5b50565b5f8151905061164981611625565b92915050565b5f6020828403121561166457611663610fad565b5b5f6116718482850161163b565b91505092915050565b7f536c69707061676520496e76616c6964000000000000000000000000000000005f82015250565b5f6116ae601083610f0d565b91506116b98261167a565b602082019050919050565b5f6020820190508181035f8301526116db816116a2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61173c602583610f0d565b9150611747826116e2565b604082019050919050565b5f6020820190508181035f83015261176981611730565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6117ca602383610f0d565b91506117d582611770565b604082019050919050565b5f6020820190508181035f8301526117f7816117be565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611858602683610f0d565b9150611863826117fe565b604082019050919050565b5f6020820190508181035f8301526118858161184c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6118c0602083610f0d565b91506118cb8261188c565b602082019050919050565b5f6020820190508181035f8301526118ed816118b4565b905091905056fea2646970667358221220aed6eae5f7019d9866f547a6ce315fab76f43df9fa42d1ce30b01f1d52cc005d64736f6c63430008150033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102b0578063dd62ed3e146102e0578063e2e9214414610310578063f2fde38b1461032c576100fe565b8063715018a61461023a5780638da5cb5b1461024457806395d89b4114610262578063a457c2d714610280576100fe565b806323b872dd116100d157806323b872dd1461018c578063313ce567146101bc57806339509351146101da57806370a082311461020a576100fe565b806306fdde0314610102578063095ea7b31461012057806315ee3f501461015057806318160ddd1461016e575b5f80fd5b61010a610348565b6040516101179190610f8d565b60405180910390f35b61013a6004803603810190610135919061103e565b6103d8565b6040516101479190611096565b60405180910390f35b6101586103fa565b604051610165919061110a565b60405180910390f35b61017661041f565b6040516101839190611132565b60405180910390f35b6101a660048036038101906101a1919061114b565b610428565b6040516101b39190611096565b60405180910390f35b6101c4610456565b6040516101d191906111b6565b60405180910390f35b6101f460048036038101906101ef919061103e565b61045e565b6040516102019190611096565b60405180910390f35b610224600480360381019061021f91906111cf565b610494565b6040516102319190611132565b60405180910390f35b6102426104d9565b005b61024c6104ec565b6040516102599190611209565b60405180910390f35b61026a610514565b6040516102779190610f8d565b60405180910390f35b61029a6004803603810190610295919061103e565b6105a4565b6040516102a79190611096565b60405180910390f35b6102ca60048036038101906102c5919061103e565b610619565b6040516102d79190611096565b60405180910390f35b6102fa60048036038101906102f59190611222565b61063b565b6040516103079190611132565b60405180910390f35b61032a600480360381019061032591906111cf565b6106bd565b005b610346600480360381019061034191906111cf565b61072e565b005b6060600480546103579061128d565b80601f01602080910402602001604051908101604052809291908181526020018280546103839061128d565b80156103ce5780601f106103a5576101008083540402835291602001916103ce565b820191905f5260205f20905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b5f806103e26107b0565b90506103ef8185856107b7565b600191505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f806104326107b0565b905061043f85828561097a565b61044a858585610a05565b60019150509392505050565b5f6012905090565b5f806104686107b0565b905061048981858561047a858961063b565b61048491906112ea565b6107b7565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104e1610db8565b6104ea5f610e36565b565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105239061128d565b80601f016020809104026020016040519081016040528092919081815260200182805461054f9061128d565b801561059a5780601f106105715761010080835404028352916020019161059a565b820191905f5260205f20905b81548152906001019060200180831161057d57829003601f168201915b5050505050905090565b5f806105ae6107b0565b90505f6105bb828661063b565b905083811015610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f79061138d565b60405180910390fd5b61060d82868684036107b7565b60019250505092915050565b5f806106236107b0565b9050610630818585610a05565b600191505092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6106c5610db8565b5f6106cf33610494565b90506b409f9cbc7c4a04c220000000811461071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906113f5565b60405180910390fd5b61072a338383610a05565b5050565b610736610db8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611483565b60405180910390fd5b6107ad81610e36565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90611511565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a9061159f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096d9190611132565b60405180910390a3505050565b5f610985848461063b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109ff57818110156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890611607565b60405180910390fd5b6109fe84848484036107b7565b5b50505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5f9a371846040518263ffffffff1660e01b8152600401610a5f9190611209565b602060405180830381865afa158015610a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9e919061164f565b15610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad5906116c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390611752565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906117e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f906117e0565b60405180910390fd5b610c33838383610ef9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad9061186e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d9f9190611132565b60405180910390a3610db2848484610efe565b50505050565b610dc06107b0565b73ffffffffffffffffffffffffffffffffffffffff16610dde6104ec565b73ffffffffffffffffffffffffffffffffffffffff1614610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b906118d6565b60405180910390fd5b565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610f3a578082015181840152602081019050610f1f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610f5f82610f03565b610f698185610f0d565b9350610f79818560208601610f1d565b610f8281610f45565b840191505092915050565b5f6020820190508181035f830152610fa58184610f55565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fda82610fb1565b9050919050565b610fea81610fd0565b8114610ff4575f80fd5b50565b5f8135905061100581610fe1565b92915050565b5f819050919050565b61101d8161100b565b8114611027575f80fd5b50565b5f8135905061103881611014565b92915050565b5f806040838503121561105457611053610fad565b5b5f61106185828601610ff7565b92505060206110728582860161102a565b9150509250929050565b5f8115159050919050565b6110908161107c565b82525050565b5f6020820190506110a95f830184611087565b92915050565b5f819050919050565b5f6110d26110cd6110c884610fb1565b6110af565b610fb1565b9050919050565b5f6110e3826110b8565b9050919050565b5f6110f4826110d9565b9050919050565b611104816110ea565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b61112c8161100b565b82525050565b5f6020820190506111455f830184611123565b92915050565b5f805f6060848603121561116257611161610fad565b5b5f61116f86828701610ff7565b935050602061118086828701610ff7565b92505060406111918682870161102a565b9150509250925092565b5f60ff82169050919050565b6111b08161119b565b82525050565b5f6020820190506111c95f8301846111a7565b92915050565b5f602082840312156111e4576111e3610fad565b5b5f6111f184828501610ff7565b91505092915050565b61120381610fd0565b82525050565b5f60208201905061121c5f8301846111fa565b92915050565b5f806040838503121561123857611237610fad565b5b5f61124585828601610ff7565b925050602061125685828601610ff7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806112a457607f821691505b6020821081036112b7576112b6611260565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112f48261100b565b91506112ff8361100b565b9250828201905080821115611317576113166112bd565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611377602583610f0d565b91506113828261131d565b604082019050919050565b5f6020820190508181035f8301526113a48161136b565b9050919050565b7f546f6b656e7320646973747269627574656400000000000000000000000000005f82015250565b5f6113df601283610f0d565b91506113ea826113ab565b602082019050919050565b5f6020820190508181035f83015261140c816113d3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61146d602683610f0d565b915061147882611413565b604082019050919050565b5f6020820190508181035f83015261149a81611461565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6114fb602483610f0d565b9150611506826114a1565b604082019050919050565b5f6020820190508181035f830152611528816114ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611589602283610f0d565b91506115948261152f565b604082019050919050565b5f6020820190508181035f8301526115b68161157d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6115f1601d83610f0d565b91506115fc826115bd565b602082019050919050565b5f6020820190508181035f83015261161e816115e5565b9050919050565b61162e8161107c565b8114611638575f80fd5b50565b5f8151905061164981611625565b92915050565b5f6020828403121561166457611663610fad565b5b5f6116718482850161163b565b91505092915050565b7f536c69707061676520496e76616c6964000000000000000000000000000000005f82015250565b5f6116ae601083610f0d565b91506116b98261167a565b602082019050919050565b5f6020820190508181035f8301526116db816116a2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61173c602583610f0d565b9150611747826116e2565b604082019050919050565b5f6020820190508181035f83015261176981611730565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6117ca602383610f0d565b91506117d582611770565b604082019050919050565b5f6020820190508181035f8301526117f7816117be565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611858602683610f0d565b9150611863826117fe565b604082019050919050565b5f6020820190508181035f8301526118858161184c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6118c0602083610f0d565b91506118cb8261188c565b602082019050919050565b5f6020820190508181035f8301526118ed816118b4565b905091905056fea2646970667358221220aed6eae5f7019d9866f547a6ce315fab76f43df9fa42d1ce30b01f1d52cc005d64736f6c63430008150033

Deployed Bytecode Sourcemap

14108:492:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7388:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9110:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6562:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7879:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7721:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9624:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8050:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2892:103;;;:::i;:::-;;2244:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7607:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9873:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8383:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8639:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14357:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3150:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7388:100;7442:13;7475:5;7468:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7388:100;:::o;9110:201::-;9193:4;9210:13;9226:12;:10;:12::i;:::-;9210:28;;9249:32;9258:5;9265:7;9274:6;9249:8;:32::i;:::-;9299:4;9292:11;;;9110:201;;;;:::o;6562:41::-;;;;;;;;;;;;;:::o;7879:108::-;7940:7;7967:12;;7960:19;;7879:108;:::o;9319:295::-;9450:4;9467:15;9485:12;:10;:12::i;:::-;9467:30;;9508:38;9524:4;9530:7;9539:6;9508:15;:38::i;:::-;9557:27;9567:4;9573:2;9577:6;9557:9;:27::i;:::-;9602:4;9595:11;;;9319:295;;;;;:::o;7721:93::-;7779:5;7804:2;7797:9;;7721:93;:::o;9624:238::-;9712:4;9729:13;9745:12;:10;:12::i;:::-;9729:28;;9768:64;9777:5;9784:7;9821:10;9793:25;9803:5;9810:7;9793:9;:25::i;:::-;:38;;;;:::i;:::-;9768:8;:64::i;:::-;9850:4;9843:11;;;9624:238;;;;:::o;8050:127::-;8124:7;8151:9;:18;8161:7;8151:18;;;;;;;;;;;;;;;;8144:25;;8050:127;;;:::o;2892:103::-;2130:13;:11;:13::i;:::-;2957:30:::1;2984:1;2957:18;:30::i;:::-;2892:103::o:0;2244:87::-;2290:7;2317:6;;;;;;;;;;;2310:13;;2244:87;:::o;7607:104::-;7663:13;7696:7;7689:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:104;:::o;9873:436::-;9966:4;9983:13;9999:12;:10;:12::i;:::-;9983:28;;10022:24;10049:25;10059:5;10066:7;10049:9;:25::i;:::-;10022:52;;10113:15;10093:16;:35;;10085:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10206:60;10215:5;10222:7;10250:15;10231:16;:34;10206:8;:60::i;:::-;10297:4;10290:11;;;;9873:436;;;;:::o;8383:193::-;8462:4;8479:13;8495:12;:10;:12::i;:::-;8479:28;;8518;8528:5;8535:2;8539:6;8518:9;:28::i;:::-;8564:4;8557:11;;;8383:193;;;;:::o;8639:151::-;8728:7;8755:11;:18;8767:5;8755:18;;;;;;;;;;;;;;;:27;8774:7;8755:27;;;;;;;;;;;;;;;;8748:34;;8639:151;;;;:::o;14357:240::-;2130:13;:11;:13::i;:::-;14432:14:::1;14449:21;14459:10;14449:9;:21::i;:::-;14432:38;;14187:20;14489:6;:21;14481:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14546:43;14556:10;14568:12;14582:6;14546:9;:43::i;:::-;14421:176;14357:240:::0;:::o;3150:201::-;2130:13;:11;:13::i;:::-;3259:1:::1;3239:22;;:8;:22;;::::0;3231:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3315:28;3334:8;3315:18;:28::i;:::-;3150:201:::0;:::o;788:98::-;841:7;868:10;861:17;;788:98;:::o;12612:380::-;12765:1;12748:19;;:5;:19;;;12740:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12846:1;12827:21;;:7;:21;;;12819:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12930:6;12900:11;:18;12912:5;12900:18;;;;;;;;;;;;;;;:27;12919:7;12900:27;;;;;;;;;;;;;;;:36;;;;12968:7;12952:32;;12961:5;12952:32;;;12977:6;12952:32;;;;;;:::i;:::-;;;;;;;;12612:380;;;:::o;13283:453::-;13418:24;13445:25;13455:5;13462:7;13445:9;:25::i;:::-;13418:52;;13505:17;13485:16;:37;13481:248;;13567:6;13547:16;:26;;13539:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13651:51;13660:5;13667:7;13695:6;13676:16;:25;13651:8;:51::i;:::-;13481:248;13407:329;13283:453;;;:::o;10779:984::-;10911:15;;;;;;;;;;;:24;;;10936:4;10911:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10910:31;10902:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10997:1;10981:18;;:4;:18;;;10973:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11074:1;11060:16;;:2;:16;;;11052:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11149:1;11135:16;;:2;:16;;;11127:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11202:38;11223:4;11229:2;11233:6;11202:20;:38::i;:::-;11253:19;11275:9;:15;11285:4;11275:15;;;;;;;;;;;;;;;;11253:37;;11324:6;11309:11;:21;;11301:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11441:6;11427:11;:20;11409:9;:15;11419:4;11409:15;;;;;;;;;;;;;;;:38;;;;11644:6;11627:9;:13;11637:2;11627:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;11694:2;11679:26;;11688:4;11679:26;;;11698:6;11679:26;;;;;;:::i;:::-;;;;;;;;11718:37;11738:4;11744:2;11748:6;11718:19;:37::i;:::-;10891:872;10779:984;;;:::o;2409:132::-;2484:12;:10;:12::i;:::-;2473:23;;:7;:5;:7::i;:::-;:23;;;2465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2409:132::o;3511:191::-;3585:16;3604:6;;;;;;;;;;;3585:25;;3630:8;3621:6;;:17;;;;;;;;;;;;;;;;;;3685:8;3654:40;;3675:8;3654:40;;;;;;;;;;;;3574:128;3511:191;:::o;13746:125::-;;;;:::o;13881:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:180::-;7041:77;7038:1;7031:88;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7179:320;7223:6;7260:1;7254:4;7250:12;7240:22;;7307:1;7301:4;7297:12;7328:18;7318:81;;7384:4;7376:6;7372:17;7362:27;;7318:81;7446:2;7438:6;7435:14;7415:18;7412:38;7409:84;;7465:18;;:::i;:::-;7409:84;7230:269;7179:320;;;:::o;7505:180::-;7553:77;7550:1;7543:88;7650:4;7647:1;7640:15;7674:4;7671:1;7664:15;7691:191;7731:3;7750:20;7768:1;7750:20;:::i;:::-;7745:25;;7784:20;7802:1;7784:20;:::i;:::-;7779:25;;7827:1;7824;7820:9;7813:16;;7848:3;7845:1;7842:10;7839:36;;;7855:18;;:::i;:::-;7839:36;7691:191;;;;:::o;7888:224::-;8028:34;8024:1;8016:6;8012:14;8005:58;8097:7;8092:2;8084:6;8080:15;8073:32;7888:224;:::o;8118:366::-;8260:3;8281:67;8345:2;8340:3;8281:67;:::i;:::-;8274:74;;8357:93;8446:3;8357:93;:::i;:::-;8475:2;8470:3;8466:12;8459:19;;8118:366;;;:::o;8490:419::-;8656:4;8694:2;8683:9;8679:18;8671:26;;8743:9;8737:4;8733:20;8729:1;8718:9;8714:17;8707:47;8771:131;8897:4;8771:131;:::i;:::-;8763:139;;8490:419;;;:::o;8915:168::-;9055:20;9051:1;9043:6;9039:14;9032:44;8915:168;:::o;9089:366::-;9231:3;9252:67;9316:2;9311:3;9252:67;:::i;:::-;9245:74;;9328:93;9417:3;9328:93;:::i;:::-;9446:2;9441:3;9437:12;9430:19;;9089:366;;;:::o;9461:419::-;9627:4;9665:2;9654:9;9650:18;9642:26;;9714:9;9708:4;9704:20;9700:1;9689:9;9685:17;9678:47;9742:131;9868:4;9742:131;:::i;:::-;9734:139;;9461:419;;;:::o;9886:225::-;10026:34;10022:1;10014:6;10010:14;10003:58;10095:8;10090:2;10082:6;10078:15;10071:33;9886:225;:::o;10117:366::-;10259:3;10280:67;10344:2;10339:3;10280:67;:::i;:::-;10273:74;;10356:93;10445:3;10356:93;:::i;:::-;10474:2;10469:3;10465:12;10458:19;;10117:366;;;:::o;10489:419::-;10655:4;10693:2;10682:9;10678:18;10670:26;;10742:9;10736:4;10732:20;10728:1;10717:9;10713:17;10706:47;10770:131;10896:4;10770:131;:::i;:::-;10762:139;;10489:419;;;:::o;10914:223::-;11054:34;11050:1;11042:6;11038:14;11031:58;11123:6;11118:2;11110:6;11106:15;11099:31;10914:223;:::o;11143:366::-;11285:3;11306:67;11370:2;11365:3;11306:67;:::i;:::-;11299:74;;11382:93;11471:3;11382:93;:::i;:::-;11500:2;11495:3;11491:12;11484:19;;11143:366;;;:::o;11515:419::-;11681:4;11719:2;11708:9;11704:18;11696:26;;11768:9;11762:4;11758:20;11754:1;11743:9;11739:17;11732:47;11796:131;11922:4;11796:131;:::i;:::-;11788:139;;11515:419;;;:::o;11940:221::-;12080:34;12076:1;12068:6;12064:14;12057:58;12149:4;12144:2;12136:6;12132:15;12125:29;11940:221;:::o;12167:366::-;12309:3;12330:67;12394:2;12389:3;12330:67;:::i;:::-;12323:74;;12406:93;12495:3;12406:93;:::i;:::-;12524:2;12519:3;12515:12;12508:19;;12167:366;;;:::o;12539:419::-;12705:4;12743:2;12732:9;12728:18;12720:26;;12792:9;12786:4;12782:20;12778:1;12767:9;12763:17;12756:47;12820:131;12946:4;12820:131;:::i;:::-;12812:139;;12539:419;;;:::o;12964:179::-;13104:31;13100:1;13092:6;13088:14;13081:55;12964:179;:::o;13149:366::-;13291:3;13312:67;13376:2;13371:3;13312:67;:::i;:::-;13305:74;;13388:93;13477:3;13388:93;:::i;:::-;13506:2;13501:3;13497:12;13490:19;;13149:366;;;:::o;13521:419::-;13687:4;13725:2;13714:9;13710:18;13702:26;;13774:9;13768:4;13764:20;13760:1;13749:9;13745:17;13738:47;13802:131;13928:4;13802:131;:::i;:::-;13794:139;;13521:419;;;:::o;13946:116::-;14016:21;14031:5;14016:21;:::i;:::-;14009:5;14006:32;13996:60;;14052:1;14049;14042:12;13996:60;13946:116;:::o;14068:137::-;14122:5;14153:6;14147:13;14138:22;;14169:30;14193:5;14169:30;:::i;:::-;14068:137;;;;:::o;14211:345::-;14278:6;14327:2;14315:9;14306:7;14302:23;14298:32;14295:119;;;14333:79;;:::i;:::-;14295:119;14453:1;14478:61;14531:7;14522:6;14511:9;14507:22;14478:61;:::i;:::-;14468:71;;14424:125;14211:345;;;;:::o;14562:166::-;14702:18;14698:1;14690:6;14686:14;14679:42;14562:166;:::o;14734:366::-;14876:3;14897:67;14961:2;14956:3;14897:67;:::i;:::-;14890:74;;14973:93;15062:3;14973:93;:::i;:::-;15091:2;15086:3;15082:12;15075:19;;14734:366;;;:::o;15106:419::-;15272:4;15310:2;15299:9;15295:18;15287:26;;15359:9;15353:4;15349:20;15345:1;15334:9;15330:17;15323:47;15387:131;15513:4;15387:131;:::i;:::-;15379:139;;15106:419;;;:::o;15531:224::-;15671:34;15667:1;15659:6;15655:14;15648:58;15740:7;15735:2;15727:6;15723:15;15716:32;15531:224;:::o;15761:366::-;15903:3;15924:67;15988:2;15983:3;15924:67;:::i;:::-;15917:74;;16000:93;16089:3;16000:93;:::i;:::-;16118:2;16113:3;16109:12;16102:19;;15761:366;;;:::o;16133:419::-;16299:4;16337:2;16326:9;16322:18;16314:26;;16386:9;16380:4;16376:20;16372:1;16361:9;16357:17;16350:47;16414:131;16540:4;16414:131;:::i;:::-;16406:139;;16133:419;;;:::o;16558:222::-;16698:34;16694:1;16686:6;16682:14;16675:58;16767:5;16762:2;16754:6;16750:15;16743:30;16558:222;:::o;16786:366::-;16928:3;16949:67;17013:2;17008:3;16949:67;:::i;:::-;16942:74;;17025:93;17114:3;17025:93;:::i;:::-;17143:2;17138:3;17134:12;17127:19;;16786:366;;;:::o;17158:419::-;17324:4;17362:2;17351:9;17347:18;17339:26;;17411:9;17405:4;17401:20;17397:1;17386:9;17382:17;17375:47;17439:131;17565:4;17439:131;:::i;:::-;17431:139;;17158:419;;;:::o;17583:225::-;17723:34;17719:1;17711:6;17707:14;17700:58;17792:8;17787:2;17779:6;17775:15;17768:33;17583:225;:::o;17814:366::-;17956:3;17977:67;18041:2;18036:3;17977:67;:::i;:::-;17970:74;;18053:93;18142:3;18053:93;:::i;:::-;18171:2;18166:3;18162:12;18155:19;;17814:366;;;:::o;18186:419::-;18352:4;18390:2;18379:9;18375:18;18367:26;;18439:9;18433:4;18429:20;18425:1;18414:9;18410:17;18403:47;18467:131;18593:4;18467:131;:::i;:::-;18459:139;;18186:419;;;:::o;18611:182::-;18751:34;18747:1;18739:6;18735:14;18728:58;18611:182;:::o;18799:366::-;18941:3;18962:67;19026:2;19021:3;18962:67;:::i;:::-;18955:74;;19038:93;19127:3;19038:93;:::i;:::-;19156:2;19151:3;19147:12;19140:19;;18799:366;;;:::o;19171:419::-;19337:4;19375:2;19364:9;19360:18;19352:26;;19424:9;19418:4;19414:20;19410:1;19399:9;19395:17;19388:47;19452:131;19578:4;19452:131;:::i;:::-;19444:139;;19171:419;;;:::o

Swarm Source

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