FTM Price: $0.48 (+8.81%)
Gas: 52 GWei

Token

Elk (ELK)
 

Overview

Max Total Supply

4,242,424 ELK

Holders

6,033

Market

Price

$0.00 @ 0.000000 FTM

Fully Diluted Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.001602 ELK

Value
$0.00
0xac84f08ecf1ea86b81c7e455d0a1bc17353e24e4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Elk

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at ftmscan.com on 2021-05-28
*/

// Sources flattened with hardhat v2.1.1 https://hardhat.org

// File contracts/SafeMath.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.16;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @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, string memory errorMessage) internal pure returns (uint256) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts 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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


// File contracts/Elk.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

contract Elk {
    /// @notice EIP-20 token name for this token
    string public constant name = "Elk";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "ELK";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public totalSupply = 4_242_424e18; // 4.2 million ELK

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice The EIP-712 typehash for the permit struct used by the contract
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new ELK token
     * @param account The initial account to grant all the tokens
     */
    constructor(address account) public {
        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "ELK::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /**
     * @notice Triggers an approval from owner to spends
     * @param owner The address to approve from
     * @param spender The address to be approved
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @param deadline The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "ELK::permit: amount exceeds 96 bits");
        }

        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "ELK::permit: invalid signature");
        require(signatory == owner, "ELK::permit: unauthorized");
        require(now <= deadline, "ELK::permit: signature expired");

        allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "ELK::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "ELK::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "ELK::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "ELK::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "ELK::delegateBySig: invalid nonce");
        require(now <= expiry, "ELK::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "ELK::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "ELK::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "ELK::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "ELK::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "ELK::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "ELK::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "ELK::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "ELK::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"payable":false,"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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526a03825e4410125034e000006000553480156200002057600080fd5b50604051620022a8380380620022a88339810160408190526200004391620000d3565b600080546001600160a01b0383168083526002602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000b191906200010d565b60405180910390a3506200014c565b8051620000cd8162000132565b92915050565b600060208284031215620000e657600080fd5b6000620000f48484620000c0565b949350505050565b62000107816200012f565b82525050565b60208101620000cd8284620000fc565b60006001600160a01b038216620000cd565b90565b6200013d816200011d565b81146200014957600080fd5b50565b61214c806200015c6000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611db2565b60405180910390f35b6101ad6101a8366004611652565b610351565b6040516101919190611cae565b6101c2610415565b6040516101919190611cbc565b6101c261041b565b6101ad6101e5366004611569565b610432565b6101c2610580565b6101fa61058c565b6040516101919190611e7c565b61021a610215366004611509565b610591565b6040516101919190611ca0565b61023a610235366004611509565b6105ac565b005b61024f61024a366004611509565b6105b9565b6040516101919190611e53565b6101c261026a366004611509565b6105d1565b61028261027d366004611652565b6105f5565b6040516101919190611e98565b6101c261029d366004611509565b61080f565b610184610821565b6101ad6102b8366004611652565b61085a565b6102826102cb366004611509565b610896565b61023a6102de366004611682565b610907565b61023a6102f13660046115b6565b610aec565b6101c261030436600461152f565b610dd3565b6101c2610e07565b61032461031f366004611709565b610e13565b604051610191929190611e61565b60405180604001604052806003815260200162456c6b60e81b81525081565b600080600019831415610367575060001961038c565b6103898360405180606001604052806024815260200161206660249139610e49565b90505b3360008181526001602090815260408083206001600160a01b03891680855292529182902080546bffffffffffffffffffffffff19166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610401908590611e8a565b60405180910390a360019150505b92915050565b60005481565b60405161042790611c8a565b604051809103902081565b6001600160a01b03831660009081526001602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b0390911692859261048a928892919061206690830139610e49565b9050866001600160a01b0316836001600160a01b0316141580156104b757506001600160601b0382811614155b156105665760006104e183836040518060600160405280603c8152602001611f7e603c9139610e81565b6001600160a01b038981166000818152600160209081526040808320948a16808452949091529081902080546bffffffffffffffffffffffff19166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061055c908590611e8a565b60405180910390a3505b610571878783610ec0565b600193505050505b9392505050565b60405161042790611c7f565b601281565b6003602052600090815260409020546001600160a01b031681565b6105b63382611075565b50565b60056020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b600043821061061f5760405162461bcd60e51b815260040161061690611de3565b60405180910390fd5b6001600160a01b03831660009081526005602052604090205463ffffffff168061064d57600091505061040f565b6001600160a01b038416600090815260046020908152604080832063ffffffff6000198601811685529252909120541683106106ca576001600160a01b03841660009081526004602090815260408083206000199490940163ffffffff168352929052205464010000000090046001600160601b0316905061040f565b6001600160a01b038416600090815260046020908152604080832083805290915290205463ffffffff1683101561070557600091505061040f565b600060001982015b8163ffffffff168163ffffffff1611156107c957600282820363ffffffff160481036107376114c6565b506001600160a01b038716600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152908714156107a45760200151945061040f9350505050565b805163ffffffff168711156107bb578193506107c2565b6001820392505b505061070d565b506001600160a01b038516600090815260046020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b60066020526000908152604090205481565b6040518060400160405280600381526020017f454c4b000000000000000000000000000000000000000000000000000000000081525081565b60008061087f8360405180606001604052806025815260200161204160259139610e49565b905061088c338583610ec0565b5060019392505050565b6001600160a01b03811660009081526005602052604081205463ffffffff16806108c1576000610579565b6001600160a01b0383166000908152600460209081526040808320600019850163ffffffff16845290915290205464010000000090046001600160601b03169392505050565b600060405161091590611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610962611117565b306040516020016109769493929190611d62565b604051602081830303815290604052805190602001209050600060405161099c90611c95565b6040519081900381206109b7918a908a908a90602001611d24565b604051602081830303815290604052805190602001209050600082826040516020016109e4929190611c4e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610a219493929190611d97565b6020604051602081039080840390855afa158015610a43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610a765760405162461bcd60e51b815260040161061690611e13565b6001600160a01b03811660009081526006602052604090208054600181019091558914610ab55760405162461bcd60e51b815260040161061690611e33565b87421115610ad55760405162461bcd60e51b815260040161061690611e43565b610adf818b611075565b505050505b505050505050565b6000600019861415610b015750600019610b26565b610b238660405180606001604052806023815260200161201e60239139610e49565b90505b6000604051610b3490611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610b81611117565b30604051602001610b959493929190611d62565b6040516020818303038152906040528051906020012090506000604051610bbb90611c7f565b604080519182900382206001600160a01b038d16600090815260066020908152929020805460018101909155610bfd9391928e928e928e9290918e9101611cca565b60405160208183030381529060405280519060200120905060008282604051602001610c2a929190611c4e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610c679493929190611d97565b6020604051602081039080840390855afa158015610c89573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cbc5760405162461bcd60e51b815260040161061690611e03565b8b6001600160a01b0316816001600160a01b031614610ced5760405162461bcd60e51b815260040161061690611dc3565b88421115610d0d5760405162461bcd60e51b815260040161061690611df3565b84600160008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610dbd9190611e8a565b60405180910390a3505050505050505050505050565b6001600160a01b0391821660009081526001602090815260408083209390941682529190915220546001600160601b031690565b60405161042790611c95565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6000816c010000000000000000000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b509192915050565b6000836001600160601b0316836001600160601b031611158290610eb85760405162461bcd60e51b81526004016106169190611db2565b505050900390565b6001600160a01b038316610ee65760405162461bcd60e51b815260040161061690611dd3565b6001600160a01b038216610f0c5760405162461bcd60e51b815260040161061690611e23565b6001600160a01b038316600090815260026020908152604091829020548251606081019093526035808452610f57936001600160601b039092169285929190611fe990830139610e81565b6001600160a01b03848116600090815260026020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f808452610fc49491909116928592909190611fba9083013961111b565b6001600160a01b038381166000818152600260205260409081902080546bffffffffffffffffffffffff19166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611036908590611e8a565b60405180910390a36001600160a01b0380841660009081526003602052604080822054858416835291205461107092918216911683611157565b505050565b6001600160a01b03808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611111828483611157565b50505050565b4690565b6000838301826001600160601b03808716908316101561114e5760405162461bcd60e51b81526004016106169190611db2565b50949350505050565b816001600160a01b0316836001600160a01b03161415801561118257506000816001600160601b0316115b15611070576001600160a01b0383161561123b576001600160a01b03831660009081526005602052604081205463ffffffff1690816111c2576000611202565b6001600160a01b0385166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b90506000611229828560405180606001604052806027815260200161208a60279139610e81565b9050611237868484846112e7565b5050505b6001600160a01b03821615611070576001600160a01b03821660009081526005602052604081205463ffffffff1690816112765760006112b6565b6001600160a01b0384166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b905060006112dd82856040518060600160405280602681526020016120e46026913961111b565b9050610ae4858484845b600061130b436040518060600160405280603381526020016120b16033913961149e565b905060008463ffffffff1611801561135457506001600160a01b038516600090815260046020908152604080832063ffffffff6000198901811685529252909120548282169116145b156113b4576001600160a01b0385166000908152600460209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff0000000019166401000000006001600160601b03851602179055611454565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600483528781208c871682528352878120965187549451909516640100000000026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600590935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161148f929190611ea6565b60405180910390a25050505050565b6000816401000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b604080518082019091526000808252602082015290565b803561040f81611f4e565b803561040f81611f62565b803561040f81611f6b565b803561040f81611f74565b60006020828403121561151b57600080fd5b600061152784846114dd565b949350505050565b6000806040838503121561154257600080fd5b600061154e85856114dd565b925050602061155f858286016114dd565b9150509250929050565b60008060006060848603121561157e57600080fd5b600061158a86866114dd565b935050602061159b868287016114dd565b92505060406115ac868287016114e8565b9150509250925092565b600080600080600080600060e0888a0312156115d157600080fd5b60006115dd8a8a6114dd565b97505060206115ee8a828b016114dd565b96505060406115ff8a828b016114e8565b95505060606116108a828b016114e8565b94505060806116218a828b016114fe565b93505060a06116328a828b016114e8565b92505060c06116438a828b016114e8565b91505092959891949750929550565b6000806040838503121561166557600080fd5b600061167185856114dd565b925050602061155f858286016114e8565b60008060008060008060c0878903121561169b57600080fd5b60006116a789896114dd565b96505060206116b889828a016114e8565b95505060406116c989828a016114e8565b94505060606116da89828a016114fe565b93505060806116eb89828a016114e8565b92505060a06116fc89828a016114e8565b9150509295509295509295565b6000806040838503121561171c57600080fd5b600061172885856114dd565b925050602061155f858286016114f3565b61174281611ed3565b82525050565b61174281611ede565b61174281611ee3565b61174261176682611ee3565b611ee3565b600061177682611ec1565b6117808185611ec5565b9350611790818560208601611f18565b61179981611f44565b9093019392505050565b60006117b0601983611ec5565b7f454c4b3a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b60006117e9600283611ece565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611822603b83611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611881602683611ec5565b7f454c4b3a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006118e0601e83611ec5565b7f454c4b3a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611919605283611ece565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061199e601e83611ec5565b7f454c4b3a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b60006119d7602583611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611a36604383611ece565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611abb603983611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611b1a602183611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611b79602583611ec5565b7f454c4b3a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611bd8603a83611ece565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b61174281611ef2565b61174281611efb565b61174281611f0d565b61174281611f01565b6000611c59826117dc565b9150611c65828561175a565b602082019150611c75828461175a565b5060200192915050565b600061040f8261190c565b600061040f82611a29565b600061040f82611bcb565b6020810161040f8284611739565b6020810161040f8284611748565b6020810161040f8284611751565b60c08101611cd88289611751565b611ce56020830188611739565b611cf26040830187611739565b611cff6060830186611751565b611d0c6080830185611751565b611d1960a0830184611751565b979650505050505050565b60808101611d328287611751565b611d3f6020830186611739565b611d4c6040830185611751565b611d596060830184611751565b95945050505050565b60808101611d708287611751565b611d7d6020830186611751565b611d8a6040830185611751565b611d596060830184611739565b60808101611da58287611751565b611d3f6020830186611c33565b60208082528101610579818461176b565b6020808252810161040f816117a3565b6020808252810161040f81611815565b6020808252810161040f81611874565b6020808252810161040f816118d3565b6020808252810161040f81611991565b6020808252810161040f816119ca565b6020808252810161040f81611aae565b6020808252810161040f81611b0d565b6020808252810161040f81611b6c565b6020810161040f8284611c2a565b60408101611e6f8285611c2a565b6105796020830184611c45565b6020810161040f8284611c33565b6020810161040f8284611c3c565b6020810161040f8284611c45565b60408101611eb48285611c3c565b6105796020830184611c3c565b5190565b90815260200190565b919050565b600061040f82611ee6565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061040f82611f01565b60005b83811015611f33578181015183820152602001611f1b565b838111156111115750506000910152565b601f01601f191690565b611f5781611ed3565b81146105b657600080fd5b611f5781611ee3565b611f5781611ef2565b611f5781611efb56fe454c4b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365454c4b3a3a7065726d69743a20616d6f756e7420657863656564732039362062697473454c4b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473454c4b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773454c4b3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158202e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe6c6578706572696d656e74616cf564736f6c63430005110040000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611db2565b60405180910390f35b6101ad6101a8366004611652565b610351565b6040516101919190611cae565b6101c2610415565b6040516101919190611cbc565b6101c261041b565b6101ad6101e5366004611569565b610432565b6101c2610580565b6101fa61058c565b6040516101919190611e7c565b61021a610215366004611509565b610591565b6040516101919190611ca0565b61023a610235366004611509565b6105ac565b005b61024f61024a366004611509565b6105b9565b6040516101919190611e53565b6101c261026a366004611509565b6105d1565b61028261027d366004611652565b6105f5565b6040516101919190611e98565b6101c261029d366004611509565b61080f565b610184610821565b6101ad6102b8366004611652565b61085a565b6102826102cb366004611509565b610896565b61023a6102de366004611682565b610907565b61023a6102f13660046115b6565b610aec565b6101c261030436600461152f565b610dd3565b6101c2610e07565b61032461031f366004611709565b610e13565b604051610191929190611e61565b60405180604001604052806003815260200162456c6b60e81b81525081565b600080600019831415610367575060001961038c565b6103898360405180606001604052806024815260200161206660249139610e49565b90505b3360008181526001602090815260408083206001600160a01b03891680855292529182902080546bffffffffffffffffffffffff19166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610401908590611e8a565b60405180910390a360019150505b92915050565b60005481565b60405161042790611c8a565b604051809103902081565b6001600160a01b03831660009081526001602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b0390911692859261048a928892919061206690830139610e49565b9050866001600160a01b0316836001600160a01b0316141580156104b757506001600160601b0382811614155b156105665760006104e183836040518060600160405280603c8152602001611f7e603c9139610e81565b6001600160a01b038981166000818152600160209081526040808320948a16808452949091529081902080546bffffffffffffffffffffffff19166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061055c908590611e8a565b60405180910390a3505b610571878783610ec0565b600193505050505b9392505050565b60405161042790611c7f565b601281565b6003602052600090815260409020546001600160a01b031681565b6105b63382611075565b50565b60056020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b600043821061061f5760405162461bcd60e51b815260040161061690611de3565b60405180910390fd5b6001600160a01b03831660009081526005602052604090205463ffffffff168061064d57600091505061040f565b6001600160a01b038416600090815260046020908152604080832063ffffffff6000198601811685529252909120541683106106ca576001600160a01b03841660009081526004602090815260408083206000199490940163ffffffff168352929052205464010000000090046001600160601b0316905061040f565b6001600160a01b038416600090815260046020908152604080832083805290915290205463ffffffff1683101561070557600091505061040f565b600060001982015b8163ffffffff168163ffffffff1611156107c957600282820363ffffffff160481036107376114c6565b506001600160a01b038716600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152908714156107a45760200151945061040f9350505050565b805163ffffffff168711156107bb578193506107c2565b6001820392505b505061070d565b506001600160a01b038516600090815260046020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b60066020526000908152604090205481565b6040518060400160405280600381526020017f454c4b000000000000000000000000000000000000000000000000000000000081525081565b60008061087f8360405180606001604052806025815260200161204160259139610e49565b905061088c338583610ec0565b5060019392505050565b6001600160a01b03811660009081526005602052604081205463ffffffff16806108c1576000610579565b6001600160a01b0383166000908152600460209081526040808320600019850163ffffffff16845290915290205464010000000090046001600160601b03169392505050565b600060405161091590611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610962611117565b306040516020016109769493929190611d62565b604051602081830303815290604052805190602001209050600060405161099c90611c95565b6040519081900381206109b7918a908a908a90602001611d24565b604051602081830303815290604052805190602001209050600082826040516020016109e4929190611c4e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610a219493929190611d97565b6020604051602081039080840390855afa158015610a43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610a765760405162461bcd60e51b815260040161061690611e13565b6001600160a01b03811660009081526006602052604090208054600181019091558914610ab55760405162461bcd60e51b815260040161061690611e33565b87421115610ad55760405162461bcd60e51b815260040161061690611e43565b610adf818b611075565b505050505b505050505050565b6000600019861415610b015750600019610b26565b610b238660405180606001604052806023815260200161201e60239139610e49565b90505b6000604051610b3490611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610b81611117565b30604051602001610b959493929190611d62565b6040516020818303038152906040528051906020012090506000604051610bbb90611c7f565b604080519182900382206001600160a01b038d16600090815260066020908152929020805460018101909155610bfd9391928e928e928e9290918e9101611cca565b60405160208183030381529060405280519060200120905060008282604051602001610c2a929190611c4e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610c679493929190611d97565b6020604051602081039080840390855afa158015610c89573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cbc5760405162461bcd60e51b815260040161061690611e03565b8b6001600160a01b0316816001600160a01b031614610ced5760405162461bcd60e51b815260040161061690611dc3565b88421115610d0d5760405162461bcd60e51b815260040161061690611df3565b84600160008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610dbd9190611e8a565b60405180910390a3505050505050505050505050565b6001600160a01b0391821660009081526001602090815260408083209390941682529190915220546001600160601b031690565b60405161042790611c95565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6000816c010000000000000000000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b509192915050565b6000836001600160601b0316836001600160601b031611158290610eb85760405162461bcd60e51b81526004016106169190611db2565b505050900390565b6001600160a01b038316610ee65760405162461bcd60e51b815260040161061690611dd3565b6001600160a01b038216610f0c5760405162461bcd60e51b815260040161061690611e23565b6001600160a01b038316600090815260026020908152604091829020548251606081019093526035808452610f57936001600160601b039092169285929190611fe990830139610e81565b6001600160a01b03848116600090815260026020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f808452610fc49491909116928592909190611fba9083013961111b565b6001600160a01b038381166000818152600260205260409081902080546bffffffffffffffffffffffff19166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611036908590611e8a565b60405180910390a36001600160a01b0380841660009081526003602052604080822054858416835291205461107092918216911683611157565b505050565b6001600160a01b03808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611111828483611157565b50505050565b4690565b6000838301826001600160601b03808716908316101561114e5760405162461bcd60e51b81526004016106169190611db2565b50949350505050565b816001600160a01b0316836001600160a01b03161415801561118257506000816001600160601b0316115b15611070576001600160a01b0383161561123b576001600160a01b03831660009081526005602052604081205463ffffffff1690816111c2576000611202565b6001600160a01b0385166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b90506000611229828560405180606001604052806027815260200161208a60279139610e81565b9050611237868484846112e7565b5050505b6001600160a01b03821615611070576001600160a01b03821660009081526005602052604081205463ffffffff1690816112765760006112b6565b6001600160a01b0384166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b905060006112dd82856040518060600160405280602681526020016120e46026913961111b565b9050610ae4858484845b600061130b436040518060600160405280603381526020016120b16033913961149e565b905060008463ffffffff1611801561135457506001600160a01b038516600090815260046020908152604080832063ffffffff6000198901811685529252909120548282169116145b156113b4576001600160a01b0385166000908152600460209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff0000000019166401000000006001600160601b03851602179055611454565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600483528781208c871682528352878120965187549451909516640100000000026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600590935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161148f929190611ea6565b60405180910390a25050505050565b6000816401000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b604080518082019091526000808252602082015290565b803561040f81611f4e565b803561040f81611f62565b803561040f81611f6b565b803561040f81611f74565b60006020828403121561151b57600080fd5b600061152784846114dd565b949350505050565b6000806040838503121561154257600080fd5b600061154e85856114dd565b925050602061155f858286016114dd565b9150509250929050565b60008060006060848603121561157e57600080fd5b600061158a86866114dd565b935050602061159b868287016114dd565b92505060406115ac868287016114e8565b9150509250925092565b600080600080600080600060e0888a0312156115d157600080fd5b60006115dd8a8a6114dd565b97505060206115ee8a828b016114dd565b96505060406115ff8a828b016114e8565b95505060606116108a828b016114e8565b94505060806116218a828b016114fe565b93505060a06116328a828b016114e8565b92505060c06116438a828b016114e8565b91505092959891949750929550565b6000806040838503121561166557600080fd5b600061167185856114dd565b925050602061155f858286016114e8565b60008060008060008060c0878903121561169b57600080fd5b60006116a789896114dd565b96505060206116b889828a016114e8565b95505060406116c989828a016114e8565b94505060606116da89828a016114fe565b93505060806116eb89828a016114e8565b92505060a06116fc89828a016114e8565b9150509295509295509295565b6000806040838503121561171c57600080fd5b600061172885856114dd565b925050602061155f858286016114f3565b61174281611ed3565b82525050565b61174281611ede565b61174281611ee3565b61174261176682611ee3565b611ee3565b600061177682611ec1565b6117808185611ec5565b9350611790818560208601611f18565b61179981611f44565b9093019392505050565b60006117b0601983611ec5565b7f454c4b3a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b60006117e9600283611ece565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611822603b83611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611881602683611ec5565b7f454c4b3a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006118e0601e83611ec5565b7f454c4b3a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611919605283611ece565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061199e601e83611ec5565b7f454c4b3a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b60006119d7602583611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611a36604383611ece565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611abb603983611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611b1a602183611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611b79602583611ec5565b7f454c4b3a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611bd8603a83611ece565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b61174281611ef2565b61174281611efb565b61174281611f0d565b61174281611f01565b6000611c59826117dc565b9150611c65828561175a565b602082019150611c75828461175a565b5060200192915050565b600061040f8261190c565b600061040f82611a29565b600061040f82611bcb565b6020810161040f8284611739565b6020810161040f8284611748565b6020810161040f8284611751565b60c08101611cd88289611751565b611ce56020830188611739565b611cf26040830187611739565b611cff6060830186611751565b611d0c6080830185611751565b611d1960a0830184611751565b979650505050505050565b60808101611d328287611751565b611d3f6020830186611739565b611d4c6040830185611751565b611d596060830184611751565b95945050505050565b60808101611d708287611751565b611d7d6020830186611751565b611d8a6040830185611751565b611d596060830184611739565b60808101611da58287611751565b611d3f6020830186611c33565b60208082528101610579818461176b565b6020808252810161040f816117a3565b6020808252810161040f81611815565b6020808252810161040f81611874565b6020808252810161040f816118d3565b6020808252810161040f81611991565b6020808252810161040f816119ca565b6020808252810161040f81611aae565b6020808252810161040f81611b0d565b6020808252810161040f81611b6c565b6020810161040f8284611c2a565b60408101611e6f8285611c2a565b6105796020830184611c45565b6020810161040f8284611c33565b6020810161040f8284611c3c565b6020810161040f8284611c45565b60408101611eb48285611c3c565b6105796020830184611c3c565b5190565b90815260200190565b919050565b600061040f82611ee6565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061040f82611f01565b60005b83811015611f33578181015183820152602001611f1b565b838111156111115750506000910152565b601f01601f191690565b611f5781611ed3565b81146105b657600080fd5b611f5781611ee3565b611f5781611ef2565b611f5781611efb56fe454c4b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365454c4b3a3a7065726d69743a20616d6f756e7420657863656564732039362062697473454c4b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473454c4b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773454c4b3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158202e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe6c6578706572696d656e74616cf564736f6c63430005110040

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

000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631

-----Decoded View---------------
Arg [0] : account (address): 0xC20752024C3288EfafDA4D93f5dBd0DF25eb0631

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631


Deployed Bytecode Sourcemap

6862:14568:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6862:14568:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6932:35;;;:::i;:::-;;;;;;;;;;;;;;;;10686:418;;;;;;;;;:::i;:::-;;;;;;;;7227:38;;;:::i;:::-;;;;;;;;8149:122;;;:::i;13766:670::-;;;;;;;;;:::i;8572:137::-;;;:::i;7128:35::-;;;:::i;:::-;;;;;;;;7599:45;;;;;;;;;:::i;:::-;;;;;;;;14584:102;;;;;;;;;:::i;:::-;;8027:49;;;;;;;;;:::i;:::-;;;;;;;;12847:108;;;;;;;;;:::i;16760:1217::-;;;;;;;;;:::i;:::-;;;;;;;;8790:39;;;;;;;;;:::i;7028:37::-;;;:::i;13219:237::-;;;;;;;;;:::i;16107:222::-;;;;;;;;;:::i;15120:786::-;;;;;;;;;:::i;11594:1050::-;;;;;;;;;:::i;10072:136::-;;;;;;;;;:::i;8365:117::-;;;:::i;7888:70::-;;;;;;;;;:::i;:::-;;;;;;;;;6932:35;;;;;;;;;;;;;;-1:-1:-1;;;6932:35:0;;;;:::o;10686:418::-;10754:4;10771:13;-1:-1:-1;;10799:9:0;:21;10795:172;;;-1:-1:-1;;;10795:172:0;;;10898:57;10905:9;10898:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;10889:66;;10795:172;10990:10;10979:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10979:31:0;;;;;;;;;;;:40;;-1:-1:-1;;10979:40:0;-1:-1:-1;;;;;10979:40:0;;;;;11037:37;;10979:31;;10990:10;11037:37;;;;10979:40;;11037:37;;;;;;;;;;11092:4;11085:11;;;10686:418;;;;;:::o;7227:38::-;;;;:::o;8149:122::-;8191:80;;;;;;;;;;;;;;8149:122;:::o;13766:670::-;-1:-1:-1;;;;;13930:15:0;;13848:4;13930:15;;;:10;:15;;;;;;;;13883:10;13930:24;;;;;;;;;;13981:57;;;;;;;;;;;;13883:10;;-1:-1:-1;;;;;13930:24:0;;;;13848:4;;13981:57;;13988:9;;13981:57;;;;;;;:6;:57::i;:::-;13965:73;;14066:3;-1:-1:-1;;;;;14055:14:0;:7;-1:-1:-1;;;;;14055:14:0;;;:48;;;;-1:-1:-1;;;;;;14073:30:0;;;;;14055:48;14051:310;;;14120:19;14142:95;14148:16;14166:6;14142:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;-1:-1:-1;;;;;14252:15:0;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;-1:-1:-1;;14252:39:0;-1:-1:-1;;;;;14252:39:0;;;;;14313:36;14252:39;;-1:-1:-1;14252:24:0;;14313:36;;;;14252:39;;14313:36;;;;;;;;;;14051:310;;14373:33;14389:3;14394;14399:6;14373:15;:33::i;:::-;14424:4;14417:11;;;;;13766:670;;;;;;:::o;8572:137::-;8614:95;;;;;;7128:35;7161:2;7128:35;:::o;7599:45::-;;;;;;;;;;;;-1:-1:-1;;;;;7599:45:0;;:::o;14584:102::-;14646:32;14656:10;14668:9;14646;:32::i;:::-;14584:102;:::o;8027:49::-;;;;;;;;;;;;;;;:::o;12847:108::-;-1:-1:-1;;;;;12930:17:0;12906:4;12930:17;;;:8;:17;;;;;;-1:-1:-1;;;;;12930:17:0;;12847:108::o;16760:1217::-;16839:6;16880:12;16866:11;:26;16858:77;;;;-1:-1:-1;;;16858:77:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16970:23:0;;16948:19;16970:23;;;:14;:23;;;;;;;;17008:17;17004:58;;17049:1;17042:8;;;;;17004:58;-1:-1:-1;;;;;17122:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;17143:16:0;;17122:38;;;;;;;;;:48;;:63;-1:-1:-1;17118:147:0;;-1:-1:-1;;;;;17209:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;17230:16:0;;;;17209:38;;;;;;;;:44;;;;-1:-1:-1;;;;;17209:44:0;;-1:-1:-1;17202:51:0;;17118:147;-1:-1:-1;;;;;17326:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;17322:88:0;;;17397:1;17390:8;;;;;17322:88;17422:12;-1:-1:-1;;17464:16:0;;17491:428;17506:5;17498:13;;:5;:13;;;17491:428;;;17570:1;17553:13;;;17552:19;;;17544:27;;17613:20;;:::i;:::-;-1:-1:-1;;;;;;17636:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;17613:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17613:51:0;;;;;;;;;17683:27;;17679:229;;;17738:8;;;;-1:-1:-1;17731:15:0;;-1:-1:-1;;;;17731:15:0;17679:229;17772:12;;:26;;;-1:-1:-1;17768:140:0;;;17827:6;17819:14;;17768:140;;;17891:1;17882:6;:10;17874:18;;17768:140;17491:428;;;;;-1:-1:-1;;;;;;17936:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;-1:-1:-1;;;;;17936:33:0;;;;;;-1:-1:-1;;16760:1217:0;;;;:::o;8790:39::-;;;;;;;;;;;;;:::o;7028:37::-;;;;;;;;;;;;;;;;;;;:::o;13219:237::-;13284:4;13301:13;13317:58;13324:9;13317:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;13301:74;;13386:40;13402:10;13414:3;13419:6;13386:15;:40::i;:::-;-1:-1:-1;13444:4:0;;13219:237;-1:-1:-1;;;13219:237:0:o;16107:222::-;-1:-1:-1;;;;;16213:23:0;;16172:6;16213:23;;;:14;:23;;;;;;;;16254:16;:67;;16320:1;16254:67;;;-1:-1:-1;;;;;16273:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;16294:16:0;;16273:38;;;;;;;;;:44;;;;-1:-1:-1;;;;;16273:44:0;16247:74;16107:222;-1:-1:-1;;;16107:222:0:o;15120:786::-;15236:23;8191:80;;;;;;;;;;;;;;;;15316:4;;;;;;;;;-1:-1:-1;;;15316:4:0;;;;;;;;15300:22;15324:12;:10;:12::i;:::-;15346:4;15272:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15272:80:0;;;15262:91;;;;;;15236:117;;15364:18;8411:71;;;;;;;;;;;;;;;15395:57;;15427:9;;15438:5;;15445:6;;15395:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15395:57:0;;;15385:68;;;;;;15364:89;;15464:14;15520:15;15537:10;15491:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15491:57:0;;;15481:68;;;;;;15464:85;;15560:17;15580:26;15590:6;15598:1;15601;15604;15580:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15580:26:0;;-1:-1:-1;;15580:26:0;;;-1:-1:-1;;;;;;;15625:23:0;;15617:73;;;;-1:-1:-1;;;15617:73:0;;;;;;;;;-1:-1:-1;;;;;15718:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;15709:28;;15701:74;;;;-1:-1:-1;;;15701:74:0;;;;;;;;;15801:6;15794:3;:13;;15786:63;;;;-1:-1:-1;;;15786:63:0;;;;;;;;;15867:31;15877:9;15888;15867;:31::i;:::-;15860:38;;;;15120:786;;;;;;;:::o;11594:1050::-;11724:13;-1:-1:-1;;11752:9:0;:21;11748:171;;;-1:-1:-1;;;11748:171:0;;;11851:56;11858:9;11851:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;11842:65;;11748:171;11931:23;8191:80;;;;;;;;;;;;;;;;12011:4;;;;;;;;;-1:-1:-1;;;12011:4:0;;;;;;;;11995:22;12019:12;:10;:12::i;:::-;12041:4;11967:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11967:80:0;;;11957:91;;;;;;11931:117;;12059:18;8614:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12145:13:0;;;;;;:6;:13;;;;;;;:15;;;;;;;;12090:81;;8614:95;;12118:5;;12125:7;;12134:9;;12145:15;;12162:8;;12090:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12090:81:0;;;12080:92;;;;;;12059:113;;12183:14;12239:15;12256:10;12210:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12210:57:0;;;12200:68;;;;;;12183:85;;12279:17;12299:26;12309:6;12317:1;12320;12323;12299:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12299:26:0;;-1:-1:-1;;12299:26:0;;;-1:-1:-1;;;;;;;12344:23:0;;12336:66;;;;-1:-1:-1;;;12336:66:0;;;;;;;;;12434:5;-1:-1:-1;;;;;12421:18:0;:9;-1:-1:-1;;;;;12421:18:0;;12413:56;;;;-1:-1:-1;;;12413:56:0;;;;;;;;;12495:8;12488:3;:15;;12480:58;;;;-1:-1:-1;;;12480:58:0;;;;;;;;;12580:6;12551:10;:17;12562:5;-1:-1:-1;;;;;12551:17:0;-1:-1:-1;;;;;12551:17:0;;;;;;;;;;;;:26;12569:7;-1:-1:-1;;;;;12551:26:0;-1:-1:-1;;;;;12551:26:0;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;12551:35:0;;;;;-1:-1:-1;;;;;12551:35:0;;;;;;12620:7;-1:-1:-1;;;;;12604:32:0;12613:5;-1:-1:-1;;;;;12604:32:0;;12629:6;12604:32;;;;;;;;;;;;;;;11594:1050;;;;;;;;;;;;:::o;10072:136::-;-1:-1:-1;;;;;10172:19:0;;;10148:4;10172:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;-1:-1:-1;;;;;10172:28:0;;10072:136::o;8365:117::-;8411:71;;;;;;7888:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7888:70:0;;:::o;20736:161::-;20811:6;20849:12;20842:5;20838:9;;20830:32;;;;-1:-1:-1;;;20830:32:0;;;;;;;;;;-1:-1:-1;20887:1:0;;20736:161;-1:-1:-1;;20736:161:0:o;21101:165::-;21187:6;21219:1;-1:-1:-1;;;;;21214:6:0;:1;-1:-1:-1;;;;;21214:6:0;;;21222:12;21206:29;;;;;-1:-1:-1;;;21206:29:0;;;;;;;;;;-1:-1:-1;;;21253:5:0;;;21101:165::o;18368:610::-;-1:-1:-1;;;;;18462:17:0;;18454:89;;;;-1:-1:-1;;;18454:89:0;;;;;;;;;-1:-1:-1;;;;;18562:17:0;;18554:87;;;;-1:-1:-1;;;18554:87:0;;;;;;;;;-1:-1:-1;;;;;18676:13:0;;;;;;:8;:13;;;;;;;;;;18670:85;;;;;;;;;;;;;;-1:-1:-1;;;;;18676:13:0;;;;18691:6;;18670:85;;;;;;;:5;:85::i;:::-;-1:-1:-1;;;;;18654:13:0;;;;;;;:8;:13;;;;;;;;:101;;-1:-1:-1;;18654:101:0;-1:-1:-1;;;;;18654:101:0;;;;;;18788:13;;;;;;;;;;18782:79;;;;;;;;;;;;;;18788:13;;;;;18803:6;;18782:79;;;;;;;;:5;:79::i;:::-;-1:-1:-1;;;;;18766:13:0;;;;;;;:8;:13;;;;;;;:95;;-1:-1:-1;;18766:95:0;-1:-1:-1;;;;;18766:95:0;;;;;;;;;;;18877:26;;;;;;;;;;18896:6;;18877:26;;;;;;;;;;-1:-1:-1;;;;;18931:14:0;;;;;;;:9;:14;;;;;;;18947;;;;;;;;18916:54;;18931:14;;;;18947;18963:6;18916:14;:54::i;:::-;18368:610;;;:::o;17985:375::-;-1:-1:-1;;;;;18088:20:0;;;18062:23;18088:20;;;:9;:20;;;;;;;;;;18145:8;:19;;;;;;18175:20;;;;:32;;;;;;;;;;;18225:54;;18088:20;;;;;-1:-1:-1;;;;;18145:19:0;;;;18175:32;;18088:20;;;18225:54;;18062:23;18225:54;18292:60;18307:15;18324:9;18335:16;18292:14;:60::i;:::-;17985:375;;;;:::o;21274:153::-;21384:9;21274:153;:::o;20905:188::-;20991:6;21021:5;;;21053:12;-1:-1:-1;;;;;21045:6:0;;;;;;;;21037:29;;;;-1:-1:-1;;;21037:29:0;;;;;;;;;;-1:-1:-1;21084:1:0;20905:188;-1:-1:-1;;;;20905:188:0:o;18986:937::-;19091:6;-1:-1:-1;;;;;19081:16:0;:6;-1:-1:-1;;;;;19081:16:0;;;:30;;;;;19110:1;19101:6;-1:-1:-1;;;;;19101:10:0;;19081:30;19077:839;;;-1:-1:-1;;;;;19132:20:0;;;19128:381;;-1:-1:-1;;;;;19192:22:0;;19173:16;19192:22;;;:14;:22;;;;;;;;;19252:13;:60;;19311:1;19252:60;;;-1:-1:-1;;;;;19268:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;19288:13:0;;19268:34;;;;;;;;;:40;;;;-1:-1:-1;;;;;19268:40:0;19252:60;19233:79;;19331:16;19350:67;19356:9;19367:6;19350:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;19331:86;;19436:57;19453:6;19461:9;19472;19483;19436:16;:57::i;:::-;19128:381;;;;-1:-1:-1;;;;;19529:20:0;;;19525:380;;-1:-1:-1;;;;;19589:22:0;;19570:16;19589:22;;;:14;:22;;;;;;;;;19649:13;:60;;19708:1;19649:60;;;-1:-1:-1;;;;;19665:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;19685:13:0;;19665:34;;;;;;;;;:40;;;;-1:-1:-1;;;;;19665:40:0;19649:60;19630:79;;19728:16;19747:66;19753:9;19764:6;19747:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;19728:85;;19832:57;19849:6;19857:9;19868;19879;19931:628;20049:18;20070:75;20077:12;20070:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;20049:96;;20175:1;20160:12;:16;;;:85;;;;-1:-1:-1;;;;;;20180:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;20203:16:0;;20180:40;;;;;;;;;:50;:65;;;:50;;:65;20160:85;20156:329;;;-1:-1:-1;;;;;20260:22:0;;;;;;:11;:22;;;;;;;;-1:-1:-1;;20283:16:0;;20260:40;;;;;;;;;:57;;-1:-1:-1;;20260:57:0;;-1:-1:-1;;;;;20260:57:0;;;;;;20156:329;;;20385:33;;;;;;;;;;;;;;-1:-1:-1;;;;;20385:33:0;;;;;;;;;;-1:-1:-1;;;;;20346:22:0;;-1:-1:-1;20346:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;-1:-1:-1;;20346:72:0;;;-1:-1:-1;;20346:72:0;;;;;;;;;;;;;;;20431:25;;;:14;:25;;;;;;;:44;;20346:72;20459:16;;20431:44;;;;;;;;;;;;;20156:329;20521:9;-1:-1:-1;;;;;20500:51:0;;20532:8;20542;20500:51;;;;;;;;;;;;;;;;19931:628;;;;;:::o;20567:161::-;20642:6;20680:12;20673:5;20669:9;;20661:32;;;;-1:-1:-1;;;20661:32:0;;;;;;;;;6862:14568;;;;;;;;;;-1:-1:-1;6862:14568:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2101:9;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3015:9;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3455:9;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4259:9;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;4648:113;4731:24;4749:5;4731:24;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5230:39;;;;5019:255;-1:-1;;;5019:255;5628:325;;5788:67;5852:2;5847:3;5788:67;;;5888:27;5868:48;;5944:2;5935:12;;5774:179;-1:-1;;5774:179;5962:398;;6140:84;6222:1;6217:3;6140:84;;;6257:66;6237:87;;6352:1;6343:11;;6126:234;-1:-1;;6126:234;6369:396;;6529:67;6593:2;6588:3;6529:67;;;6629:34;6609:55;;6698:29;6693:2;6684:12;;6677:51;6756:2;6747:12;;6515:250;-1:-1;;6515:250;6774:375;;6934:67;6998:2;6993:3;6934:67;;;7034:34;7014:55;;7103:8;7098:2;7089:12;;7082:30;7140:2;7131:12;;6920:229;-1:-1;;6920:229;7158:330;;7318:67;7382:2;7377:3;7318:67;;;7418:32;7398:53;;7479:2;7470:12;;7304:184;-1:-1;;7304:184;7497:492;;7675:85;7757:2;7752:3;7675:85;;;7793:34;7773:55;;7862:34;7857:2;7848:12;;7841:56;7931:20;7926:2;7917:12;;7910:42;7980:2;7971:12;;7661:328;-1:-1;;7661:328;7998:330;;8158:67;8222:2;8217:3;8158:67;;;8258:32;8238:53;;8319:2;8310:12;;8144:184;-1:-1;;8144:184;8337:374;;8497:67;8561:2;8556:3;8497:67;;;8597:34;8577:55;;8666:7;8661:2;8652:12;;8645:29;8702:2;8693:12;;8483:228;-1:-1;;8483:228;8720:477;;8898:85;8980:2;8975:3;8898:85;;;9016:34;8996:55;;9085:34;9080:2;9071:12;;9064:56;9154:5;9149:2;9140:12;;9133:27;9188:2;9179:12;;8884:313;-1:-1;;8884:313;9206:394;;9366:67;9430:2;9425:3;9366:67;;;9466:34;9446:55;;9535:27;9530:2;9521:12;;9514:49;9591:2;9582:12;;9352:248;-1:-1;;9352:248;9609:370;;9769:67;9833:2;9828:3;9769:67;;;9869:34;9849:55;;9938:3;9933:2;9924:12;;9917:25;9970:2;9961:12;;9755:224;-1:-1;;9755:224;9988:374;;10148:67;10212:2;10207:3;10148:67;;;10248:34;10228:55;;10317:7;10312:2;10303:12;;10296:29;10353:2;10344:12;;10134:228;-1:-1;;10134:228;10371:431;;10549:85;10631:2;10626:3;10549:85;;;10667:34;10647:55;;10736:28;10731:2;10722:12;;10715:50;10793:2;10784:12;;10535:267;-1:-1;;10535:267;10930:110;11011:23;11028:5;11011:23;;11047:107;11126:22;11142:5;11126:22;;11161:124;11243:36;11273:5;11243:36;;11292:110;11373:23;11390:5;11373:23;;11409:650;;11664:148;11808:3;11664:148;;;11657:155;;11823:75;11894:3;11885:6;11823:75;;;11920:2;11915:3;11911:12;11904:19;;11934:75;12005:3;11996:6;11934:75;;;-1:-1;12031:2;12022:12;;11645:414;-1:-1;;11645:414;12066:372;;12265:148;12409:3;12265:148;;12445:372;;12644:148;12788:3;12644:148;;12824:372;;13023:148;13167:3;13023:148;;13203:213;13321:2;13306:18;;13335:71;13310:9;13379:6;13335:71;;13423:201;13535:2;13520:18;;13549:65;13524:9;13587:6;13549:65;;13631:213;13749:2;13734:18;;13763:71;13738:9;13807:6;13763:71;;13851:771;14109:3;14094:19;;14124:71;14098:9;14168:6;14124:71;;;14206:72;14274:2;14263:9;14259:18;14250:6;14206:72;;;14289;14357:2;14346:9;14342:18;14333:6;14289:72;;;14372;14440:2;14429:9;14425:18;14416:6;14372:72;;;14455:73;14523:3;14512:9;14508:19;14499:6;14455:73;;;14539;14607:3;14596:9;14592:19;14583:6;14539:73;;;14080:542;;;;;;;;;;14629:547;14831:3;14816:19;;14846:71;14820:9;14890:6;14846:71;;;14928:72;14996:2;14985:9;14981:18;14972:6;14928:72;;;15011;15079:2;15068:9;15064:18;15055:6;15011:72;;;15094;15162:2;15151:9;15147:18;15138:6;15094:72;;;14802:374;;;;;;;;15183:547;15385:3;15370:19;;15400:71;15374:9;15444:6;15400:71;;;15482:72;15550:2;15539:9;15535:18;15526:6;15482:72;;;15565;15633:2;15622:9;15618:18;15609:6;15565:72;;;15648;15716:2;15705:9;15701:18;15692:6;15648:72;;15737:539;15935:3;15920:19;;15950:71;15924:9;15994:6;15950:71;;;16032:68;16096:2;16085:9;16081:18;16072:6;16032:68;;16283:293;16417:2;16431:47;;;16402:18;;16492:74;16402:18;16552:6;16492:74;;16891:407;17082:2;17096:47;;;17067:18;;17157:131;17067:18;17157:131;;17305:407;17496:2;17510:47;;;17481:18;;17571:131;17481:18;17571:131;;17719:407;17910:2;17924:47;;;17895:18;;17985:131;17895:18;17985:131;;18133:407;18324:2;18338:47;;;18309:18;;18399:131;18309:18;18399:131;;18547:407;18738:2;18752:47;;;18723:18;;18813:131;18723:18;18813:131;;18961:407;19152:2;19166:47;;;19137:18;;19227:131;19137:18;19227:131;;19375:407;19566:2;19580:47;;;19551:18;;19641:131;19551:18;19641:131;;19789:407;19980:2;19994:47;;;19965:18;;20055:131;19965:18;20055:131;;20203:407;20394:2;20408:47;;;20379:18;;20469:131;20379:18;20469:131;;20837:209;20953:2;20938:18;;20967:69;20942:9;21009:6;20967:69;;21053:316;21195:2;21180:18;;21209:69;21184:9;21251:6;21209:69;;;21289:70;21355:2;21344:9;21340:18;21331:6;21289:70;;21376:205;21490:2;21475:18;;21504:67;21479:9;21544:6;21504:67;;21588:211;21705:2;21690:18;;21719:70;21694:9;21762:6;21719:70;;21806:209;21922:2;21907:18;;21936:69;21911:9;21978:6;21936:69;;22022:320;22166:2;22151:18;;22180:70;22155:9;22223:6;22180:70;;;22261:71;22328:2;22317:9;22313:18;22304:6;22261:71;;22349:118;22433:12;;22404:63;22604:163;22707:19;;;22756:4;22747:14;;22700:67;22776:145;22912:3;22890:31;-1:-1;22890:31;22929:91;;22991:24;23009:5;22991:24;;23027:85;23093:13;23086:21;;23069:43;23119:72;23181:5;23164:27;23198:121;-1:-1;;;;;23260:54;;23243:76;23405:88;23477:10;23466:22;;23449:44;23500:81;23571:4;23560:16;;23543:38;23588:104;-1:-1;;;;;23649:38;;23632:60;23699:106;;23777:23;23794:5;23777:23;;23813:268;23878:1;23885:101;23899:6;23896:1;23893:13;23885:101;;;23966:11;;;23960:18;23947:11;;;23940:39;23921:2;23914:10;23885:101;;;24001:6;23998:1;23995:13;23992:2;;;-1:-1;;24066:1;24048:16;;24041:27;23862:219;24170:97;24258:2;24238:14;-1:-1;;24234:28;;24218:49;24275:117;24344:24;24362:5;24344:24;;;24337:5;24334:35;24324:2;;24383:1;24380;24373:12;24399:117;24468:24;24486:5;24468:24;;24647:115;24715:23;24732:5;24715:23;;24769:113;24836:22;24852:5;24836:22;

Swarm Source

bzzr://2e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe
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.