ETH Price: $3,244.16 (-1.15%)

Token

LetterToken350 (LetterToken350)
 

Overview

Max Total Supply

19 LetterToken350

Holders

4

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
enjoi.eth
Balance
2 LetterToken350
0x3E415cBd89D9C5F0e7476E0F3E7dfe984d0f9Fef
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LetterToken350

Compiler Version
v0.4.25-nightly.2018.7.31+commit.75c1a9bd

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-20
*/

pragma solidity ^0.4.24;


interface ERC165 {

  function supportsInterface(bytes4 _interfaceId)
    external
    view
    returns (bool);
}



contract SupportsInterfaceWithLookup is ERC165 {
  bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;

  mapping(bytes4 => bool) internal supportedInterfaces;

  constructor()
    public
  {
    _registerInterface(InterfaceId_ERC165);
  }

  function supportsInterface(bytes4 _interfaceId)
    external
    view
    returns (bool)
  {
    return supportedInterfaces[_interfaceId];
  }

  function _registerInterface(bytes4 _interfaceId)
    internal
  {
    require(_interfaceId != 0xffffffff);
    supportedInterfaces[_interfaceId] = true;
  }
}


contract ERC721Basic is ERC165 {

  bytes4 internal constant InterfaceId_ERC721 = 0x80ac58cd;

  bytes4 internal constant InterfaceId_ERC721Exists = 0x4f558e79;

  bytes4 internal constant InterfaceId_ERC721Enumerable = 0x780e9d63;

  bytes4 internal constant InterfaceId_ERC721Metadata = 0x5b5e139f;

  event Transfer(
    address indexed _from,
    address indexed _to,
    uint256 indexed _tokenId
  );
  event Approval(
    address indexed _owner,
    address indexed _approved,
    uint256 indexed _tokenId
  );
  event ApprovalForAll(
    address indexed _owner,
    address indexed _operator,
    bool _approved
  );

  function balanceOf(address _owner) public view returns (uint256 _balance);
  function ownerOf(uint256 _tokenId) public view returns (address _owner);
  function exists(uint256 _tokenId) public view returns (bool _exists);

  function approve(address _to, uint256 _tokenId) public;
  function getApproved(uint256 _tokenId)
    public view returns (address _operator);

  function setApprovalForAll(address _operator, bool _approved) public;
  function isApprovedForAll(address _owner, address _operator)
    public view returns (bool);

  function transferFrom(address _from, address _to, uint256 _tokenId) public;
  function safeTransferFrom(address _from, address _to, uint256 _tokenId)
    public;

  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes _data
  )
    public;
}



contract ERC721Enumerable is ERC721Basic {
  function totalSupply() public view returns (uint256);
  function tokenOfOwnerByIndex(
    address _owner,
    uint256 _index
  )
    public
    view
    returns (uint256 _tokenId);

  function tokenByIndex(uint256 _index) public view returns (uint256);
}


contract ERC721Metadata is ERC721Basic {
  function name() external view returns (string _name);
  function symbol() external view returns (string _symbol);
  function tokenURI(uint256 _tokenId) public view returns (string);
}


contract ERC721 is ERC721Basic, ERC721Enumerable, ERC721Metadata {
}




contract ERC721Receiver {

  bytes4 internal constant ERC721_RECEIVED = 0x150b7a02;

  function onERC721Received(
    address _operator,
    address _from,
    uint256 _tokenId,
    bytes _data
  )
    public
    returns(bytes4);
}



library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {

    if (a == 0) {
      return 0;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {

    return a / b;
  }

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

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


library AddressUtils {


  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    assembly { size := extcodesize(addr) }
    return size > 0;
  }

}


contract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {

  using SafeMath for uint256;
  using AddressUtils for address;

  bytes4 private constant ERC721_RECEIVED = 0x150b7a02;

  mapping (uint256 => address) internal tokenOwner;
  mapping (uint256 => address) internal tokenApprovals;
  mapping (address => uint256) internal ownedTokensCount;
  mapping (address => mapping (address => bool)) internal operatorApprovals;

  constructor()
    public
  {
    _registerInterface(InterfaceId_ERC721);
    _registerInterface(InterfaceId_ERC721Exists);
  }

  function balanceOf(address _owner) public view returns (uint256) {
    require(_owner != address(0));
    return ownedTokensCount[_owner];
  }

  function ownerOf(uint256 _tokenId) public view returns (address) {
    address owner = tokenOwner[_tokenId];
    require(owner != address(0));
    return owner;
  }

  function exists(uint256 _tokenId) public view returns (bool) {
    address owner = tokenOwner[_tokenId];
    return owner != address(0);
  }

  function approve(address _to, uint256 _tokenId) public {
    address owner = ownerOf(_tokenId);
    require(_to != owner);
    require(msg.sender == owner || isApprovedForAll(owner, msg.sender));

    tokenApprovals[_tokenId] = _to;
    emit Approval(owner, _to, _tokenId);
  }

  function getApproved(uint256 _tokenId) public view returns (address) {
    return tokenApprovals[_tokenId];
  }

  function setApprovalForAll(address _to, bool _approved) public {
    require(_to != msg.sender);
    operatorApprovals[msg.sender][_to] = _approved;
    emit ApprovalForAll(msg.sender, _to, _approved);
  }

  function isApprovedForAll(
    address _owner,
    address _operator
  )
    public
    view
    returns (bool)
  {
    return operatorApprovals[_owner][_operator];
  }

  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    public
  {
    require(isApprovedOrOwner(msg.sender, _tokenId));
    require(_from != address(0));
    require(_to != address(0));

    clearApproval(_from, _tokenId);
    removeTokenFrom(_from, _tokenId);
    addTokenTo(_to, _tokenId);

    emit Transfer(_from, _to, _tokenId);
  }

  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    public
  {
    // solium-disable-next-line arg-overflow
    safeTransferFrom(_from, _to, _tokenId, "");
  }

  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes _data
  )
    public
  {
    transferFrom(_from, _to, _tokenId);
    // solium-disable-next-line arg-overflow
    require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));
  }

  function isApprovedOrOwner(
    address _spender,
    uint256 _tokenId
  )
    internal
    view
    returns (bool)
  {
    address owner = ownerOf(_tokenId);
    return (
      _spender == owner ||
      getApproved(_tokenId) == _spender ||
      isApprovedForAll(owner, _spender)
    );
  }


  function _mint(address _to, uint256 _tokenId) internal {
    require(_to != address(0));
    addTokenTo(_to, _tokenId);
    emit Transfer(address(0), _to, _tokenId);
  }

  function _burn(address _owner, uint256 _tokenId) internal {
    clearApproval(_owner, _tokenId);
    removeTokenFrom(_owner, _tokenId);
    emit Transfer(_owner, address(0), _tokenId);
  }

  function clearApproval(address _owner, uint256 _tokenId) internal {
    require(ownerOf(_tokenId) == _owner);
    if (tokenApprovals[_tokenId] != address(0)) {
      tokenApprovals[_tokenId] = address(0);
    }
  }

  function addTokenTo(address _to, uint256 _tokenId) internal {
    require(tokenOwner[_tokenId] == address(0));
    tokenOwner[_tokenId] = _to;
    ownedTokensCount[_to] = ownedTokensCount[_to].add(1);
  }

  function removeTokenFrom(address _from, uint256 _tokenId) internal {
    require(ownerOf(_tokenId) == _from);
    ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);
    tokenOwner[_tokenId] = address(0);
  }

  function checkAndCallSafeTransfer(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes _data
  )
    internal
    returns (bool)
  {
    if (!_to.isContract()) {
      return true;
    }
    bytes4 retval = ERC721Receiver(_to).onERC721Received(
      msg.sender, _from, _tokenId, _data);
    return (retval == ERC721_RECEIVED);
  }
}







contract ERC721Token is SupportsInterfaceWithLookup, ERC721BasicToken, ERC721 {

  // Token name
  string internal name_;

  // Token symbol
  string internal symbol_;

  // Mapping from owner to list of owned token IDs
  mapping(address => uint256[]) internal ownedTokens;

  // Mapping from token ID to index of the owner tokens list
  mapping(uint256 => uint256) internal ownedTokensIndex;

  // Array with all token ids, used for enumeration
  uint256[] internal allTokens;

  // Mapping from token id to position in the allTokens array
  mapping(uint256 => uint256) internal allTokensIndex;

  // Optional mapping for token URIs
  mapping(uint256 => string) internal tokenURIs;

  constructor(string _name, string _symbol) public {
    name_ = _name;
    symbol_ = _symbol;

    // register the supported interfaces to conform to ERC721 via ERC165
    _registerInterface(InterfaceId_ERC721Enumerable);
    _registerInterface(InterfaceId_ERC721Metadata);
  }

  function name() external view returns (string) {
    return name_;
  }

  function symbol() external view returns (string) {
    return symbol_;
  }

  function tokenURI(uint256 _tokenId) public view returns (string) {
    require(exists(_tokenId));
    return tokenURIs[_tokenId];
  }

  function tokenOfOwnerByIndex(
    address _owner,
    uint256 _index
  )
    public
    view
    returns (uint256)
  {
    require(_index < balanceOf(_owner));
    return ownedTokens[_owner][_index];
  }

  function totalSupply() public view returns (uint256) {
    return allTokens.length;
  }

  function tokenByIndex(uint256 _index) public view returns (uint256) {
    require(_index < totalSupply());
    return allTokens[_index];
  }


  function _setTokenURI(uint256 _tokenId, string _uri) internal {
    require(exists(_tokenId));
    tokenURIs[_tokenId] = _uri;
  }


  function addTokenTo(address _to, uint256 _tokenId) internal {
    super.addTokenTo(_to, _tokenId);
    uint256 length = ownedTokens[_to].length;
    ownedTokens[_to].push(_tokenId);
    ownedTokensIndex[_tokenId] = length;
  }


  function removeTokenFrom(address _from, uint256 _tokenId) internal {
    super.removeTokenFrom(_from, _tokenId);

    uint256 tokenIndex = ownedTokensIndex[_tokenId];
    uint256 lastTokenIndex = ownedTokens[_from].length.sub(1);
    uint256 lastToken = ownedTokens[_from][lastTokenIndex];

    ownedTokens[_from][tokenIndex] = lastToken;
    ownedTokens[_from].length--; // This also deletes the contents at the last position of the array

    ownedTokensIndex[_tokenId] = 0;
    ownedTokensIndex[lastToken] = tokenIndex;
  }


  function _mint(address _to, uint256 _tokenId) internal {
    super._mint(_to, _tokenId);

    allTokensIndex[_tokenId] = allTokens.length;
    allTokens.push(_tokenId);
  }


  function _burn(address _owner, uint256 _tokenId) internal {
    super._burn(_owner, _tokenId);

    if (bytes(tokenURIs[_tokenId]).length != 0) {
      delete tokenURIs[_tokenId];
    }

    uint256 tokenIndex = allTokensIndex[_tokenId];
    uint256 lastTokenIndex = allTokens.length.sub(1);
    uint256 lastToken = allTokens[lastTokenIndex];

    allTokens[tokenIndex] = lastToken;
    allTokens[lastTokenIndex] = 0;

    allTokens.length--;
    allTokensIndex[_tokenId] = 0;
    allTokensIndex[lastToken] = tokenIndex;
  }

}


contract LetterToken350 is ERC721Token {

  constructor() public ERC721Token("LetterToken350","LetterToken350") { }

  struct Token{
    string GameID;
    string FortuneCookie;
    string Letter;
    uint256 Amt;
  }

  Token[] private tokens;

  
  function create(address paid1, address paid2, address paid3, address paid4, address paid5, address paid6, address paid7, string GameID, string FortuneCookie, string Letter, string tokenuri) public payable returns (uint256 _tokenId) {


    uint256  Amt=msg.value/7;
    paid1.transfer(Amt);
    paid2.transfer(Amt);
    paid3.transfer(Amt);
    paid4.transfer(Amt);
    paid5.transfer(Amt);
    paid6.transfer(Amt);
    paid7.transfer(Amt);

    //Add The Token	
    Token memory _newToken = Token({
	    GameID: GameID,
        FortuneCookie: FortuneCookie,
        Letter: Letter,
	    Amt: Amt
    });
    _tokenId = tokens.push(_newToken) - 1;
    
    _mint(msg.sender,_tokenId);
    _setTokenURI(_tokenId, tokenuri);

    
    //Emit The Token
    emit Create(_tokenId,msg.sender,Amt,GameID,FortuneCookie,Letter,tokenuri);
    return _tokenId;
  }

  event Create(
    uint _id,
    address indexed _owner,uint256 amt, string GameID, 
    string FortuneCookie,
    string Letter,
    string tokenUri
  );

  function get(uint256 _id) public view returns (address owner,string Letter,string GameID,string FortuneCookie) {
    return (
    
      tokenOwner[_id],
      tokens[_id].Letter,
      tokens[_id].GameID,
      tokens[_id].FortuneCookie
    );
  }

  function tokensOfOwner(address _owner) public view returns(uint256[]) {
    return ownedTokens[_owner];
  }



}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"InterfaceId_ERC165","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"get","outputs":[{"name":"owner","type":"address"},{"name":"Letter","type":"string"},{"name":"GameID","type":"string"},{"name":"FortuneCookie","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"paid1","type":"address"},{"name":"paid2","type":"address"},{"name":"paid3","type":"address"},{"name":"paid4","type":"address"},{"name":"paid5","type":"address"},{"name":"paid6","type":"address"},{"name":"paid7","type":"address"},{"name":"GameID","type":"string"},{"name":"FortuneCookie","type":"string"},{"name":"Letter","type":"string"},{"name":"tokenuri","type":"string"}],"name":"create","outputs":[{"name":"_tokenId","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_id","type":"uint256"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"amt","type":"uint256"},{"indexed":false,"name":"GameID","type":"string"},{"indexed":false,"name":"FortuneCookie","type":"string"},{"indexed":false,"name":"Letter","type":"string"},{"indexed":false,"name":"tokenUri","type":"string"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]

60806040523480156200001157600080fd5b50604080518082018252600e8082527f4c6574746572546f6b656e3335300000000000000000000000000000000000006020808401829052845180860190955291845290830152906200008d7f01ffc9a70000000000000000000000000000000000000000000000000000000064010000000062000191810204565b620000c17f80ac58cd0000000000000000000000000000000000000000000000000000000064010000000062000191810204565b620000f57f4f558e790000000000000000000000000000000000000000000000000000000064010000000062000191810204565b81516200010a906005906020850190620001fe565b50805162000120906006906020840190620001fe565b50620001557f780e9d630000000000000000000000000000000000000000000000000000000064010000000062000191810204565b620001897f5b5e139f0000000000000000000000000000000000000000000000000000000064010000000062000191810204565b5050620002a3565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001c157600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024157805160ff191683800117855562000271565b8280016001018555821562000271579182015b828111156200027157825182559160200191906001019062000254565b506200027f92915062000283565b5090565b620002a091905b808211156200027f57600081556001016200028a565b90565b611d6280620002b36000396000f30060806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461012157806306fdde0314610169578063081812fc146101f3578063095ea7b31461023957806318160ddd1461027457806319fa8f501461029b57806323b872dd146102cd5780632f745c591461031057806342842e0e146103495780634f558e791461038c5780634f6ccce7146103b65780636352211e146103e057806370a082311461040a5780638462151c1461043d5780639507d39a146104c057806395d89b41146106475780639942aa4d1461065c578063a22cb465146108d9578063b88d4fde14610914578063c87b56dd146109e7578063e985e9c514610a11575b600080fd5b34801561012d57600080fd5b506101556004803603602081101561014457600080fd5b5035600160e060020a031916610a4c565b604080519115158252519081900360200190f35b34801561017557600080fd5b5061017e610a6b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b85781810151838201526020016101a0565b50505050905090810190601f1680156101e55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ff57600080fd5b5061021d6004803603602081101561021657600080fd5b5035610b02565b60408051600160a060020a039092168252519081900360200190f35b34801561024557600080fd5b506102726004803603604081101561025c57600080fd5b50600160a060020a038135169060200135610b1d565b005b34801561028057600080fd5b50610289610bd3565b60408051918252519081900360200190f35b3480156102a757600080fd5b506102b0610bd9565b60408051600160e060020a03199092168252519081900360200190f35b3480156102d957600080fd5b50610272600480360360608110156102f057600080fd5b50600160a060020a03813581169160208101359091169060400135610bfd565b34801561031c57600080fd5b506102896004803603604081101561033357600080fd5b50600160a060020a038135169060200135610ca0565b34801561035557600080fd5b506102726004803603606081101561036c57600080fd5b50600160a060020a03813581169160208101359091169060400135610ced565b34801561039857600080fd5b50610155600480360360208110156103af57600080fd5b5035610d0e565b3480156103c257600080fd5b50610289600480360360208110156103d957600080fd5b5035610d2b565b3480156103ec57600080fd5b5061021d6004803603602081101561040357600080fd5b5035610d60565b34801561041657600080fd5b506102896004803603602081101561042d57600080fd5b5035600160a060020a0316610d8a565b34801561044957600080fd5b506104706004803603602081101561046057600080fd5b5035600160a060020a0316610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104ac578181015183820152602001610494565b505050509050019250505060405180910390f35b3480156104cc57600080fd5b506104ea600480360360208110156104e357600080fd5b5035610e29565b6040518085600160a060020a0316600160a060020a03168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561054757818101518382015260200161052f565b50505050905090810190601f1680156105745780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b838110156105a757818101518382015260200161058f565b50505050905090810190601f1680156105d45780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156106075781810151838201526020016105ef565b50505050905090810190601f1680156106345780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561065357600080fd5b5061017e611071565b610289600480360361016081101561067357600080fd5b600160a060020a038235811692602081013582169260408201358316926060830135811692608081013582169260a082013583169260c0830135169190810190610100810160e08201356401000000008111156106cf57600080fd5b8201836020820111156106e157600080fd5b8035906020019184600183028401116401000000008311171561070357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561075657600080fd5b82018360208201111561076857600080fd5b8035906020019184600183028401116401000000008311171561078a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561086457600080fd5b82018360208201111561087657600080fd5b8035906020019184600183028401116401000000008311171561089857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110d2945050505050565b3480156108e557600080fd5b50610272600480360360408110156108fc57600080fd5b50600160a060020a0381351690602001351515611527565b34801561092057600080fd5b506102726004803603608081101561093757600080fd5b600160a060020a0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460018302840111640100000000831117156109a657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115ab945050505050565b3480156109f357600080fd5b5061017e60048036036020811015610a0a57600080fd5b50356115d3565b348015610a1d57600080fd5b5061015560048036036040811015610a3457600080fd5b50600160a060020a038135811691602001351661167e565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b6000610b2882610d60565b9050600160a060020a038381169082161415610b4357600080fd5b33600160a060020a0382161480610b5f5750610b5f813361167e565b1515610b6a57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b610c0733826116ac565b1515610c1257600080fd5b600160a060020a0383161515610c2757600080fd5b600160a060020a0382161515610c3c57600080fd5b610c46838261170b565b610c50838261177c565b610c5a828261187e565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000610cab83610d8a565b8210610cb657600080fd5b600160a060020a0383166000908152600760205260409020805483908110610cda57fe5b9060005260206000200154905092915050565b610d0983838360206040519081016040528060008152506115ab565b505050565b600090815260016020526040902054600160a060020a0316151590565b6000610d35610bd3565b8210610d4057600080fd5b6009805483908110610d4e57fe5b90600052602060002001549050919050565b600081815260016020526040812054600160a060020a0316801515610d8457600080fd5b92915050565b6000600160a060020a0382161515610da157600080fd5b50600160a060020a031660009081526003602052604090205490565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610e1d57602002820191906000526020600020905b815481526020019060010190808311610e09575b50505050509050919050565b600081815260016020526040812054600c805460609283928392600160a060020a039092169187908110610e5957fe5b9060005260206000209060040201600201600c87815481101515610e7957fe5b9060005260206000209060040201600001600c88815481101515610e9957fe5b9060005260206000209060040201600101828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f3f5780601f10610f1457610100808354040283529160200191610f3f565b820191906000526020600020905b815481529060010190602001808311610f2257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905093509350935093509193509193565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af75780601f10610acc57610100808354040283529160200191610af7565b6040516000906007340490600160a060020a038e169082156108fc0290839085818181858888f1935050505015801561110f573d6000803e3d6000fd5b50604051600160a060020a038d169082156108fc029083906000818181858888f19350505050158015611146573d6000803e3d6000fd5b50604051600160a060020a038c169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b50604051600160a060020a038b169082156108fc029083906000818181858888f193505050501580156111b4573d6000803e3d6000fd5b50604051600160a060020a038a169082156108fc029083906000818181858888f193505050501580156111eb573d6000803e3d6000fd5b50604051600160a060020a0389169082156108fc029083906000818181858888f19350505050158015611222573d6000803e3d6000fd5b50604051600160a060020a0388169082156108fc029083906000818181858888f19350505050158015611259573d6000803e3d6000fd5b50611262611c55565b5060408051608081018252878152602080820188905291810186905260608101839052600c80546001818101808455600093909352835180519495919486936004027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c701926112d5928492910190611c7e565b5060208281015180516112ee9260018501920190611c7e565b506040820151805161130a916002840191602090910190611c7e565b5060608201518160030155505003925061132433846118c4565b61132e8385611913565b33600160a060020a03167faa0a459cfc01dbe08c976f4ed51a25f156d47cc91d89aa5d38aa881eff574e8584848a8a8a8a6040518087815260200186815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b5085810384528851815288516020918201918a019080838360005b838110156114145781810151838201526020016113fc565b50505050905090810190601f1680156114415780820380516001836020036101000a031916815260200191505b50858103835287518152875160209182019189019080838360005b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b50858103825286518152865160209182019188019080838360005b838110156114d45781810151838201526020016114bc565b50505050905090810190601f1680156115015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a250509b9a5050505050505050505050565b600160a060020a03821633141561153d57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6115b6848484610bfd565b6115c284848484611946565b15156115cd57600080fd5b50505050565b60606115de82610d0e565b15156115e957600080fd5b6000828152600b602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e1d5780601f1061165157610100808354040283529160200191610e1d565b820191906000526020600020905b81548152906001019060200180831161165f5750939695505050505050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806116b883610d60565b905080600160a060020a031684600160a060020a031614806116f3575083600160a060020a03166116e884610b02565b600160a060020a0316145b806117035750611703818561167e565b949350505050565b81600160a060020a031661171e82610d60565b600160a060020a03161461173157600080fd5b600081815260026020526040902054600160a060020a031615611778576000818152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b5050565b6117868282611aad565b600081815260086020908152604080832054600160a060020a038616845260079092528220549091906117c090600163ffffffff611b4316565b600160a060020a038516600090815260076020526040812080549293509091839081106117e957fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a031681526020019081526020016000208481548110151561182957fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611860906000198301611cfc565b50600093845260086020526040808520859055908452909220555050565b6118888282611b55565b600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b6118ce8282611be5565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b61191c82610d0e565b151561192757600080fd5b6000828152600b602090815260409091208251610d0992840190611c7e565b600061195a84600160a060020a0316611c40565b151561196857506001611703565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b838110156119fb5781810151838201526020016119e3565b50505050905090810190601f168015611a285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b5051600160e060020a0319167f150b7a020000000000000000000000000000000000000000000000000000000014915050949350505050565b81600160a060020a0316611ac082610d60565b600160a060020a031614611ad357600080fd5b600160a060020a038216600090815260036020526040902054611afd90600163ffffffff611b4316565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082821115611b4f57fe5b50900390565b600081815260016020526040902054600160a060020a031615611b7757600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611bc591611c48565b600160a060020a0390921660009081526003602052604090209190915550565b600160a060020a0382161515611bfa57600080fd5b611c04828261187e565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000903b1190565b81810182811015610d8457fe5b608060405190810160405280606081526020016060815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611cbf57805160ff1916838001178555611cec565b82800160010185558215611cec579182015b82811115611cec578251825591602001919060010190611cd1565b50611cf8929150611d1c565b5090565b815481835581811115610d0957600083815260209020610d099181019083015b610aff91905b80821115611cf85760008155600101611d225600a165627a7a7230582037953c694009d1a92b08c08b592bc1242324573e78955afeea0ff9986d570c9c0029

Deployed Bytecode

0x60806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461012157806306fdde0314610169578063081812fc146101f3578063095ea7b31461023957806318160ddd1461027457806319fa8f501461029b57806323b872dd146102cd5780632f745c591461031057806342842e0e146103495780634f558e791461038c5780634f6ccce7146103b65780636352211e146103e057806370a082311461040a5780638462151c1461043d5780639507d39a146104c057806395d89b41146106475780639942aa4d1461065c578063a22cb465146108d9578063b88d4fde14610914578063c87b56dd146109e7578063e985e9c514610a11575b600080fd5b34801561012d57600080fd5b506101556004803603602081101561014457600080fd5b5035600160e060020a031916610a4c565b604080519115158252519081900360200190f35b34801561017557600080fd5b5061017e610a6b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b85781810151838201526020016101a0565b50505050905090810190601f1680156101e55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ff57600080fd5b5061021d6004803603602081101561021657600080fd5b5035610b02565b60408051600160a060020a039092168252519081900360200190f35b34801561024557600080fd5b506102726004803603604081101561025c57600080fd5b50600160a060020a038135169060200135610b1d565b005b34801561028057600080fd5b50610289610bd3565b60408051918252519081900360200190f35b3480156102a757600080fd5b506102b0610bd9565b60408051600160e060020a03199092168252519081900360200190f35b3480156102d957600080fd5b50610272600480360360608110156102f057600080fd5b50600160a060020a03813581169160208101359091169060400135610bfd565b34801561031c57600080fd5b506102896004803603604081101561033357600080fd5b50600160a060020a038135169060200135610ca0565b34801561035557600080fd5b506102726004803603606081101561036c57600080fd5b50600160a060020a03813581169160208101359091169060400135610ced565b34801561039857600080fd5b50610155600480360360208110156103af57600080fd5b5035610d0e565b3480156103c257600080fd5b50610289600480360360208110156103d957600080fd5b5035610d2b565b3480156103ec57600080fd5b5061021d6004803603602081101561040357600080fd5b5035610d60565b34801561041657600080fd5b506102896004803603602081101561042d57600080fd5b5035600160a060020a0316610d8a565b34801561044957600080fd5b506104706004803603602081101561046057600080fd5b5035600160a060020a0316610dbd565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104ac578181015183820152602001610494565b505050509050019250505060405180910390f35b3480156104cc57600080fd5b506104ea600480360360208110156104e357600080fd5b5035610e29565b6040518085600160a060020a0316600160a060020a03168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561054757818101518382015260200161052f565b50505050905090810190601f1680156105745780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b838110156105a757818101518382015260200161058f565b50505050905090810190601f1680156105d45780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156106075781810151838201526020016105ef565b50505050905090810190601f1680156106345780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561065357600080fd5b5061017e611071565b610289600480360361016081101561067357600080fd5b600160a060020a038235811692602081013582169260408201358316926060830135811692608081013582169260a082013583169260c0830135169190810190610100810160e08201356401000000008111156106cf57600080fd5b8201836020820111156106e157600080fd5b8035906020019184600183028401116401000000008311171561070357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561075657600080fd5b82018360208201111561076857600080fd5b8035906020019184600183028401116401000000008311171561078a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561086457600080fd5b82018360208201111561087657600080fd5b8035906020019184600183028401116401000000008311171561089857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110d2945050505050565b3480156108e557600080fd5b50610272600480360360408110156108fc57600080fd5b50600160a060020a0381351690602001351515611527565b34801561092057600080fd5b506102726004803603608081101561093757600080fd5b600160a060020a0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561097257600080fd5b82018360208201111561098457600080fd5b803590602001918460018302840111640100000000831117156109a657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115ab945050505050565b3480156109f357600080fd5b5061017e60048036036020811015610a0a57600080fd5b50356115d3565b348015610a1d57600080fd5b5061015560048036036040811015610a3457600080fd5b50600160a060020a038135811691602001351661167e565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af75780601f10610acc57610100808354040283529160200191610af7565b820191906000526020600020905b815481529060010190602001808311610ada57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b6000610b2882610d60565b9050600160a060020a038381169082161415610b4357600080fd5b33600160a060020a0382161480610b5f5750610b5f813361167e565b1515610b6a57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b610c0733826116ac565b1515610c1257600080fd5b600160a060020a0383161515610c2757600080fd5b600160a060020a0382161515610c3c57600080fd5b610c46838261170b565b610c50838261177c565b610c5a828261187e565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000610cab83610d8a565b8210610cb657600080fd5b600160a060020a0383166000908152600760205260409020805483908110610cda57fe5b9060005260206000200154905092915050565b610d0983838360206040519081016040528060008152506115ab565b505050565b600090815260016020526040902054600160a060020a0316151590565b6000610d35610bd3565b8210610d4057600080fd5b6009805483908110610d4e57fe5b90600052602060002001549050919050565b600081815260016020526040812054600160a060020a0316801515610d8457600080fd5b92915050565b6000600160a060020a0382161515610da157600080fd5b50600160a060020a031660009081526003602052604090205490565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610e1d57602002820191906000526020600020905b815481526020019060010190808311610e09575b50505050509050919050565b600081815260016020526040812054600c805460609283928392600160a060020a039092169187908110610e5957fe5b9060005260206000209060040201600201600c87815481101515610e7957fe5b9060005260206000209060040201600001600c88815481101515610e9957fe5b9060005260206000209060040201600101828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f3f5780601f10610f1457610100808354040283529160200191610f3f565b820191906000526020600020905b815481529060010190602001808311610f2257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529597508694509250840190508282801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905093509350935093509193509193565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af75780601f10610acc57610100808354040283529160200191610af7565b6040516000906007340490600160a060020a038e169082156108fc0290839085818181858888f1935050505015801561110f573d6000803e3d6000fd5b50604051600160a060020a038d169082156108fc029083906000818181858888f19350505050158015611146573d6000803e3d6000fd5b50604051600160a060020a038c169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b50604051600160a060020a038b169082156108fc029083906000818181858888f193505050501580156111b4573d6000803e3d6000fd5b50604051600160a060020a038a169082156108fc029083906000818181858888f193505050501580156111eb573d6000803e3d6000fd5b50604051600160a060020a0389169082156108fc029083906000818181858888f19350505050158015611222573d6000803e3d6000fd5b50604051600160a060020a0388169082156108fc029083906000818181858888f19350505050158015611259573d6000803e3d6000fd5b50611262611c55565b5060408051608081018252878152602080820188905291810186905260608101839052600c80546001818101808455600093909352835180519495919486936004027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c701926112d5928492910190611c7e565b5060208281015180516112ee9260018501920190611c7e565b506040820151805161130a916002840191602090910190611c7e565b5060608201518160030155505003925061132433846118c4565b61132e8385611913565b33600160a060020a03167faa0a459cfc01dbe08c976f4ed51a25f156d47cc91d89aa5d38aa881eff574e8584848a8a8a8a6040518087815260200186815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b5085810384528851815288516020918201918a019080838360005b838110156114145781810151838201526020016113fc565b50505050905090810190601f1680156114415780820380516001836020036101000a031916815260200191505b50858103835287518152875160209182019189019080838360005b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b50858103825286518152865160209182019188019080838360005b838110156114d45781810151838201526020016114bc565b50505050905090810190601f1680156115015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a250509b9a5050505050505050505050565b600160a060020a03821633141561153d57600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6115b6848484610bfd565b6115c284848484611946565b15156115cd57600080fd5b50505050565b60606115de82610d0e565b15156115e957600080fd5b6000828152600b602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e1d5780601f1061165157610100808354040283529160200191610e1d565b820191906000526020600020905b81548152906001019060200180831161165f5750939695505050505050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806116b883610d60565b905080600160a060020a031684600160a060020a031614806116f3575083600160a060020a03166116e884610b02565b600160a060020a0316145b806117035750611703818561167e565b949350505050565b81600160a060020a031661171e82610d60565b600160a060020a03161461173157600080fd5b600081815260026020526040902054600160a060020a031615611778576000818152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b5050565b6117868282611aad565b600081815260086020908152604080832054600160a060020a038616845260079092528220549091906117c090600163ffffffff611b4316565b600160a060020a038516600090815260076020526040812080549293509091839081106117e957fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a031681526020019081526020016000208481548110151561182957fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611860906000198301611cfc565b50600093845260086020526040808520859055908452909220555050565b6118888282611b55565b600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b6118ce8282611be5565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b61191c82610d0e565b151561192757600080fd5b6000828152600b602090815260409091208251610d0992840190611c7e565b600061195a84600160a060020a0316611c40565b151561196857506001611703565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b838110156119fb5781810151838201526020016119e3565b50505050905090810190601f168015611a285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b5051600160e060020a0319167f150b7a020000000000000000000000000000000000000000000000000000000014915050949350505050565b81600160a060020a0316611ac082610d60565b600160a060020a031614611ad357600080fd5b600160a060020a038216600090815260036020526040902054611afd90600163ffffffff611b4316565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082821115611b4f57fe5b50900390565b600081815260016020526040902054600160a060020a031615611b7757600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611bc591611c48565b600160a060020a0390921660009081526003602052604090209190915550565b600160a060020a0382161515611bfa57600080fd5b611c04828261187e565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000903b1190565b81810182811015610d8457fe5b608060405190810160405280606081526020016060815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611cbf57805160ff1916838001178555611cec565b82800160010185558215611cec579182015b82811115611cec578251825591602001919060010190611cd1565b50611cf8929150611d1c565b5090565b815481835581811115610d0957600083815260209020610d099181019083015b610aff91905b80821115611cf85760008155600101611d225600a165627a7a7230582037953c694009d1a92b08c08b592bc1242324573e78955afeea0ff9986d570c9c0029

Swarm Source

bzzr://37953c694009d1a92b08c08b592bc1242324573e78955afeea0ff9986d570c9c
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.