ETH Price: $3,234.26 (+1.17%)
Gas: 19 Gwei

Token

 

Overview

Max Total Supply

0

Holders

0

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LockedTokenVault

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;


library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "DIVIDING_ERROR");
        return a / b;
    }

    function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 quotient = div(a, b);
        uint256 remainder = a - quotient * b;
        if (remainder > 0) {
            return quotient + 1;
        } else {
            return quotient;
        }
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SUB_ERROR");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "ADD_ERROR");
        return c;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = x / 2 + 1;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}


library DecimalMath {
    using SafeMath for uint256;

    uint256 constant ONE = 10**18;

    function mul(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(d) / ONE;
    }

    function mulCeil(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(d).divCeil(ONE);
    }

    function divFloor(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(ONE).div(d);
    }

    function divCeil(uint256 target, uint256 d) internal pure returns (uint256) {
        return target.mul(ONE).divCeil(d);
    }
}


contract Ownable {
    address public _OWNER_;
    address public _NEW_OWNER_;

    // ============ Events ============

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

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

    // ============ Modifiers ============

    modifier onlyOwner() {
        require(msg.sender == _OWNER_, "NOT_OWNER");
        _;
    }

    // ============ Functions ============

    constructor() internal {
        _OWNER_ = msg.sender;
        emit OwnershipTransferred(address(0), _OWNER_);
    }

    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "INVALID_OWNER");
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

    function claimOwnership() external {
        require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
        emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
        _OWNER_ = _NEW_OWNER_;
        _NEW_OWNER_ = address(0);
    }
}


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

    function decimals() external view returns (uint8);

    function name() external view returns (string memory);

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


library SafeERC20 {
    using SafeMath for uint256;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves.

        // A Solidity high level call has three parts:
        //  1. The target address is checked to verify it contains contract code
        //  2. The call itself is made, and success asserted
        //  3. The return value is decoded, which in turn checks the size of the returned data.
        // solhint-disable-next-line max-line-length

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract LockedTokenVault is Ownable {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    address _TOKEN_;

    mapping(address => uint256) internal originBalances;
    mapping(address => uint256) internal claimedBalances;
    mapping(address => uint256) internal startReleaseTime;
    mapping(address => uint256) internal releaseDuration;

    uint256 public _UNDISTRIBUTED_AMOUNT_;

    // ============ Events ============

    event Claim(address indexed holder, uint256 origin, uint256 claimed, uint256 amount);

    // ============ Init Functions ============

    constructor(
        address _token
    ) public {
        _TOKEN_ = _token;
    }

    function deposit(uint256 amount) external onlyOwner {
        _tokenTransferIn(_OWNER_, amount);
        _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(amount);
    }

    function withdraw(uint256 amount) external onlyOwner {
        _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);
        _tokenTransferOut(_OWNER_, amount);
    }

    // ============ For Owner ============

    function grant(address[] calldata holderList, uint256[] calldata amountList, uint256[] calldata startList, uint256[] calldata durationList)
    external
    onlyOwner
    {
        require(holderList.length == amountList.length, "batch grant length not match");
        require(holderList.length == startList.length, "batch grant length not match");
        require(holderList.length == durationList.length, "batch grant length not match");
        uint256 amount = 0;
        for (uint256 i = 0; i < holderList.length; ++i) {
            originBalances[holderList[i]] = originBalances[holderList[i]].add(amountList[i]);
            startReleaseTime[holderList[i]] = startList[i];
            releaseDuration[holderList[i]] = durationList[i];
            amount = amount.add(amountList[i]);
        }
        _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);
    }

    function recall(address holder) external onlyOwner {
        _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(originBalances[holder]).sub(
            claimedBalances[holder]
        );
        originBalances[holder] = 0;
        claimedBalances[holder] = 0;
        startReleaseTime[holder] = 0;
        releaseDuration[holder] = 0;
    }

    // ============ For Holder ============

    function claim() external {
        uint256 claimableToken = getClaimableBalance(msg.sender);
        _tokenTransferOut(msg.sender, claimableToken);
        claimedBalances[msg.sender] = claimedBalances[msg.sender].add(claimableToken);
        emit Claim(
            msg.sender,
            originBalances[msg.sender],
            claimedBalances[msg.sender],
            claimableToken
        );
    }

    // ============ View ============

    function isReleaseStart(address holder) external view returns (bool) {
        return block.timestamp >= startReleaseTime[holder];
    }

    function getStartReleaseTime(address holder) external view returns (uint256) {
        return startReleaseTime[holder];
    }

    function getReleaseDuration(address holder) external view returns (uint256) {
        return releaseDuration[holder];
    }

    function getOriginBalance(address holder) external view returns (uint256) {
        return originBalances[holder];
    }

    function getClaimedBalance(address holder) external view returns (uint256) {
        return claimedBalances[holder];
    }

    function getClaimableBalance(address holder) public view returns (uint256) {
        uint256 remainingToken = getRemainingBalance(holder);
        return originBalances[holder].sub(remainingToken).sub(claimedBalances[holder]);
    }

    function getRemainingBalance(address holder) public view returns (uint256) {
        uint256 remainingRatio = getRemainingRatio(block.timestamp, holder);
        return DecimalMath.mul(originBalances[holder], remainingRatio);
    }

    function getRemainingRatio(uint256 timestamp, address holder) public view returns (uint256) {
        if (timestamp < startReleaseTime[holder]) {
            return DecimalMath.ONE;
        }
        uint256 timePast = timestamp.sub(startReleaseTime[holder]);
        if (timePast < releaseDuration[holder]) {
            uint256 remainingTime = releaseDuration[holder].sub(timePast);
            return DecimalMath.ONE.mul(remainingTime).div(releaseDuration[holder]);
        } else {
            return 0;
        }
    }

    // ============ Internal Helper ============

    function _tokenTransferIn(address from, uint256 amount) internal {
        IERC20(_TOKEN_).safeTransferFrom(from, address(this), amount);
    }

    function _tokenTransferOut(address to, uint256 amount) internal {
        IERC20(_TOKEN_).safeTransfer(to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"origin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_UNDISTRIBUTED_AMOUNT_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getClaimableBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getClaimedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getOriginBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getReleaseDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getRemainingBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"holder","type":"address"}],"name":"getRemainingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getStartReleaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"holderList","type":"address[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"internalType":"uint256[]","name":"startList","type":"uint256[]"},{"internalType":"uint256[]","name":"durationList","type":"uint256[]"}],"name":"grant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"isReleaseStart","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"recall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620023f0380380620023f0833981810160405281019062000037919062000152565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001cc565b6000815190506200014c81620001b2565b92915050565b6000602082840312156200016557600080fd5b600062000175848285016200013b565b91505092915050565b60006200018b8262000192565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001bd816200017e565b8114620001c957600080fd5b50565b61221480620001dc6000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80637dbf2f95116100a2578063c11cf42a11610071578063c11cf42a146102cc578063ca430519146102fc578063cf0e80fe14610318578063d182849614610348578063f2fde38b1461037857610115565b80637dbf2f95146102465780638456db1514610276578063a8d14d5e14610294578063b6b55f25146102b057610115565b80632e1a7d4d116100e95780632e1a7d4d146101b65780634e71d92d146101d25780634e71e0c8146101dc57806355e0d1b9146101e65780637137bc5e1461021657610115565b80621bf8f61461011a57806306def8021461014a57806316048bc41461017a57806324b3274114610198575b600080fd5b610134600480360381019061012f9190611a28565b610394565b60405161014191906120a5565b60405180910390f35b610164600480360381019061015f9190611a28565b6103f4565b60405161017191906120a5565b60405180910390f35b6101826104ad565b60405161018f9190611ecf565b60405180910390f35b6101a06104d2565b6040516101ad91906120a5565b60405180910390f35b6101d060048036038101906101cb9190611b4f565b6104d8565b005b6101da6105b0565b005b6101e461072f565b005b61020060048036038101906101fb9190611a28565b610902565b60405161020d9190611f4a565b60405180910390f35b610230600480360381019061022b9190611a28565b61094e565b60405161023d91906120a5565b60405180910390f35b610260600480360381019061025b9190611a28565b610997565b60405161026d91906120a5565b60405180910390f35b61027e6109e0565b60405161028b9190611ecf565b60405180910390f35b6102ae60048036038101906102a99190611a51565b610a06565b005b6102ca60048036038101906102c59190611b4f565b610daf565b005b6102e660048036038101906102e19190611b78565b610e87565b6040516102f391906120a5565b60405180910390f35b61031660048036038101906103119190611a28565b611054565b005b610332600480360381019061032d9190611a28565b6112a5565b60405161033f91906120a5565b60405180910390f35b610362600480360381019061035d9190611a28565b6112ee565b60405161036f91906120a5565b60405180910390f35b610392600480360381019061038d9190611a28565b611337565b005b6000806103a14284610e87565b90506103ec600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826114f5565b915050919050565b60008061040083610394565b90506104a5600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461049783600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152390919063ffffffff16565b61152390919063ffffffff16565b915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e90612005565b60405180910390fd5b61057c8160075461152390919063ffffffff16565b6007819055506105ad6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611573565b50565b60006105bb336103f4565b90506105c73382611573565b61061981600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef1600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484604051610724939291906120c0565b60405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611f65565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544210159050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612005565b60405180910390fd5b858590508888905014610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad490612085565b60405180910390fd5b838390508888905014610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612085565b60405180910390fd5b818190508888905014610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612085565b60405180910390fd5b600080905060008090505b89899050811015610d8857610c07888883818110610b9257fe5b90506020020135600360008d8d86818110610ba957fe5b9050602002016020810190610bbe9190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c490919063ffffffff16565b600360008c8c85818110610c1757fe5b9050602002016020810190610c2c9190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550858582818110610c7657fe5b90506020020135600560008c8c85818110610c8d57fe5b9050602002016020810190610ca29190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838382818110610cec57fe5b90506020020135600660008c8c85818110610d0357fe5b9050602002016020810190610d189190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7b888883818110610d6557fe5b90506020020135836115c490919063ffffffff16565b9150806001019050610b78565b50610d9e8160075461152390919063ffffffff16565b600781905550505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590612005565b60405180910390fd5b610e696000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611619565b610e7e816007546115c490919063ffffffff16565b60078190555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831015610ee057670de0b6b3a7640000905061104e565b6000610f34600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561152390919063ffffffff16565b9050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811015611048576000610fd182600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152390919063ffffffff16565b905061103f600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103183670de0b6b3a764000061166c90919063ffffffff16565b6116dc90919063ffffffff16565b9250505061104e565b60009150505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da90612005565b60405180910390fd5b611188600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117a600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007546115c490919063ffffffff16565b61152390919063ffffffff16565b6007819055506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90612005565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90611fe5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6260405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000670de0b6b3a7640000611513838561166c90919063ffffffff16565b8161151a57fe5b04905092915050565b600082821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90611fc5565b60405180910390fd5b818303905092915050565b6115c08282600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117329092919063ffffffff16565b5050565b60008082840190508381101561160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160690612025565b60405180910390fd5b8091505092915050565b611668823083600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117b8909392919063ffffffff16565b5050565b60008083141561167f57600090506116d6565b600082840290508284828161169057fe5b04146116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890612065565b60405180910390fd5b809150505b92915050565b6000808211611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790611fa5565b60405180910390fd5b81838161172957fe5b04905092915050565b6117b38363a9059cbb60e01b8484604051602401611751929190611f21565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611841565b505050565b61183b846323b872dd60e01b8585856040516024016117d993929190611eea565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611841565b50505050565b600060608373ffffffffffffffffffffffffffffffffffffffff168360405161186a9190611eb8565b6000604051808303816000865af19150503d80600081146118a7576040519150601f19603f3d011682016040523d82523d6000602084013e6118ac565b606091505b5091509150816118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890611f85565b60405180910390fd5b60008151111561194f578080602001905181019061190f9190611b26565b61194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612045565b60405180910390fd5b5b50505050565b60008135905061196481612199565b92915050565b60008083601f84011261197c57600080fd5b8235905067ffffffffffffffff81111561199557600080fd5b6020830191508360208202830111156119ad57600080fd5b9250929050565b60008083601f8401126119c657600080fd5b8235905067ffffffffffffffff8111156119df57600080fd5b6020830191508360208202830111156119f757600080fd5b9250929050565b600081519050611a0d816121b0565b92915050565b600081359050611a22816121c7565b92915050565b600060208284031215611a3a57600080fd5b6000611a4884828501611955565b91505092915050565b6000806000806000806000806080898b031215611a6d57600080fd5b600089013567ffffffffffffffff811115611a8757600080fd5b611a938b828c0161196a565b9850985050602089013567ffffffffffffffff811115611ab257600080fd5b611abe8b828c016119b4565b9650965050604089013567ffffffffffffffff811115611add57600080fd5b611ae98b828c016119b4565b9450945050606089013567ffffffffffffffff811115611b0857600080fd5b611b148b828c016119b4565b92509250509295985092959890939650565b600060208284031215611b3857600080fd5b6000611b46848285016119fe565b91505092915050565b600060208284031215611b6157600080fd5b6000611b6f84828501611a13565b91505092915050565b60008060408385031215611b8b57600080fd5b6000611b9985828601611a13565b9250506020611baa85828601611955565b9150509250929050565b611bbd8161211e565b82525050565b611bcc81612130565b82525050565b6000611bdd826120f7565b611be78185612102565b9350611bf7818560208601612166565b80840191505092915050565b6000611c10600d8361210d565b91507f494e56414c49445f434c41494d000000000000000000000000000000000000006000830152602082019050919050565b6000611c5060208361210d565b91507f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646000830152602082019050919050565b6000611c90600e8361210d565b91507f4449564944494e475f4552524f520000000000000000000000000000000000006000830152602082019050919050565b6000611cd060098361210d565b91507f5355425f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611d10600d8361210d565b91507f494e56414c49445f4f574e4552000000000000000000000000000000000000006000830152602082019050919050565b6000611d5060098361210d565b91507f4e4f545f4f574e455200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611d9060098361210d565b91507f4144445f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611dd0602a8361210d565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e3660098361210d565b91507f4d554c5f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611e76601c8361210d565b91507f6261746368206772616e74206c656e677468206e6f74206d61746368000000006000830152602082019050919050565b611eb28161215c565b82525050565b6000611ec48284611bd2565b915081905092915050565b6000602082019050611ee46000830184611bb4565b92915050565b6000606082019050611eff6000830186611bb4565b611f0c6020830185611bb4565b611f196040830184611ea9565b949350505050565b6000604082019050611f366000830185611bb4565b611f436020830184611ea9565b9392505050565b6000602082019050611f5f6000830184611bc3565b92915050565b60006020820190508181036000830152611f7e81611c03565b9050919050565b60006020820190508181036000830152611f9e81611c43565b9050919050565b60006020820190508181036000830152611fbe81611c83565b9050919050565b60006020820190508181036000830152611fde81611cc3565b9050919050565b60006020820190508181036000830152611ffe81611d03565b9050919050565b6000602082019050818103600083015261201e81611d43565b9050919050565b6000602082019050818103600083015261203e81611d83565b9050919050565b6000602082019050818103600083015261205e81611dc3565b9050919050565b6000602082019050818103600083015261207e81611e29565b9050919050565b6000602082019050818103600083015261209e81611e69565b9050919050565b60006020820190506120ba6000830184611ea9565b92915050565b60006060820190506120d56000830186611ea9565b6120e26020830185611ea9565b6120ef6040830184611ea9565b949350505050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006121298261213c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612184578082015181840152602081019050612169565b83811115612193576000848401525b50505050565b6121a28161211e565b81146121ad57600080fd5b50565b6121b981612130565b81146121c457600080fd5b50565b6121d08161215c565b81146121db57600080fd5b5056fea26469706673582212202ae27c172fb09229013338840d051a328f8d83aa1cefd81c1c9b9b078027372e64736f6c634300060900330000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101155760003560e01c80637dbf2f95116100a2578063c11cf42a11610071578063c11cf42a146102cc578063ca430519146102fc578063cf0e80fe14610318578063d182849614610348578063f2fde38b1461037857610115565b80637dbf2f95146102465780638456db1514610276578063a8d14d5e14610294578063b6b55f25146102b057610115565b80632e1a7d4d116100e95780632e1a7d4d146101b65780634e71d92d146101d25780634e71e0c8146101dc57806355e0d1b9146101e65780637137bc5e1461021657610115565b80621bf8f61461011a57806306def8021461014a57806316048bc41461017a57806324b3274114610198575b600080fd5b610134600480360381019061012f9190611a28565b610394565b60405161014191906120a5565b60405180910390f35b610164600480360381019061015f9190611a28565b6103f4565b60405161017191906120a5565b60405180910390f35b6101826104ad565b60405161018f9190611ecf565b60405180910390f35b6101a06104d2565b6040516101ad91906120a5565b60405180910390f35b6101d060048036038101906101cb9190611b4f565b6104d8565b005b6101da6105b0565b005b6101e461072f565b005b61020060048036038101906101fb9190611a28565b610902565b60405161020d9190611f4a565b60405180910390f35b610230600480360381019061022b9190611a28565b61094e565b60405161023d91906120a5565b60405180910390f35b610260600480360381019061025b9190611a28565b610997565b60405161026d91906120a5565b60405180910390f35b61027e6109e0565b60405161028b9190611ecf565b60405180910390f35b6102ae60048036038101906102a99190611a51565b610a06565b005b6102ca60048036038101906102c59190611b4f565b610daf565b005b6102e660048036038101906102e19190611b78565b610e87565b6040516102f391906120a5565b60405180910390f35b61031660048036038101906103119190611a28565b611054565b005b610332600480360381019061032d9190611a28565b6112a5565b60405161033f91906120a5565b60405180910390f35b610362600480360381019061035d9190611a28565b6112ee565b60405161036f91906120a5565b60405180910390f35b610392600480360381019061038d9190611a28565b611337565b005b6000806103a14284610e87565b90506103ec600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826114f5565b915050919050565b60008061040083610394565b90506104a5600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461049783600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152390919063ffffffff16565b61152390919063ffffffff16565b915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e90612005565b60405180910390fd5b61057c8160075461152390919063ffffffff16565b6007819055506105ad6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611573565b50565b60006105bb336103f4565b90506105c73382611573565b61061981600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef1600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484604051610724939291906120c0565b60405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611f65565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544210159050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612005565b60405180910390fd5b858590508888905014610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad490612085565b60405180910390fd5b838390508888905014610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612085565b60405180910390fd5b818190508888905014610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612085565b60405180910390fd5b600080905060008090505b89899050811015610d8857610c07888883818110610b9257fe5b90506020020135600360008d8d86818110610ba957fe5b9050602002016020810190610bbe9190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115c490919063ffffffff16565b600360008c8c85818110610c1757fe5b9050602002016020810190610c2c9190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550858582818110610c7657fe5b90506020020135600560008c8c85818110610c8d57fe5b9050602002016020810190610ca29190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838382818110610cec57fe5b90506020020135600660008c8c85818110610d0357fe5b9050602002016020810190610d189190611a28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7b888883818110610d6557fe5b90506020020135836115c490919063ffffffff16565b9150806001019050610b78565b50610d9e8160075461152390919063ffffffff16565b600781905550505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590612005565b60405180910390fd5b610e696000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611619565b610e7e816007546115c490919063ffffffff16565b60078190555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831015610ee057670de0b6b3a7640000905061104e565b6000610f34600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561152390919063ffffffff16565b9050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811015611048576000610fd182600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152390919063ffffffff16565b905061103f600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103183670de0b6b3a764000061166c90919063ffffffff16565b6116dc90919063ffffffff16565b9250505061104e565b60009150505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da90612005565b60405180910390fd5b611188600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117a600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007546115c490919063ffffffff16565b61152390919063ffffffff16565b6007819055506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90612005565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90611fe5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6260405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000670de0b6b3a7640000611513838561166c90919063ffffffff16565b8161151a57fe5b04905092915050565b600082821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90611fc5565b60405180910390fd5b818303905092915050565b6115c08282600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117329092919063ffffffff16565b5050565b60008082840190508381101561160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160690612025565b60405180910390fd5b8091505092915050565b611668823083600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117b8909392919063ffffffff16565b5050565b60008083141561167f57600090506116d6565b600082840290508284828161169057fe5b04146116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890612065565b60405180910390fd5b809150505b92915050565b6000808211611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790611fa5565b60405180910390fd5b81838161172957fe5b04905092915050565b6117b38363a9059cbb60e01b8484604051602401611751929190611f21565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611841565b505050565b61183b846323b872dd60e01b8585856040516024016117d993929190611eea565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611841565b50505050565b600060608373ffffffffffffffffffffffffffffffffffffffff168360405161186a9190611eb8565b6000604051808303816000865af19150503d80600081146118a7576040519150601f19603f3d011682016040523d82523d6000602084013e6118ac565b606091505b5091509150816118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890611f85565b60405180910390fd5b60008151111561194f578080602001905181019061190f9190611b26565b61194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612045565b60405180910390fd5b5b50505050565b60008135905061196481612199565b92915050565b60008083601f84011261197c57600080fd5b8235905067ffffffffffffffff81111561199557600080fd5b6020830191508360208202830111156119ad57600080fd5b9250929050565b60008083601f8401126119c657600080fd5b8235905067ffffffffffffffff8111156119df57600080fd5b6020830191508360208202830111156119f757600080fd5b9250929050565b600081519050611a0d816121b0565b92915050565b600081359050611a22816121c7565b92915050565b600060208284031215611a3a57600080fd5b6000611a4884828501611955565b91505092915050565b6000806000806000806000806080898b031215611a6d57600080fd5b600089013567ffffffffffffffff811115611a8757600080fd5b611a938b828c0161196a565b9850985050602089013567ffffffffffffffff811115611ab257600080fd5b611abe8b828c016119b4565b9650965050604089013567ffffffffffffffff811115611add57600080fd5b611ae98b828c016119b4565b9450945050606089013567ffffffffffffffff811115611b0857600080fd5b611b148b828c016119b4565b92509250509295985092959890939650565b600060208284031215611b3857600080fd5b6000611b46848285016119fe565b91505092915050565b600060208284031215611b6157600080fd5b6000611b6f84828501611a13565b91505092915050565b60008060408385031215611b8b57600080fd5b6000611b9985828601611a13565b9250506020611baa85828601611955565b9150509250929050565b611bbd8161211e565b82525050565b611bcc81612130565b82525050565b6000611bdd826120f7565b611be78185612102565b9350611bf7818560208601612166565b80840191505092915050565b6000611c10600d8361210d565b91507f494e56414c49445f434c41494d000000000000000000000000000000000000006000830152602082019050919050565b6000611c5060208361210d565b91507f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646000830152602082019050919050565b6000611c90600e8361210d565b91507f4449564944494e475f4552524f520000000000000000000000000000000000006000830152602082019050919050565b6000611cd060098361210d565b91507f5355425f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611d10600d8361210d565b91507f494e56414c49445f4f574e4552000000000000000000000000000000000000006000830152602082019050919050565b6000611d5060098361210d565b91507f4e4f545f4f574e455200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611d9060098361210d565b91507f4144445f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611dd0602a8361210d565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e3660098361210d565b91507f4d554c5f4552524f5200000000000000000000000000000000000000000000006000830152602082019050919050565b6000611e76601c8361210d565b91507f6261746368206772616e74206c656e677468206e6f74206d61746368000000006000830152602082019050919050565b611eb28161215c565b82525050565b6000611ec48284611bd2565b915081905092915050565b6000602082019050611ee46000830184611bb4565b92915050565b6000606082019050611eff6000830186611bb4565b611f0c6020830185611bb4565b611f196040830184611ea9565b949350505050565b6000604082019050611f366000830185611bb4565b611f436020830184611ea9565b9392505050565b6000602082019050611f5f6000830184611bc3565b92915050565b60006020820190508181036000830152611f7e81611c03565b9050919050565b60006020820190508181036000830152611f9e81611c43565b9050919050565b60006020820190508181036000830152611fbe81611c83565b9050919050565b60006020820190508181036000830152611fde81611cc3565b9050919050565b60006020820190508181036000830152611ffe81611d03565b9050919050565b6000602082019050818103600083015261201e81611d43565b9050919050565b6000602082019050818103600083015261203e81611d83565b9050919050565b6000602082019050818103600083015261205e81611dc3565b9050919050565b6000602082019050818103600083015261207e81611e29565b9050919050565b6000602082019050818103600083015261209e81611e69565b9050919050565b60006020820190506120ba6000830184611ea9565b92915050565b60006060820190506120d56000830186611ea9565b6120e26020830185611ea9565b6120ef6040830184611ea9565b949350505050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006121298261213c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612184578082015181840152602081019050612169565b83811115612193576000848401525b50505050565b6121a28161211e565b81146121ad57600080fd5b50565b6121b981612130565b81146121c457600080fd5b50565b6121d08161215c565b81146121db57600080fd5b5056fea26469706673582212202ae27c172fb09229013338840d051a328f8d83aa1cefd81c1c9b9b078027372e64736f6c63430006090033

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

0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b

-----Decoded View---------------
Arg [0] : _token (address): 0x4691937a7508860F876c9c0a2a617E7d9E945D4B

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b


Deployed Bytecode Sourcemap

8027:4913:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11825:234;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11582:235;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1949:22;;;:::i;:::-;;;;;;;;;;;;;;;;8401:37;;;:::i;:::-;;;;;;;;;;;;;;;;8910:176;;;;;;;;;;;;;;;;:::i;:::-;;10443:414;;;:::i;:::-;;2799:230;;;:::i;:::-;;10906:138;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11187:125;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11052:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1978:26;;;:::i;:::-;;;;;;;;;;;;;;;;9140:890;;;;;;;;;;;;;;;;:::i;:::-;;8728:174;;;;;;;;;;;;;;;;:::i;:::-;;12067:534;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10038:350;;;;;;;;;;;;;;;;:::i;:::-;;11450:124;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11320:122;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2567:224;;;;;;;;;;;;;;;;:::i;:::-;;11825:234;11891:7;11911:22;11936:42;11954:15;11971:6;11936:17;:42::i;:::-;11911:67;;11996:55;12012:14;:22;12027:6;12012:22;;;;;;;;;;;;;;;;12036:14;11996:15;:55::i;:::-;11989:62;;;11825:234;;;:::o;11582:235::-;11648:7;11668:22;11693:27;11713:6;11693:19;:27::i;:::-;11668:52;;11738:71;11785:15;:23;11801:6;11785:23;;;;;;;;;;;;;;;;11738:42;11765:14;11738;:22;11753:6;11738:22;;;;;;;;;;;;;;;;:26;;:42;;;;:::i;:::-;:46;;:71;;;;:::i;:::-;11731:78;;;11582:235;;;:::o;1949:22::-;;;;;;;;;;;;;:::o;8401:37::-;;;;:::o;8910:176::-;2345:7;;;;;;;;;;;2331:21;;:10;:21;;;2323:43;;;;;;;;;;;;;;;;;;;;;;8999:34:::1;9026:6;8999:22;;:26;;:34;;;;:::i;:::-;8974:22;:59;;;;9044:34;9062:7;::::0;::::1;;;;;;;;;9071:6;9044:17;:34::i;:::-;8910:176:::0;:::o;10443:414::-;10480:22;10505:31;10525:10;10505:19;:31::i;:::-;10480:56;;10547:45;10565:10;10577:14;10547:17;:45::i;:::-;10633:47;10665:14;10633:15;:27;10649:10;10633:27;;;;;;;;;;;;;;;;:31;;:47;;;;:::i;:::-;10603:15;:27;10619:10;10603:27;;;;;;;;;;;;;;;:77;;;;10716:10;10696:153;;;10741:14;:26;10756:10;10741:26;;;;;;;;;;;;;;;;10782:15;:27;10798:10;10782:27;;;;;;;;;;;;;;;;10824:14;10696:153;;;;;;;;;;;;;;;;;10443:414;:::o;2799:230::-;2867:11;;;;;;;;;;;2853:25;;:10;:25;;;2845:51;;;;;;;;;;;;;;;;;;;;;;2942:11;;;;;;;;;;;2912:42;;2933:7;;;;;;;;;;;2912:42;;;;;;;;;;;;2975:11;;;;;;;;;;;2965:7;;:21;;;;;;;;;;;;;;;;;;3019:1;2997:11;;:24;;;;;;;;;;;;;;;;;;2799:230::o;10906:138::-;10969:4;11012:16;:24;11029:6;11012:24;;;;;;;;;;;;;;;;10993:15;:43;;10986:50;;10906:138;;;:::o;11187:125::-;11254:7;11281:15;:23;11297:6;11281:23;;;;;;;;;;;;;;;;11274:30;;11187:125;;;:::o;11052:127::-;11120:7;11147:16;:24;11164:6;11147:24;;;;;;;;;;;;;;;;11140:31;;11052:127;;;:::o;1978:26::-;;;;;;;;;;;;;:::o;9140:890::-;2345:7;;;;;;;;;;;2331:21;;:10;:21;;;2323:43;;;;;;;;;;;;;;;;;;;;;;9354:10:::1;;:17;;9333:10;;:17;;:38;9325:79;;;;;;;;;;;;;;;;;;;;;;9444:9;;:16;;9423:10;;:17;;:37;9415:78;;;;;;;;;;;;;;;;;;;;;;9533:12;;:19;;9512:10;;:17;;:40;9504:81;;;;;;;;;;;;;;;;;;;;;;9596:14;9613:1:::0;9596:18:::1;;9630:9;9642:1:::0;9630:13:::1;;9625:328;9649:10;;:17;;9645:1;:21;9625:328;;;9720:48;9754:10;;9765:1;9754:13;;;;;;;;;;;;;9720:14;:29;9735:10;;9746:1;9735:13;;;;;;;;;;;;;;;;;;;;;;9720:29;;;;;;;;;;;;;;;;:33;;:48;;;;:::i;:::-;9688:14;:29;9703:10;;9714:1;9703:13;;;;;;;;;;;;;;;;;;;;;;9688:29;;;;;;;;;;;;;;;:80;;;;9817:9;;9827:1;9817:12;;;;;;;;;;;;;9783:16;:31;9800:10;;9811:1;9800:13;;;;;;;;;;;;;;;;;;;;;;9783:31;;;;;;;;;;;;;;;:46;;;;9877:12;;9890:1;9877:15;;;;;;;;;;;;;9844;:30;9860:10;;9871:1;9860:13;;;;;;;;;;;;;;;;;;;;;;9844:30;;;;;;;;;;;;;;;:48;;;;9916:25;9927:10;;9938:1;9927:13;;;;;;;;;;;;;9916:6;:10;;:25;;;;:::i;:::-;9907:34;;9668:3;;;;;9625:328;;;;9988:34;10015:6;9988:22;;:26;;:34;;;;:::i;:::-;9963:22;:59;;;;2377:1;9140:890:::0;;;;;;;;:::o;8728:174::-;2345:7;;;;;;;;;;;2331:21;;:10;:21;;;2323:43;;;;;;;;;;;;;;;;;;;;;;8791:33:::1;8808:7;::::0;::::1;;;;;;;;;8817:6;8791:16;:33::i;:::-;8860:34;8887:6;8860:22;;:26;;:34;;;;:::i;:::-;8835:22;:59;;;;8728:174:::0;:::o;12067:534::-;12150:7;12186:16;:24;12203:6;12186:24;;;;;;;;;;;;;;;;12174:9;:36;12170:91;;;1379:6;12227:22;;;;12170:91;12271:16;12290:39;12304:16;:24;12321:6;12304:24;;;;;;;;;;;;;;;;12290:9;:13;;:39;;;;:::i;:::-;12271:58;;12355:15;:23;12371:6;12355:23;;;;;;;;;;;;;;;;12344:8;:34;12340:254;;;12395:21;12419:37;12447:8;12419:15;:23;12435:6;12419:23;;;;;;;;;;;;;;;;:27;;:37;;;;:::i;:::-;12395:61;;12478:63;12517:15;:23;12533:6;12517:23;;;;;;;;;;;;;;;;12478:34;12498:13;1379:6;12478:19;;:34;;;;:::i;:::-;:38;;:63;;;;:::i;:::-;12471:70;;;;;;12340:254;12581:1;12574:8;;;12067:534;;;;;:::o;10038:350::-;2345:7;;;;;;;;;;;2331:21;;:10;:21;;;2323:43;;;;;;;;;;;;;;;;;;;;;;10125:103:::1;10194:15;:23;10210:6;10194:23;;;;;;;;;;;;;;;;10125:50;10152:14;:22;10167:6;10152:22;;;;;;;;;;;;;;;;10125;;:26;;:50;;;;:::i;:::-;:54;;:103;;;;:::i;:::-;10100:22;:128;;;;10264:1;10239:14;:22;10254:6;10239:22;;;;;;;;;;;;;;;:26;;;;10302:1;10276:15;:23;10292:6;10276:23;;;;;;;;;;;;;;;:27;;;;10341:1;10314:16;:24;10331:6;10314:24;;;;;;;;;;;;;;;:28;;;;10379:1;10353:15;:23;10369:6;10353:23;;;;;;;;;;;;;;;:27;;;;10038:350:::0;:::o;11450:124::-;11516:7;11543:15;:23;11559:6;11543:23;;;;;;;;;;;;;;;;11536:30;;11450:124;;;:::o;11320:122::-;11385:7;11412:14;:22;11427:6;11412:22;;;;;;;;;;;;;;;;11405:29;;11320:122;;;:::o;2567:224::-;2345:7;;;;;;;;;;;2331:21;;:10;:21;;;2323:43;;;;;;;;;;;;;;;;;;;;;;2670:1:::1;2650:22;;:8;:22;;;;2642:48;;;;;;;;;;;;;;;;;;;;;;2741:8;2706:44;;2732:7;::::0;::::1;;;;;;;;;2706:44;;;;;;;;;;;;2775:8;2761:11;;:22;;;;;;;;;;;;;;;;;;2567:224:::0;:::o;1394:117::-;1457:7;1379:6;1484:13;1495:1;1484:6;:10;;:13;;;;:::i;:::-;:19;;;;;;1477:26;;1394:117;;;;:::o;766:137::-;824:7;857:1;852;:6;;844:28;;;;;;;;;;;;;;;;;;;;;;894:1;890;:5;883:12;;766:137;;;;:::o;12814:123::-;12889:40;12918:2;12922:6;12896:7;;;;;;;;;;;12889:28;;;;:40;;;;;:::i;:::-;12814:123;;:::o;911:161::-;969:7;989:9;1005:1;1001;:5;989:17;;1030:1;1025;:6;;1017:28;;;;;;;;;;;;;;;;;;;;;;1063:1;1056:8;;;911:161;;;;:::o;12661:145::-;12737:61;12770:4;12784;12791:6;12744:7;;;;;;;;;;;12737:32;;;;:61;;;;;;:::i;:::-;12661:145;;:::o;87:226::-;145:7;174:1;169;:6;165:47;;;199:1;192:8;;;;165:47;224:9;240:1;236;:5;224:17;;269:1;264;260;:5;;;;;;:10;252:32;;;;;;;;;;;;;;;;;;;;;;304:1;297:8;;;87:226;;;;;:::o;321:141::-;379:7;411:1;407;:5;399:32;;;;;;;;;;;;;;;;;;;;;;453:1;449;:5;;;;;;442:12;;321:141;;;;:::o;5401:211::-;5518:86;5538:5;5568:23;;;5593:2;5597:5;5545:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5518:19;:86::i;:::-;5401:211;;;:::o;5620:285::-;5764:133;5798:5;5841:27;;;5870:4;5876:2;5880:5;5818:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5764:19;:133::i;:::-;5620:285;;;;:::o;6974:1046::-;7634:12;7648:23;7683:5;7675:19;;7695:4;7675:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7633:67;;;;7719:7;7711:52;;;;;;;;;;;;;;;;;;;;;;7800:1;7780:10;:17;:21;7776:237;;;7935:10;7924:30;;;;;;;;;;;;;;7916:85;;;;;;;;;;;;;;;;;;;;;;7776:237;6974:1046;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;160:352;;;290:3;283:4;275:6;271:17;267:27;257:2;;308:1;305;298:12;257:2;341:6;328:20;318:30;;368:18;360:6;357:30;354:2;;;400:1;397;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;477:4;469:6;465:17;455:8;451:32;448:41;445:2;;;502:1;499;492:12;445:2;250:262;;;;;;538:352;;;668:3;661:4;653:6;649:17;645:27;635:2;;686:1;683;676:12;635:2;719:6;706:20;696:30;;746:18;738:6;735:30;732:2;;;778:1;775;768:12;732:2;812:4;804:6;800:17;788:29;;863:3;855:4;847:6;843:17;833:8;829:32;826:41;823:2;;;880:1;877;870:12;823:2;628:262;;;;;;898:128;;979:6;973:13;964:22;;991:30;1015:5;991:30;;;958:68;;;;;1033:130;;1113:6;1100:20;1091:29;;1125:33;1152:5;1125:33;;;1085:78;;;;;1170:241;;1274:2;1262:9;1253:7;1249:23;1245:32;1242:2;;;1290:1;1287;1280:12;1242:2;1325:1;1342:53;1387:7;1378:6;1367:9;1363:22;1342:53;;;1332:63;;1304:97;1236:175;;;;;1418:1241;;;;;;;;;1713:3;1701:9;1692:7;1688:23;1684:33;1681:2;;;1730:1;1727;1720:12;1681:2;1793:1;1782:9;1778:17;1765:31;1816:18;1808:6;1805:30;1802:2;;;1848:1;1845;1838:12;1802:2;1876:80;1948:7;1939:6;1928:9;1924:22;1876:80;;;1866:90;;;;1744:218;2021:2;2010:9;2006:18;1993:32;2045:18;2037:6;2034:30;2031:2;;;2077:1;2074;2067:12;2031:2;2105:80;2177:7;2168:6;2157:9;2153:22;2105:80;;;2095:90;;;;1972:219;2250:2;2239:9;2235:18;2222:32;2274:18;2266:6;2263:30;2260:2;;;2306:1;2303;2296:12;2260:2;2334:80;2406:7;2397:6;2386:9;2382:22;2334:80;;;2324:90;;;;2201:219;2479:2;2468:9;2464:18;2451:32;2503:18;2495:6;2492:30;2489:2;;;2535:1;2532;2525:12;2489:2;2563:80;2635:7;2626:6;2615:9;2611:22;2563:80;;;2553:90;;;;2430:219;1675:984;;;;;;;;;;;;2666:257;;2778:2;2766:9;2757:7;2753:23;2749:32;2746:2;;;2794:1;2791;2784:12;2746:2;2829:1;2846:61;2899:7;2890:6;2879:9;2875:22;2846:61;;;2836:71;;2808:105;2740:183;;;;;2930:241;;3034:2;3022:9;3013:7;3009:23;3005:32;3002:2;;;3050:1;3047;3040:12;3002:2;3085:1;3102:53;3147:7;3138:6;3127:9;3123:22;3102:53;;;3092:63;;3064:97;2996:175;;;;;3178:366;;;3299:2;3287:9;3278:7;3274:23;3270:32;3267:2;;;3315:1;3312;3305:12;3267:2;3350:1;3367:53;3412:7;3403:6;3392:9;3388:22;3367:53;;;3357:63;;3329:97;3457:2;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;;;3465:63;;3436:98;3261:283;;;;;;3551:113;3634:24;3652:5;3634:24;;;3629:3;3622:37;3616:48;;;3671:104;3748:21;3763:5;3748:21;;;3743:3;3736:34;3730:45;;;3782:356;;3910:38;3942:5;3910:38;;;3960:88;4041:6;4036:3;3960:88;;;3953:95;;4053:52;4098:6;4093:3;4086:4;4079:5;4075:16;4053:52;;;4126:6;4121:3;4117:16;4110:23;;3890:248;;;;;;4146:313;;4306:67;4370:2;4365:3;4306:67;;;4299:74;;4406:15;4402:1;4397:3;4393:11;4386:36;4450:2;4445:3;4441:12;4434:19;;4292:167;;;;4468:332;;4628:67;4692:2;4687:3;4628:67;;;4621:74;;4728:34;4724:1;4719:3;4715:11;4708:55;4791:2;4786:3;4782:12;4775:19;;4614:186;;;;4809:314;;4969:67;5033:2;5028:3;4969:67;;;4962:74;;5069:16;5065:1;5060:3;5056:11;5049:37;5114:2;5109:3;5105:12;5098:19;;4955:168;;;;5132:308;;5292:66;5356:1;5351:3;5292:66;;;5285:73;;5391:11;5387:1;5382:3;5378:11;5371:32;5431:2;5426:3;5422:12;5415:19;;5278:162;;;;5449:313;;5609:67;5673:2;5668:3;5609:67;;;5602:74;;5709:15;5705:1;5700:3;5696:11;5689:36;5753:2;5748:3;5744:12;5737:19;;5595:167;;;;5771:308;;5931:66;5995:1;5990:3;5931:66;;;5924:73;;6030:11;6026:1;6021:3;6017:11;6010:32;6070:2;6065:3;6061:12;6054:19;;5917:162;;;;6088:308;;6248:66;6312:1;6307:3;6248:66;;;6241:73;;6347:11;6343:1;6338:3;6334:11;6327:32;6387:2;6382:3;6378:12;6371:19;;6234:162;;;;6405:379;;6565:67;6629:2;6624:3;6565:67;;;6558:74;;6665:34;6661:1;6656:3;6652:11;6645:55;6734:12;6729:2;6724:3;6720:12;6713:34;6775:2;6770:3;6766:12;6759:19;;6551:233;;;;6793:308;;6953:66;7017:1;7012:3;6953:66;;;6946:73;;7052:11;7048:1;7043:3;7039:11;7032:32;7092:2;7087:3;7083:12;7076:19;;6939:162;;;;7110:328;;7270:67;7334:2;7329:3;7270:67;;;7263:74;;7370:30;7366:1;7361:3;7357:11;7350:51;7429:2;7424:3;7420:12;7413:19;;7256:182;;;;7446:113;7529:24;7547:5;7529:24;;;7524:3;7517:37;7511:48;;;7566:271;;7719:93;7808:3;7799:6;7719:93;;;7712:100;;7829:3;7822:10;;7700:137;;;;;7844:222;;7971:2;7960:9;7956:18;7948:26;;7985:71;8053:1;8042:9;8038:17;8029:6;7985:71;;;7942:124;;;;;8073:444;;8256:2;8245:9;8241:18;8233:26;;8270:71;8338:1;8327:9;8323:17;8314:6;8270:71;;;8352:72;8420:2;8409:9;8405:18;8396:6;8352:72;;;8435;8503:2;8492:9;8488:18;8479:6;8435:72;;;8227:290;;;;;;;8524:333;;8679:2;8668:9;8664:18;8656:26;;8693:71;8761:1;8750:9;8746:17;8737:6;8693:71;;;8775:72;8843:2;8832:9;8828:18;8819:6;8775:72;;;8650:207;;;;;;8864:210;;8985:2;8974:9;8970:18;8962:26;;8999:65;9061:1;9050:9;9046:17;9037:6;8999:65;;;8956:118;;;;;9081:416;;9281:2;9270:9;9266:18;9258:26;;9331:9;9325:4;9321:20;9317:1;9306:9;9302:17;9295:47;9356:131;9482:4;9356:131;;;9348:139;;9252:245;;;;9504:416;;9704:2;9693:9;9689:18;9681:26;;9754:9;9748:4;9744:20;9740:1;9729:9;9725:17;9718:47;9779:131;9905:4;9779:131;;;9771:139;;9675:245;;;;9927:416;;10127:2;10116:9;10112:18;10104:26;;10177:9;10171:4;10167:20;10163:1;10152:9;10148:17;10141:47;10202:131;10328:4;10202:131;;;10194:139;;10098:245;;;;10350:416;;10550:2;10539:9;10535:18;10527:26;;10600:9;10594:4;10590:20;10586:1;10575:9;10571:17;10564:47;10625:131;10751:4;10625:131;;;10617:139;;10521:245;;;;10773:416;;10973:2;10962:9;10958:18;10950:26;;11023:9;11017:4;11013:20;11009:1;10998:9;10994:17;10987:47;11048:131;11174:4;11048:131;;;11040:139;;10944:245;;;;11196:416;;11396:2;11385:9;11381:18;11373:26;;11446:9;11440:4;11436:20;11432:1;11421:9;11417:17;11410:47;11471:131;11597:4;11471:131;;;11463:139;;11367:245;;;;11619:416;;11819:2;11808:9;11804:18;11796:26;;11869:9;11863:4;11859:20;11855:1;11844:9;11840:17;11833:47;11894:131;12020:4;11894:131;;;11886:139;;11790:245;;;;12042:416;;12242:2;12231:9;12227:18;12219:26;;12292:9;12286:4;12282:20;12278:1;12267:9;12263:17;12256:47;12317:131;12443:4;12317:131;;;12309:139;;12213:245;;;;12465:416;;12665:2;12654:9;12650:18;12642:26;;12715:9;12709:4;12705:20;12701:1;12690:9;12686:17;12679:47;12740:131;12866:4;12740:131;;;12732:139;;12636:245;;;;12888:416;;13088:2;13077:9;13073:18;13065:26;;13138:9;13132:4;13128:20;13124:1;13113:9;13109:17;13102:47;13163:131;13289:4;13163:131;;;13155:139;;13059:245;;;;13311:222;;13438:2;13427:9;13423:18;13415:26;;13452:71;13520:1;13509:9;13505:17;13496:6;13452:71;;;13409:124;;;;;13540:444;;13723:2;13712:9;13708:18;13700:26;;13737:71;13805:1;13794:9;13790:17;13781:6;13737:71;;;13819:72;13887:2;13876:9;13872:18;13863:6;13819:72;;;13902;13970:2;13959:9;13955:18;13946:6;13902:72;;;13694:290;;;;;;;13991:121;;14084:5;14078:12;14068:22;;14049:63;;;;14120:144;;14255:3;14240:18;;14233:31;;;;;14273:163;;14388:6;14383:3;14376:19;14425:4;14420:3;14416:14;14401:29;;14369:67;;;;;14444:91;;14506:24;14524:5;14506:24;;;14495:35;;14489:46;;;;14542:85;;14615:5;14608:13;14601:21;14590:32;;14584:43;;;;14634:121;;14707:42;14700:5;14696:54;14685:65;;14679:76;;;;14762:72;;14824:5;14813:16;;14807:27;;;;14842:268;14907:1;14914:101;14928:6;14925:1;14922:13;14914:101;;;15004:1;14999:3;14995:11;14989:18;14985:1;14980:3;14976:11;14969:39;14950:2;14947:1;14943:10;14938:15;;14914:101;;;15030:6;15027:1;15024:13;15021:2;;;15095:1;15086:6;15081:3;15077:16;15070:27;15021:2;14891:219;;;;;15118:117;15187:24;15205:5;15187:24;;;15180:5;15177:35;15167:2;;15226:1;15223;15216:12;15167:2;15161:74;;15242:111;15308:21;15323:5;15308:21;;;15301:5;15298:32;15288:2;;15344:1;15341;15334:12;15288:2;15282:71;;15360:117;15429:24;15447:5;15429:24;;;15422:5;15419:35;15409:2;;15468:1;15465;15458:12;15409:2;15403:74;

Swarm Source

ipfs://2ae27c172fb09229013338840d051a328f8d83aa1cefd81c1c9b9b078027372e
Loading...
Loading
[ 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.