ERC-721
NFT
Overview
Max Total Supply
70 0xMEME
Holders
24
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 0xMEMELoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Memes
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-02-06 */ pragma solidity ^0.4.24; 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; } } contract ReentrancyGuard { uint256 private guardCounter = 1; modifier nonReentrant() { guardCounter += 1; uint256 localCounter = guardCounter; _; require(localCounter == guardCounter); } } interface ERC165 { function supportsInterface(bytes4 _interfaceId) external view returns (bool); } contract ERC721Receiver { bytes4 internal constant ERC721_RECEIVED = 0x150b7a02; function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) public returns(bytes4); } library AddressUtils { function isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } } contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } 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 { 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 ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic { bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd; bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79; 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; modifier onlyOwnerOf(uint256 _tokenId) { require(ownerOf(_tokenId) == msg.sender); _; } modifier canTransfer(uint256 _tokenId) { require(isApprovedOrOwner(msg.sender, _tokenId)); _; } 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 canTransfer(_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 canTransfer(_tokenId) { safeTransferFrom(_from, _to, _tokenId, ""); } function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) public canTransfer(_tokenId) { transferFrom(_from, _to, _tokenId); 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 { bytes4 private constant InterfaceId_ERC721Enumerable = 0x780e9d63; bytes4 private constant InterfaceId_ERC721Metadata = 0x5b5e139f; string internal name_; string internal symbol_; mapping(address => uint256[]) internal ownedTokens; mapping(uint256 => uint256) internal ownedTokensIndex; uint256[] internal allTokens; mapping(uint256 => uint256) internal allTokensIndex; mapping(uint256 => string) internal tokenURIs; constructor(string _name, string _symbol) public { name_ = _name; symbol_ = _symbol; _registerInterface(InterfaceId_ERC721Enumerable); _registerInterface(InterfaceId_ERC721Metadata); } function name() external view returns (string) {return name_;} function symbol() external view returns (string) {return symbol_;} 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][lastTokenIndex] = 0; ownedTokens[_from].length--; 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 Memes is ERC721Token, Ownable { constructor() ERC721Token("0xBitcoinMemes", "0xMEME") public { addIpfs("IPFS_INIT"); // easy management of tokenIDs and edits 1=1 } // CONSTANTS address client; uint256 max_supply = 1000; string baseurl = "https://ipfs.io/ipfs/"; struct IpfsAddress { uint ipfsID; string ipfsHash; } uint numIpfs; mapping (uint => IpfsAddress) ipfsaddresses; function addIpfs(string _ipfshash) internal { uint ipfsID = numIpfs++; ipfsaddresses[ipfsID] = IpfsAddress(ipfsID, _ipfshash); } function getIpfs(uint get_ipfsID) external view returns (uint nof_addresses, uint _ipfsID, string _ipfsHash) { IpfsAddress storage i = ipfsaddresses[get_ipfsID]; nof_addresses = numIpfs; _ipfsID = i.ipfsID; _ipfsHash = i.ipfsHash; } function editIpfs(uint ipfsID, string newHash) external onlyOwner { ipfsaddresses[ipfsID] = IpfsAddress(ipfsID, newHash); } function manageBaseURL(string new_baseurl) public onlyOwner { baseurl = new_baseurl; } function viewBaseURL() public view returns (string base_url) { base_url = baseurl; } event BoughtToken(address indexed buyer, uint256 tokenId); function moreSupply() internal view returns (bool moreOK) { moreOK = true; if (allTokens.length + 1 > max_supply) {moreOK = false;} return moreOK; } function mintToken (string ipfs) onlyOwner external { uint256 index = allTokens.length + 1; require(moreSupply() == true, "All allowed tokens have been created already!"); addIpfs(ipfs); _mint(msg.sender, index); emit BoughtToken(msg.sender, index); } function mintTokenForClient (address _client, string ipfs) onlyOwner external { uint256 index = allTokens.length + 1; require(moreSupply() == true, "All allowed tokens have been minted already!"); addIpfs(ipfs); _mint(_client, index); emit BoughtToken(_client, index); } function transferOwnTokens (uint256[] _ids, address _to) external { uint256 n_tokens = _ids.length; address _from = msg.sender; require(_to != address(0)); for (uint it = 0; it < n_tokens; it++) { require(isApprovedOrOwner(msg.sender, _ids[it]));} for (uint i = 0; i < n_tokens; i++) { clearApproval(_from, _ids[i]); removeTokenFrom(_from, _ids[i]); addTokenTo(_to, _ids[i]); emit Transfer(_from, _to, _ids[i]);} } function myTokens() external view returns (uint256[]) { return ownedTokens[msg.sender]; } function uintTostr(uint i) internal pure returns (string){ if (i == 0) return "0"; uint j = i; uint length; while (j != 0){length++;j /= 10;} bytes memory bstr = new bytes(length); uint k = length - 1; while (i != 0){bstr[k--] = byte(48 + i % 10);i /= 10;} return string(bstr); } function tokenURI(uint256 _ID) public view returns (string URI) { require(exists(_ID)); IpfsAddress storage i = ipfsaddresses[_ID]; string storage ipfs = i.ipfsHash; URI = string(abi.encodePacked(baseurl, ipfs)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"ipfs","type":"string"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"new_baseurl","type":"string"}],"name":"manageBaseURL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_client","type":"address"},{"name":"ipfs","type":"string"}],"name":"mintTokenForClient","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":false,"inputs":[{"name":"_ids","type":"uint256[]"},{"name":"_to","type":"address"}],"name":"transferOwnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"get_ipfsID","type":"uint256"}],"name":"getIpfs","outputs":[{"name":"nof_addresses","type":"uint256"},{"name":"_ipfsID","type":"uint256"},{"name":"_ipfsHash","type":"string"}],"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":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"viewBaseURL","outputs":[{"name":"base_url","type":"string"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"ipfsID","type":"uint256"},{"name":"newHash","type":"string"}],"name":"editIpfs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_ID","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"URI","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"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"BoughtToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]
Contract Creation Code
6103e8600e5560c0604052601560808190527f68747470733a2f2f697066732e696f2f697066732f000000000000000000000060a09081526200004691600f919062000310565b503480156200005457600080fd5b50604080518082018252600e81527f3078426974636f696e4d656d65730000000000000000000000000000000000006020808301919091528251808401909352600683527f30784d454d4500000000000000000000000000000000000000000000000000009083015290620000f27f01ffc9a70000000000000000000000000000000000000000000000000000000064010000000062000250810204565b620001267f80ac58cd0000000000000000000000000000000000000000000000000000000064010000000062000250810204565b6200015a7f4f558e790000000000000000000000000000000000000000000000000000000064010000000062000250810204565b81516200016f90600590602085019062000310565b5080516200018590600690602084019062000310565b50620001ba7f780e9d630000000000000000000000000000000000000000000000000000000064010000000062000250810204565b620001ee7f5b5e139f0000000000000000000000000000000000000000000000000000000064010000000062000250810204565b5050600c8054600160a060020a0319163317905560408051808201909152600981527f495046535f494e4954000000000000000000000000000000000000000000000060208201526200024a90640100000000620002bd810204565b620003b5565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200028057600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b6010805460018082019092556040805180820182528281526020808201868152600085815260118352939093208251815592518051949592946200030993850192919091019062000310565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035357805160ff191683800117855562000383565b8280016001018555821562000383579182015b828111156200038357825182559160200191906001019062000366565b506200039192915062000395565b5090565b620003b291905b808211156200039157600081556001016200039c565b90565b611aef80620003c56000396000f3006080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461017957806306fdde03146101af578063081812fc14610239578063095ea7b31461026d57806318160ddd1461029357806319fa8f50146102ba57806323b872dd146102ec5780632f745c591461031657806333eba49a1461033a57806342842e0e1461035a5780634ad8eaf5146103845780634f2571d6146103dd5780634f558e791461040a5780634f6ccce7146104225780635f88d8371461043a5780636352211e146104685780636d7fd1bf1461048057806370a082311461051e578063715018a61461053f5780638da5cb5b14610554578063949e8acd1461056957806395d89b41146105ce5780639fae24ed146105e3578063a22cb465146105f8578063b88d4fde1461061e578063c040dac41461068d578063c87b56dd146106b1578063e985e9c5146106c9578063f2fde38b146106f0575b600080fd5b34801561018557600080fd5b5061019b600160e060020a031960043516610711565b604080519115158252519081900360200190f35b3480156101bb57600080fd5b506101c4610730565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101fe5781810151838201526020016101e6565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102516004356107c7565b60408051600160a060020a039092168252519081900360200190f35b34801561027957600080fd5b50610291600160a060020a03600435166024356107e2565b005b34801561029f57600080fd5b506102a8610898565b60408051918252519081900360200190f35b3480156102c657600080fd5b506102cf61089e565b60408051600160e060020a03199092168252519081900360200190f35b3480156102f857600080fd5b50610291600160a060020a03600435811690602435166044356108c2565b34801561032257600080fd5b506102a8600160a060020a0360043516602435610967565b34801561034657600080fd5b5061029160048035602481019101356109b4565b34801561036657600080fd5b50610291600160a060020a0360043581169060243516604435610af1565b34801561039057600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610291943694929360249392840191908190840183828082843750949750610b299650505050505050565b3480156103e957600080fd5b5061029160048035600160a060020a03169060248035908101910135610b57565b34801561041657600080fd5b5061019b600435610c9e565b34801561042e57600080fd5b506102a8600435610cbb565b34801561044657600080fd5b506102916024600480358281019291013590600160a060020a03903516610cf0565b34801561047457600080fd5b50610251600435610e0d565b34801561048c57600080fd5b50610498600435610e37565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561052a57600080fd5b506102a8600160a060020a0360043516610eea565b34801561054b57600080fd5b50610291610f1d565b34801561056057600080fd5b50610251610f8b565b34801561057557600080fd5b5061057e610f9a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ba5781810151838201526020016105a2565b505050509050019250505060405180910390f35b3480156105da57600080fd5b506101c4610ffa565b3480156105ef57600080fd5b506101c461105b565b34801561060457600080fd5b50610291600160a060020a036004351660243515156110bc565b34801561062a57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261029194600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506111409650505050505050565b34801561069957600080fd5b5061029160048035906024803590810191013561117f565b3480156106bd57600080fd5b506101c4600435611212565b3480156106d557600080fd5b5061019b600160a060020a036004358116906024351661131d565b3480156106fc57600080fd5b50610291600160a060020a036004351661134b565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b60006107ed82610e0d565b9050600160a060020a03838116908216141561080857600080fd5b33600160a060020a03821614806108245750610824813361131d565b151561082f57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b806108cd338261136e565b15156108d857600080fd5b600160a060020a03841615156108ed57600080fd5b600160a060020a038316151561090257600080fd5b61090c84836113cd565b610916848361143c565b6109208383611575565b8183600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b600061097283610eea565b821061097d57600080fd5b600160a060020a03831660009081526007602052604090208054839081106109a157fe5b9060005260206000200154905092915050565b600c54600090600160a060020a031633146109ce57600080fd5b506009546001016109dd6115be565b1515600114610a7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f416c6c20616c6c6f77656420746f6b656e732068617665206265656e2063726560448201527f6174656420616c72656164792100000000000000000000000000000000000000606482015290519081900360840190fd5b610aac83838080601f016020809104026020016040519081016040528093929190818152602001838380828437506115d6945050505050565b610ab63382611620565b60408051828152905133917f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5919081900360200190a2505050565b80610afc338261136e565b1515610b0757600080fd5b610b238484846020604051908101604052806000815250611140565b50505050565b600c54600160a060020a03163314610b4057600080fd5b8051610b5390600f906020840190611a02565b5050565b600c54600090600160a060020a03163314610b7157600080fd5b50600954600101610b806115be565b1515600114610c1657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416c6c20616c6c6f77656420746f6b656e732068617665206265656e206d696e60448201527f74656420616c7265616479210000000000000000000000000000000000000000606482015290519081900360840190fd5b610c4f83838080601f016020809104026020016040519081016040528093929190818152602001838380828437506115d6945050505050565b610c598482611620565b604080518281529051600160a060020a038616917f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5919081900360200190a250505050565b600090815260016020526040902054600160a060020a0316151590565b6000610cc5610898565b8210610cd057600080fd5b6009805483908110610cde57fe5b90600052602060002001549050919050565b8133600080600160a060020a0385161515610d0a57600080fd5b600091505b83821015610d4957610d3333888885818110610d2757fe5b9050602002013561136e565b1515610d3e57600080fd5b600190910190610d0f565b5060005b83811015610e0457610d7183888884818110610d6557fe5b905060200201356113cd565b610d8d83888884818110610d8157fe5b9050602002013561143c565b610da985888884818110610d9d57fe5b90506020020135611575565b868682818110610db557fe5b9050602002013585600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600101610d4d565b50505050505050565b600081815260016020526040812054600160a060020a0316801515610e3157600080fd5b92915050565b6000818152601160209081526040918290206010548154600180840180548751600293821615610100026000190190911692909204601f81018790048702830187019097528682529295919460609493919290830182828015610edb5780601f10610eb057610100808354040283529160200191610edb565b820191906000526020600020905b815481529060010190602001808311610ebe57829003601f168201915b50505050509150509193909250565b6000600160a060020a0382161515610f0157600080fd5b50600160a060020a031660009081526003602052604090205490565b600c54600160a060020a03163314610f3457600080fd5b600c54604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600c805473ffffffffffffffffffffffffffffffffffffffff19169055565b600c54600160a060020a031681565b336000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156107bc57602002820191906000526020600020905b815481526020019060010190808311610fdd575050505050905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b600f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b600160a060020a0382163314156110d257600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8161114b338261136e565b151561115657600080fd5b6111618585856108c2565b61116d8585858561166f565b151561117857600080fd5b5050505050565b600c54600160a060020a0316331461119657600080fd5b604080519081016040528084815260200183838080601f01602080910402602001604051908101604052809392919081815260200183838082843750505092909352505050600084815260116020908152604090912082518155828201518051919261120a92600185019290910190611a02565b505050505050565b606060008061122084610c9e565b151561122b57600080fd5b601160008581526020019081526020016000209150816001019050600f8160405160200180838054600181600116156101000203166002900480156112a75780601f106112855761010080835404028352918201916112a7565b820191906000526020600020905b815481529060010190602001808311611293575b5050828054600181600116156101000203166002900480156113005780601f106112de576101008083540402835291820191611300565b820191906000526020600020905b8154815290600101906020018083116112ec575b505060408051601f19818403018152919052979650505050505050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600c54600160a060020a0316331461136257600080fd5b61136b816117dc565b50565b60008061137a83610e0d565b905080600160a060020a031684600160a060020a031614806113b5575083600160a060020a03166113aa846107c7565b600160a060020a0316145b806113c557506113c5818561131d565b949350505050565b81600160a060020a03166113e082610e0d565b600160a060020a0316146113f357600080fd5b600081815260026020526040902054600160a060020a031615610b53576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916905550565b600080600061144b858561185a565b600084815260086020908152604080832054600160a060020a038916845260079092529091205490935061148690600163ffffffff6118f016565b600160a060020a0386166000908152600760205260409020805491935090839081106114ae57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a03168152602001908152602001600020848154811015156114ee57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040812080548490811061152057fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611557906000198301611a80565b50600093845260086020526040808520859055908452909220555050565b60006115818383611902565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b600e5460095460019190820111156107c45750600090565b601080546001808201909255604080518082018252828152602080820186815260008581526011835293909320825181559251805194959294611178938501929190910190611a02565b61162a8282611992565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b60008061168485600160a060020a03166119ed565b151561169357600191506117d3565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b8381101561172657818101518382015260200161170e565b50505050905090810190601f1680156117535780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561177557600080fd5b505af1158015611789573d6000803e3d6000fd5b505050506040513d602081101561179f57600080fd5b5051600160e060020a031981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b600160a060020a03811615156117f157600080fd5b600c54604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81600160a060020a031661186d82610e0d565b600160a060020a03161461188057600080fd5b600160a060020a0382166000908152600360205260409020546118aa90600163ffffffff6118f016565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000828211156118fc57fe5b50900390565b600081815260016020526040902054600160a060020a03161561192457600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611972916119f5565b600160a060020a0390921660009081526003602052604090209190915550565b600160a060020a03821615156119a757600080fd5b6119b18282611575565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000903b1190565b81810182811015610e3157fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a4357805160ff1916838001178555611a70565b82800160010185558215611a70579182015b82811115611a70578251825591602001919060010190611a55565b50611a7c929150611aa9565b5090565b815481835581811115611aa457600083815260209020611aa4918101908301611aa9565b505050565b6107c491905b80821115611a7c5760008155600101611aaf5600a165627a7a7230582013927f04022007b8b364a019a550ac4dfb46c871cd1631b4d9752bfb073895d20029
Deployed Bytecode
0x6080604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461017957806306fdde03146101af578063081812fc14610239578063095ea7b31461026d57806318160ddd1461029357806319fa8f50146102ba57806323b872dd146102ec5780632f745c591461031657806333eba49a1461033a57806342842e0e1461035a5780634ad8eaf5146103845780634f2571d6146103dd5780634f558e791461040a5780634f6ccce7146104225780635f88d8371461043a5780636352211e146104685780636d7fd1bf1461048057806370a082311461051e578063715018a61461053f5780638da5cb5b14610554578063949e8acd1461056957806395d89b41146105ce5780639fae24ed146105e3578063a22cb465146105f8578063b88d4fde1461061e578063c040dac41461068d578063c87b56dd146106b1578063e985e9c5146106c9578063f2fde38b146106f0575b600080fd5b34801561018557600080fd5b5061019b600160e060020a031960043516610711565b604080519115158252519081900360200190f35b3480156101bb57600080fd5b506101c4610730565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101fe5781810151838201526020016101e6565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102516004356107c7565b60408051600160a060020a039092168252519081900360200190f35b34801561027957600080fd5b50610291600160a060020a03600435166024356107e2565b005b34801561029f57600080fd5b506102a8610898565b60408051918252519081900360200190f35b3480156102c657600080fd5b506102cf61089e565b60408051600160e060020a03199092168252519081900360200190f35b3480156102f857600080fd5b50610291600160a060020a03600435811690602435166044356108c2565b34801561032257600080fd5b506102a8600160a060020a0360043516602435610967565b34801561034657600080fd5b5061029160048035602481019101356109b4565b34801561036657600080fd5b50610291600160a060020a0360043581169060243516604435610af1565b34801561039057600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610291943694929360249392840191908190840183828082843750949750610b299650505050505050565b3480156103e957600080fd5b5061029160048035600160a060020a03169060248035908101910135610b57565b34801561041657600080fd5b5061019b600435610c9e565b34801561042e57600080fd5b506102a8600435610cbb565b34801561044657600080fd5b506102916024600480358281019291013590600160a060020a03903516610cf0565b34801561047457600080fd5b50610251600435610e0d565b34801561048c57600080fd5b50610498600435610e37565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561052a57600080fd5b506102a8600160a060020a0360043516610eea565b34801561054b57600080fd5b50610291610f1d565b34801561056057600080fd5b50610251610f8b565b34801561057557600080fd5b5061057e610f9a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ba5781810151838201526020016105a2565b505050509050019250505060405180910390f35b3480156105da57600080fd5b506101c4610ffa565b3480156105ef57600080fd5b506101c461105b565b34801561060457600080fd5b50610291600160a060020a036004351660243515156110bc565b34801561062a57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261029194600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506111409650505050505050565b34801561069957600080fd5b5061029160048035906024803590810191013561117f565b3480156106bd57600080fd5b506101c4600435611212565b3480156106d557600080fd5b5061019b600160a060020a036004358116906024351661131d565b3480156106fc57600080fd5b50610291600160a060020a036004351661134b565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b60006107ed82610e0d565b9050600160a060020a03838116908216141561080857600080fd5b33600160a060020a03821614806108245750610824813361131d565b151561082f57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b806108cd338261136e565b15156108d857600080fd5b600160a060020a03841615156108ed57600080fd5b600160a060020a038316151561090257600080fd5b61090c84836113cd565b610916848361143c565b6109208383611575565b8183600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b600061097283610eea565b821061097d57600080fd5b600160a060020a03831660009081526007602052604090208054839081106109a157fe5b9060005260206000200154905092915050565b600c54600090600160a060020a031633146109ce57600080fd5b506009546001016109dd6115be565b1515600114610a7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f416c6c20616c6c6f77656420746f6b656e732068617665206265656e2063726560448201527f6174656420616c72656164792100000000000000000000000000000000000000606482015290519081900360840190fd5b610aac83838080601f016020809104026020016040519081016040528093929190818152602001838380828437506115d6945050505050565b610ab63382611620565b60408051828152905133917f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5919081900360200190a2505050565b80610afc338261136e565b1515610b0757600080fd5b610b238484846020604051908101604052806000815250611140565b50505050565b600c54600160a060020a03163314610b4057600080fd5b8051610b5390600f906020840190611a02565b5050565b600c54600090600160a060020a03163314610b7157600080fd5b50600954600101610b806115be565b1515600114610c1657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416c6c20616c6c6f77656420746f6b656e732068617665206265656e206d696e60448201527f74656420616c7265616479210000000000000000000000000000000000000000606482015290519081900360840190fd5b610c4f83838080601f016020809104026020016040519081016040528093929190818152602001838380828437506115d6945050505050565b610c598482611620565b604080518281529051600160a060020a038616917f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5919081900360200190a250505050565b600090815260016020526040902054600160a060020a0316151590565b6000610cc5610898565b8210610cd057600080fd5b6009805483908110610cde57fe5b90600052602060002001549050919050565b8133600080600160a060020a0385161515610d0a57600080fd5b600091505b83821015610d4957610d3333888885818110610d2757fe5b9050602002013561136e565b1515610d3e57600080fd5b600190910190610d0f565b5060005b83811015610e0457610d7183888884818110610d6557fe5b905060200201356113cd565b610d8d83888884818110610d8157fe5b9050602002013561143c565b610da985888884818110610d9d57fe5b90506020020135611575565b868682818110610db557fe5b9050602002013585600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600101610d4d565b50505050505050565b600081815260016020526040812054600160a060020a0316801515610e3157600080fd5b92915050565b6000818152601160209081526040918290206010548154600180840180548751600293821615610100026000190190911692909204601f81018790048702830187019097528682529295919460609493919290830182828015610edb5780601f10610eb057610100808354040283529160200191610edb565b820191906000526020600020905b815481529060010190602001808311610ebe57829003601f168201915b50505050509150509193909250565b6000600160a060020a0382161515610f0157600080fd5b50600160a060020a031660009081526003602052604090205490565b600c54600160a060020a03163314610f3457600080fd5b600c54604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600c805473ffffffffffffffffffffffffffffffffffffffff19169055565b600c54600160a060020a031681565b336000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156107bc57602002820191906000526020600020905b815481526020019060010190808311610fdd575050505050905090565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b600f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107bc5780601f10610791576101008083540402835291602001916107bc565b600160a060020a0382163314156110d257600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8161114b338261136e565b151561115657600080fd5b6111618585856108c2565b61116d8585858561166f565b151561117857600080fd5b5050505050565b600c54600160a060020a0316331461119657600080fd5b604080519081016040528084815260200183838080601f01602080910402602001604051908101604052809392919081815260200183838082843750505092909352505050600084815260116020908152604090912082518155828201518051919261120a92600185019290910190611a02565b505050505050565b606060008061122084610c9e565b151561122b57600080fd5b601160008581526020019081526020016000209150816001019050600f8160405160200180838054600181600116156101000203166002900480156112a75780601f106112855761010080835404028352918201916112a7565b820191906000526020600020905b815481529060010190602001808311611293575b5050828054600181600116156101000203166002900480156113005780601f106112de576101008083540402835291820191611300565b820191906000526020600020905b8154815290600101906020018083116112ec575b505060408051601f19818403018152919052979650505050505050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600c54600160a060020a0316331461136257600080fd5b61136b816117dc565b50565b60008061137a83610e0d565b905080600160a060020a031684600160a060020a031614806113b5575083600160a060020a03166113aa846107c7565b600160a060020a0316145b806113c557506113c5818561131d565b949350505050565b81600160a060020a03166113e082610e0d565b600160a060020a0316146113f357600080fd5b600081815260026020526040902054600160a060020a031615610b53576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916905550565b600080600061144b858561185a565b600084815260086020908152604080832054600160a060020a038916845260079092529091205490935061148690600163ffffffff6118f016565b600160a060020a0386166000908152600760205260409020805491935090839081106114ae57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a03168152602001908152602001600020848154811015156114ee57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040812080548490811061152057fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490611557906000198301611a80565b50600093845260086020526040808520859055908452909220555050565b60006115818383611902565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b600e5460095460019190820111156107c45750600090565b601080546001808201909255604080518082018252828152602080820186815260008581526011835293909320825181559251805194959294611178938501929190910190611a02565b61162a8282611992565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b60008061168485600160a060020a03166119ed565b151561169357600191506117d3565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b8381101561172657818101518382015260200161170e565b50505050905090810190601f1680156117535780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561177557600080fd5b505af1158015611789573d6000803e3d6000fd5b505050506040513d602081101561179f57600080fd5b5051600160e060020a031981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b600160a060020a03811615156117f157600080fd5b600c54604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81600160a060020a031661186d82610e0d565b600160a060020a03161461188057600080fd5b600160a060020a0382166000908152600360205260409020546118aa90600163ffffffff6118f016565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000828211156118fc57fe5b50900390565b600081815260016020526040902054600160a060020a03161561192457600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054611972916119f5565b600160a060020a0390921660009081526003602052604090209190915550565b600160a060020a03821615156119a757600080fd5b6119b18282611575565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000903b1190565b81810182811015610e3157fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a4357805160ff1916838001178555611a70565b82800160010185558215611a70579182015b82811115611a70578251825591602001919060010190611a55565b50611a7c929150611aa9565b5090565b815481835581811115611aa457600083815260209020611aa4918101908301611aa9565b505050565b6107c491905b80821115611a7c5760008155600101611aaf5600a165627a7a7230582013927f04022007b8b364a019a550ac4dfb46c871cd1631b4d9752bfb073895d20029
Deployed Bytecode Sourcemap
11802:3355:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2308:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2308:128:0;-1:-1:-1;;;;;;2308:128:0;;;;;;;;;;;;;;;;;;;;;;;9565:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9565:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9565:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6018:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6018:112:0;;;;;;;;;-1:-1:-1;;;;;6018:112:0;;;;;;;;;;;;;;5738:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5738:273:0;-1:-1:-1;;;;;5738:273:0;;;;;;;;;9899:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9899:92:0;;;;;;;;;;;;;;;;;;;;2117:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2117:54:0;;;;;;;;-1:-1:-1;;;;;;2117:54:0;;;;;;;;;;;;;;6499:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6499:310:0;-1:-1:-1;;;;;6499:310:0;;;;;;;;;;;;9707:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9707:185:0;-1:-1:-1;;;;;9707:185:0;;;;;;;13315:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13315:291:0;;;;;;;;;;;;6816:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6816:155:0;-1:-1:-1;;;;;6816:155:0;;;;;;;;;;;;12858:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12858:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12858:98:0;;-1:-1:-1;12858:98:0;;-1:-1:-1;;;;;;;12858:98:0;13613:309;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13613:309:0;;;;-1:-1:-1;;;;;13613:309:0;;;;;;;;;;;;;5591:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5591:140:0;;;;;9998:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9998:148:0;;;;;13929:545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13929:545:0;;;;;;;;;;;;;-1:-1:-1;;;;;13929:545:0;;;;;5421:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5421:163:0;;;;;12432:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12432:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12432:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5272:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5272:142:0;-1:-1:-1;;;;;5272:142:0;;;;;1656:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:111:0;;;;1332:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1332:20:0;;;;14481:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14481:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14481:98:0;;;;;;;;;;;;;;;;;9634:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9634:66:0;;;;12964:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12964:96:0;;;;6137:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6137:204:0;-1:-1:-1;;;;;6137:204:0;;;;;;;;;6978:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6978:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6978:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6978:227:0;;-1:-1:-1;6978:227:0;;-1:-1:-1;;;;;;;6978:227:0;12713:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12713:137:0;;;;;;;;;;;;;;;;14907:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14907:247:0;;;;;6348:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6348:144:0;-1:-1:-1;;;;;6348:144:0;;;;;;;;;;1774:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1774:104:0;-1:-1:-1;;;;;1774:104:0;;;;;2308:128;-1:-1:-1;;;;;;2396:33:0;2382:4;2396:33;;;;;;;;;;;;;;2308:128::o;9565:62::-;9620:5;9613:12;;;;;;;;-1:-1:-1;;9613:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9604:6;;9613:12;;9620:5;;9613:12;;9620:5;9613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9565:62;;:::o;6018:112::-;6078:7;6099:24;;;:14;:24;;;;;;-1:-1:-1;;;;;6099:24:0;;6018:112::o;5738:273::-;5798:13;5814:17;5822:8;5814:7;:17::i;:::-;5798:33;-1:-1:-1;;;;;;5844:12:0;;;;;;;;5836:21;;;;;;5870:10;-1:-1:-1;;;;;5870:19:0;;;;:58;;;5893:35;5910:5;5917:10;5893:16;:35::i;:::-;5862:67;;;;;;;;5934:24;;;;:14;:24;;;;;;:30;;-1:-1:-1;;5934:30:0;-1:-1:-1;;;;;5934:30:0;;;;;;;;;5974;;5934:24;;5974:30;;;;;;;5738:273;;;:::o;9899:92::-;9968:9;:16;9899:92;:::o;2117:54::-;;;:::o;6499:310::-;6586:8;5085:39;5103:10;5115:8;5085:17;:39::i;:::-;5077:48;;;;;;;;-1:-1:-1;;;;;6609:19:0;;;;6601:28;;;;;;-1:-1:-1;;;;;6642:17:0;;;;6634:26;;;;;;6665:30;6679:5;6686:8;6665:13;:30::i;:::-;6700:32;6716:5;6723:8;6700:15;:32::i;:::-;6737:25;6748:3;6753:8;6737:10;:25::i;:::-;6793:8;6788:3;-1:-1:-1;;;;;6772:30:0;6781:5;-1:-1:-1;;;;;6772:30:0;;;;;;;;;;;6499:310;;;;:::o;9707:185::-;9789:7;9824:17;9834:6;9824:9;:17::i;:::-;9815:26;;9807:35;;;;;;-1:-1:-1;;;;;9858:19:0;;;;;;:11;:19;;;;;:27;;9878:6;;9858:27;;;;;;;;;;;;;;9851:34;;9707:185;;;;:::o;13315:291::-;1630:5;;13376:13;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;-1:-1:-1;13392:9:0;:16;13411:1;13392:20;13429:12;:10;:12::i;:::-;:20;;13445:4;13429:20;13421:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13508:13;13516:4;;13508:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13508:7:0;;-1:-1:-1;;;;;13508:13:0:i;:::-;13530:24;13536:10;13548:5;13530;:24::i;:::-;13568:30;;;;;;;;13580:10;;13568:30;;;;;;;;;;13315:291;;;:::o;6816:155::-;6907:8;5085:39;5103:10;5115:8;5085:17;:39::i;:::-;5077:48;;;;;;;;6922:42;6939:5;6946:3;6951:8;6922:42;;;;;;;;;;;;;:16;:42::i;:::-;6816:155;;;;:::o;12858:98::-;1630:5;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;12927:21;;;;:7;;:21;;;;;:::i;:::-;;12858:98;:::o;13613:309::-;1630:5;;13700:13;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;-1:-1:-1;13716:9:0;:16;13735:1;13716:20;13753:12;:10;:12::i;:::-;:20;;13769:4;13753:20;13745:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13831:13;13839:4;;13831:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13831:7:0;;-1:-1:-1;;;;;13831:13:0:i;:::-;13853:21;13859:7;13868:5;13853;:21::i;:::-;13888:27;;;;;;;;-1:-1:-1;;;;;13888:27:0;;;;;;;;;;;;;13613:309;;;;:::o;5591:140::-;5646:4;5673:20;;;:10;:20;;;;;;-1:-1:-1;;;;;5673:20:0;5705:19;;;5591:140::o;9998:148::-;10057:7;10092:13;:11;:13::i;:::-;10083:22;;10075:31;;;;;;10122:9;:17;;10132:6;;10122:17;;;;;;;;;;;;;;10115:24;;9998:148;;;:::o;13929:545::-;14027:4;14067:10;14008:16;;-1:-1:-1;;;;;14098:17:0;;;;14090:26;;;;;;14150:1;14140:11;;14135:104;14158:8;14153:2;:13;14135:104;;;14197:39;14215:10;14227:4;;14232:2;14227:8;;;;;;;;;;;;;14197:17;:39::i;:::-;14189:48;;;;;;;;14168:4;;;;;14135:104;;;-1:-1:-1;14266:1:0;14252:216;14273:8;14269:1;:12;14252:216;;;14303:29;14317:5;14324:4;;14329:1;14324:7;;;;;;;;;;;;;14303:13;:29::i;:::-;14347:31;14363:5;14370:4;;14375:1;14370:7;;;;;;;;;;;;;14347:15;:31::i;:::-;14393:24;14404:3;14409:4;;14414:1;14409:7;;;;;;;;;;;;;14393:10;:24::i;:::-;14458:4;;14463:1;14458:7;;;;;;;;;;;;;14453:3;-1:-1:-1;;;;;14437:29:0;14446:5;-1:-1:-1;;;;;14437:29:0;;;;;;;;;;;14283:3;;14252:216;;;13929:545;;;;;;;:::o;5421:163::-;5477:7;5507:20;;;:10;:20;;;;;;-1:-1:-1;;;;;5507:20:0;5540:19;;;5532:28;;;;;;5572:5;5421:163;-1:-1:-1;;5421:163:0:o;12432:273::-;12489:18;12576:25;;;:13;:25;;;;;;;;;12628:7;;12656:8;;12687:10;;;;12675:22;;;;;;;;;;;-1:-1:-1;;12675:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;12628:7;;12656:8;;12523:16;;12576:25;12675:22;;;;;12687:10;12675:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12432:273;;;;;;:::o;5272:142::-;5328:7;-1:-1:-1;;;;;5350:20:0;;;;5342:29;;;;;;-1:-1:-1;;;;;;5383:24:0;;;;;:16;:24;;;;;;;5272:142::o;1656:111::-;1630:5;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;1731:5;;1712:25;;-1:-1:-1;;;;;1731:5:0;;;;1712:25;;1731:5;;1712:25;1742:5;:18;;-1:-1:-1;;1742:18:0;;;1656:111::o;1332:20::-;;;-1:-1:-1;;;;;1332:20:0;;:::o;14481:98::-;14561:10;14549:23;;;;:11;:23;;;;;;;;;14542:30;;;;;;;;;;;;;;;;;14524:9;;14542:30;;;14549:23;14542:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14481:98;:::o;9634:66::-;9691:7;9684:14;;;;;;;;-1:-1:-1;;9684:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9675:6;;9684:14;;9691:7;;9684:14;;9691:7;9684:14;;;;;;;;;;;;;;;;;;;;;;;;12964:96;13045:7;13034:18;;;;;;;;-1:-1:-1;;13034:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13008:15;;13034:18;;13045:7;;13034:18;;13045:7;13034:18;;;;;;;;;;;;;;;;;;;;;;;;6137:204;-1:-1:-1;;;;;6213:17:0;;6220:10;6213:17;;6205:26;;;;;;6254:10;6236:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;6236:34:0;;;;;;;;;;;;:46;;-1:-1:-1;;6236:46:0;;;;;;;;;;6292:42;;;;;;;6236:34;;6254:10;6292:42;;;;;;;;;;;6137:204;;:::o;6978:227::-;7082:8;5085:39;5103:10;5115:8;5085:17;:39::i;:::-;5077:48;;;;;;;;7097:34;7110:5;7117:3;7122:8;7097:12;:34::i;:::-;7144:53;7169:5;7176:3;7181:8;7191:5;7144:24;:53::i;:::-;7136:62;;;;;;;;6978:227;;;;;:::o;12713:137::-;1630:5;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;12814;;;;;;;;;12826:6;12814:28;;;;12834:7;;12814:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12814:28:0;;;;-1:-1:-1;;;12790:21:0;;;;:13;:21;;;;;;;;:52;;;;;;;;;;:21;;:52;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;12713:137:0:o;14907:247::-;14959:10;15009:21;15060:19;14988:11;14995:3;14988:6;:11::i;:::-;14980:20;;;;;;;;15033:13;:18;15047:3;15033:18;;;;;;;;;;;15009:42;;15082:1;:10;;15060:32;;15131:7;15140:4;15114:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15114:31:0;;;-1:-1:-1;;26:21;;;22:32;6:49;;15114:31:0;;;;14907:247;-1:-1:-1;;;;;;;14907:247:0:o;6348:144::-;-1:-1:-1;;;;;6448:25:0;;;6430:4;6448:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;6348:144::o;1774:104::-;1630:5;;-1:-1:-1;;;;;1630:5:0;1616:10;:19;1608:28;;;;;;1842:29;1861:9;1842:18;:29::i;:::-;1774:104;:::o;7212:262::-;7298:4;7309:13;7325:17;7333:8;7325:7;:17::i;:::-;7309:33;;7373:5;-1:-1:-1;;;;;7361:17:0;:8;-1:-1:-1;;;;;7361:17:0;;:59;;;;7412:8;-1:-1:-1;;;;;7387:33:0;:21;7399:8;7387:11;:21::i;:::-;-1:-1:-1;;;;;7387:33:0;;7361:59;:101;;;;7429:33;7446:5;7453:8;7429:16;:33::i;:::-;7347:120;7212:262;-1:-1:-1;;;;7212:262:0:o;7850:212::-;7950:6;-1:-1:-1;;;;;7929:27:0;:17;7937:8;7929:7;:17::i;:::-;-1:-1:-1;;;;;7929:27:0;;7921:36;;;;;;8002:1;7966:24;;;:14;:24;;;;;;-1:-1:-1;;;;;7966:24:0;:38;7962:94;;8048:1;8013:24;;;:14;:24;;;;;:37;;-1:-1:-1;;8013:37:0;;;-1:-1:-1;7850:212:0:o;10545:528::-;10668:18;10724:22;10790:17;10621:38;10643:5;10650:8;10621:21;:38::i;:::-;10689:26;;;;:16;:26;;;;;;;;;-1:-1:-1;;;;;10749:18:0;;;;:11;:18;;;;;;:25;10689:26;;-1:-1:-1;10749:32:0;;10779:1;10749:32;:29;:32;:::i;:::-;-1:-1:-1;;;;;10810:18:0;;;;;;:11;:18;;;;;:34;;10724:57;;-1:-1:-1;10810:18:0;10724:57;;10810:34;;;;;;;;;;;;;;10790:54;;10886:9;10853:11;:18;10865:5;-1:-1:-1;;;;;10853:18:0;-1:-1:-1;;;;;10853:18:0;;;;;;;;;;;;10872:10;10853:30;;;;;;;;;;;;;;;;;;;;;:42;;;;-1:-1:-1;;;;;10904:18:0;;;;:11;:18;;;;;;:34;;10923:14;;10904:34;;;;;;;;;;;;;;;;;:38;;;;-1:-1:-1;;;;;10951:18:0;;;;:11;:18;;;;;;:27;;;;;-1:-1:-1;;10951:27:0;;;:::i;:::-;-1:-1:-1;11016:1:0;10987:26;;;:16;:26;;;;;;:30;;;11026:27;;;;;;:40;-1:-1:-1;;10545:528:0:o;10298:240::-;10407:14;10367:31;10384:3;10389:8;10367:16;:31::i;:::-;-1:-1:-1;;;;;;10424:16:0;;;;;;;:11;:16;;;;;;;;:23;;39:1:-1;23:18;;45:23;;10456:31:0;;;;;;;;;;;10496:26;;;:16;:26;;;;;:35;10298:240::o;13134:174::-;13250:10;;13227:9;:16;13210:4;;13227:20;;;:33;13223:56;;;-1:-1:-1;13272:5:0;13134:174;:::o;12273:151::-;12342:7;:9;;;;;;;;;12386:30;;;;;;;;;;;;;;;;;;12328:11;12362:21;;;:13;:21;;;;;;:54;;;;;;;;12342:9;;12386:30;;12362:54;;;;;;;;;;;:::i;11080:182::-;11144:26;11156:3;11161:8;11144:11;:26::i;:::-;11206:9;:16;;11179:24;;;;:14;:24;;;;;:43;;;39:1:-1;23:18;;45:23;;11231:24:0;;;;;;;-1:-1:-1;11080:182:0:o;8499:309::-;8610:4;8670:13;8626:16;:3;-1:-1:-1;;;;;8626:14:0;;:16::i;:::-;8625:17;8621:43;;;8652:4;8645:11;;;;8621:43;8686:76;;;;;8727:10;8686:76;;;;;;-1:-1:-1;;;;;8686:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;;8727:10;8739:5;;8746:8;;8756:5;;8686:76;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8686:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8686:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8686:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8686:76:0;-1:-1:-1;;;;;;8775:25:0;;8785:15;8775:25;;-1:-1:-1;8686:76:0;-1:-1:-1;8499:309:0;;;;;;;;:::o;1885:170::-;-1:-1:-1;;;;;1954:23:0;;;;1946:32;;;;;;2009:5;;1988:38;;-1:-1:-1;;;;;1988:38:0;;;;2009:5;;1988:38;;2009:5;;1988:38;2031:5;:17;;-1:-1:-1;;2031:17:0;-1:-1:-1;;;;;2031:17:0;;;;;;;;;;1885:170::o;8279:213::-;8380:5;-1:-1:-1;;;;;8359:26:0;:17;8367:8;8359:7;:17::i;:::-;-1:-1:-1;;;;;8359:26:0;;8351:35;;;;;;-1:-1:-1;;;;;8417:23:0;;;;;;:16;:23;;;;;;:30;;8445:1;8417:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;8391:23:0;;;;;;;:16;:23;;;;;;;;:56;;;;8452:20;;;:10;:20;;;;:33;;-1:-1:-1;;8452:33:0;;;8279:213::o;324:110::-;382:7;403:6;;;;396:14;;;;-1:-1:-1;422:5:0;;;324:110::o;8069:203::-;8174:1;8142:20;;;:10;:20;;;;;;-1:-1:-1;;;;;8142:20:0;:34;8134:43;;;;;;8182:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;8182:26:0;-1:-1:-1;;;;;8182:26:0;;;;;;;;8237:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;8213:21:0;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;8069:203:0:o;7481:168::-;-1:-1:-1;;;;;7549:17:0;;;;7541:26;;;;;;7572:25;7583:3;7588:8;7572:10;:25::i;:::-;7607:35;;7633:8;;-1:-1:-1;;;;;7607:35:0;;;7624:1;;7607:35;;7624:1;;7607:35;7481:168;;:::o;1151:149::-;1208:4;1255:17;;1285:8;;1151:149::o;441:122::-;519:5;;;536:6;;;;529:14;;;11802:3355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11802:3355:0;;;-1:-1:-1;11802:3355:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://13927f04022007b8b364a019a550ac4dfb46c871cd1631b4d9752bfb073895d2
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.