POL Price: $0.690212 (-2.67%)
 

Overview

Max Total Supply

7,884,288,274.126870215052474871 IDA

Holders

2,684

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
OpenSea: OPENSTORE Token
Balance
10.8 IDA

Value
$0.00
0x2953399124f0cbb46d2cbacd8a89cf0599974963
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
IdaMurni

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
byzantium EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-08-13
*/

// SPDX-License-Identifier: MIT

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _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");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract IdaMurni is ERC20 {
    using SafeMath for uint256;
    uint TAX_FEE = 5;
    uint BURN_FEE = 5;
    address public owner;
    
    mapping (address => bool) excludedFromTax;
    constructor(uint256 initialSupply) ERC20("IdaMurni", "IDA") {
        _mint(msg.sender, initialSupply);
        owner = msg.sender;
        excludedFromTax[msg.sender] = true;
    }
    
    function transfer(address recipient, uint256 amount) public override returns(bool){
        if(excludedFromTax[msg.sender]) {
            _transfer(_msgSender(), recipient, amount);
        } else {
            uint burnAmount = amount.mul(BURN_FEE) / 100;
            uint adminAmount = amount.mul(TAX_FEE) / 100;
            _burn(_msgSender(), burnAmount);
            _transfer(_msgSender(), owner, adminAmount);
            _transfer(_msgSender(), recipient, amount.sub(burnAmount).sub(adminAmount));
        }
        
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526005805560056006553480156200001a57600080fd5b5060405162001ede38038062001ede8339818101604052810190620000409190620003f7565b6040518060400160405280600881526020017f4964614d75726e690000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49444100000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000c492919062000330565b508060049080519060200190620000dd92919062000330565b505050620000fb33826200019b640100000000026401000000009004565b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620005db565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200020e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002059062000476565b60405180910390fd5b6200022b6000838362000326640100000000026401000000009004565b80600260008282546200023f9190620004c6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002969190620004c6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002fd919062000498565b60405180910390a362000322600083836200032b640100000000026401000000009004565b5050565b505050565b505050565b8280546200033e906200052d565b90600052602060002090601f016020900481019282620003625760008555620003ae565b82601f106200037d57805160ff1916838001178555620003ae565b82800160010185558215620003ae579182015b82811115620003ad57825182559160200191906001019062000390565b5b509050620003bd9190620003c1565b5090565b5b80821115620003dc576000816000905550600101620003c2565b5090565b600081519050620003f181620005c1565b92915050565b6000602082840312156200040a57600080fd5b60006200041a84828501620003e0565b91505092915050565b600062000432601f83620004b5565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620004708162000523565b82525050565b60006020820190508181036000830152620004918162000423565b9050919050565b6000602082019050620004af600083018462000465565b92915050565b600082825260208201905092915050565b6000620004d38262000523565b9150620004e08362000523565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000518576200051762000563565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200054657607f821691505b602082108114156200055d576200055c62000592565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b620005cc8162000523565b8114620005d857600080fd5b50565b6118f380620005eb6000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161008e57806370a08231146101c05780638da5cb5b146101f057806395d89b411461020e578063a457c2d71461022c578063a9059cbb1461025c578063dd62ed3e1461028c576100d1565b806306fdde03146100d6578063095ea7b3146100f457806318160ddd1461012457806323b872dd14610142578063313ce567146101725780633950935114610190575b600080fd5b6100de6102bc565b6040516100eb919061148e565b60405180910390f35b61010e60048036038101906101099190611011565b61034e565b60405161011b9190611473565b60405180910390f35b61012c61036c565b60405161013991906115d0565b60405180910390f35b61015c60048036038101906101579190610fc2565b610376565b6040516101699190611473565b60405180910390f35b61017a61046e565b60405161018791906115eb565b60405180910390f35b6101aa60048036038101906101a59190611011565b610477565b6040516101b79190611473565b60405180910390f35b6101da60048036038101906101d59190610f5d565b610523565b6040516101e791906115d0565b60405180910390f35b6101f861056b565b6040516102059190611458565b60405180910390f35b610216610591565b604051610223919061148e565b60405180910390f35b61024660048036038101906102419190611011565b610623565b6040516102539190611473565b60405180910390f35b61027660048036038101906102719190611011565b61070e565b6040516102839190611473565b60405180910390f35b6102a660048036038101906102a19190610f86565b61084b565b6040516102b391906115d0565b60405180910390f35b6060600380546102cb906117bf565b80601f01602080910402602001604051908101604052809291908181526020018280546102f7906117bf565b80156103445780601f1061031957610100808354040283529160200191610344565b820191906000526020600020905b81548152906001019060200180831161032757829003601f168201915b5050505050905090565b600061036261035b6108d2565b84846108da565b6001905092915050565b6000600254905090565b6000610383848484610aa5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103ce6108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561044e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044590611530565b60405180910390fd5b6104628561045a6108d2565b8584036108da565b60019150509392505050565b60006012905090565b60006105196104846108d2565b8484600160006104926108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105149190611622565b6108da565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546105a0906117bf565b80601f01602080910402602001604051908101604052809291908181526020018280546105cc906117bf565b80156106195780601f106105ee57610100808354040283529160200191610619565b820191906000526020600020905b8154815290600101906020018083116105fc57829003601f168201915b5050505050905090565b600080600160006106326108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906115b0565b60405180910390fd5b6107036106fa6108d2565b858584036108da565b600191505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107795761077461076d6108d2565b8484610aa5565b610841565b6000606461079260065485610d2690919063ffffffff16565b61079c9190611678565b9050600060646107b760055486610d2690919063ffffffff16565b6107c19190611678565b90506107d46107ce6108d2565b83610d3c565b6108086107df6108d2565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610aa5565b61083e6108136108d2565b866108398461082b878a610f1390919063ffffffff16565b610f1390919063ffffffff16565b610aa5565b50505b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561094a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094190611590565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b1906114f0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a9891906115d0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c90611570565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906114b0565b60405180910390fd5b610b90838383610f29565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611510565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ca99190611622565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d0d91906115d0565b60405180910390a3610d20848484610f2e565b50505050565b60008183610d3491906116a9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611550565b60405180910390fd5b610db882600083610f29565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e35906114d0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610e959190611703565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610efa91906115d0565b60405180910390a3610f0e83600084610f2e565b505050565b60008183610f219190611703565b905092915050565b505050565b505050565b600081359050610f428161188f565b92915050565b600081359050610f57816118a6565b92915050565b600060208284031215610f6f57600080fd5b6000610f7d84828501610f33565b91505092915050565b60008060408385031215610f9957600080fd5b6000610fa785828601610f33565b9250506020610fb885828601610f33565b9150509250929050565b600080600060608486031215610fd757600080fd5b6000610fe586828701610f33565b9350506020610ff686828701610f33565b925050604061100786828701610f48565b9150509250925092565b6000806040838503121561102457600080fd5b600061103285828601610f33565b925050602061104385828601610f48565b9150509250929050565b61105681611737565b82525050565b61106581611749565b82525050565b600061107682611606565b6110808185611611565b935061109081856020860161178c565b6110998161187e565b840191505092915050565b60006110b1602383611611565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611117602283611611565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061117d602283611611565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111e3602683611611565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611249602883611611565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112af602183611611565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611315602583611611565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061137b602483611611565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113e1602583611611565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61144381611775565b82525050565b6114528161177f565b82525050565b600060208201905061146d600083018461104d565b92915050565b6000602082019050611488600083018461105c565b92915050565b600060208201905081810360008301526114a8818461106b565b905092915050565b600060208201905081810360008301526114c9816110a4565b9050919050565b600060208201905081810360008301526114e98161110a565b9050919050565b6000602082019050818103600083015261150981611170565b9050919050565b60006020820190508181036000830152611529816111d6565b9050919050565b600060208201905081810360008301526115498161123c565b9050919050565b60006020820190508181036000830152611569816112a2565b9050919050565b6000602082019050818103600083015261158981611308565b9050919050565b600060208201905081810360008301526115a98161136e565b9050919050565b600060208201905081810360008301526115c9816113d4565b9050919050565b60006020820190506115e5600083018461143a565b92915050565b60006020820190506116006000830184611449565b92915050565b600081519050919050565b600082825260208201905092915050565b600061162d82611775565b915061163883611775565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561166d5761166c6117f1565b5b828201905092915050565b600061168382611775565b915061168e83611775565b92508261169e5761169d611820565b5b828204905092915050565b60006116b482611775565b91506116bf83611775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116f8576116f76117f1565b5b828202905092915050565b600061170e82611775565b915061171983611775565b92508282101561172c5761172b6117f1565b5b828203905092915050565b600061174282611755565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117aa57808201518184015260208101905061178f565b838111156117b9576000848401525b50505050565b600060028204905060018216806117d757607f821691505b602082108114156117eb576117ea61184f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61189881611737565b81146118a357600080fd5b50565b6118af81611775565b81146118ba57600080fd5b5056fea264697066735822122076e855bf355e852c325b4b1cb80b707f0444888f08cedefc520b91e14399f1d264736f6c6343000800003300000000000000000000000000000000000000001986ba1221bbf5145c000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100d1576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161008e57806370a08231146101c05780638da5cb5b146101f057806395d89b411461020e578063a457c2d71461022c578063a9059cbb1461025c578063dd62ed3e1461028c576100d1565b806306fdde03146100d6578063095ea7b3146100f457806318160ddd1461012457806323b872dd14610142578063313ce567146101725780633950935114610190575b600080fd5b6100de6102bc565b6040516100eb919061148e565b60405180910390f35b61010e60048036038101906101099190611011565b61034e565b60405161011b9190611473565b60405180910390f35b61012c61036c565b60405161013991906115d0565b60405180910390f35b61015c60048036038101906101579190610fc2565b610376565b6040516101699190611473565b60405180910390f35b61017a61046e565b60405161018791906115eb565b60405180910390f35b6101aa60048036038101906101a59190611011565b610477565b6040516101b79190611473565b60405180910390f35b6101da60048036038101906101d59190610f5d565b610523565b6040516101e791906115d0565b60405180910390f35b6101f861056b565b6040516102059190611458565b60405180910390f35b610216610591565b604051610223919061148e565b60405180910390f35b61024660048036038101906102419190611011565b610623565b6040516102539190611473565b60405180910390f35b61027660048036038101906102719190611011565b61070e565b6040516102839190611473565b60405180910390f35b6102a660048036038101906102a19190610f86565b61084b565b6040516102b391906115d0565b60405180910390f35b6060600380546102cb906117bf565b80601f01602080910402602001604051908101604052809291908181526020018280546102f7906117bf565b80156103445780601f1061031957610100808354040283529160200191610344565b820191906000526020600020905b81548152906001019060200180831161032757829003601f168201915b5050505050905090565b600061036261035b6108d2565b84846108da565b6001905092915050565b6000600254905090565b6000610383848484610aa5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103ce6108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561044e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044590611530565b60405180910390fd5b6104628561045a6108d2565b8584036108da565b60019150509392505050565b60006012905090565b60006105196104846108d2565b8484600160006104926108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105149190611622565b6108da565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546105a0906117bf565b80601f01602080910402602001604051908101604052809291908181526020018280546105cc906117bf565b80156106195780601f106105ee57610100808354040283529160200191610619565b820191906000526020600020905b8154815290600101906020018083116105fc57829003601f168201915b5050505050905090565b600080600160006106326108d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906115b0565b60405180910390fd5b6107036106fa6108d2565b858584036108da565b600191505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107795761077461076d6108d2565b8484610aa5565b610841565b6000606461079260065485610d2690919063ffffffff16565b61079c9190611678565b9050600060646107b760055486610d2690919063ffffffff16565b6107c19190611678565b90506107d46107ce6108d2565b83610d3c565b6108086107df6108d2565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610aa5565b61083e6108136108d2565b866108398461082b878a610f1390919063ffffffff16565b610f1390919063ffffffff16565b610aa5565b50505b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561094a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094190611590565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b1906114f0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a9891906115d0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c90611570565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906114b0565b60405180910390fd5b610b90838383610f29565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90611510565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ca99190611622565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d0d91906115d0565b60405180910390a3610d20848484610f2e565b50505050565b60008183610d3491906116a9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611550565b60405180910390fd5b610db882600083610f29565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e35906114d0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610e959190611703565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610efa91906115d0565b60405180910390a3610f0e83600084610f2e565b505050565b60008183610f219190611703565b905092915050565b505050565b505050565b600081359050610f428161188f565b92915050565b600081359050610f57816118a6565b92915050565b600060208284031215610f6f57600080fd5b6000610f7d84828501610f33565b91505092915050565b60008060408385031215610f9957600080fd5b6000610fa785828601610f33565b9250506020610fb885828601610f33565b9150509250929050565b600080600060608486031215610fd757600080fd5b6000610fe586828701610f33565b9350506020610ff686828701610f33565b925050604061100786828701610f48565b9150509250925092565b6000806040838503121561102457600080fd5b600061103285828601610f33565b925050602061104385828601610f48565b9150509250929050565b61105681611737565b82525050565b61106581611749565b82525050565b600061107682611606565b6110808185611611565b935061109081856020860161178c565b6110998161187e565b840191505092915050565b60006110b1602383611611565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611117602283611611565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061117d602283611611565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111e3602683611611565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611249602883611611565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112af602183611611565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611315602583611611565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061137b602483611611565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113e1602583611611565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61144381611775565b82525050565b6114528161177f565b82525050565b600060208201905061146d600083018461104d565b92915050565b6000602082019050611488600083018461105c565b92915050565b600060208201905081810360008301526114a8818461106b565b905092915050565b600060208201905081810360008301526114c9816110a4565b9050919050565b600060208201905081810360008301526114e98161110a565b9050919050565b6000602082019050818103600083015261150981611170565b9050919050565b60006020820190508181036000830152611529816111d6565b9050919050565b600060208201905081810360008301526115498161123c565b9050919050565b60006020820190508181036000830152611569816112a2565b9050919050565b6000602082019050818103600083015261158981611308565b9050919050565b600060208201905081810360008301526115a98161136e565b9050919050565b600060208201905081810360008301526115c9816113d4565b9050919050565b60006020820190506115e5600083018461143a565b92915050565b60006020820190506116006000830184611449565b92915050565b600081519050919050565b600082825260208201905092915050565b600061162d82611775565b915061163883611775565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561166d5761166c6117f1565b5b828201905092915050565b600061168382611775565b915061168e83611775565b92508261169e5761169d611820565b5b828204905092915050565b60006116b482611775565b91506116bf83611775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116f8576116f76117f1565b5b828202905092915050565b600061170e82611775565b915061171983611775565b92508282101561172c5761172b6117f1565b5b828203905092915050565b600061174282611755565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117aa57808201518184015260208101905061178f565b838111156117b9576000848401525b50505050565b600060028204905060018216806117d757607f821691505b602082108114156117eb576117ea61184f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61189881611737565b81146118a357600080fd5b50565b6118af81611775565b81146118ba57600080fd5b5056fea264697066735822122076e855bf355e852c325b4b1cb80b707f0444888f08cedefc520b91e14399f1d264736f6c63430008000033

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

00000000000000000000000000000000000000001986ba1221bbf5145c000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 7900000000000000000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000001986ba1221bbf5145c000000


Deployed Bytecode Sourcemap

22912:958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8252:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7205:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8903:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7047:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9804:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7376:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23026:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10522:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23304:563;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7954:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6085:100;6139:13;6172:5;6165:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:100;:::o;8252:169::-;8335:4;8352:39;8361:12;:10;:12::i;:::-;8375:7;8384:6;8352:8;:39::i;:::-;8409:4;8402:11;;8252:169;;;;:::o;7205:108::-;7266:7;7293:12;;7286:19;;7205:108;:::o;8903:492::-;9043:4;9060:36;9070:6;9078:9;9089:6;9060:9;:36::i;:::-;9109:24;9136:11;:19;9148:6;9136:19;;;;;;;;;;;;;;;:33;9156:12;:10;:12::i;:::-;9136:33;;;;;;;;;;;;;;;;9109:60;;9208:6;9188:16;:26;;9180:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9295:57;9304:6;9312:12;:10;:12::i;:::-;9345:6;9326:16;:25;9295:8;:57::i;:::-;9383:4;9376:11;;;8903:492;;;;;:::o;7047:93::-;7105:5;7130:2;7123:9;;7047:93;:::o;9804:215::-;9892:4;9909:80;9918:12;:10;:12::i;:::-;9932:7;9978:10;9941:11;:25;9953:12;:10;:12::i;:::-;9941:25;;;;;;;;;;;;;;;:34;9967:7;9941:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9909:8;:80::i;:::-;10007:4;10000:11;;9804:215;;;;:::o;7376:127::-;7450:7;7477:9;:18;7487:7;7477:18;;;;;;;;;;;;;;;;7470:25;;7376:127;;;:::o;23026:20::-;;;;;;;;;;;;;:::o;6304:104::-;6360:13;6393:7;6386:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:104;:::o;10522:413::-;10615:4;10632:24;10659:11;:25;10671:12;:10;:12::i;:::-;10659:25;;;;;;;;;;;;;;;:34;10685:7;10659:34;;;;;;;;;;;;;;;;10632:61;;10732:15;10712:16;:35;;10704:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10825:67;10834:12;:10;:12::i;:::-;10848:7;10876:15;10857:16;:34;10825:8;:67::i;:::-;10923:4;10916:11;;;10522:413;;;;:::o;23304:563::-;23381:4;23400:15;:27;23416:10;23400:27;;;;;;;;;;;;;;;;;;;;;;;;;23397:431;;;23444:42;23454:12;:10;:12::i;:::-;23468:9;23479:6;23444:9;:42::i;:::-;23397:431;;;23519:15;23560:3;23537:20;23548:8;;23537:6;:10;;:20;;;;:::i;:::-;:26;;;;:::i;:::-;23519:44;;23578:16;23619:3;23597:19;23608:7;;23597:6;:10;;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23578:44;;23637:31;23643:12;:10;:12::i;:::-;23657:10;23637:5;:31::i;:::-;23683:43;23693:12;:10;:12::i;:::-;23707:5;;;;;;;;;;;23714:11;23683:9;:43::i;:::-;23741:75;23751:12;:10;:12::i;:::-;23765:9;23776:39;23803:11;23776:22;23787:10;23776:6;:10;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;23741:9;:75::i;:::-;23397:431;;;23855:4;23848:11;;23304:563;;;;:::o;7954:151::-;8043:7;8070:11;:18;8082:5;8070:18;;;;;;;;;;;;;;;:27;8089:7;8070:27;;;;;;;;;;;;;;;;8063:34;;7954:151;;;;:::o;3893:98::-;3946:7;3973:10;3966:17;;3893:98;:::o;14206:380::-;14359:1;14342:19;;:5;:19;;;;14334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14440:1;14421:21;;:7;:21;;;;14413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14524:6;14494:11;:18;14506:5;14494:18;;;;;;;;;;;;;;;:27;14513:7;14494:27;;;;;;;;;;;;;;;:36;;;;14562:7;14546:32;;14555:5;14546:32;;;14571:6;14546:32;;;;;;:::i;:::-;;;;;;;;14206:380;;;:::o;11425:733::-;11583:1;11565:20;;:6;:20;;;;11557:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11667:1;11646:23;;:9;:23;;;;11638:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:47;11743:6;11751:9;11762:6;11722:20;:47::i;:::-;11782:21;11806:9;:17;11816:6;11806:17;;;;;;;;;;;;;;;;11782:41;;11859:6;11842:13;:23;;11834:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11980:6;11964:13;:22;11944:9;:17;11954:6;11944:17;;;;;;;;;;;;;;;:42;;;;12032:6;12008:9;:20;12018:9;12008:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12073:9;12056:35;;12065:6;12056:35;;;12084:6;12056:35;;;;;;:::i;:::-;;;;;;;;12104:46;12124:6;12132:9;12143:6;12104:19;:46::i;:::-;11425:733;;;;:::o;19485:98::-;19543:7;19574:1;19570;:5;;;;:::i;:::-;19563:12;;19485:98;;;;:::o;13177:591::-;13280:1;13261:21;;:7;:21;;;;13253:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13333:49;13354:7;13371:1;13375:6;13333:20;:49::i;:::-;13395:22;13420:9;:18;13430:7;13420:18;;;;;;;;;;;;;;;;13395:43;;13475:6;13457:14;:24;;13449:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13594:6;13577:14;:23;13556:9;:18;13566:7;13556:18;;;;;;;;;;;;;;;:44;;;;13638:6;13622:12;;:22;;;;;;;:::i;:::-;;;;;;;;13688:1;13662:37;;13671:7;13662:37;;;13692:6;13662:37;;;;;;:::i;:::-;;;;;;;;13712:48;13732:7;13749:1;13753:6;13712:19;:48::i;:::-;13177:591;;;:::o;19128:98::-;19186:7;19217:1;19213;:5;;;;:::i;:::-;19206:12;;19128:98;;;;:::o;15186:125::-;;;;:::o;15915:124::-;;;;:::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:118::-;2036:24;2054:5;2036:24;:::i;:::-;2031:3;2024:37;2014:53;;:::o;2073:109::-;2154:21;2169:5;2154:21;:::i;:::-;2149:3;2142:34;2132:50;;:::o;2188:364::-;;2304:39;2337:5;2304:39;:::i;:::-;2359:71;2423:6;2418:3;2359:71;:::i;:::-;2352:78;;2439:52;2484:6;2479:3;2472:4;2465:5;2461:16;2439:52;:::i;:::-;2516:29;2538:6;2516:29;:::i;:::-;2511:3;2507:39;2500:46;;2280:272;;;;;:::o;2558:367::-;;2721:67;2785:2;2780:3;2721:67;:::i;:::-;2714:74;;2818:34;2814:1;2809:3;2805:11;2798:55;2884:5;2879:2;2874:3;2870:12;2863:27;2916:2;2911:3;2907:12;2900:19;;2704:221;;;:::o;2931:366::-;;3094:67;3158:2;3153:3;3094:67;:::i;:::-;3087:74;;3191:34;3187:1;3182:3;3178:11;3171:55;3257:4;3252:2;3247:3;3243:12;3236:26;3288:2;3283:3;3279:12;3272:19;;3077:220;;;:::o;3303:366::-;;3466:67;3530:2;3525:3;3466:67;:::i;:::-;3459:74;;3563:34;3559:1;3554:3;3550:11;3543:55;3629:4;3624:2;3619:3;3615:12;3608:26;3660:2;3655:3;3651:12;3644:19;;3449:220;;;:::o;3675:370::-;;3838:67;3902:2;3897:3;3838:67;:::i;:::-;3831:74;;3935:34;3931:1;3926:3;3922:11;3915:55;4001:8;3996:2;3991:3;3987:12;3980:30;4036:2;4031:3;4027:12;4020:19;;3821:224;;;:::o;4051:372::-;;4214:67;4278:2;4273:3;4214:67;:::i;:::-;4207:74;;4311:34;4307:1;4302:3;4298:11;4291:55;4377:10;4372:2;4367:3;4363:12;4356:32;4414:2;4409:3;4405:12;4398:19;;4197:226;;;:::o;4429:365::-;;4592:67;4656:2;4651:3;4592:67;:::i;:::-;4585:74;;4689:34;4685:1;4680:3;4676:11;4669:55;4755:3;4750:2;4745:3;4741:12;4734:25;4785:2;4780:3;4776:12;4769:19;;4575:219;;;:::o;4800:369::-;;4963:67;5027:2;5022:3;4963:67;:::i;:::-;4956:74;;5060:34;5056:1;5051:3;5047:11;5040:55;5126:7;5121:2;5116:3;5112:12;5105:29;5160:2;5155:3;5151:12;5144:19;;4946:223;;;:::o;5175:368::-;;5338:67;5402:2;5397:3;5338:67;:::i;:::-;5331:74;;5435:34;5431:1;5426:3;5422:11;5415:55;5501:6;5496:2;5491:3;5487:12;5480:28;5534:2;5529:3;5525:12;5518:19;;5321:222;;;:::o;5549:369::-;;5712:67;5776:2;5771:3;5712:67;:::i;:::-;5705:74;;5809:34;5805:1;5800:3;5796:11;5789:55;5875:7;5870:2;5865:3;5861:12;5854:29;5909:2;5904:3;5900:12;5893:19;;5695:223;;;:::o;5924:118::-;6011:24;6029:5;6011:24;:::i;:::-;6006:3;5999:37;5989:53;;:::o;6048:112::-;6131:22;6147:5;6131:22;:::i;:::-;6126:3;6119:35;6109:51;;:::o;6166:222::-;;6297:2;6286:9;6282:18;6274:26;;6310:71;6378:1;6367:9;6363:17;6354:6;6310:71;:::i;:::-;6264:124;;;;:::o;6394:210::-;;6519:2;6508:9;6504:18;6496:26;;6532:65;6594:1;6583:9;6579:17;6570:6;6532:65;:::i;:::-;6486:118;;;;:::o;6610:313::-;;6761:2;6750:9;6746:18;6738:26;;6810:9;6804:4;6800:20;6796:1;6785:9;6781:17;6774:47;6838:78;6911:4;6902:6;6838:78;:::i;:::-;6830:86;;6728:195;;;;:::o;6929:419::-;;7133:2;7122:9;7118:18;7110:26;;7182:9;7176:4;7172:20;7168:1;7157:9;7153:17;7146:47;7210:131;7336:4;7210:131;:::i;:::-;7202:139;;7100:248;;;:::o;7354:419::-;;7558:2;7547:9;7543:18;7535:26;;7607:9;7601:4;7597:20;7593:1;7582:9;7578:17;7571:47;7635:131;7761:4;7635:131;:::i;:::-;7627:139;;7525:248;;;:::o;7779:419::-;;7983:2;7972:9;7968:18;7960:26;;8032:9;8026:4;8022:20;8018:1;8007:9;8003:17;7996:47;8060:131;8186:4;8060:131;:::i;:::-;8052:139;;7950:248;;;:::o;8204:419::-;;8408:2;8397:9;8393:18;8385:26;;8457:9;8451:4;8447:20;8443:1;8432:9;8428:17;8421:47;8485:131;8611:4;8485:131;:::i;:::-;8477:139;;8375:248;;;:::o;8629:419::-;;8833:2;8822:9;8818:18;8810:26;;8882:9;8876:4;8872:20;8868:1;8857:9;8853:17;8846:47;8910:131;9036:4;8910:131;:::i;:::-;8902:139;;8800:248;;;:::o;9054:419::-;;9258:2;9247:9;9243:18;9235:26;;9307:9;9301:4;9297:20;9293:1;9282:9;9278:17;9271:47;9335:131;9461:4;9335:131;:::i;:::-;9327:139;;9225:248;;;:::o;9479:419::-;;9683:2;9672:9;9668:18;9660:26;;9732:9;9726:4;9722:20;9718:1;9707:9;9703:17;9696:47;9760:131;9886:4;9760:131;:::i;:::-;9752:139;;9650:248;;;:::o;9904:419::-;;10108:2;10097:9;10093:18;10085:26;;10157:9;10151:4;10147:20;10143:1;10132:9;10128:17;10121:47;10185:131;10311:4;10185:131;:::i;:::-;10177:139;;10075:248;;;:::o;10329:419::-;;10533:2;10522:9;10518:18;10510:26;;10582:9;10576:4;10572:20;10568:1;10557:9;10553:17;10546:47;10610:131;10736:4;10610:131;:::i;:::-;10602:139;;10500:248;;;:::o;10754:222::-;;10885:2;10874:9;10870:18;10862:26;;10898:71;10966:1;10955:9;10951:17;10942:6;10898:71;:::i;:::-;10852:124;;;;:::o;10982:214::-;;11109:2;11098:9;11094:18;11086:26;;11122:67;11186:1;11175:9;11171:17;11162:6;11122:67;:::i;:::-;11076:120;;;;:::o;11202:99::-;;11288:5;11282:12;11272:22;;11261:40;;;:::o;11307:169::-;;11425:6;11420:3;11413:19;11465:4;11460:3;11456:14;11441:29;;11403:73;;;;:::o;11482:305::-;;11541:20;11559:1;11541:20;:::i;:::-;11536:25;;11575:20;11593:1;11575:20;:::i;:::-;11570:25;;11729:1;11661:66;11657:74;11654:1;11651:81;11648:2;;;11735:18;;:::i;:::-;11648:2;11779:1;11776;11772:9;11765:16;;11526:261;;;;:::o;11793:185::-;;11850:20;11868:1;11850:20;:::i;:::-;11845:25;;11884:20;11902:1;11884:20;:::i;:::-;11879:25;;11923:1;11913:2;;11928:18;;:::i;:::-;11913:2;11970:1;11967;11963:9;11958:14;;11835:143;;;;:::o;11984:348::-;;12047:20;12065:1;12047:20;:::i;:::-;12042:25;;12081:20;12099:1;12081:20;:::i;:::-;12076:25;;12269:1;12201:66;12197:74;12194:1;12191:81;12186:1;12179:9;12172:17;12168:105;12165:2;;;12276:18;;:::i;:::-;12165:2;12324:1;12321;12317:9;12306:20;;12032:300;;;;:::o;12338:191::-;;12398:20;12416:1;12398:20;:::i;:::-;12393:25;;12432:20;12450:1;12432:20;:::i;:::-;12427:25;;12471:1;12468;12465:8;12462:2;;;12476:18;;:::i;:::-;12462:2;12521:1;12518;12514:9;12506:17;;12383:146;;;;:::o;12535:96::-;;12601:24;12619:5;12601:24;:::i;:::-;12590:35;;12580:51;;;:::o;12637:90::-;;12714:5;12707:13;12700:21;12689:32;;12679:48;;;:::o;12733:126::-;;12810:42;12803:5;12799:54;12788:65;;12778:81;;;:::o;12865:77::-;;12931:5;12920:16;;12910:32;;;:::o;12948:86::-;;13023:4;13016:5;13012:16;13001:27;;12991:43;;;:::o;13040:307::-;13108:1;13118:113;13132:6;13129:1;13126:13;13118:113;;;13217:1;13212:3;13208:11;13202:18;13198:1;13193:3;13189:11;13182:39;13154:2;13151:1;13147:10;13142:15;;13118:113;;;13249:6;13246:1;13243:13;13240:2;;;13329:1;13320:6;13315:3;13311:16;13304:27;13240:2;13089:258;;;;:::o;13353:320::-;;13434:1;13428:4;13424:12;13414:22;;13481:1;13475:4;13471:12;13502:18;13492:2;;13558:4;13550:6;13546:17;13536:27;;13492:2;13620;13612:6;13609:14;13589:18;13586:38;13583:2;;;13639:18;;:::i;:::-;13583:2;13404:269;;;;:::o;13679:180::-;13727:77;13724:1;13717:88;13824:4;13821:1;13814:15;13848:4;13845:1;13838:15;13865:180;13913:77;13910:1;13903:88;14010:4;14007:1;14000:15;14034:4;14031:1;14024:15;14051:180;14099:77;14096:1;14089:88;14196:4;14193:1;14186:15;14220:4;14217:1;14210:15;14237:102;;14329:2;14325:7;14320:2;14313:5;14309:14;14305:28;14295:38;;14285:54;;;:::o;14345:122::-;14418:24;14436:5;14418:24;:::i;:::-;14411:5;14408:35;14398:2;;14457:1;14454;14447:12;14398:2;14388:79;:::o;14473:122::-;14546:24;14564:5;14546:24;:::i;:::-;14539:5;14536:35;14526:2;;14585:1;14582;14575:12;14526:2;14516:79;:::o

Swarm Source

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