Polygon Sponsored slots available. Book your slot here!
ERC-20
Overview
Max Total Supply
4,242,424 ELK
Holders
4,854
Market
Price
$0.00 @ 0.000000 MATIC
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Elk
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-06-09 */ // Sources flattened with hardhat v2.1.1 https://hardhat.org // File contracts/SafeMath.sol pragma solidity ^0.5.16; // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol // Subject to the MIT license. /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction underflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, errorMessage); return c; } /** * @dev Returns the integer division of two unsigned integers. * Reverts on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. * Reverts with custom message on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File contracts/Elk.sol pragma solidity ^0.5.16; pragma experimental ABIEncoderV2; contract Elk { /// @notice EIP-20 token name for this token string public constant name = "Elk"; /// @notice EIP-20 token symbol for this token string public constant symbol = "ELK"; /// @notice EIP-20 token decimals for this token uint8 public constant decimals = 18; /// @notice Total number of tokens in circulation uint public totalSupply = 4_242_424e18; // 4.2 million ELK /// @notice Allowance amounts on behalf of others mapping (address => mapping (address => uint96)) internal allowances; /// @notice Official record of token balances for each account mapping (address => uint96) internal balances; /// @notice A record of each accounts delegate mapping (address => address) public delegates; /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint96 votes; } /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the delegation struct used by the contract bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); /// @notice The EIP-712 typehash for the permit struct used by the contract bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice The standard EIP-20 transfer event event Transfer(address indexed from, address indexed to, uint256 amount); /// @notice The standard EIP-20 approval event event Approval(address indexed owner, address indexed spender, uint256 amount); /** * @notice Construct a new ELK token * @param account The initial account to grant all the tokens */ constructor(address account) public { balances[account] = uint96(totalSupply); emit Transfer(address(0), account, totalSupply); } /** * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` * @param account The address of the account holding the funds * @param spender The address of the account spending the funds * @return The number of tokens approved */ function allowance(address account, address spender) external view returns (uint) { return allowances[account][spender]; } /** * @notice Approve `spender` to transfer up to `amount` from `src` * @dev This will overwrite the approval amount for `spender` * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) * @param spender The address of the account which may transfer tokens * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @return Whether or not the approval succeeded */ function approve(address spender, uint rawAmount) external returns (bool) { uint96 amount; if (rawAmount == uint(-1)) { amount = uint96(-1); } else { amount = safe96(rawAmount, "ELK::approve: amount exceeds 96 bits"); } allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /** * @notice Triggers an approval from owner to spends * @param owner The address to approve from * @param spender The address to be approved * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @param deadline The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external { uint96 amount; if (rawAmount == uint(-1)) { amount = uint96(-1); } else { amount = safe96(rawAmount, "ELK::permit: amount exceeds 96 bits"); } bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "ELK::permit: invalid signature"); require(signatory == owner, "ELK::permit: unauthorized"); require(now <= deadline, "ELK::permit: signature expired"); allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @notice Get the number of tokens held by the `account` * @param account The address of the account to get the balance of * @return The number of tokens held */ function balanceOf(address account) external view returns (uint) { return balances[account]; } /** * @notice Transfer `amount` tokens from `msg.sender` to `dst` * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transfer(address dst, uint rawAmount) external returns (bool) { uint96 amount = safe96(rawAmount, "ELK::transfer: amount exceeds 96 bits"); _transferTokens(msg.sender, dst, amount); return true; } /** * @notice Transfer `amount` tokens from `src` to `dst` * @param src The address of the source account * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transferFrom(address src, address dst, uint rawAmount) external returns (bool) { address spender = msg.sender; uint96 spenderAllowance = allowances[src][spender]; uint96 amount = safe96(rawAmount, "ELK::approve: amount exceeds 96 bits"); if (spender != src && spenderAllowance != uint96(-1)) { uint96 newAllowance = sub96(spenderAllowance, amount, "ELK::transferFrom: transfer amount exceeds spender allowance"); allowances[src][spender] = newAllowance; emit Approval(src, spender, newAllowance); } _transferTokens(src, dst, amount); return true; } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) public { return _delegate(msg.sender, delegatee); } /** * @notice Delegates votes from signatory to `delegatee` * @param delegatee The address to delegate votes to * @param nonce The contract state required to match the signature * @param expiry The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public { bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "ELK::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "ELK::delegateBySig: invalid nonce"); require(now <= expiry, "ELK::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint96) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) public view returns (uint96) { require(blockNumber < block.number, "ELK::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = delegates[delegator]; uint96 delegatorBalance = balances[delegator]; delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _transferTokens(address src, address dst, uint96 amount) internal { require(src != address(0), "ELK::_transferTokens: cannot transfer from the zero address"); require(dst != address(0), "ELK::_transferTokens: cannot transfer to the zero address"); balances[src] = sub96(balances[src], amount, "ELK::_transferTokens: transfer amount exceeds balance"); balances[dst] = add96(balances[dst], amount, "ELK::_transferTokens: transfer amount overflows"); emit Transfer(src, dst, amount); _moveDelegates(delegates[src], delegates[dst], amount); } function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint32 srcRepNum = numCheckpoints[srcRep]; uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint96 srcRepNew = sub96(srcRepOld, amount, "ELK::_moveVotes: vote amount underflows"); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint96 dstRepNew = add96(dstRepOld, amount, "ELK::_moveVotes: vote amount overflows"); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal { uint32 blockNumber = safe32(block.number, "ELK::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function safe96(uint n, string memory errorMessage) internal pure returns (uint96) { require(n < 2**96, errorMessage); return uint96(n); } function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { uint96 c = a + b; require(c >= a, errorMessage); return c; } function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { require(b <= a, errorMessage); return a - b; } function getChainId() internal pure returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
60806040526a03825e4410125034e000006000553480156200002057600080fd5b50604051620022a8380380620022a88339810160408190526200004391620000d3565b600080546001600160a01b0383168083526002602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000b191906200010d565b60405180910390a3506200014c565b8051620000cd8162000132565b92915050565b600060208284031215620000e657600080fd5b6000620000f48484620000c0565b949350505050565b62000107816200012f565b82525050565b60208101620000cd8284620000fc565b60006001600160a01b038216620000cd565b90565b6200013d816200011d565b81146200014957600080fd5b50565b61214c806200015c6000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611db2565b60405180910390f35b6101ad6101a8366004611652565b610351565b6040516101919190611cae565b6101c2610415565b6040516101919190611cbc565b6101c261041b565b6101ad6101e5366004611569565b610432565b6101c2610580565b6101fa61058c565b6040516101919190611e7c565b61021a610215366004611509565b610591565b6040516101919190611ca0565b61023a610235366004611509565b6105ac565b005b61024f61024a366004611509565b6105b9565b6040516101919190611e53565b6101c261026a366004611509565b6105d1565b61028261027d366004611652565b6105f5565b6040516101919190611e98565b6101c261029d366004611509565b61080f565b610184610821565b6101ad6102b8366004611652565b61085a565b6102826102cb366004611509565b610896565b61023a6102de366004611682565b610907565b61023a6102f13660046115b6565b610aec565b6101c261030436600461152f565b610dd3565b6101c2610e07565b61032461031f366004611709565b610e13565b604051610191929190611e61565b60405180604001604052806003815260200162456c6b60e81b81525081565b600080600019831415610367575060001961038c565b6103898360405180606001604052806024815260200161206660249139610e49565b90505b3360008181526001602090815260408083206001600160a01b03891680855292529182902080546bffffffffffffffffffffffff19166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610401908590611e8a565b60405180910390a360019150505b92915050565b60005481565b60405161042790611c8a565b604051809103902081565b6001600160a01b03831660009081526001602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b0390911692859261048a928892919061206690830139610e49565b9050866001600160a01b0316836001600160a01b0316141580156104b757506001600160601b0382811614155b156105665760006104e183836040518060600160405280603c8152602001611f7e603c9139610e81565b6001600160a01b038981166000818152600160209081526040808320948a16808452949091529081902080546bffffffffffffffffffffffff19166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061055c908590611e8a565b60405180910390a3505b610571878783610ec0565b600193505050505b9392505050565b60405161042790611c7f565b601281565b6003602052600090815260409020546001600160a01b031681565b6105b63382611075565b50565b60056020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b600043821061061f5760405162461bcd60e51b815260040161061690611de3565b60405180910390fd5b6001600160a01b03831660009081526005602052604090205463ffffffff168061064d57600091505061040f565b6001600160a01b038416600090815260046020908152604080832063ffffffff6000198601811685529252909120541683106106ca576001600160a01b03841660009081526004602090815260408083206000199490940163ffffffff168352929052205464010000000090046001600160601b0316905061040f565b6001600160a01b038416600090815260046020908152604080832083805290915290205463ffffffff1683101561070557600091505061040f565b600060001982015b8163ffffffff168163ffffffff1611156107c957600282820363ffffffff160481036107376114c6565b506001600160a01b038716600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152908714156107a45760200151945061040f9350505050565b805163ffffffff168711156107bb578193506107c2565b6001820392505b505061070d565b506001600160a01b038516600090815260046020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b60066020526000908152604090205481565b6040518060400160405280600381526020017f454c4b000000000000000000000000000000000000000000000000000000000081525081565b60008061087f8360405180606001604052806025815260200161204160259139610e49565b905061088c338583610ec0565b5060019392505050565b6001600160a01b03811660009081526005602052604081205463ffffffff16806108c1576000610579565b6001600160a01b0383166000908152600460209081526040808320600019850163ffffffff16845290915290205464010000000090046001600160601b03169392505050565b600060405161091590611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610962611117565b306040516020016109769493929190611d62565b604051602081830303815290604052805190602001209050600060405161099c90611c95565b6040519081900381206109b7918a908a908a90602001611d24565b604051602081830303815290604052805190602001209050600082826040516020016109e4929190611c4e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610a219493929190611d97565b6020604051602081039080840390855afa158015610a43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610a765760405162461bcd60e51b815260040161061690611e13565b6001600160a01b03811660009081526006602052604090208054600181019091558914610ab55760405162461bcd60e51b815260040161061690611e33565b87421115610ad55760405162461bcd60e51b815260040161061690611e43565b610adf818b611075565b505050505b505050505050565b6000600019861415610b015750600019610b26565b610b238660405180606001604052806023815260200161201e60239139610e49565b90505b6000604051610b3490611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610b81611117565b30604051602001610b959493929190611d62565b6040516020818303038152906040528051906020012090506000604051610bbb90611c7f565b604080519182900382206001600160a01b038d16600090815260066020908152929020805460018101909155610bfd9391928e928e928e9290918e9101611cca565b60405160208183030381529060405280519060200120905060008282604051602001610c2a929190611c4e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610c679493929190611d97565b6020604051602081039080840390855afa158015610c89573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cbc5760405162461bcd60e51b815260040161061690611e03565b8b6001600160a01b0316816001600160a01b031614610ced5760405162461bcd60e51b815260040161061690611dc3565b88421115610d0d5760405162461bcd60e51b815260040161061690611df3565b84600160008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610dbd9190611e8a565b60405180910390a3505050505050505050505050565b6001600160a01b0391821660009081526001602090815260408083209390941682529190915220546001600160601b031690565b60405161042790611c95565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6000816c010000000000000000000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b509192915050565b6000836001600160601b0316836001600160601b031611158290610eb85760405162461bcd60e51b81526004016106169190611db2565b505050900390565b6001600160a01b038316610ee65760405162461bcd60e51b815260040161061690611dd3565b6001600160a01b038216610f0c5760405162461bcd60e51b815260040161061690611e23565b6001600160a01b038316600090815260026020908152604091829020548251606081019093526035808452610f57936001600160601b039092169285929190611fe990830139610e81565b6001600160a01b03848116600090815260026020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f808452610fc49491909116928592909190611fba9083013961111b565b6001600160a01b038381166000818152600260205260409081902080546bffffffffffffffffffffffff19166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611036908590611e8a565b60405180910390a36001600160a01b0380841660009081526003602052604080822054858416835291205461107092918216911683611157565b505050565b6001600160a01b03808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611111828483611157565b50505050565b4690565b6000838301826001600160601b03808716908316101561114e5760405162461bcd60e51b81526004016106169190611db2565b50949350505050565b816001600160a01b0316836001600160a01b03161415801561118257506000816001600160601b0316115b15611070576001600160a01b0383161561123b576001600160a01b03831660009081526005602052604081205463ffffffff1690816111c2576000611202565b6001600160a01b0385166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b90506000611229828560405180606001604052806027815260200161208a60279139610e81565b9050611237868484846112e7565b5050505b6001600160a01b03821615611070576001600160a01b03821660009081526005602052604081205463ffffffff1690816112765760006112b6565b6001600160a01b0384166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b905060006112dd82856040518060600160405280602681526020016120e46026913961111b565b9050610ae4858484845b600061130b436040518060600160405280603381526020016120b16033913961149e565b905060008463ffffffff1611801561135457506001600160a01b038516600090815260046020908152604080832063ffffffff6000198901811685529252909120548282169116145b156113b4576001600160a01b0385166000908152600460209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff0000000019166401000000006001600160601b03851602179055611454565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600483528781208c871682528352878120965187549451909516640100000000026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600590935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161148f929190611ea6565b60405180910390a25050505050565b6000816401000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b604080518082019091526000808252602082015290565b803561040f81611f4e565b803561040f81611f62565b803561040f81611f6b565b803561040f81611f74565b60006020828403121561151b57600080fd5b600061152784846114dd565b949350505050565b6000806040838503121561154257600080fd5b600061154e85856114dd565b925050602061155f858286016114dd565b9150509250929050565b60008060006060848603121561157e57600080fd5b600061158a86866114dd565b935050602061159b868287016114dd565b92505060406115ac868287016114e8565b9150509250925092565b600080600080600080600060e0888a0312156115d157600080fd5b60006115dd8a8a6114dd565b97505060206115ee8a828b016114dd565b96505060406115ff8a828b016114e8565b95505060606116108a828b016114e8565b94505060806116218a828b016114fe565b93505060a06116328a828b016114e8565b92505060c06116438a828b016114e8565b91505092959891949750929550565b6000806040838503121561166557600080fd5b600061167185856114dd565b925050602061155f858286016114e8565b60008060008060008060c0878903121561169b57600080fd5b60006116a789896114dd565b96505060206116b889828a016114e8565b95505060406116c989828a016114e8565b94505060606116da89828a016114fe565b93505060806116eb89828a016114e8565b92505060a06116fc89828a016114e8565b9150509295509295509295565b6000806040838503121561171c57600080fd5b600061172885856114dd565b925050602061155f858286016114f3565b61174281611ed3565b82525050565b61174281611ede565b61174281611ee3565b61174261176682611ee3565b611ee3565b600061177682611ec1565b6117808185611ec5565b9350611790818560208601611f18565b61179981611f44565b9093019392505050565b60006117b0601983611ec5565b7f454c4b3a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b60006117e9600283611ece565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611822603b83611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611881602683611ec5565b7f454c4b3a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006118e0601e83611ec5565b7f454c4b3a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611919605283611ece565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061199e601e83611ec5565b7f454c4b3a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b60006119d7602583611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611a36604383611ece565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611abb603983611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611b1a602183611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611b79602583611ec5565b7f454c4b3a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611bd8603a83611ece565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b61174281611ef2565b61174281611efb565b61174281611f0d565b61174281611f01565b6000611c59826117dc565b9150611c65828561175a565b602082019150611c75828461175a565b5060200192915050565b600061040f8261190c565b600061040f82611a29565b600061040f82611bcb565b6020810161040f8284611739565b6020810161040f8284611748565b6020810161040f8284611751565b60c08101611cd88289611751565b611ce56020830188611739565b611cf26040830187611739565b611cff6060830186611751565b611d0c6080830185611751565b611d1960a0830184611751565b979650505050505050565b60808101611d328287611751565b611d3f6020830186611739565b611d4c6040830185611751565b611d596060830184611751565b95945050505050565b60808101611d708287611751565b611d7d6020830186611751565b611d8a6040830185611751565b611d596060830184611739565b60808101611da58287611751565b611d3f6020830186611c33565b60208082528101610579818461176b565b6020808252810161040f816117a3565b6020808252810161040f81611815565b6020808252810161040f81611874565b6020808252810161040f816118d3565b6020808252810161040f81611991565b6020808252810161040f816119ca565b6020808252810161040f81611aae565b6020808252810161040f81611b0d565b6020808252810161040f81611b6c565b6020810161040f8284611c2a565b60408101611e6f8285611c2a565b6105796020830184611c45565b6020810161040f8284611c33565b6020810161040f8284611c3c565b6020810161040f8284611c45565b60408101611eb48285611c3c565b6105796020830184611c3c565b5190565b90815260200190565b919050565b600061040f82611ee6565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061040f82611f01565b60005b83811015611f33578181015183820152602001611f1b565b838111156111115750506000910152565b601f01601f191690565b611f5781611ed3565b81146105b657600080fd5b611f5781611ee3565b611f5781611ef2565b611f5781611efb56fe454c4b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365454c4b3a3a7065726d69743a20616d6f756e7420657863656564732039362062697473454c4b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473454c4b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773454c4b3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158202e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe6c6578706572696d656e74616cf564736f6c63430005110040000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063b4b5ea571161008c578063dd62ed3e11610066578063dd62ed3e146102f6578063e7a324dc14610309578063f1127ed81461031157610177565b8063b4b5ea57146102bd578063c3cda520146102d0578063d505accf146102e357610177565b80637ecebe00116100bd5780637ecebe001461028f57806395d89b41146102a2578063a9059cbb146102aa57610177565b806370a082311461025c578063782d6fe11461026f57610177565b806330adf81f1161012f578063587cde1e11610114578063587cde1e146102075780635c19a95c146102275780636fcfff451461023c57610177565b806330adf81f146101ea578063313ce567146101f257610177565b806318160ddd1161016057806318160ddd146101ba57806320606b70146101cf57806323b872dd146101d757610177565b806306fdde031461017c578063095ea7b31461019a575b600080fd5b610184610332565b6040516101919190611db2565b60405180910390f35b6101ad6101a8366004611652565b610351565b6040516101919190611cae565b6101c2610415565b6040516101919190611cbc565b6101c261041b565b6101ad6101e5366004611569565b610432565b6101c2610580565b6101fa61058c565b6040516101919190611e7c565b61021a610215366004611509565b610591565b6040516101919190611ca0565b61023a610235366004611509565b6105ac565b005b61024f61024a366004611509565b6105b9565b6040516101919190611e53565b6101c261026a366004611509565b6105d1565b61028261027d366004611652565b6105f5565b6040516101919190611e98565b6101c261029d366004611509565b61080f565b610184610821565b6101ad6102b8366004611652565b61085a565b6102826102cb366004611509565b610896565b61023a6102de366004611682565b610907565b61023a6102f13660046115b6565b610aec565b6101c261030436600461152f565b610dd3565b6101c2610e07565b61032461031f366004611709565b610e13565b604051610191929190611e61565b60405180604001604052806003815260200162456c6b60e81b81525081565b600080600019831415610367575060001961038c565b6103898360405180606001604052806024815260200161206660249139610e49565b90505b3360008181526001602090815260408083206001600160a01b03891680855292529182902080546bffffffffffffffffffffffff19166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610401908590611e8a565b60405180910390a360019150505b92915050565b60005481565b60405161042790611c8a565b604051809103902081565b6001600160a01b03831660009081526001602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b0390911692859261048a928892919061206690830139610e49565b9050866001600160a01b0316836001600160a01b0316141580156104b757506001600160601b0382811614155b156105665760006104e183836040518060600160405280603c8152602001611f7e603c9139610e81565b6001600160a01b038981166000818152600160209081526040808320948a16808452949091529081902080546bffffffffffffffffffffffff19166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061055c908590611e8a565b60405180910390a3505b610571878783610ec0565b600193505050505b9392505050565b60405161042790611c7f565b601281565b6003602052600090815260409020546001600160a01b031681565b6105b63382611075565b50565b60056020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b600043821061061f5760405162461bcd60e51b815260040161061690611de3565b60405180910390fd5b6001600160a01b03831660009081526005602052604090205463ffffffff168061064d57600091505061040f565b6001600160a01b038416600090815260046020908152604080832063ffffffff6000198601811685529252909120541683106106ca576001600160a01b03841660009081526004602090815260408083206000199490940163ffffffff168352929052205464010000000090046001600160601b0316905061040f565b6001600160a01b038416600090815260046020908152604080832083805290915290205463ffffffff1683101561070557600091505061040f565b600060001982015b8163ffffffff168163ffffffff1611156107c957600282820363ffffffff160481036107376114c6565b506001600160a01b038716600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152908714156107a45760200151945061040f9350505050565b805163ffffffff168711156107bb578193506107c2565b6001820392505b505061070d565b506001600160a01b038516600090815260046020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b60066020526000908152604090205481565b6040518060400160405280600381526020017f454c4b000000000000000000000000000000000000000000000000000000000081525081565b60008061087f8360405180606001604052806025815260200161204160259139610e49565b905061088c338583610ec0565b5060019392505050565b6001600160a01b03811660009081526005602052604081205463ffffffff16806108c1576000610579565b6001600160a01b0383166000908152600460209081526040808320600019850163ffffffff16845290915290205464010000000090046001600160601b03169392505050565b600060405161091590611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610962611117565b306040516020016109769493929190611d62565b604051602081830303815290604052805190602001209050600060405161099c90611c95565b6040519081900381206109b7918a908a908a90602001611d24565b604051602081830303815290604052805190602001209050600082826040516020016109e4929190611c4e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610a219493929190611d97565b6020604051602081039080840390855afa158015610a43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610a765760405162461bcd60e51b815260040161061690611e13565b6001600160a01b03811660009081526006602052604090208054600181019091558914610ab55760405162461bcd60e51b815260040161061690611e33565b87421115610ad55760405162461bcd60e51b815260040161061690611e43565b610adf818b611075565b505050505b505050505050565b6000600019861415610b015750600019610b26565b610b238660405180606001604052806023815260200161201e60239139610e49565b90505b6000604051610b3490611c8a565b604080519182900382208282019091526003825262456c6b60e81b6020909201919091527f23f5c44ca2b306f4e83d6b0757f1e134ea5717fa5e929cb430b57243cf456c60610b81611117565b30604051602001610b959493929190611d62565b6040516020818303038152906040528051906020012090506000604051610bbb90611c7f565b604080519182900382206001600160a01b038d16600090815260066020908152929020805460018101909155610bfd9391928e928e928e9290918e9101611cca565b60405160208183030381529060405280519060200120905060008282604051602001610c2a929190611c4e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610c679493929190611d97565b6020604051602081039080840390855afa158015610c89573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cbc5760405162461bcd60e51b815260040161061690611e03565b8b6001600160a01b0316816001600160a01b031614610ced5760405162461bcd60e51b815260040161061690611dc3565b88421115610d0d5760405162461bcd60e51b815260040161061690611df3565b84600160008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610dbd9190611e8a565b60405180910390a3505050505050505050505050565b6001600160a01b0391821660009081526001602090815260408083209390941682529190915220546001600160601b031690565b60405161042790611c95565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6000816c010000000000000000000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b509192915050565b6000836001600160601b0316836001600160601b031611158290610eb85760405162461bcd60e51b81526004016106169190611db2565b505050900390565b6001600160a01b038316610ee65760405162461bcd60e51b815260040161061690611dd3565b6001600160a01b038216610f0c5760405162461bcd60e51b815260040161061690611e23565b6001600160a01b038316600090815260026020908152604091829020548251606081019093526035808452610f57936001600160601b039092169285929190611fe990830139610e81565b6001600160a01b03848116600090815260026020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f808452610fc49491909116928592909190611fba9083013961111b565b6001600160a01b038381166000818152600260205260409081902080546bffffffffffffffffffffffff19166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611036908590611e8a565b60405180910390a36001600160a01b0380841660009081526003602052604080822054858416835291205461107092918216911683611157565b505050565b6001600160a01b03808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611111828483611157565b50505050565b4690565b6000838301826001600160601b03808716908316101561114e5760405162461bcd60e51b81526004016106169190611db2565b50949350505050565b816001600160a01b0316836001600160a01b03161415801561118257506000816001600160601b0316115b15611070576001600160a01b0383161561123b576001600160a01b03831660009081526005602052604081205463ffffffff1690816111c2576000611202565b6001600160a01b0385166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b90506000611229828560405180606001604052806027815260200161208a60279139610e81565b9050611237868484846112e7565b5050505b6001600160a01b03821615611070576001600160a01b03821660009081526005602052604081205463ffffffff1690816112765760006112b6565b6001600160a01b0384166000908152600460209081526040808320600019860163ffffffff16845290915290205464010000000090046001600160601b03165b905060006112dd82856040518060600160405280602681526020016120e46026913961111b565b9050610ae4858484845b600061130b436040518060600160405280603381526020016120b16033913961149e565b905060008463ffffffff1611801561135457506001600160a01b038516600090815260046020908152604080832063ffffffff6000198901811685529252909120548282169116145b156113b4576001600160a01b0385166000908152600460209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff0000000019166401000000006001600160601b03851602179055611454565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600483528781208c871682528352878120965187549451909516640100000000026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600590935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161148f929190611ea6565b60405180910390a25050505050565b6000816401000000008410610e795760405162461bcd60e51b81526004016106169190611db2565b604080518082019091526000808252602082015290565b803561040f81611f4e565b803561040f81611f62565b803561040f81611f6b565b803561040f81611f74565b60006020828403121561151b57600080fd5b600061152784846114dd565b949350505050565b6000806040838503121561154257600080fd5b600061154e85856114dd565b925050602061155f858286016114dd565b9150509250929050565b60008060006060848603121561157e57600080fd5b600061158a86866114dd565b935050602061159b868287016114dd565b92505060406115ac868287016114e8565b9150509250925092565b600080600080600080600060e0888a0312156115d157600080fd5b60006115dd8a8a6114dd565b97505060206115ee8a828b016114dd565b96505060406115ff8a828b016114e8565b95505060606116108a828b016114e8565b94505060806116218a828b016114fe565b93505060a06116328a828b016114e8565b92505060c06116438a828b016114e8565b91505092959891949750929550565b6000806040838503121561166557600080fd5b600061167185856114dd565b925050602061155f858286016114e8565b60008060008060008060c0878903121561169b57600080fd5b60006116a789896114dd565b96505060206116b889828a016114e8565b95505060406116c989828a016114e8565b94505060606116da89828a016114fe565b93505060806116eb89828a016114e8565b92505060a06116fc89828a016114e8565b9150509295509295509295565b6000806040838503121561171c57600080fd5b600061172885856114dd565b925050602061155f858286016114f3565b61174281611ed3565b82525050565b61174281611ede565b61174281611ee3565b61174261176682611ee3565b611ee3565b600061177682611ec1565b6117808185611ec5565b9350611790818560208601611f18565b61179981611f44565b9093019392505050565b60006117b0601983611ec5565b7f454c4b3a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b60006117e9600283611ece565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000611822603b83611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611881602683611ec5565b7f454c4b3a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b60006118e0601e83611ec5565b7f454c4b3a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000611919605283611ece565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061199e601e83611ec5565b7f454c4b3a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b60006119d7602583611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611a36604383611ece565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000611abb603983611ec5565b7f454c4b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b6000611b1a602183611ec5565b7f454c4b3a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611b79602583611ec5565b7f454c4b3a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611bd8603a83611ece565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b61174281611ef2565b61174281611efb565b61174281611f0d565b61174281611f01565b6000611c59826117dc565b9150611c65828561175a565b602082019150611c75828461175a565b5060200192915050565b600061040f8261190c565b600061040f82611a29565b600061040f82611bcb565b6020810161040f8284611739565b6020810161040f8284611748565b6020810161040f8284611751565b60c08101611cd88289611751565b611ce56020830188611739565b611cf26040830187611739565b611cff6060830186611751565b611d0c6080830185611751565b611d1960a0830184611751565b979650505050505050565b60808101611d328287611751565b611d3f6020830186611739565b611d4c6040830185611751565b611d596060830184611751565b95945050505050565b60808101611d708287611751565b611d7d6020830186611751565b611d8a6040830185611751565b611d596060830184611739565b60808101611da58287611751565b611d3f6020830186611c33565b60208082528101610579818461176b565b6020808252810161040f816117a3565b6020808252810161040f81611815565b6020808252810161040f81611874565b6020808252810161040f816118d3565b6020808252810161040f81611991565b6020808252810161040f816119ca565b6020808252810161040f81611aae565b6020808252810161040f81611b0d565b6020808252810161040f81611b6c565b6020810161040f8284611c2a565b60408101611e6f8285611c2a565b6105796020830184611c45565b6020810161040f8284611c33565b6020810161040f8284611c3c565b6020810161040f8284611c45565b60408101611eb48285611c3c565b6105796020830184611c3c565b5190565b90815260200190565b919050565b600061040f82611ee6565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061040f82611f01565b60005b83811015611f33578181015183820152602001611f1b565b838111156111115750506000910152565b601f01601f191690565b611f5781611ed3565b81146105b657600080fd5b611f5781611ee3565b611f5781611ef2565b611f5781611efb56fe454c4b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773454c4b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365454c4b3a3a7065726d69743a20616d6f756e7420657863656564732039362062697473454c4b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473454c4b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773454c4b3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454c4b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158202e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe6c6578706572696d656e74616cf564736f6c63430005110040
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631
-----Decoded View---------------
Arg [0] : account (address): 0xC20752024C3288EfafDA4D93f5dBd0DF25eb0631
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c20752024c3288efafda4d93f5dbd0df25eb0631
Deployed Bytecode Sourcemap
6796:14568:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6796:14568:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6866:35;;;:::i;:::-;;;;;;;;;;;;;;;;10620:418;;;;;;;;;:::i;:::-;;;;;;;;7161:38;;;:::i;:::-;;;;;;;;8083:122;;;:::i;13700:670::-;;;;;;;;;:::i;8506:137::-;;;:::i;7062:35::-;;;:::i;:::-;;;;;;;;7533:45;;;;;;;;;:::i;:::-;;;;;;;;14518:102;;;;;;;;;:::i;:::-;;7961:49;;;;;;;;;:::i;:::-;;;;;;;;12781:108;;;;;;;;;:::i;16694:1217::-;;;;;;;;;:::i;:::-;;;;;;;;8724:39;;;;;;;;;:::i;6962:37::-;;;:::i;13153:237::-;;;;;;;;;:::i;16041:222::-;;;;;;;;;:::i;15054:786::-;;;;;;;;;:::i;11528:1050::-;;;;;;;;;:::i;10006:136::-;;;;;;;;;:::i;8299:117::-;;;:::i;7822:70::-;;;;;;;;;:::i;:::-;;;;;;;;;6866:35;;;;;;;;;;;;;;-1:-1:-1;;;6866:35:0;;;;:::o;10620:418::-;10688:4;10705:13;-1:-1:-1;;10733:9:0;:21;10729:172;;;-1:-1:-1;;;10729:172:0;;;10832:57;10839:9;10832:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;10823:66;;10729:172;10924:10;10913:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10913:31:0;;;;;;;;;;;:40;;-1:-1:-1;;10913:40:0;-1:-1:-1;;;;;10913:40:0;;;;;10971:37;;10913:31;;10924:10;10971:37;;;;10913:40;;10971:37;;;;;;;;;;11026:4;11019:11;;;10620:418;;;;;:::o;7161:38::-;;;;:::o;8083:122::-;8125:80;;;;;;;;;;;;;;8083:122;:::o;13700:670::-;-1:-1:-1;;;;;13864:15:0;;13782:4;13864:15;;;:10;:15;;;;;;;;13817:10;13864:24;;;;;;;;;;13915:57;;;;;;;;;;;;13817:10;;-1:-1:-1;;;;;13864:24:0;;;;13782:4;;13915:57;;13922:9;;13915:57;;;;;;;:6;:57::i;:::-;13899:73;;14000:3;-1:-1:-1;;;;;13989:14:0;:7;-1:-1:-1;;;;;13989:14:0;;;:48;;;;-1:-1:-1;;;;;;14007:30:0;;;;;13989:48;13985:310;;;14054:19;14076:95;14082:16;14100:6;14076:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;-1:-1:-1;;;;;14186:15:0;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;-1:-1:-1;;14186:39:0;-1:-1:-1;;;;;14186:39:0;;;;;14247:36;14186:39;;-1:-1:-1;14186:24:0;;14247:36;;;;14186:39;;14247:36;;;;;;;;;;13985:310;;14307:33;14323:3;14328;14333:6;14307:15;:33::i;:::-;14358:4;14351:11;;;;;13700:670;;;;;;:::o;8506:137::-;8548:95;;;;;;7062:35;7095:2;7062:35;:::o;7533:45::-;;;;;;;;;;;;-1:-1:-1;;;;;7533:45:0;;:::o;14518:102::-;14580:32;14590:10;14602:9;14580;:32::i;:::-;14518:102;:::o;7961:49::-;;;;;;;;;;;;;;;:::o;12781:108::-;-1:-1:-1;;;;;12864:17:0;12840:4;12864:17;;;:8;:17;;;;;;-1:-1:-1;;;;;12864:17:0;;12781:108::o;16694:1217::-;16773:6;16814:12;16800:11;:26;16792:77;;;;-1:-1:-1;;;16792:77:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16904:23:0;;16882:19;16904:23;;;:14;:23;;;;;;;;16942:17;16938:58;;16983:1;16976:8;;;;;16938:58;-1:-1:-1;;;;;17056:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;17077:16:0;;17056:38;;;;;;;;;:48;;:63;-1:-1:-1;17052:147:0;;-1:-1:-1;;;;;17143:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;17164:16:0;;;;17143:38;;;;;;;;:44;;;;-1:-1:-1;;;;;17143:44:0;;-1:-1:-1;17136:51:0;;17052:147;-1:-1:-1;;;;;17260:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;17256:88:0;;;17331:1;17324:8;;;;;17256:88;17356:12;-1:-1:-1;;17398:16:0;;17425:428;17440:5;17432:13;;:5;:13;;;17425:428;;;17504:1;17487:13;;;17486:19;;;17478:27;;17547:20;;:::i;:::-;-1:-1:-1;;;;;;17570:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;17547:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:51:0;;;;;;;;;17617:27;;17613:229;;;17672:8;;;;-1:-1:-1;17665:15:0;;-1:-1:-1;;;;17665:15:0;17613:229;17706:12;;:26;;;-1:-1:-1;17702:140:0;;;17761:6;17753:14;;17702:140;;;17825:1;17816:6;:10;17808:18;;17702:140;17425:428;;;;;-1:-1:-1;;;;;;17870:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;-1:-1:-1;;;;;17870:33:0;;;;;;-1:-1:-1;;16694:1217:0;;;;:::o;8724:39::-;;;;;;;;;;;;;:::o;6962:37::-;;;;;;;;;;;;;;;;;;;:::o;13153:237::-;13218:4;13235:13;13251:58;13258:9;13251:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;13235:74;;13320:40;13336:10;13348:3;13353:6;13320:15;:40::i;:::-;-1:-1:-1;13378:4:0;;13153:237;-1:-1:-1;;;13153:237:0:o;16041:222::-;-1:-1:-1;;;;;16147:23:0;;16106:6;16147:23;;;:14;:23;;;;;;;;16188:16;:67;;16254:1;16188:67;;;-1:-1:-1;;;;;16207:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;16228:16:0;;16207:38;;;;;;;;;:44;;;;-1:-1:-1;;;;;16207:44:0;16181:74;16041:222;-1:-1:-1;;;16041:222:0:o;15054:786::-;15170:23;8125:80;;;;;;;;;;;;;;;;15250:4;;;;;;;;;-1:-1:-1;;;15250:4:0;;;;;;;;15234:22;15258:12;:10;:12::i;:::-;15280:4;15206:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15206:80:0;;;15196:91;;;;;;15170:117;;15298:18;8345:71;;;;;;;;;;;;;;;15329:57;;15361:9;;15372:5;;15379:6;;15329:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15329:57:0;;;15319:68;;;;;;15298:89;;15398:14;15454:15;15471:10;15425:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15425:57:0;;;15415:68;;;;;;15398:85;;15494:17;15514:26;15524:6;15532:1;15535;15538;15514:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15514:26:0;;-1:-1:-1;;15514:26:0;;;-1:-1:-1;;;;;;;15559:23:0;;15551:73;;;;-1:-1:-1;;;15551:73:0;;;;;;;;;-1:-1:-1;;;;;15652:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;15643:28;;15635:74;;;;-1:-1:-1;;;15635:74:0;;;;;;;;;15735:6;15728:3;:13;;15720:63;;;;-1:-1:-1;;;15720:63:0;;;;;;;;;15801:31;15811:9;15822;15801;:31::i;:::-;15794:38;;;;15054:786;;;;;;;:::o;11528:1050::-;11658:13;-1:-1:-1;;11686:9:0;:21;11682:171;;;-1:-1:-1;;;11682:171:0;;;11785:56;11792:9;11785:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;11776:65;;11682:171;11865:23;8125:80;;;;;;;;;;;;;;;;11945:4;;;;;;;;;-1:-1:-1;;;11945:4:0;;;;;;;;11929:22;11953:12;:10;:12::i;:::-;11975:4;11901:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11901:80:0;;;11891:91;;;;;;11865:117;;11993:18;8548:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12079:13:0;;;;;;:6;:13;;;;;;;:15;;;;;;;;12024:81;;8548:95;;12052:5;;12059:7;;12068:9;;12079:15;;12096:8;;12024:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12024:81:0;;;12014:92;;;;;;11993:113;;12117:14;12173:15;12190:10;12144:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12144:57:0;;;12134:68;;;;;;12117:85;;12213:17;12233:26;12243:6;12251:1;12254;12257;12233:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12233:26:0;;-1:-1:-1;;12233:26:0;;;-1:-1:-1;;;;;;;12278:23:0;;12270:66;;;;-1:-1:-1;;;12270:66:0;;;;;;;;;12368:5;-1:-1:-1;;;;;12355:18:0;:9;-1:-1:-1;;;;;12355:18:0;;12347:56;;;;-1:-1:-1;;;12347:56:0;;;;;;;;;12429:8;12422:3;:15;;12414:58;;;;-1:-1:-1;;;12414:58:0;;;;;;;;;12514:6;12485:10;:17;12496:5;-1:-1:-1;;;;;12485:17:0;-1:-1:-1;;;;;12485:17:0;;;;;;;;;;;;:26;12503:7;-1:-1:-1;;;;;12485:26:0;-1:-1:-1;;;;;12485:26:0;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;12485:35:0;;;;;-1:-1:-1;;;;;12485:35:0;;;;;;12554:7;-1:-1:-1;;;;;12538:32:0;12547:5;-1:-1:-1;;;;;12538:32:0;;12563:6;12538:32;;;;;;;;;;;;;;;11528:1050;;;;;;;;;;;;:::o;10006:136::-;-1:-1:-1;;;;;10106:19:0;;;10082:4;10106:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;-1:-1:-1;;;;;10106:28:0;;10006:136::o;8299:117::-;8345:71;;;;;;7822:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7822:70:0;;:::o;20670:161::-;20745:6;20783:12;20776:5;20772:9;;20764:32;;;;-1:-1:-1;;;20764:32:0;;;;;;;;;;-1:-1:-1;20821:1:0;;20670:161;-1:-1:-1;;20670:161:0:o;21035:165::-;21121:6;21153:1;-1:-1:-1;;;;;21148:6:0;:1;-1:-1:-1;;;;;21148:6:0;;;21156:12;21140:29;;;;;-1:-1:-1;;;21140:29:0;;;;;;;;;;-1:-1:-1;;;21187:5:0;;;21035:165::o;18302:610::-;-1:-1:-1;;;;;18396:17:0;;18388:89;;;;-1:-1:-1;;;18388:89:0;;;;;;;;;-1:-1:-1;;;;;18496:17:0;;18488:87;;;;-1:-1:-1;;;18488:87:0;;;;;;;;;-1:-1:-1;;;;;18610:13:0;;;;;;:8;:13;;;;;;;;;;18604:85;;;;;;;;;;;;;;-1:-1:-1;;;;;18610:13:0;;;;18625:6;;18604:85;;;;;;;:5;:85::i;:::-;-1:-1:-1;;;;;18588:13:0;;;;;;;:8;:13;;;;;;;;:101;;-1:-1:-1;;18588:101:0;-1:-1:-1;;;;;18588:101:0;;;;;;18722:13;;;;;;;;;;18716:79;;;;;;;;;;;;;;18722:13;;;;;18737:6;;18716:79;;;;;;;;:5;:79::i;:::-;-1:-1:-1;;;;;18700:13:0;;;;;;;:8;:13;;;;;;;:95;;-1:-1:-1;;18700:95:0;-1:-1:-1;;;;;18700:95:0;;;;;;;;;;;18811:26;;;;;;;;;;18830:6;;18811:26;;;;;;;;;;-1:-1:-1;;;;;18865:14:0;;;;;;;:9;:14;;;;;;;18881;;;;;;;;18850:54;;18865:14;;;;18881;18897:6;18850:14;:54::i;:::-;18302:610;;;:::o;17919:375::-;-1:-1:-1;;;;;18022:20:0;;;17996:23;18022:20;;;:9;:20;;;;;;;;;;18079:8;:19;;;;;;18109:20;;;;:32;;;;;;;;;;;18159:54;;18022:20;;;;;-1:-1:-1;;;;;18079:19:0;;;;18109:32;;18022:20;;;18159:54;;17996:23;18159:54;18226:60;18241:15;18258:9;18269:16;18226:14;:60::i;:::-;17919:375;;;;:::o;21208:153::-;21318:9;21208:153;:::o;20839:188::-;20925:6;20955:5;;;20987:12;-1:-1:-1;;;;;20979:6:0;;;;;;;;20971:29;;;;-1:-1:-1;;;20971:29:0;;;;;;;;;;-1:-1:-1;21018:1:0;20839:188;-1:-1:-1;;;;20839:188:0:o;18920:937::-;19025:6;-1:-1:-1;;;;;19015:16:0;:6;-1:-1:-1;;;;;19015:16:0;;;:30;;;;;19044:1;19035:6;-1:-1:-1;;;;;19035:10:0;;19015:30;19011:839;;;-1:-1:-1;;;;;19066:20:0;;;19062:381;;-1:-1:-1;;;;;19126:22:0;;19107:16;19126:22;;;:14;:22;;;;;;;;;19186:13;:60;;19245:1;19186:60;;;-1:-1:-1;;;;;19202:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;19222:13:0;;19202:34;;;;;;;;;:40;;;;-1:-1:-1;;;;;19202:40:0;19186:60;19167:79;;19265:16;19284:67;19290:9;19301:6;19284:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;19265:86;;19370:57;19387:6;19395:9;19406;19417;19370:16;:57::i;:::-;19062:381;;;;-1:-1:-1;;;;;19463:20:0;;;19459:380;;-1:-1:-1;;;;;19523:22:0;;19504:16;19523:22;;;:14;:22;;;;;;;;;19583:13;:60;;19642:1;19583:60;;;-1:-1:-1;;;;;19599:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;19619:13:0;;19599:34;;;;;;;;;:40;;;;-1:-1:-1;;;;;19599:40:0;19583:60;19564:79;;19662:16;19681:66;19687:9;19698:6;19681:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;19662:85;;19766:57;19783:6;19791:9;19802;19813;19865:628;19983:18;20004:75;20011:12;20004:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;19983:96;;20109:1;20094:12;:16;;;:85;;;;-1:-1:-1;;;;;;20114:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;20137:16:0;;20114:40;;;;;;;;;:50;:65;;;:50;;:65;20094:85;20090:329;;;-1:-1:-1;;;;;20194:22:0;;;;;;:11;:22;;;;;;;;-1:-1:-1;;20217:16:0;;20194:40;;;;;;;;;:57;;-1:-1:-1;;20194:57:0;;-1:-1:-1;;;;;20194:57:0;;;;;;20090:329;;;20319:33;;;;;;;;;;;;;;-1:-1:-1;;;;;20319:33:0;;;;;;;;;;-1:-1:-1;;;;;20280:22:0;;-1:-1:-1;20280:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;-1:-1:-1;;20280:72:0;;;-1:-1:-1;;20280:72:0;;;;;;;;;;;;;;;20365:25;;;:14;:25;;;;;;;:44;;20280:72;20393:16;;20365:44;;;;;;;;;;;;;20090:329;20455:9;-1:-1:-1;;;;;20434:51:0;;20466:8;20476;20434:51;;;;;;;;;;;;;;;;19865:628;;;;;:::o;20501:161::-;20576:6;20614:12;20607:5;20603:9;;20595:32;;;;-1:-1:-1;;;20595:32:0;;;;;;;;;6796:14568;;;;;;;;;;-1:-1:-1;6796:14568:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2101:9;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3015:9;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3455:9;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4259:9;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;4648:113;4731:24;4749:5;4731:24;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5230:39;;;;5019:255;-1:-1;;;5019:255;5628:325;;5788:67;5852:2;5847:3;5788:67;;;5888:27;5868:48;;5944:2;5935:12;;5774:179;-1:-1;;5774:179;5962:398;;6140:84;6222:1;6217:3;6140:84;;;6257:66;6237:87;;6352:1;6343:11;;6126:234;-1:-1;;6126:234;6369:396;;6529:67;6593:2;6588:3;6529:67;;;6629:34;6609:55;;6698:29;6693:2;6684:12;;6677:51;6756:2;6747:12;;6515:250;-1:-1;;6515:250;6774:375;;6934:67;6998:2;6993:3;6934:67;;;7034:34;7014:55;;7103:8;7098:2;7089:12;;7082:30;7140:2;7131:12;;6920:229;-1:-1;;6920:229;7158:330;;7318:67;7382:2;7377:3;7318:67;;;7418:32;7398:53;;7479:2;7470:12;;7304:184;-1:-1;;7304:184;7497:492;;7675:85;7757:2;7752:3;7675:85;;;7793:34;7773:55;;7862:34;7857:2;7848:12;;7841:56;7931:20;7926:2;7917:12;;7910:42;7980:2;7971:12;;7661:328;-1:-1;;7661:328;7998:330;;8158:67;8222:2;8217:3;8158:67;;;8258:32;8238:53;;8319:2;8310:12;;8144:184;-1:-1;;8144:184;8337:374;;8497:67;8561:2;8556:3;8497:67;;;8597:34;8577:55;;8666:7;8661:2;8652:12;;8645:29;8702:2;8693:12;;8483:228;-1:-1;;8483:228;8720:477;;8898:85;8980:2;8975:3;8898:85;;;9016:34;8996:55;;9085:34;9080:2;9071:12;;9064:56;9154:5;9149:2;9140:12;;9133:27;9188:2;9179:12;;8884:313;-1:-1;;8884:313;9206:394;;9366:67;9430:2;9425:3;9366:67;;;9466:34;9446:55;;9535:27;9530:2;9521:12;;9514:49;9591:2;9582:12;;9352:248;-1:-1;;9352:248;9609:370;;9769:67;9833:2;9828:3;9769:67;;;9869:34;9849:55;;9938:3;9933:2;9924:12;;9917:25;9970:2;9961:12;;9755:224;-1:-1;;9755:224;9988:374;;10148:67;10212:2;10207:3;10148:67;;;10248:34;10228:55;;10317:7;10312:2;10303:12;;10296:29;10353:2;10344:12;;10134:228;-1:-1;;10134:228;10371:431;;10549:85;10631:2;10626:3;10549:85;;;10667:34;10647:55;;10736:28;10731:2;10722:12;;10715:50;10793:2;10784:12;;10535:267;-1:-1;;10535:267;10930:110;11011:23;11028:5;11011:23;;11047:107;11126:22;11142:5;11126:22;;11161:124;11243:36;11273:5;11243:36;;11292:110;11373:23;11390:5;11373:23;;11409:650;;11664:148;11808:3;11664:148;;;11657:155;;11823:75;11894:3;11885:6;11823:75;;;11920:2;11915:3;11911:12;11904:19;;11934:75;12005:3;11996:6;11934:75;;;-1:-1;12031:2;12022:12;;11645:414;-1:-1;;11645:414;12066:372;;12265:148;12409:3;12265:148;;12445:372;;12644:148;12788:3;12644:148;;12824:372;;13023:148;13167:3;13023:148;;13203:213;13321:2;13306:18;;13335:71;13310:9;13379:6;13335:71;;13423:201;13535:2;13520:18;;13549:65;13524:9;13587:6;13549:65;;13631:213;13749:2;13734:18;;13763:71;13738:9;13807:6;13763:71;;13851:771;14109:3;14094:19;;14124:71;14098:9;14168:6;14124:71;;;14206:72;14274:2;14263:9;14259:18;14250:6;14206:72;;;14289;14357:2;14346:9;14342:18;14333:6;14289:72;;;14372;14440:2;14429:9;14425:18;14416:6;14372:72;;;14455:73;14523:3;14512:9;14508:19;14499:6;14455:73;;;14539;14607:3;14596:9;14592:19;14583:6;14539:73;;;14080:542;;;;;;;;;;14629:547;14831:3;14816:19;;14846:71;14820:9;14890:6;14846:71;;;14928:72;14996:2;14985:9;14981:18;14972:6;14928:72;;;15011;15079:2;15068:9;15064:18;15055:6;15011:72;;;15094;15162:2;15151:9;15147:18;15138:6;15094:72;;;14802:374;;;;;;;;15183:547;15385:3;15370:19;;15400:71;15374:9;15444:6;15400:71;;;15482:72;15550:2;15539:9;15535:18;15526:6;15482:72;;;15565;15633:2;15622:9;15618:18;15609:6;15565:72;;;15648;15716:2;15705:9;15701:18;15692:6;15648:72;;15737:539;15935:3;15920:19;;15950:71;15924:9;15994:6;15950:71;;;16032:68;16096:2;16085:9;16081:18;16072:6;16032:68;;16283:293;16417:2;16431:47;;;16402:18;;16492:74;16402:18;16552:6;16492:74;;16891:407;17082:2;17096:47;;;17067:18;;17157:131;17067:18;17157:131;;17305:407;17496:2;17510:47;;;17481:18;;17571:131;17481:18;17571:131;;17719:407;17910:2;17924:47;;;17895:18;;17985:131;17895:18;17985:131;;18133:407;18324:2;18338:47;;;18309:18;;18399:131;18309:18;18399:131;;18547:407;18738:2;18752:47;;;18723:18;;18813:131;18723:18;18813:131;;18961:407;19152:2;19166:47;;;19137:18;;19227:131;19137:18;19227:131;;19375:407;19566:2;19580:47;;;19551:18;;19641:131;19551:18;19641:131;;19789:407;19980:2;19994:47;;;19965:18;;20055:131;19965:18;20055:131;;20203:407;20394:2;20408:47;;;20379:18;;20469:131;20379:18;20469:131;;20837:209;20953:2;20938:18;;20967:69;20942:9;21009:6;20967:69;;21053:316;21195:2;21180:18;;21209:69;21184:9;21251:6;21209:69;;;21289:70;21355:2;21344:9;21340:18;21331:6;21289:70;;21376:205;21490:2;21475:18;;21504:67;21479:9;21544:6;21504:67;;21588:211;21705:2;21690:18;;21719:70;21694:9;21762:6;21719:70;;21806:209;21922:2;21907:18;;21936:69;21911:9;21978:6;21936:69;;22022:320;22166:2;22151:18;;22180:70;22155:9;22223:6;22180:70;;;22261:71;22328:2;22317:9;22313:18;22304:6;22261:71;;22349:118;22433:12;;22404:63;22604:163;22707:19;;;22756:4;22747:14;;22700:67;22776:145;22912:3;22890:31;-1:-1;22890:31;22929:91;;22991:24;23009:5;22991:24;;23027:85;23093:13;23086:21;;23069:43;23119:72;23181:5;23164:27;23198:121;-1:-1;;;;;23260:54;;23243:76;23405:88;23477:10;23466:22;;23449:44;23500:81;23571:4;23560:16;;23543:38;23588:104;-1:-1;;;;;23649:38;;23632:60;23699:106;;23777:23;23794:5;23777:23;;23813:268;23878:1;23885:101;23899:6;23896:1;23893:13;23885:101;;;23966:11;;;23960:18;23947:11;;;23940:39;23921:2;23914:10;23885:101;;;24001:6;23998:1;23995:13;23992:2;;;-1:-1;;24066:1;24048:16;;24041:27;23862:219;24170:97;24258:2;24238:14;-1:-1;;24234:28;;24218:49;24275:117;24344:24;24362:5;24344:24;;;24337:5;24334:35;24324:2;;24383:1;24380;24373:12;24399:117;24468:24;24486:5;24468:24;;24647:115;24715:23;24732:5;24715:23;;24769:113;24836:22;24852:5;24836:22;
Swarm Source
bzzr://2e190004b516e0e505766c2711f223067444f31660b8c09006a532cb6ab629fe
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.