Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
150,000,000 NTRY
Holders
448
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
393.849581268 NTRYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CentrallyIssuedToken
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-07-03 */ /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ pragma solidity ^0.4.11; /** * Centrally issued Ethereum token. * * We mix in burnable and upgradeable traits. * * Token supply is created in the token contract creation and allocated to owner. * The owner can then transfer from its supply to crowdsale participants. * The owner, or anybody, can burn any excessive tokens they are holding. * */ /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) constant returns (uint256); function transfer(address to, uint256 value) returns (bool success); event Transfer(address indexed from, address indexed to, uint256 value); } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint256); function transferFrom(address from, address to, uint256 value) returns (bool success); function approve(address spender, uint256 value) returns (bool success); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ contract ErrorHandler { bool public isInTestMode = false; event evRecord(address msg_sender, uint msg_value, string message); function doThrow(string message) internal { evRecord(msg.sender, msg.value, message); if (!isInTestMode) { throw; } } } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * Math operations with safety checks */ library SafeMath { function mul(uint256 a, uint256 b) internal returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; } } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * Standard ERC20 token with Short Hand Attack and approve() race condition mitigation. * * Based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract NTRYStandardToken is ERC20, ErrorHandler { address public owner; /* NTRY functional is paused if there is any emergency */ bool public emergency = false; using SafeMath for uint; /* Actual balances of token holders */ mapping(address => uint) balances; /* approve() allowances */ mapping (address => mapping (address => uint)) allowed; /* freezeAccount() frozen() */ mapping (address => bool) frozenAccount; /* Notify account frozen activity */ event FrozenFunds(address target, bool frozen); /* Interface declaration */ function isToken() public constant returns (bool weAre) { return true; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { if (msg.sender != owner) { doThrow("Only Owner!"); } _; } /** * Fix for the ERC20 short address attack * * http://vessenes.com/the-erc20-short-address-attack-explained/ */ modifier onlyPayloadSize(uint size) { if(msg.data.length < size + 4) { doThrow("Short address attack!"); } _; } modifier stopInEmergency { if (emergency){ doThrow("Emergency state!"); } _; } function transfer(address _to, uint _value) stopInEmergency onlyPayloadSize(2 * 32) returns (bool success) { // Check if frozen // if (frozenAccount[msg.sender]) doThrow("Account freezed!"); balances[msg.sender] = balances[msg.sender].sub( _value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint _value) stopInEmergency returns (bool success) { // Check if frozen // if (frozenAccount[_from]) doThrow("Account freezed!"); uint _allowance = allowed[_from][msg.sender]; balances[_to] = balances[_to].add(_value); balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; } function balanceOf(address _owner) constant returns (uint balance) { return balances[_owner]; } function approve(address _spender, uint _value) stopInEmergency returns (bool success) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) doThrow("Allowance race condition!"); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) constant returns (uint remaining) { return allowed[_owner][_spender]; } /** * It is called Circuit Breakers (Pause contract functionality), it stop execution if certain conditions are met, * and can be useful when new errors are discovered. For example, most actions may be suspended in a contract if a * bug is discovered, so the most feasible option to stop and updated migration message about launching an updated version of contract. * @param _stop Switch the circuite breaker on or off */ function emergencyStop(bool _stop) onlyOwner { emergency = _stop; } /** * Owner can set any account into freeze state. It is helpful in case if account holder has * lost his key and he want administrator to freeze account until account key is recovered * @param target The account address * @param freeze The state of account */ function freezeAccount(address target, bool freeze) onlyOwner { frozenAccount[target] = freeze; FrozenFunds(target, freeze); } function frozen(address _target) constant returns (bool frozen) { return frozenAccount[_target]; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { if (newOwner != address(0)) { balances[newOwner] = balances[owner]; balances[owner] = 0; owner = newOwner; Transfer(owner, newOwner,balances[newOwner]); } } } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * Upgrade agent interface inspired by Lunyr. * * Upgrade agent transfers tokens to a new contract. * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting. */ contract UpgradeAgent { uint public originalSupply; /** Interface marker */ function isUpgradeAgent() public constant returns (bool) { return true; } function upgradeFrom(address _from, uint256 _value) public; } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ /** * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision. * * First envisioned by Golem and Lunyr projects. */ contract UpgradeableToken is NTRYStandardToken { /** Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. */ address public upgradeMaster; /** The next contract where the tokens will be migrated. */ UpgradeAgent public upgradeAgent; /** How many tokens we have upgraded by now. */ uint256 public totalUpgraded; /** * Upgrade states. * * - NotAllowed: The child contract has not reached a condition where the upgrade can bgun * - WaitingForAgent: Token allows upgrade, but we don't have a new agent yet * - ReadyToUpgrade: The agent is set, but not a single token has been upgraded yet * - Upgrading: Upgrade agent is set and the balance holders can upgrade their tokens * */ enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading} /** * Somebody has upgraded some of his tokens. */ event Upgrade(address indexed _from, address indexed _to, uint256 _value); /** * New upgrade agent available. */ event UpgradeAgentSet(address agent); /** * Do not allow construction without upgrade master set. */ function UpgradeableToken(address _upgradeMaster) { upgradeMaster = _upgradeMaster; } /** * Allow the token holder to upgrade some of their tokens to a new contract. */ function upgrade(uint256 value) public { UpgradeState state = getUpgradeState(); if(!(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading)) { doThrow("Called in a bad state!"); } // Validate input value. if (value == 0) doThrow("Value to upgrade is zero!"); balances[msg.sender] = balances[msg.sender].sub(value); // Take tokens out from circulation totalSupply = totalSupply.sub(value); totalUpgraded = totalUpgraded.add(value); // Upgrade agent reissues the tokens upgradeAgent.upgradeFrom(msg.sender, value); Upgrade(msg.sender, upgradeAgent, value); } /** * Set an upgrade agent that handles */ function setUpgradeAgent(address agent) external { if(!canUpgrade()) { // The token is not yet in a state that we could think upgrading doThrow("Token state is not feasible for upgrading yet!"); } if (agent == 0x0) doThrow("Invalid address!"); // Only a master can designate the next agent if (msg.sender != upgradeMaster) doThrow("Only upgrade master!"); // Upgrade has already begun for an agent if (getUpgradeState() == UpgradeState.Upgrading) doThrow("Upgrade started already!"); upgradeAgent = UpgradeAgent(agent); // Bad interface if(!upgradeAgent.isUpgradeAgent()) doThrow("Bad interface!"); // Make sure that token supplies match in source and target if (upgradeAgent.originalSupply() != totalSupply) doThrow("Total supply source is not equall to target!"); UpgradeAgentSet(upgradeAgent); } /** * Get the state of the token upgrade. */ function getUpgradeState() public constant returns(UpgradeState) { if(!canUpgrade()) return UpgradeState.NotAllowed; else if(address(upgradeAgent) == 0x00) return UpgradeState.WaitingForAgent; else if(totalUpgraded == 0) return UpgradeState.ReadyToUpgrade; else return UpgradeState.Upgrading; } /** * Change the upgrade master. * * This allows us to set a new owner for the upgrade mechanism. */ function setUpgradeMaster(address master) public { if (master == 0x0) doThrow("Invalid address of upgrade master!"); if (msg.sender != upgradeMaster) doThrow("Only upgrade master!"); upgradeMaster = master; } /** * Child contract can enable to provide the condition when the upgrade can begun. */ function canUpgrade() public constant returns(bool) { return true; } } /** * NTRY Cointract contract, ERC20 compliant (see https://github.com/ethereum/EIPs/issues/20) * * Code is based on multiple sources: * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts * https://github.com/TokenMarketNet/ico/blob/master/contracts * https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts */ contract BurnableToken is NTRYStandardToken { address public constant BURN_ADDRESS = 0; /** How many tokens we burned */ event Burned(address burner, uint burnedAmount); /** * Burn extra tokens from a balance. * */ function burn(uint burnAmount) { address burner = msg.sender; balances[burner] = balances[burner].sub(burnAmount); totalSupply = totalSupply.sub(burnAmount); Burned(burner, burnAmount); } } contract CentrallyIssuedToken is BurnableToken, UpgradeableToken { string public name; string public symbol; uint public decimals; function CentrallyIssuedToken() UpgradeableToken(owner) { name = "Notary Platform Token"; symbol = "NTRY"; decimals = 18; owner = 0x1538EF80213cde339A333Ee420a85c21905b1b2D; totalSupply = 150000000 * 1 ether; // Allocate initial balance to the owner // balances[owner] = 150000000 * 1 ether; // Freeze notary team funds for one year (One month with pre ico already passed)// unlockedAt = now + 330 * 1 days; } uint256 public constant teamAllocations = 15000000 * 1 ether; uint256 public unlockedAt; mapping (address => uint256) allocations; function allocate() public { allocations[0xab1cb1740344A9280dC502F3B8545248Dc3045eA] = 2500000 * 1 ether; allocations[0x330709A59Ab2D1E1105683F92c1EE8143955a357] = 2500000 * 1 ether; allocations[0xAa0887fc6e8896C4A80Ca3368CFd56D203dB39db] = 2500000 * 1 ether; allocations[0x1fbA1d22435DD3E7Fa5ba4b449CC550a933E72b3] = 2500000 * 1 ether; allocations[0xC9d5E2c7e40373ae576a38cD7e62E223C95aBFD4] = 500000 * 1 ether; allocations[0xabc0B64a38DE4b767313268F0db54F4cf8816D9C] = 500000 * 1 ether; allocations[0x5d85bCDe5060C5Bd00DBeDF5E07F43CE3Ccade6f] = 250000 * 1 ether; allocations[0xecb1b0231CBC0B04015F9e5132C62465C128B578] = 250000 * 1 ether; allocations[0xF9b1Cfc7fe3B63bEDc594AD20132CB06c18FD5F2] = 250000 * 1 ether; allocations[0xDbb89a87d9f91EA3f0Ab035a67E3A951A05d0130] = 250000 * 1 ether; allocations[0xC1530645E21D27AB4b567Bac348721eE3E244Cbd] = 200000 * 1 ether; allocations[0xcfb44162030e6CBca88e65DffA21911e97ce8533] = 200000 * 1 ether; allocations[0x64f748a5C5e504DbDf61d49282d6202Bc1311c3E] = 200000 * 1 ether; allocations[0xFF22FA2B3e5E21817b02a45Ba693B7aC01485a9C] = 200000 * 1 ether; allocations[0xC9856112DCb8eE449B83604438611EdCf61408AF] = 200000 * 1 ether; allocations[0x689CCfEABD99081D061aE070b1DA5E1f6e4B9fB2] = 2000000 * 1 ether; } function withDraw() public { if(now < unlockedAt){ doThrow("Allocations are freezed!"); } if (allocations[msg.sender] == 0){ doThrow("No allocation found!"); } balances[owner] -= allocations[msg.sender]; balances[msg.sender] += allocations[msg.sender]; Transfer(owner, msg.sender, allocations[msg.sender]); allocations[msg.sender] = 0; } function () { //if ether is sent to this address, send it back. throw; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_stop","type":"bool"}],"name":"emergencyStop","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withDraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"burnAmount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"teamAllocations","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"unlockedAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"allocate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isInTestMode","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"emergency","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"frozen","outputs":[{"name":"frozen","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isToken","outputs":[{"name":"weAre","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"BURN_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"master","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"UpgradeAgentSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"burner","type":"address"},{"indexed":false,"name":"burnedAmount","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg_sender","type":"address"},{"indexed":false,"name":"msg_value","type":"uint256"},{"indexed":false,"name":"message","type":"string"}],"name":"evRecord","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60606040526001805460ff60a860020a60ff02011916905534156200002057fe5b5b6001546101009004600160a060020a03165b60058054600160a060020a031916600160a060020a0383161790555b506040805180820190915260158082527f4e6f7461727920506c6174666f726d20546f6b656e0000000000000000000000602090920191825262000096916008916200014d565b506040805180820190915260048082527f4e545259000000000000000000000000000000000000000000000000000000006020909201918252620000dd916009916200014d565b506012600a5560018054741538ef80213cde339a333ee420a85c21905b1b2d0061010060a860020a031990911617908190556a7c13bc4b2c133c560000006000818155610100909204600160a060020a0316825260026020526040909120556301b30f004201600b555b620001f7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019057805160ff1916838001178555620001c0565b82800160010185558215620001c0579182015b82811115620001c0578251825591602001919060010190620001a3565b5b50620001cf929150620001d3565b5090565b620001f491905b80821115620001cf5760008155600101620001da565b5090565b90565b611c7480620002076000396000f300606060405236156101885763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461019e578063095ea7b31461022e5780630ac62e02146102615780630fdb1c101461027857806318160ddd1461028a57806323b872dd146102ac578063313ce567146102e557806342966c681461030757806345977d031461031c5780635de4ccb014610331578063600440cb1461035d57806370a08231146103895780638444b391146103b757806386b8f0a2146103eb5780638cb1e9c11461040d5780638da5cb5b1461042f57806395d89b411461045b5780639738968c146104eb578063a9059cbb1461050f578063abaa991614610542578063b656e9f414610554578063c752ff6214610578578063caa6fea41461059a578063d0516650146105be578063d7e7088a146105ee578063dd62ed3e1461060c578063e724529c14610640578063eefa597b146104eb578063f2fde38b14610687578063fccc2813146106a5578063ffeb7d75146106d1575b341561019057fe5b61019c5b60006000fd5b565b005b34156101a657fe5b6101ae6106ef565b6040805160208082528351818301528351919283929083019185019080838382156101f4575b8051825260208311156101f457601f1990920191602091820191016101d4565b505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023657fe5b61024d600160a060020a036004351660243561077d565b604080519115158252519081900360200190f35b341561026957fe5b61019c60043515156108b2565b005b341561028057fe5b61019c61093b565b005b341561029257fe5b61029a610a7e565b60408051918252519081900360200190f35b34156102b457fe5b61024d600160a060020a0360043581169060243516604435610a84565b604080519115158252519081900360200190f35b34156102ed57fe5b61029a610c3e565b60408051918252519081900360200190f35b341561030f57fe5b61019c600435610c44565b005b341561032457fe5b61019c600435610ce1565b005b341561033957fe5b610341610ed7565b60408051600160a060020a039092168252519081900360200190f35b341561036557fe5b610341610ee6565b60408051600160a060020a039092168252519081900360200190f35b341561039157fe5b61029a600160a060020a0360043516610ef5565b60408051918252519081900360200190f35b34156103bf57fe5b6103c7610f14565b604051808260048111156103d757fe5b60ff16815260200191505060405180910390f35b34156103f357fe5b61029a610f61565b60408051918252519081900360200190f35b341561041557fe5b61029a610f70565b60408051918252519081900360200190f35b341561043757fe5b610341610f76565b60408051600160a060020a039092168252519081900360200190f35b341561046357fe5b6101ae610f8a565b6040805160208082528351818301528351919283929083019185019080838382156101f4575b8051825260208311156101f457601f1990920191602091820191016101d4565b505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104f357fe5b61024d611018565b604080519115158252519081900360200190f35b341561051757fe5b61024d600160a060020a036004351660243561101e565b604080519115158252519081900360200190f35b341561054a57fe5b61019c6111d1565b005b341561055c57fe5b61024d611460565b604080519115158252519081900360200190f35b341561058057fe5b61029a611469565b60408051918252519081900360200190f35b34156105a257fe5b61024d61146f565b604080519115158252519081900360200190f35b34156105c657fe5b61024d600160a060020a036004351661147f565b604080519115158252519081900360200190f35b34156105f657fe5b61019c600160a060020a03600435166114a1565b005b341561061457fe5b61029a600160a060020a0360043581169060243516611826565b60408051918252519081900360200190f35b341561064857fe5b61019c600160a060020a03600435166024351515611853565b005b34156104f357fe5b61024d611018565b604080519115158252519081900360200190f35b341561068f57fe5b61019c600160a060020a036004351661191a565b005b34156106ad57fe5b610341611a1c565b60408051600160a060020a039092168252519081900360200190f35b34156106d957fe5b61019c600160a060020a0360043516611a21565b005b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b505050505081565b60015460009060a860020a900460ff16156107d1576107d1604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b81158015906108055750600160a060020a0333811660009081526003602090815260408083209387168352929052205415155b1561084957610849604060405190810160405280601981526020017f416c6c6f77616e6365207261636520636f6e646974696f6e2100000000000000815250611b19565b5b600160a060020a03338116600081815260036020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b5b92915050565b60015433600160a060020a03908116610100909204161461090c5761090c604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b6001805475ff000000000000000000000000000000000000000000191660a860020a831515021790555b5b50565b600b5442101561098457610984604060405190810160405280601881526020017f416c6c6f636174696f6e732061726520667265657a6564210000000000000000815250611b19565b5b600160a060020a0333166000908152600c602052604090205415156109e3576109e3604060405190810160405280601481526020017f4e6f20616c6c6f636174696f6e20666f756e6421000000000000000000000000815250611b19565b5b600160a060020a033381166000818152600c60208181526040808420805460018054610100908190048a1688526002865284882080549390930390925587875282549684902080549097019096559454938352548151908152905194959390920490921692600080516020611c29833981519152929181900390910190a3600160a060020a0333166000908152600c60205260408120555b565b60005481565b600154600090819060a860020a900460ff1615610ada57610ada604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b600160a060020a03851660009081526004602052604090205460ff1615610b3b57610b3b604060405190810160405280601081526020017f4163636f756e7420667265657a65642100000000000000000000000000000000815250611b19565b5b50600160a060020a038085166000908152600360209081526040808320338516845282528083205493871683526002909152902054610b81908463ffffffff611bf716565b600160a060020a038086166000908152600260205260408082209390935590871681522054610bb6908463ffffffff611c1116565b600160a060020a038616600090815260026020526040902055610bdf818463ffffffff611c1116565b600160a060020a03808716600081815260036020908152604080832033861684528252918290209490945580518781529051928816939192600080516020611c29833981519152929181900390910190a3600191505b5b509392505050565b600a5481565b33600160a060020a038116600090815260026020526040902054610c689083611c11565b600160a060020a03821660009081526002602052604081209190915554610c95908363ffffffff611c1116565b60005560408051600160a060020a03831681526020810184905281517f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7929181900390910190a15b5050565b6000610ceb610f14565b905060035b816004811115610cfc57fe5b1480610d14575060045b816004811115610d1257fe5b145b1515610d5957610d59604060405190810160405280601681526020017f43616c6c656420696e2061206261642073746174652100000000000000000000815250611b19565b5b811515610da057610da0604060405190810160405280601981526020017f56616c756520746f2075706772616465206973207a65726f2100000000000000815250611b19565b5b600160a060020a033316600090815260026020526040902054610dca908363ffffffff611c1116565b600160a060020a03331660009081526002602052604081209190915554610df7908363ffffffff611c1116565b600055600754610e0d908363ffffffff611bf716565b600755600654604080517f753e88e5000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018690529151919092169163753e88e591604480830192600092919082900301818387803b1515610e7a57fe5b6102c65a03f11515610e8857fe5b5050600654604080518581529051600160a060020a03928316935033909216917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac9181900360200190a35b5050565b600654600160a060020a031681565b600554600160a060020a031681565b600160a060020a0381166000908152600260205260409020545b919050565b6000610f1e611018565b1515610f2c57506001610f5b565b600654600160a060020a03161515610f4657506002610f5b565b6007541515610f5757506003610f5b565b5060045b5b5b5b90565b6a0c685fa11e01ec6f00000081565b600b5481565b6001546101009004600160a060020a031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b505050505081565b60015b90565b60015460009060a860020a900460ff161561107257611072604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b604060443610156110bd576110bd604060405190810160405280601581526020017f53686f727420616464726573732061747461636b210000000000000000000000815250611b19565b5b600160a060020a03331660009081526004602052604090205460ff161561111e5761111e604060405190810160405280601081526020017f4163636f756e7420667265657a65642100000000000000000000000000000000815250611b19565b5b600160a060020a033316600090815260026020526040902054611148908463ffffffff611c1116565b600160a060020a03338116600090815260026020526040808220939093559086168152205461117d908463ffffffff611bf716565b600160a060020a03808616600081815260026020908152604091829020949094558051878152905191933390931692600080516020611c2983398151915292918290030190a3600191505b5b505b92915050565b600c6020526a02116545850052128000007f9501e5ede1fb9f3a2c598fff77cfea3c23df826af76d60ca51fc0e0cb66112918190557fc7ca7b956b83ee4583b4f4611955a9b5c9e5800e703fdd0333bc5ad4b2ba7f588190557f7f8518c77fe6bb7471910753a701aaa183c282d221e96687410788d01eaaa3a18190557f627f413f76031905bd2f77a0db7beebb1bfc0b084e40a958400f72ced53e9ffd556969e10de76676d08000007f2ac7911ea403a011e44b7aa5a833c0cf83d356fed01f9424a2f947f865b00d1a8190557f30c53e6e8a57a0fa5ea08c001b3001791aca44b9df3336904237c8115a3285df556934f086f3b33b684000007f77acdf1ed14c24b3b10cd05ba3710f32009cd7f7ba6145da66b1e598025ee2838190557f84862b8626aeb1b74ce77c325365a3de3887989f8e93f4ce79c4d07e9a22311a8190557f663a7f53c827e6c8151a1ce1d9369fefb02ad57c7941993633341fba8bae34fe8190557f93b561ec2703f2500a6a6f8ad8c698284b15c206e0fbc0117e76c4c012d7521e55692a5a058fc295ed0000007ff4a8dfe2b1193a51a035be292c85d80fb827a5d3eab8ce73035587dafa4b2b498190557f43bdd8cbcd806a89139ec118d149e2983299258fc96822d6fa117b2af97a9d9d8190557f78c978bd8e250e573070820df501a9e42404448becba608cffca615d9d73c89d8190557f96ea2b90f71956dfb8b1bdc42c721c948d3bf5d89327a7e72362694891a297b68190557fec15c48f7ff10e3172b11a89c9cabfae7fa87c9b3764d9039517c2bba2a211fa5573689ccfeabd99081d061ae070b1da5e1f6e4b9fb26000526a01a784379d99db420000007f46c1a09a6806bcbfab4ce70d4fa8ef385017832cfe522f0df915db206bf384e9555b565b60015460ff1681565b60075481565b60015460a860020a900460ff1681565b600160a060020a03811660009081526004602052604090205460ff165b919050565b6114a9611018565b151561151457611514606060405190810160405280602e81526020017f546f6b656e207374617465206973206e6f74206665617369626c6520666f722081526020017f757067726164696e672079657421000000000000000000000000000000000000815250611b19565b5b600160a060020a038116151561156457611564604060405190810160405280601081526020017f496e76616c696420616464726573732100000000000000000000000000000000815250611b19565b5b60055433600160a060020a039081169116146115ba576115ba604060405190810160405280601481526020017f4f6e6c792075706772616465206d617374657221000000000000000000000000815250611b19565b5b60045b6115c6610f14565b60048111156115d157fe5b141561161657611616604060405190810160405280601881526020017f55706772616465207374617274656420616c7265616479210000000000000000815250611b19565b5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080516000602091820181905282517f61d3d7a6000000000000000000000000000000000000000000000000000000008152925194909316936361d3d7a6936004808501948390030190829087803b151561169d57fe5b6102c65a03f115156116ab57fe5b505060405151151590506116f8576116f8604060405190810160405280600e81526020017f42616420696e7465726661636521000000000000000000000000000000000000815250611b19565b5b6000805460065460408051602090810185905281517f4b2ba0dd00000000000000000000000000000000000000000000000000000000815291519394600160a060020a0390931693634b2ba0dd936004808501948390030190829087803b151561175f57fe5b6102c65a03f1151561176d57fe5b5050604051519190911490506117e2576117e2606060405190810160405280602c81526020017f546f74616c20737570706c7920736f75726365206973206e6f7420657175616c81526020017f6c20746f20746172676574210000000000000000000000000000000000000000815250611b19565b5b60065460408051600160a060020a039092168252517f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc9181900360200190a15b50565b600160a060020a038083166000908152600360209081526040808320938516835292905220545b92915050565b60015433600160a060020a0390811661010090920416146118ad576118ad604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b600160a060020a038216600081815260046020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b60015b90565b60015433600160a060020a03908116610100909204161461197457611974604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b600160a060020a03811615610937576001805461010090819004600160a060020a03908116600090815260026020908152604080832054878516808552828520918255875487900486168552828520859055875474ffffffffffffffffffffffffffffffffffffffff001916818802179788905593849052548151908152905192959490940490921692600080516020611c2983398151915292908290030190a35b5b5b50565b600081565b600160a060020a0381161515611a9657611a96606060405190810160405280602281526020017f496e76616c69642061646472657373206f662075706772616465206d6173746581526020017f7221000000000000000000000000000000000000000000000000000000000000815250611b19565b5b60055433600160a060020a03908116911614611aec57611aec604060405190810160405280601481526020017f4f6e6c792075706772616465206d617374657221000000000000000000000000815250611b19565b5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b7fe9c64ad7aacefe9ed905822d2a5a6ca63ffdc82b257709dc05a534d60d92f9103334836040518084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360008314611ba6575b805182526020831115611ba657601f199092019160209182019101611b86565b505050905090810190601f168015611bd25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160015460ff1615156109375760006000fd5b5b50565b600082820183811015611c0657fe5b8091505b5092915050565b600082821115611c1d57fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582085eda844e97315bb44c6be34968c64ff5ca6b094685cc9a3ef802137497864ef0029
Deployed Bytecode
0x606060405236156101885763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461019e578063095ea7b31461022e5780630ac62e02146102615780630fdb1c101461027857806318160ddd1461028a57806323b872dd146102ac578063313ce567146102e557806342966c681461030757806345977d031461031c5780635de4ccb014610331578063600440cb1461035d57806370a08231146103895780638444b391146103b757806386b8f0a2146103eb5780638cb1e9c11461040d5780638da5cb5b1461042f57806395d89b411461045b5780639738968c146104eb578063a9059cbb1461050f578063abaa991614610542578063b656e9f414610554578063c752ff6214610578578063caa6fea41461059a578063d0516650146105be578063d7e7088a146105ee578063dd62ed3e1461060c578063e724529c14610640578063eefa597b146104eb578063f2fde38b14610687578063fccc2813146106a5578063ffeb7d75146106d1575b341561019057fe5b61019c5b60006000fd5b565b005b34156101a657fe5b6101ae6106ef565b6040805160208082528351818301528351919283929083019185019080838382156101f4575b8051825260208311156101f457601f1990920191602091820191016101d4565b505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023657fe5b61024d600160a060020a036004351660243561077d565b604080519115158252519081900360200190f35b341561026957fe5b61019c60043515156108b2565b005b341561028057fe5b61019c61093b565b005b341561029257fe5b61029a610a7e565b60408051918252519081900360200190f35b34156102b457fe5b61024d600160a060020a0360043581169060243516604435610a84565b604080519115158252519081900360200190f35b34156102ed57fe5b61029a610c3e565b60408051918252519081900360200190f35b341561030f57fe5b61019c600435610c44565b005b341561032457fe5b61019c600435610ce1565b005b341561033957fe5b610341610ed7565b60408051600160a060020a039092168252519081900360200190f35b341561036557fe5b610341610ee6565b60408051600160a060020a039092168252519081900360200190f35b341561039157fe5b61029a600160a060020a0360043516610ef5565b60408051918252519081900360200190f35b34156103bf57fe5b6103c7610f14565b604051808260048111156103d757fe5b60ff16815260200191505060405180910390f35b34156103f357fe5b61029a610f61565b60408051918252519081900360200190f35b341561041557fe5b61029a610f70565b60408051918252519081900360200190f35b341561043757fe5b610341610f76565b60408051600160a060020a039092168252519081900360200190f35b341561046357fe5b6101ae610f8a565b6040805160208082528351818301528351919283929083019185019080838382156101f4575b8051825260208311156101f457601f1990920191602091820191016101d4565b505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104f357fe5b61024d611018565b604080519115158252519081900360200190f35b341561051757fe5b61024d600160a060020a036004351660243561101e565b604080519115158252519081900360200190f35b341561054a57fe5b61019c6111d1565b005b341561055c57fe5b61024d611460565b604080519115158252519081900360200190f35b341561058057fe5b61029a611469565b60408051918252519081900360200190f35b34156105a257fe5b61024d61146f565b604080519115158252519081900360200190f35b34156105c657fe5b61024d600160a060020a036004351661147f565b604080519115158252519081900360200190f35b34156105f657fe5b61019c600160a060020a03600435166114a1565b005b341561061457fe5b61029a600160a060020a0360043581169060243516611826565b60408051918252519081900360200190f35b341561064857fe5b61019c600160a060020a03600435166024351515611853565b005b34156104f357fe5b61024d611018565b604080519115158252519081900360200190f35b341561068f57fe5b61019c600160a060020a036004351661191a565b005b34156106ad57fe5b610341611a1c565b60408051600160a060020a039092168252519081900360200190f35b34156106d957fe5b61019c600160a060020a0360043516611a21565b005b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b505050505081565b60015460009060a860020a900460ff16156107d1576107d1604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b81158015906108055750600160a060020a0333811660009081526003602090815260408083209387168352929052205415155b1561084957610849604060405190810160405280601981526020017f416c6c6f77616e6365207261636520636f6e646974696f6e2100000000000000815250611b19565b5b600160a060020a03338116600081815260036020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b5b92915050565b60015433600160a060020a03908116610100909204161461090c5761090c604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b6001805475ff000000000000000000000000000000000000000000191660a860020a831515021790555b5b50565b600b5442101561098457610984604060405190810160405280601881526020017f416c6c6f636174696f6e732061726520667265657a6564210000000000000000815250611b19565b5b600160a060020a0333166000908152600c602052604090205415156109e3576109e3604060405190810160405280601481526020017f4e6f20616c6c6f636174696f6e20666f756e6421000000000000000000000000815250611b19565b5b600160a060020a033381166000818152600c60208181526040808420805460018054610100908190048a1688526002865284882080549390930390925587875282549684902080549097019096559454938352548151908152905194959390920490921692600080516020611c29833981519152929181900390910190a3600160a060020a0333166000908152600c60205260408120555b565b60005481565b600154600090819060a860020a900460ff1615610ada57610ada604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b600160a060020a03851660009081526004602052604090205460ff1615610b3b57610b3b604060405190810160405280601081526020017f4163636f756e7420667265657a65642100000000000000000000000000000000815250611b19565b5b50600160a060020a038085166000908152600360209081526040808320338516845282528083205493871683526002909152902054610b81908463ffffffff611bf716565b600160a060020a038086166000908152600260205260408082209390935590871681522054610bb6908463ffffffff611c1116565b600160a060020a038616600090815260026020526040902055610bdf818463ffffffff611c1116565b600160a060020a03808716600081815260036020908152604080832033861684528252918290209490945580518781529051928816939192600080516020611c29833981519152929181900390910190a3600191505b5b509392505050565b600a5481565b33600160a060020a038116600090815260026020526040902054610c689083611c11565b600160a060020a03821660009081526002602052604081209190915554610c95908363ffffffff611c1116565b60005560408051600160a060020a03831681526020810184905281517f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7929181900390910190a15b5050565b6000610ceb610f14565b905060035b816004811115610cfc57fe5b1480610d14575060045b816004811115610d1257fe5b145b1515610d5957610d59604060405190810160405280601681526020017f43616c6c656420696e2061206261642073746174652100000000000000000000815250611b19565b5b811515610da057610da0604060405190810160405280601981526020017f56616c756520746f2075706772616465206973207a65726f2100000000000000815250611b19565b5b600160a060020a033316600090815260026020526040902054610dca908363ffffffff611c1116565b600160a060020a03331660009081526002602052604081209190915554610df7908363ffffffff611c1116565b600055600754610e0d908363ffffffff611bf716565b600755600654604080517f753e88e5000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018690529151919092169163753e88e591604480830192600092919082900301818387803b1515610e7a57fe5b6102c65a03f11515610e8857fe5b5050600654604080518581529051600160a060020a03928316935033909216917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac9181900360200190a35b5050565b600654600160a060020a031681565b600554600160a060020a031681565b600160a060020a0381166000908152600260205260409020545b919050565b6000610f1e611018565b1515610f2c57506001610f5b565b600654600160a060020a03161515610f4657506002610f5b565b6007541515610f5757506003610f5b565b5060045b5b5b5b90565b6a0c685fa11e01ec6f00000081565b600b5481565b6001546101009004600160a060020a031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b505050505081565b60015b90565b60015460009060a860020a900460ff161561107257611072604060405190810160405280601081526020017f456d657267656e63792073746174652100000000000000000000000000000000815250611b19565b5b604060443610156110bd576110bd604060405190810160405280601581526020017f53686f727420616464726573732061747461636b210000000000000000000000815250611b19565b5b600160a060020a03331660009081526004602052604090205460ff161561111e5761111e604060405190810160405280601081526020017f4163636f756e7420667265657a65642100000000000000000000000000000000815250611b19565b5b600160a060020a033316600090815260026020526040902054611148908463ffffffff611c1116565b600160a060020a03338116600090815260026020526040808220939093559086168152205461117d908463ffffffff611bf716565b600160a060020a03808616600081815260026020908152604091829020949094558051878152905191933390931692600080516020611c2983398151915292918290030190a3600191505b5b505b92915050565b600c6020526a02116545850052128000007f9501e5ede1fb9f3a2c598fff77cfea3c23df826af76d60ca51fc0e0cb66112918190557fc7ca7b956b83ee4583b4f4611955a9b5c9e5800e703fdd0333bc5ad4b2ba7f588190557f7f8518c77fe6bb7471910753a701aaa183c282d221e96687410788d01eaaa3a18190557f627f413f76031905bd2f77a0db7beebb1bfc0b084e40a958400f72ced53e9ffd556969e10de76676d08000007f2ac7911ea403a011e44b7aa5a833c0cf83d356fed01f9424a2f947f865b00d1a8190557f30c53e6e8a57a0fa5ea08c001b3001791aca44b9df3336904237c8115a3285df556934f086f3b33b684000007f77acdf1ed14c24b3b10cd05ba3710f32009cd7f7ba6145da66b1e598025ee2838190557f84862b8626aeb1b74ce77c325365a3de3887989f8e93f4ce79c4d07e9a22311a8190557f663a7f53c827e6c8151a1ce1d9369fefb02ad57c7941993633341fba8bae34fe8190557f93b561ec2703f2500a6a6f8ad8c698284b15c206e0fbc0117e76c4c012d7521e55692a5a058fc295ed0000007ff4a8dfe2b1193a51a035be292c85d80fb827a5d3eab8ce73035587dafa4b2b498190557f43bdd8cbcd806a89139ec118d149e2983299258fc96822d6fa117b2af97a9d9d8190557f78c978bd8e250e573070820df501a9e42404448becba608cffca615d9d73c89d8190557f96ea2b90f71956dfb8b1bdc42c721c948d3bf5d89327a7e72362694891a297b68190557fec15c48f7ff10e3172b11a89c9cabfae7fa87c9b3764d9039517c2bba2a211fa5573689ccfeabd99081d061ae070b1da5e1f6e4b9fb26000526a01a784379d99db420000007f46c1a09a6806bcbfab4ce70d4fa8ef385017832cfe522f0df915db206bf384e9555b565b60015460ff1681565b60075481565b60015460a860020a900460ff1681565b600160a060020a03811660009081526004602052604090205460ff165b919050565b6114a9611018565b151561151457611514606060405190810160405280602e81526020017f546f6b656e207374617465206973206e6f74206665617369626c6520666f722081526020017f757067726164696e672079657421000000000000000000000000000000000000815250611b19565b5b600160a060020a038116151561156457611564604060405190810160405280601081526020017f496e76616c696420616464726573732100000000000000000000000000000000815250611b19565b5b60055433600160a060020a039081169116146115ba576115ba604060405190810160405280601481526020017f4f6e6c792075706772616465206d617374657221000000000000000000000000815250611b19565b5b60045b6115c6610f14565b60048111156115d157fe5b141561161657611616604060405190810160405280601881526020017f55706772616465207374617274656420616c7265616479210000000000000000815250611b19565b5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080516000602091820181905282517f61d3d7a6000000000000000000000000000000000000000000000000000000008152925194909316936361d3d7a6936004808501948390030190829087803b151561169d57fe5b6102c65a03f115156116ab57fe5b505060405151151590506116f8576116f8604060405190810160405280600e81526020017f42616420696e7465726661636521000000000000000000000000000000000000815250611b19565b5b6000805460065460408051602090810185905281517f4b2ba0dd00000000000000000000000000000000000000000000000000000000815291519394600160a060020a0390931693634b2ba0dd936004808501948390030190829087803b151561175f57fe5b6102c65a03f1151561176d57fe5b5050604051519190911490506117e2576117e2606060405190810160405280602c81526020017f546f74616c20737570706c7920736f75726365206973206e6f7420657175616c81526020017f6c20746f20746172676574210000000000000000000000000000000000000000815250611b19565b5b60065460408051600160a060020a039092168252517f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc9181900360200190a15b50565b600160a060020a038083166000908152600360209081526040808320938516835292905220545b92915050565b60015433600160a060020a0390811661010090920416146118ad576118ad604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b600160a060020a038216600081815260046020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b60015b90565b60015433600160a060020a03908116610100909204161461197457611974604060405190810160405280600b81526020017f4f6e6c79204f776e657221000000000000000000000000000000000000000000815250611b19565b5b600160a060020a03811615610937576001805461010090819004600160a060020a03908116600090815260026020908152604080832054878516808552828520918255875487900486168552828520859055875474ffffffffffffffffffffffffffffffffffffffff001916818802179788905593849052548151908152905192959490940490921692600080516020611c2983398151915292908290030190a35b5b5b50565b600081565b600160a060020a0381161515611a9657611a96606060405190810160405280602281526020017f496e76616c69642061646472657373206f662075706772616465206d6173746581526020017f7221000000000000000000000000000000000000000000000000000000000000815250611b19565b5b60055433600160a060020a03908116911614611aec57611aec604060405190810160405280601481526020017f4f6e6c792075706772616465206d617374657221000000000000000000000000815250611b19565b5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b7fe9c64ad7aacefe9ed905822d2a5a6ca63ffdc82b257709dc05a534d60d92f9103334836040518084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360008314611ba6575b805182526020831115611ba657601f199092019160209182019101611b86565b505050905090810190601f168015611bd25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160015460ff1615156109375760006000fd5b5b50565b600082820183811015611c0657fe5b8091505b5092915050565b600082821115611c1d57fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582085eda844e97315bb44c6be34968c64ff5ca6b094685cc9a3ef802137497864ef0029
Swarm Source
bzzr://85eda844e97315bb44c6be34968c64ff5ca6b094685cc9a3ef802137497864ef
Loading...
Loading
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.