ETH Price: $3,128.06 (+0.41%)
Gas: 3 Gwei

Token

SharedStake Governance Token (SGT)
 

Overview

Max Total Supply

10,000,000 SGT

Holders

1,184 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: SGT 4
Balance
173,573.360991475309148307 SGT

Value
$0.00
0x3d07f6e1627da96b8836190de64c1aed70e3fc55
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

SharedStake Governance Token contract has migrated to 0x24c19f7101c1731b85f1127eaa0407732e36ecdd.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SGT

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-02-02
*/

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

/** 
                           
SharedStake Governance Token

**/

contract SGT {
    /// @notice EIP-20 token name for this token
    string public constant name = "SharedStake Governance Token";

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

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

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 10000000e18; // 10,000,000 SGT

    /// @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 SGT 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, "SGT::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, "SGT::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), "SGT::permit: invalid signature");
        require(signatory == owner, "SGT::permit: unauthorized");
        require(now <= deadline, "SGT::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, "SGT::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, "SGT::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "SGT::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), "SGT::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "SGT::delegateBySig: invalid nonce");
        require(now <= expiry, "SGT::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, "SGT::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), "SGT::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "SGT::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "SGT::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "SGT::_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, "SGT::_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, "SGT::_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, "SGT::_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"}]

60806040523480156200001157600080fd5b5060405162002440380380620024408339810160408190526200003491620000bc565b6001600160a01b03811660008181526001602052604080822080546001600160601b0319166a084595161401484a00000090811790915590517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200009a91620000f6565b60405180910390a35062000135565b8051620000b6816200011b565b92915050565b600060208284031215620000cf57600080fd5b6000620000dd8484620000a9565b949350505050565b620000f08162000118565b82525050565b60208101620000b68284620000e5565b60006001600160a01b038216620000b6565b90565b620001268162000106565b81146200013257600080fd5b50565b6122fb80620001456000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611f3e565b60405180910390f35b6101ad6101a83660046117de565b61036b565b6040516101919190611e3a565b6101c2610445565b6040516101919190611e48565b6101c2610454565b6101ad6101e53660046116f5565b61046b565b6101c26105d7565b6101fa6105e3565b6040516101919190612008565b61021a610215366004611695565b6105e8565b6040516101919190611e2c565b61023a610235366004611695565b610603565b005b61024f61024a366004611695565b610610565b6040516101919190611fdf565b6101c261026a366004611695565b610628565b61028261027d3660046117de565b610651565b6040516101919190612024565b6101c261029d366004611695565b61087a565b61018461088c565b6101ad6102b83660046117de565b6108c5565b6102826102cb366004611695565b610901565b61023a6102de36600461180e565b610977565b61023a6102f1366004611742565b610b94565b6101c26103043660046116bb565b610ebc565b6101c2610ef3565b61032461031f366004611895565b610eff565b604051610191929190611fed565b6040518060400160405280601c81526020017f5368617265645374616b6520476f7665726e616e636520546f6b656e0000000081525081565b60008060001983141561038157506000196103a6565b6103a38360405180606001604052806024815260200161215060249139610f3a565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610431908590612016565b60405180910390a360019150505b92915050565b6a084595161401484a00000081565b60405161046090611e16565b604051809103902081565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602480845291936bffffffffffffffffffffffff9091169285926104c6928892919061215090830139610f3a565b9050866001600160a01b0316836001600160a01b0316141580156104f857506bffffffffffffffffffffffff82811614155b156105bd57600061052283836040518060600160405280603c815260200161227d603c9139610f72565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b3908590612016565b60405180910390a3505b6105c8878783610fbb565b600193505050505b9392505050565b60405161046090611e0b565b601281565b6002602052600090815260409020546001600160a01b031681565b61060d33826111a5565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546bffffffffffffffffffffffff1690565b600043821061067b5760405162461bcd60e51b815260040161067290611f5f565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff16806106a957600091505061043f565b6001600160a01b038416600090815260036020908152604080832063ffffffff60001986018116855292529091205416831061072b576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061043f565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff1683101561076657600091505061043f565b600060001982015b8163ffffffff168163ffffffff16111561082f57600282820363ffffffff16048103610798611652565b506001600160a01b038716600090815260036020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff16918101919091529087141561080a5760200151945061043f9350505050565b805163ffffffff1687111561082157819350610828565b6001820392505b505061076e565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60056020526000908152604090205481565b6040518060400160405280600381526020017f534754000000000000000000000000000000000000000000000000000000000081525081565b6000806108ea836040518060600160405280602581526020016121a960259139610f3a565b90506108f7338583610fbb565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff168061092c5760006105d0565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b600060405161098590611e16565b60408051918290038220828201909152601c82527f5368617265645374616b6520476f7665726e616e636520546f6b656e000000006020909201919091527f1d29d98686b9ace8e3c58b98aa5282d12b66c1766bb71d0a2270049fdd640f576109ec61124c565b30604051602001610a009493929190611eee565b6040516020818303038152906040528051906020012090506000604051610a2690611e21565b604051908190038120610a41918a908a908a90602001611eb0565b60405160208183030381529060405280519060200120905060008282604051602001610a6e929190611dda565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610aab9493929190611f23565b6020604051602081039080840390855afa158015610acd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116610b1e5760405162461bcd60e51b815260040161067290611f9f565b6001600160a01b03811660009081526005602052604090208054600181019091558914610b5d5760405162461bcd60e51b815260040161067290611fbf565b87421115610b7d5760405162461bcd60e51b815260040161067290611faf565b610b87818b6111a5565b505050505b505050505050565b6000600019861415610ba95750600019610bce565b610bcb8660405180606001604052806023815260200161212d60239139610f3a565b90505b6000604051610bdc90611e16565b60408051918290038220828201909152601c82527f5368617265645374616b6520476f7665726e616e636520546f6b656e000000006020909201919091527f1d29d98686b9ace8e3c58b98aa5282d12b66c1766bb71d0a2270049fdd640f57610c4361124c565b30604051602001610c579493929190611eee565b6040516020818303038152906040528051906020012090506000604051610c7d90611e0b565b604080519182900382206001600160a01b038d16600090815260056020908152929020805460018101909155610cbf9391928e928e928e9290918e9101611e56565b60405160208183030381529060405280519060200120905060008282604051602001610cec929190611dda565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610d299493929190611f23565b6020604051602081039080840390855afa158015610d4b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116610d9c5760405162461bcd60e51b815260040161067290611f8f565b8b6001600160a01b0316816001600160a01b031614610dcd5760405162461bcd60e51b815260040161067290611f6f565b88421115610ded5760405162461bcd60e51b815260040161067290611f4f565b846000808e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610ea69190612016565b60405180910390a3505050505050505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161046090611e21565b600360209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b6000816c010000000000000000000000008410610f6a5760405162461bcd60e51b81526004016106729190611f3e565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290610fb35760405162461bcd60e51b81526004016106729190611f3e565b505050900390565b6001600160a01b038316610fe15760405162461bcd60e51b815260040161067290611fcf565b6001600160a01b0382166110075760405162461bcd60e51b815260040161067290611f7f565b6001600160a01b038316600090815260016020908152604091829020548251606081019093526035808452611057936bffffffffffffffffffffffff909216928592919061217490830139610f72565b6001600160a01b03848116600090815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff96871617905592861682529082902054825160608101909352602f8084526110dc949190911692859290919061224e90830139611250565b6001600160a01b038381166000818152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611166908590612016565b60405180910390a36001600160a01b038084166000908152600260205260408082205485841683529120546111a092918216911683611291565b505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611246828483611291565b50505050565b4690565b6000838301826bffffffffffffffffffffffff80871690831610156112885760405162461bcd60e51b81526004016106729190611f3e565b50949350505050565b816001600160a01b0316836001600160a01b0316141580156112c157506000816bffffffffffffffffffffffff16115b156111a0576001600160a01b0383161561137f576001600160a01b03831660009081526004602052604081205463ffffffff169081611301576000611346565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b9050600061136d82856040518060600160405280602781526020016121ce60279139610f72565b905061137b86848484611430565b5050505b6001600160a01b038216156111a0576001600160a01b03821660009081526004602052604081205463ffffffff1690816113ba5760006113ff565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611426828560405180606001604052806026815260200161222860269139611250565b9050610b8c858484845b6000611454436040518060600160405280603381526020016121f56033913961162a565b905060008463ffffffff1611801561149d57506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611511576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff8516021790556115e0565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff80861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161161b929190612032565b60405180910390a25050505050565b6000816401000000008410610f6a5760405162461bcd60e51b81526004016106729190611f3e565b604080518082019091526000808252602082015290565b803561043f816120fd565b803561043f81612111565b803561043f8161211a565b803561043f81612123565b6000602082840312156116a757600080fd5b60006116b38484611669565b949350505050565b600080604083850312156116ce57600080fd5b60006116da8585611669565b92505060206116eb85828601611669565b9150509250929050565b60008060006060848603121561170a57600080fd5b60006117168686611669565b935050602061172786828701611669565b925050604061173886828701611674565b9150509250925092565b600080600080600080600060e0888a03121561175d57600080fd5b60006117698a8a611669565b975050602061177a8a828b01611669565b965050604061178b8a828b01611674565b955050606061179c8a828b01611674565b94505060806117ad8a828b0161168a565b93505060a06117be8a828b01611674565b92505060c06117cf8a828b01611674565b91505092959891949750929550565b600080604083850312156117f157600080fd5b60006117fd8585611669565b92505060206116eb85828601611674565b60008060008060008060c0878903121561182757600080fd5b60006118338989611669565b965050602061184489828a01611674565b955050604061185589828a01611674565b945050606061186689828a0161168a565b935050608061187789828a01611674565b92505060a061188889828a01611674565b9150509295509295509295565b600080604083850312156118a857600080fd5b60006118b48585611669565b92505060206116eb8582860161167f565b6118ce8161205f565b82525050565b6118ce8161206a565b6118ce8161206f565b6118ce6118f28261206f565b61206f565b60006119028261204d565b61190c8185612051565b935061191c8185602086016120a9565b611925816120d5565b9093019392505050565b600061193c601e83612051565b7f5347543a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611975602683612051565b7f5347543a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006119d460028361205a565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611a0d601983612051565b7f5347543a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b6000611a4660528361205a565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b6000611acb60438361205a565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611b50603983612051565b7f5347543a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611baf601e83612051565b7f5347543a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b6000611be8602583612051565b7f5347543a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611c47602583612051565b7f5347543a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611ca6602183612051565b7f5347543a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d05603b83612051565b7f5347543a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611d64603a8361205a565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6118ce8161207e565b6118ce81612087565b6118ce8161209e565b6118ce8161208d565b6000611de5826119c7565b9150611df182856118e6565b602082019150611e0182846118e6565b5060200192915050565b600061043f82611a39565b600061043f82611abe565b600061043f82611d57565b6020810161043f82846118c5565b6020810161043f82846118d4565b6020810161043f82846118dd565b60c08101611e6482896118dd565b611e7160208301886118c5565b611e7e60408301876118c5565b611e8b60608301866118dd565b611e9860808301856118dd565b611ea560a08301846118dd565b979650505050505050565b60808101611ebe82876118dd565b611ecb60208301866118c5565b611ed860408301856118dd565b611ee560608301846118dd565b95945050505050565b60808101611efc82876118dd565b611f0960208301866118dd565b611f1660408301856118dd565b611ee560608301846118c5565b60808101611f3182876118dd565b611ecb6020830186611dbf565b602080825281016105d081846118f7565b6020808252810161043f8161192f565b6020808252810161043f81611968565b6020808252810161043f81611a00565b6020808252810161043f81611b43565b6020808252810161043f81611ba2565b6020808252810161043f81611bdb565b6020808252810161043f81611c3a565b6020808252810161043f81611c99565b6020808252810161043f81611cf8565b6020810161043f8284611db6565b60408101611ffb8285611db6565b6105d06020830184611dd1565b6020810161043f8284611dbf565b6020810161043f8284611dc8565b6020810161043f8284611dd1565b604081016120408285611dc8565b6105d06020830184611dc8565b5190565b90815260200190565b919050565b600061043f82612072565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061043f8261208d565b60005b838110156120c45781810151838201526020016120ac565b838111156112465750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6121068161205f565b811461060d57600080fd5b6121068161206f565b6121068161207e565b6121068161208756fe5347543a3a7065726d69743a20616d6f756e74206578636565647320393620626974735347543a3a617070726f76653a20616d6f756e74206578636565647320393620626974735347543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655347543a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735347543a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735347543a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735347543a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735347543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735347543a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a365627a7a723158205fe3190f9025ab282544b7f1c6ca45ceb7b262ec6ccc497294250f05f30256256c6578706572696d656e74616cf564736f6c6343000511004000000000000000000000000018691f528659d0abd08f79498dcc7b6fbdc1e91d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611f3e565b60405180910390f35b6101ad6101a83660046117de565b61036b565b6040516101919190611e3a565b6101c2610445565b6040516101919190611e48565b6101c2610454565b6101ad6101e53660046116f5565b61046b565b6101c26105d7565b6101fa6105e3565b6040516101919190612008565b61021a610215366004611695565b6105e8565b6040516101919190611e2c565b61023a610235366004611695565b610603565b005b61024f61024a366004611695565b610610565b6040516101919190611fdf565b6101c261026a366004611695565b610628565b61028261027d3660046117de565b610651565b6040516101919190612024565b6101c261029d366004611695565b61087a565b61018461088c565b6101ad6102b83660046117de565b6108c5565b6102826102cb366004611695565b610901565b61023a6102de36600461180e565b610977565b61023a6102f1366004611742565b610b94565b6101c26103043660046116bb565b610ebc565b6101c2610ef3565b61032461031f366004611895565b610eff565b604051610191929190611fed565b6040518060400160405280601c81526020017f5368617265645374616b6520476f7665726e616e636520546f6b656e0000000081525081565b60008060001983141561038157506000196103a6565b6103a38360405180606001604052806024815260200161215060249139610f3a565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610431908590612016565b60405180910390a360019150505b92915050565b6a084595161401484a00000081565b60405161046090611e16565b604051809103902081565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602480845291936bffffffffffffffffffffffff9091169285926104c6928892919061215090830139610f3a565b9050866001600160a01b0316836001600160a01b0316141580156104f857506bffffffffffffffffffffffff82811614155b156105bd57600061052283836040518060600160405280603c815260200161227d603c9139610f72565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b3908590612016565b60405180910390a3505b6105c8878783610fbb565b600193505050505b9392505050565b60405161046090611e0b565b601281565b6002602052600090815260409020546001600160a01b031681565b61060d33826111a5565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546bffffffffffffffffffffffff1690565b600043821061067b5760405162461bcd60e51b815260040161067290611f5f565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff16806106a957600091505061043f565b6001600160a01b038416600090815260036020908152604080832063ffffffff60001986018116855292529091205416831061072b576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061043f565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff1683101561076657600091505061043f565b600060001982015b8163ffffffff168163ffffffff16111561082f57600282820363ffffffff16048103610798611652565b506001600160a01b038716600090815260036020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff16918101919091529087141561080a5760200151945061043f9350505050565b805163ffffffff1687111561082157819350610828565b6001820392505b505061076e565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60056020526000908152604090205481565b6040518060400160405280600381526020017f534754000000000000000000000000000000000000000000000000000000000081525081565b6000806108ea836040518060600160405280602581526020016121a960259139610f3a565b90506108f7338583610fbb565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff168061092c5760006105d0565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b600060405161098590611e16565b60408051918290038220828201909152601c82527f5368617265645374616b6520476f7665726e616e636520546f6b656e000000006020909201919091527f1d29d98686b9ace8e3c58b98aa5282d12b66c1766bb71d0a2270049fdd640f576109ec61124c565b30604051602001610a009493929190611eee565b6040516020818303038152906040528051906020012090506000604051610a2690611e21565b604051908190038120610a41918a908a908a90602001611eb0565b60405160208183030381529060405280519060200120905060008282604051602001610a6e929190611dda565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610aab9493929190611f23565b6020604051602081039080840390855afa158015610acd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116610b1e5760405162461bcd60e51b815260040161067290611f9f565b6001600160a01b03811660009081526005602052604090208054600181019091558914610b5d5760405162461bcd60e51b815260040161067290611fbf565b87421115610b7d5760405162461bcd60e51b815260040161067290611faf565b610b87818b6111a5565b505050505b505050505050565b6000600019861415610ba95750600019610bce565b610bcb8660405180606001604052806023815260200161212d60239139610f3a565b90505b6000604051610bdc90611e16565b60408051918290038220828201909152601c82527f5368617265645374616b6520476f7665726e616e636520546f6b656e000000006020909201919091527f1d29d98686b9ace8e3c58b98aa5282d12b66c1766bb71d0a2270049fdd640f57610c4361124c565b30604051602001610c579493929190611eee565b6040516020818303038152906040528051906020012090506000604051610c7d90611e0b565b604080519182900382206001600160a01b038d16600090815260056020908152929020805460018101909155610cbf9391928e928e928e9290918e9101611e56565b60405160208183030381529060405280519060200120905060008282604051602001610cec929190611dda565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610d299493929190611f23565b6020604051602081039080840390855afa158015610d4b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116610d9c5760405162461bcd60e51b815260040161067290611f8f565b8b6001600160a01b0316816001600160a01b031614610dcd5760405162461bcd60e51b815260040161067290611f6f565b88421115610ded5760405162461bcd60e51b815260040161067290611f4f565b846000808e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610ea69190612016565b60405180910390a3505050505050505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161046090611e21565b600360209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b6000816c010000000000000000000000008410610f6a5760405162461bcd60e51b81526004016106729190611f3e565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290610fb35760405162461bcd60e51b81526004016106729190611f3e565b505050900390565b6001600160a01b038316610fe15760405162461bcd60e51b815260040161067290611fcf565b6001600160a01b0382166110075760405162461bcd60e51b815260040161067290611f7f565b6001600160a01b038316600090815260016020908152604091829020548251606081019093526035808452611057936bffffffffffffffffffffffff909216928592919061217490830139610f72565b6001600160a01b03848116600090815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff96871617905592861682529082902054825160608101909352602f8084526110dc949190911692859290919061224e90830139611250565b6001600160a01b038381166000818152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611166908590612016565b60405180910390a36001600160a01b038084166000908152600260205260408082205485841683529120546111a092918216911683611291565b505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611246828483611291565b50505050565b4690565b6000838301826bffffffffffffffffffffffff80871690831610156112885760405162461bcd60e51b81526004016106729190611f3e565b50949350505050565b816001600160a01b0316836001600160a01b0316141580156112c157506000816bffffffffffffffffffffffff16115b156111a0576001600160a01b0383161561137f576001600160a01b03831660009081526004602052604081205463ffffffff169081611301576000611346565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b9050600061136d82856040518060600160405280602781526020016121ce60279139610f72565b905061137b86848484611430565b5050505b6001600160a01b038216156111a0576001600160a01b03821660009081526004602052604081205463ffffffff1690816113ba5760006113ff565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611426828560405180606001604052806026815260200161222860269139611250565b9050610b8c858484845b6000611454436040518060600160405280603381526020016121f56033913961162a565b905060008463ffffffff1611801561149d57506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611511576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff8516021790556115e0565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff80861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161161b929190612032565b60405180910390a25050505050565b6000816401000000008410610f6a5760405162461bcd60e51b81526004016106729190611f3e565b604080518082019091526000808252602082015290565b803561043f816120fd565b803561043f81612111565b803561043f8161211a565b803561043f81612123565b6000602082840312156116a757600080fd5b60006116b38484611669565b949350505050565b600080604083850312156116ce57600080fd5b60006116da8585611669565b92505060206116eb85828601611669565b9150509250929050565b60008060006060848603121561170a57600080fd5b60006117168686611669565b935050602061172786828701611669565b925050604061173886828701611674565b9150509250925092565b600080600080600080600060e0888a03121561175d57600080fd5b60006117698a8a611669565b975050602061177a8a828b01611669565b965050604061178b8a828b01611674565b955050606061179c8a828b01611674565b94505060806117ad8a828b0161168a565b93505060a06117be8a828b01611674565b92505060c06117cf8a828b01611674565b91505092959891949750929550565b600080604083850312156117f157600080fd5b60006117fd8585611669565b92505060206116eb85828601611674565b60008060008060008060c0878903121561182757600080fd5b60006118338989611669565b965050602061184489828a01611674565b955050604061185589828a01611674565b945050606061186689828a0161168a565b935050608061187789828a01611674565b92505060a061188889828a01611674565b9150509295509295509295565b600080604083850312156118a857600080fd5b60006118b48585611669565b92505060206116eb8582860161167f565b6118ce8161205f565b82525050565b6118ce8161206a565b6118ce8161206f565b6118ce6118f28261206f565b61206f565b60006119028261204d565b61190c8185612051565b935061191c8185602086016120a9565b611925816120d5565b9093019392505050565b600061193c601e83612051565b7f5347543a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611975602683612051565b7f5347543a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006119d460028361205a565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611a0d601983612051565b7f5347543a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b6000611a4660528361205a565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b6000611acb60438361205a565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611b50603983612051565b7f5347543a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611baf601e83612051565b7f5347543a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b6000611be8602583612051565b7f5347543a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611c47602583612051565b7f5347543a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611ca6602183612051565b7f5347543a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d05603b83612051565b7f5347543a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611d64603a8361205a565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6118ce8161207e565b6118ce81612087565b6118ce8161209e565b6118ce8161208d565b6000611de5826119c7565b9150611df182856118e6565b602082019150611e0182846118e6565b5060200192915050565b600061043f82611a39565b600061043f82611abe565b600061043f82611d57565b6020810161043f82846118c5565b6020810161043f82846118d4565b6020810161043f82846118dd565b60c08101611e6482896118dd565b611e7160208301886118c5565b611e7e60408301876118c5565b611e8b60608301866118dd565b611e9860808301856118dd565b611ea560a08301846118dd565b979650505050505050565b60808101611ebe82876118dd565b611ecb60208301866118c5565b611ed860408301856118dd565b611ee560608301846118dd565b95945050505050565b60808101611efc82876118dd565b611f0960208301866118dd565b611f1660408301856118dd565b611ee560608301846118c5565b60808101611f3182876118dd565b611ecb6020830186611dbf565b602080825281016105d081846118f7565b6020808252810161043f8161192f565b6020808252810161043f81611968565b6020808252810161043f81611a00565b6020808252810161043f81611b43565b6020808252810161043f81611ba2565b6020808252810161043f81611bdb565b6020808252810161043f81611c3a565b6020808252810161043f81611c99565b6020808252810161043f81611cf8565b6020810161043f8284611db6565b60408101611ffb8285611db6565b6105d06020830184611dd1565b6020810161043f8284611dbf565b6020810161043f8284611dc8565b6020810161043f8284611dd1565b604081016120408285611dc8565b6105d06020830184611dc8565b5190565b90815260200190565b919050565b600061043f82612072565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061043f8261208d565b60005b838110156120c45781810151838201526020016120ac565b838111156112465750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6121068161205f565b811461060d57600080fd5b6121068161206f565b6121068161207e565b6121068161208756fe5347543a3a7065726d69743a20616d6f756e74206578636565647320393620626974735347543a3a617070726f76653a20616d6f756e74206578636565647320393620626974735347543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655347543a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735347543a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735347543a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735347543a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735347543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735347543a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a365627a7a723158205fe3190f9025ab282544b7f1c6ca45ceb7b262ec6ccc497294250f05f30256256c6578706572696d656e74616cf564736f6c63430005110040

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

00000000000000000000000018691f528659d0abd08f79498dcc7b6fbdc1e91d

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000018691f528659d0abd08f79498dcc7b6fbdc1e91d


Deployed Bytecode Sourcemap

137:14599:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;137:14599:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:60;;;:::i;:::-;;;;;;;;;;;;;;;;3993:418;;;;;;;;;:::i;:::-;;;;;;;;527:46;;;:::i;:::-;;;;;;;;1456:122;;;:::i;7072:670::-;;;;;;;;;:::i;1879:137::-;;;:::i;428:35::-;;;:::i;:::-;;;;;;;;906:45;;;;;;;;;:::i;:::-;;;;;;;;7890:102;;;;;;;;;:::i;:::-;;1334:49;;;;;;;;;:::i;:::-;;;;;;;;6153:108;;;;;;;;;:::i;10066:1217::-;;;;;;;;;:::i;:::-;;;;;;;;2097:39;;;;;;;;;:::i;328:37::-;;;:::i;6525:237::-;;;;;;;;;:::i;9413:222::-;;;;;;;;;:::i;8426:786::-;;;;;;;;;:::i;4906:1044::-;;;;;;;;;:::i;3379:136::-;;;;;;;;;:::i;1672:117::-;;;:::i;1195:70::-;;;;;;;;;:::i;:::-;;;;;;;;;207:60;;;;;;;;;;;;;;;;;;;:::o;3993:418::-;4061:4;4078:13;-1:-1:-1;;4106:9:0;:21;4102:172;;;-1:-1:-1;;;4102:172:0;;;4205:57;4212:9;4205:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;4196:66;;4102:172;4297:10;4286;:22;;;;;;;;;;;-1:-1:-1;;;;;4286:31:0;;;;;;;;;;;:40;;;;;;;;;;4344:37;;4286:31;;4297:10;4344:37;;;;4286:40;;4344:37;;;;;;;;;;4399:4;4392:11;;;3993:418;;;;;:::o;527:46::-;562:11;527:46;:::o;1456:122::-;1498:80;;;;;;;;;;;;;;1456:122;:::o;7072:670::-;-1:-1:-1;;;;;7236:15:0;;7154:4;7236:15;;;;;;;;;;;7189:10;7236:24;;;;;;;;;;7287:57;;;;;;;;;;;;7189:10;;7236:24;;;;;7154:4;;7287:57;;7294:9;;7287:57;;;;;;;:6;:57::i;:::-;7271:73;;7372:3;-1:-1:-1;;;;;7361:14:0;:7;-1:-1:-1;;;;;7361:14:0;;;:48;;;;-1:-1:-1;7379:30:0;;;;;;7361:48;7357:310;;;7426:19;7448:95;7454:16;7472:6;7448:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;-1:-1:-1;;;;;7558:15:0;;;:10;:15;;;;;;;;;;;:24;;;;;;;;;;;;;;:39;;;;;;;;;;7619:36;7558:39;;-1:-1:-1;7558:24:0;;7619:36;;;;7558:39;;7619:36;;;;;;;;;;7357:310;;7679:33;7695:3;7700;7705:6;7679:15;:33::i;:::-;7730:4;7723:11;;;;;7072:670;;;;;;:::o;1879:137::-;1921:95;;;;;;428:35;461:2;428:35;:::o;906:45::-;;;;;;;;;;;;-1:-1:-1;;;;;906:45:0;;:::o;7890:102::-;7952:32;7962:10;7974:9;7952;:32::i;:::-;7890:102;:::o;1334:49::-;;;;;;;;;;;;;;;:::o;6153:108::-;-1:-1:-1;;;;;6236:17:0;6212:4;6236:17;;;:8;:17;;;;;;;;;6153:108::o;10066:1217::-;10145:6;10186:12;10172:11;:26;10164:77;;;;-1:-1:-1;;;10164:77:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10276:23:0;;10254:19;10276:23;;;:14;:23;;;;;;;;10314:17;10310:58;;10355:1;10348:8;;;;;10310:58;-1:-1:-1;;;;;10428:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;10449:16:0;;10428:38;;;;;;;;;:48;;:63;-1:-1:-1;10424:147:0;;-1:-1:-1;;;;;10515:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;10536:16:0;;;;10515:38;;;;;;;;:44;;;;;;;-1:-1:-1;10508:51:0;;10424:147;-1:-1:-1;;;;;10632:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;10628:88:0;;;10703:1;10696:8;;;;;10628:88;10728:12;-1:-1:-1;;10770:16:0;;10797:428;10812:5;10804:13;;:5;:13;;;10797:428;;;10876:1;10859:13;;;10858:19;;;10850:27;;10919:20;;:::i;:::-;-1:-1:-1;;;;;;10942:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;10919:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10989:27;;10985:229;;;11044:8;;;;-1:-1:-1;11037:15:0;;-1:-1:-1;;;;11037:15:0;10985:229;11078:12;;:26;;;-1:-1:-1;11074:140:0;;;11133:6;11125:14;;11074:140;;;11197:1;11188:6;:10;11180:18;;11074:140;10797:428;;;;;-1:-1:-1;;;;;;11242:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;;;;;-1:-1:-1;;10066:1217:0;;;;:::o;2097:39::-;;;;;;;;;;;;;:::o;328:37::-;;;;;;;;;;;;;;;;;;;:::o;6525:237::-;6590:4;6607:13;6623:58;6630:9;6623:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;6607:74;;6692:40;6708:10;6720:3;6725:6;6692:15;:40::i;:::-;-1:-1:-1;6750:4:0;;6525:237;-1:-1:-1;;;6525:237:0:o;9413:222::-;-1:-1:-1;;;;;9519:23:0;;9478:6;9519:23;;;:14;:23;;;;;;;;9560:16;:67;;9626:1;9560:67;;;-1:-1:-1;;;;;9579:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;9600:16:0;;9579:38;;;;;;;;;:44;;;;;;9553:74;9413:222;-1:-1:-1;;;9413:222:0:o;8426:786::-;8542:23;1498:80;;;;;;;;;;;;;;;;8622:4;;;;;;;;;;;;;;;;;;8606:22;8630:12;:10;:12::i;:::-;8652:4;8578:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8578:80:0;;;8568:91;;;;;;8542:117;;8670:18;1718:71;;;;;;;;;;;;;;;8701:57;;8733:9;;8744:5;;8751:6;;8701:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8701:57:0;;;8691:68;;;;;;8670:89;;8770:14;8826:15;8843:10;8797:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8797:57:0;;;8787:68;;;;;;8770:85;;8866:17;8886:26;8896:6;8904:1;8907;8910;8886:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8886:26:0;;;;;;-1:-1:-1;;;;;;;8931:23:0;;8923:73;;;;-1:-1:-1;;;8923:73:0;;;;;;;;;-1:-1:-1;;;;;9024:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;9015:28;;9007:74;;;;-1:-1:-1;;;9007:74:0;;;;;;;;;9107:6;9100:3;:13;;9092:63;;;;-1:-1:-1;;;9092:63:0;;;;;;;;;9173:31;9183:9;9194;9173;:31::i;:::-;9166:38;;;;8426:786;;;;;;;:::o;4906:1044::-;5036:13;-1:-1:-1;;5064:9:0;:21;5060:171;;;-1:-1:-1;;;5060:171:0;;;5163:56;5170:9;5163:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;5154:65;;5060:171;5241:23;1498:80;;;;;;;;;;;;;;;;5321:4;;;;;;;;;;;;;;;;;;5305:22;5329:12;:10;:12::i;:::-;5351:4;5277:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5277:80:0;;;5267:91;;;;;;5241:117;;5369:18;1921:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5455:13:0;;;;;;:6;:13;;;;;;;:15;;;;;;;;5400:81;;1921:95;;5428:5;;5435:7;;5444:9;;5455:15;;5472:8;;5400:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5400:81:0;;;5390:92;;;;;;5369:113;;5493:14;5549:15;5566:10;5520:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5520:57:0;;;5510:68;;;;;;5493:85;;5589:17;5609:26;5619:6;5627:1;5630;5633;5609:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5609:26:0;;;;;;-1:-1:-1;;;;;;;5654:23:0;;5646:66;;;;-1:-1:-1;;;5646:66:0;;;;;;;;;5744:5;-1:-1:-1;;;;;5731:18:0;:9;-1:-1:-1;;;;;5731:18:0;;5723:56;;;;-1:-1:-1;;;5723:56:0;;;;;;;;;5805:8;5798:3;:15;;5790:58;;;;-1:-1:-1;;;5790:58:0;;;;;;;;;5888:6;5859:10;:17;5870:5;-1:-1:-1;;;;;5859:17:0;-1:-1:-1;;;;;5859:17:0;;;;;;;;;;;;:26;5877:7;-1:-1:-1;;;;;5859:26:0;-1:-1:-1;;;;;5859:26:0;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5926:7;-1:-1:-1;;;;;5910:32:0;5919:5;-1:-1:-1;;;;;5910:32:0;;5935:6;5910:32;;;;;;;;;;;;;;;4906:1044;;;;;;;;;;;;:::o;3379:136::-;-1:-1:-1;;;;;3479:19:0;;;3455:4;3479:19;;;;;;;;;;;:28;;;;;;;;;;;;;;;3379:136::o;1672:117::-;1718:71;;;;;;1195:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14042:161::-;14117:6;14155:12;14148:5;14144:9;;14136:32;;;;-1:-1:-1;;;14136:32:0;;;;;;;;;;-1:-1:-1;14193:1:0;;14042:161;-1:-1:-1;;14042:161:0:o;14407:165::-;14493:6;14525:1;14520:6;;:1;:6;;;;14528:12;14512:29;;;;;-1:-1:-1;;;14512:29:0;;;;;;;;;;-1:-1:-1;;;14559:5:0;;;14407:165::o;11674:610::-;-1:-1:-1;;;;;11768:17:0;;11760:89;;;;-1:-1:-1;;;11760:89:0;;;;;;;;;-1:-1:-1;;;;;11868:17:0;;11860:87;;;;-1:-1:-1;;;11860:87:0;;;;;;;;;-1:-1:-1;;;;;11982:13:0;;;;;;:8;:13;;;;;;;;;;11976:85;;;;;;;;;;;;;;11982:13;;;;;11997:6;;11976:85;;;;;;;:5;:85::i;:::-;-1:-1:-1;;;;;11960:13:0;;;;;;;:8;:13;;;;;;;;:101;;;;;;;;;;;12094:13;;;;;;;;;;12088:79;;;;;;;;;;;;;;12094:13;;;;;12109:6;;12088:79;;;;;;;;:5;:79::i;:::-;-1:-1:-1;;;;;12072:13:0;;;;;;;:8;:13;;;;;;;:95;;;;;;;;;;;;;;;;12183:26;;;;;;;;;;12202:6;;12183:26;;;;;;;;;;-1:-1:-1;;;;;12237:14:0;;;;;;;:9;:14;;;;;;;12253;;;;;;;;12222:54;;12237:14;;;;12253;12269:6;12222:14;:54::i;:::-;11674:610;;;:::o;11291:375::-;-1:-1:-1;;;;;11394:20:0;;;11368:23;11394:20;;;:9;:20;;;;;;;;;;;11451:19;;;;;;11481:20;;;;:32;;;;;;;;;;;11531:54;;11394:20;;;;;11451:19;;;;;11481:32;;11394:20;;;11531:54;;11368:23;11531:54;11598:60;11613:15;11630:9;11641:16;11598:14;:60::i;:::-;11291:375;;;;:::o;14580:153::-;14690:9;14580:153;:::o;14211:188::-;14297:6;14327:5;;;14359:12;14351:6;;;;;;;;;14343:29;;;;-1:-1:-1;;;14343:29:0;;;;;;;;;;-1:-1:-1;14390:1:0;14211:188;-1:-1:-1;;;;14211:188:0:o;12292:937::-;12397:6;-1:-1:-1;;;;;12387:16:0;:6;-1:-1:-1;;;;;12387:16:0;;;:30;;;;;12416:1;12407:6;:10;;;12387:30;12383:839;;;-1:-1:-1;;;;;12438:20:0;;;12434:381;;-1:-1:-1;;;;;12498:22:0;;12479:16;12498:22;;;:14;:22;;;;;;;;;12558:13;:60;;12617:1;12558:60;;;-1:-1:-1;;;;;12574:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;12594:13:0;;12574:34;;;;;;;;;:40;;;;;;12558:60;12539:79;;12637:16;12656:67;12662:9;12673:6;12656:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;12637:86;;12742:57;12759:6;12767:9;12778;12789;12742:16;:57::i;:::-;12434:381;;;;-1:-1:-1;;;;;12835:20:0;;;12831:380;;-1:-1:-1;;;;;12895:22:0;;12876:16;12895:22;;;:14;:22;;;;;;;;;12955:13;:60;;13014:1;12955:60;;;-1:-1:-1;;;;;12971:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;12991:13:0;;12971:34;;;;;;;;;:40;;;;;;12955:60;12936:79;;13034:16;13053:66;13059:9;13070:6;13053:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;13034:85;;13138:57;13155:6;13163:9;13174;13185;13237:628;13355:18;13376:75;13383:12;13376:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;13355:96;;13481:1;13466:12;:16;;;:85;;;;-1:-1:-1;;;;;;13486:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;13509:16:0;;13486:40;;;;;;;;;:50;:65;;;:50;;:65;13466:85;13462:329;;;-1:-1:-1;;;;;13566:22:0;;;;;;:11;:22;;;;;;;;-1:-1:-1;;13589:16:0;;13566:40;;;;;;;;;:57;;;;;;;;;;;;13462:329;;;13691:33;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13652:22:0;;-1:-1:-1;13652:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13737:25;;;13652:72;13737:25;;;;;;;:44;;13652:72;13765:16;;13737:44;;;;;;;;;;;;;13462:329;13827:9;-1:-1:-1;;;;;13806:51:0;;13838:8;13848;13806:51;;;;;;;;;;;;;;;;13237:628;;;;;:::o;13873:161::-;13948:6;13986:12;13979:5;13975:9;;13967:32;;;;-1:-1:-1;;;13967:32:0;;;;;;;;;137:14599;;;;;;;;;;-1:-1:-1;137:14599: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:330;;5788:67;5852:2;5847:3;5788:67;;;5888:32;5868:53;;5949:2;5940:12;;5774:184;-1:-1;;5774:184;5967:375;;6127:67;6191:2;6186:3;6127:67;;;6227:34;6207:55;;6296:8;6291:2;6282:12;;6275:30;6333:2;6324:12;;6113:229;-1:-1;;6113:229;6351:398;;6529:84;6611:1;6606:3;6529:84;;;6646:66;6626:87;;6741:1;6732:11;;6515:234;-1:-1;;6515:234;6758:325;;6918:67;6982:2;6977:3;6918:67;;;7018:27;6998:48;;7074:2;7065:12;;6904:179;-1:-1;;6904:179;7092:492;;7270:85;7352:2;7347:3;7270:85;;;7388:34;7368:55;;7457:34;7452:2;7443:12;;7436:56;7526:20;7521:2;7512:12;;7505:42;7575:2;7566:12;;7256:328;-1:-1;;7256:328;7593:477;;7771:85;7853:2;7848:3;7771:85;;;7889:34;7869:55;;7958:34;7953:2;7944:12;;7937:56;8027:5;8022:2;8013:12;;8006:27;8061:2;8052:12;;7757:313;-1:-1;;7757:313;8079:394;;8239:67;8303:2;8298:3;8239:67;;;8339:34;8319:55;;8408:27;8403:2;8394:12;;8387:49;8464:2;8455:12;;8225:248;-1:-1;;8225:248;8482:330;;8642:67;8706:2;8701:3;8642:67;;;8742:32;8722:53;;8803:2;8794:12;;8628:184;-1:-1;;8628:184;8821:374;;8981:67;9045:2;9040:3;8981:67;;;9081:34;9061:55;;9150:7;9145:2;9136:12;;9129:29;9186:2;9177:12;;8967:228;-1:-1;;8967:228;9204:374;;9364:67;9428:2;9423:3;9364:67;;;9464:34;9444:55;;9533:7;9528:2;9519:12;;9512:29;9569:2;9560:12;;9350:228;-1:-1;;9350:228;9587:370;;9747:67;9811:2;9806:3;9747:67;;;9847:34;9827:55;;9916:3;9911:2;9902:12;;9895:25;9948:2;9939:12;;9733:224;-1:-1;;9733:224;9966:396;;10126:67;10190:2;10185:3;10126:67;;;10226:34;10206:55;;10295:29;10290:2;10281:12;;10274:51;10353:2;10344:12;;10112:250;-1:-1;;10112:250;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;23660:26;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;24254:7;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://5fe3190f9025ab282544b7f1c6ca45ceb7b262ec6ccc497294250f05f3025625
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.