Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
6 CRS
Holders
1
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CryptoSprites
Compiler Version
v0.4.17+commit.bdeb9e52
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-09 */ pragma solidity ^0.4.2; // The below two interfaces (KittyCore and SaleClockAuction) are from Crypto Kitties. This contract will have to call the Crypto Kitties contracts to find the owner of a Kitty, the properties of a Kitty and a Kitties price. interface KittyCore { function ownerOf (uint256 _tokenId) external view returns (address owner); function getKitty (uint256 _id) external view returns (bool isGestating, bool isReady, uint256 cooldownIndex, uint256 nextActionAt, uint256 siringWithId, uint256 birthTime, uint256 matronId, uint256 sireId, uint256 generation, uint256 genes); } interface SaleClockAuction { function getCurrentPrice (uint256 _tokenId) external view returns (uint256); function getAuction (uint256 _tokenId) external view returns (address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt); } // ERC721 token standard is used for non-fungible assets, like Sprites (non-fungible because they can't be split into pieces and don't have equal value). Technically this contract will also be ERC20 compliant. contract ERC721 { // Required methods function totalSupply() public view returns (uint256 total); function balanceOf(address _owner) public view returns (uint256 balance); function ownerOf(uint256 _tokenId) external view returns (address owner); function approve(address _to, uint256 _tokenId) external; function transfer(address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function allowance(address _owner, address _spender) view returns (uint remaining); function takeOwnership(uint256 _tokenId) external; // Events event Transfer(address indexed from, address indexed to, uint256 tokenId); event Approval(address indexed owner, address indexed approved, uint256 tokenId); function name() public view returns (string); function symbol() public view returns (string); // function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds); // function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl); // ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165) function supportsInterface(bytes4 _interfaceID) external view returns (bool); } contract CryptoSprites is ERC721 { address public owner; address KittyCoreAddress = 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d; address SaleClockAuctionAddress = 0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C; // 1.5% of Sprite sales to go to Heifer International: https://www.heifer.org/what-you-can-do/give/digital-currency.html (not affiliated with this game) address charityAddress = 0xb30cb3b3E03A508Db2A0a3e07BA1297b47bb0fb1; uint public etherForOwner; uint public etherForCharity; uint public ownerCut = 15; // 1.5% (15/1000 - see the buySprite() function) of Sprite sales go to owner of this contract uint public charityCut = 15; // 1.5% of Sprite sales also go to an established charity (Heifer International) uint public featurePrice = 10**16; // 0.01 Ether to feature a sprite // With the below the default price of a Sprite of a kitty would be only 10% of the kitties price. If for example priceMultiplier = 15 and priceDivider = 10, then the default price of a sprite would be 1.5 times the price of its kitty. Since Solidity doesn't allow decimals, two numbers are needed for flexibility in setting the default price a sprite would be in relation to the price of its kitten, in case that's needed later (owner of this contract can change the default price of Sprites anytime). // The default price of a Sprite may easily increase later to be more than 10% uint public priceMultiplier = 1; uint public priceDivider = 10; modifier onlyOwner { require(msg.sender == owner); _; } function CryptoSprites() { owner = msg.sender; } uint[] public featuredSprites; uint[] public allPurchasedSprites; uint public totalFeatures; uint public totalBuys; struct BroughtSprites { address owner; uint spriteImageID; bool forSale; uint price; uint timesTraded; bool featured; } mapping (uint => BroughtSprites) public broughtSprites; // This may include Sprites the user previously owned but doesn't anymore mapping (address => uint[]) public spriteOwningHistory; mapping (address => uint) public numberOfSpritesOwnedByUser; mapping (address => mapping(address => mapping(uint256 => bool))) public addressToReceiverToAllowedSprite; mapping (address => mapping(address => uint256)) public addressToReceiverToAmountAllowed; bytes4 constant InterfaceSignature_ERC165 = bytes4(keccak256('supportsInterface(bytes4)')); bytes4 constant InterfaceSignature_ERC721 = bytes4(keccak256('totalSupply()')) ^ bytes4(keccak256('balanceOf(address)')) ^ bytes4(keccak256('ownerOf(uint256)')) ^ bytes4(keccak256('approve(address,uint256)')) ^ bytes4(keccak256('transfer(address,uint256)')) ^ bytes4(keccak256('transferFrom(address,address,uint256)')); function() payable { etherForOwner += msg.value / 2; etherForCharity += msg.value / 2; } function adjustDefaultSpritePrice (uint _priceMultiplier, uint _priceDivider) onlyOwner { require (_priceMultiplier > 0); require (_priceDivider > 0); priceMultiplier = _priceMultiplier; priceDivider = _priceDivider; } function adjustCut (uint _ownerCut, uint _charityCut) onlyOwner { require (_ownerCut + _charityCut < 51); // Keep this contract honest by allowing the maximum combined cut to be no more than 5% (50/1000) of sales ownerCut = _ownerCut; charityCut = _charityCut; } function adjustFeaturePrice (uint _featurePrice) onlyOwner { require (_featurePrice > 0); featurePrice = _featurePrice; } function withdraw() onlyOwner { owner.transfer(etherForOwner); charityAddress.transfer(etherForCharity); etherForOwner = 0; etherForCharity = 0; } function changeOwner (address _owner) onlyOwner { owner = _owner; } function featureSprite (uint spriteId) payable { // Do not need to require user to be the owner of a Sprite to feature it // require (msg.sender == broughtSprites[spriteId].owner); require (msg.value == featurePrice); broughtSprites[spriteId].featured = true; if (broughtSprites[spriteId].timesTraded == 0) { address kittyOwner = KittyCore(KittyCoreAddress).ownerOf(spriteId); uint priceIfAny = SaleClockAuction(SaleClockAuctionAddress).getCurrentPrice(spriteId); // When featuring a Sprite that hasn't been traded before, if the original Kitty is for sale, update this Sprite with a price and set forSale = true - as long as msg.sender is the owner of the Kitty. Otherwise it could be that the owner of the Kitty removed the Sprite for sale and a different user could feature the Sprite and have it listed for sale if (priceIfAny > 0 && msg.sender == kittyOwner) { broughtSprites[spriteId].price = priceIfAny * priceMultiplier / priceDivider; broughtSprites[spriteId].forSale = true; } broughtSprites[spriteId].owner = kittyOwner; broughtSprites[spriteId].spriteImageID = uint(block.blockhash(block.number-1))%360 + 1; numberOfSpritesOwnedByUser[kittyOwner]++; } totalFeatures++; etherForOwner += msg.value; featuredSprites.push(spriteId); } function calculatePrice (uint kittyId) view returns (uint) { uint priceIfAny = SaleClockAuction(SaleClockAuctionAddress).getCurrentPrice(kittyId); var _ownerCut = ((priceIfAny / 1000) * ownerCut) * priceMultiplier / priceDivider; var _charityCut = ((priceIfAny / 1000) * charityCut) * priceMultiplier / priceDivider; return (priceIfAny * priceMultiplier / priceDivider) + _ownerCut + _charityCut; } function buySprite (uint spriteId) payable { uint _ownerCut; uint _charityCut; if (broughtSprites[spriteId].forSale == true) { // Buying a sprite that has been purchased or featured before, from a player of this game who has listed it for sale _ownerCut = ((broughtSprites[spriteId].price / 1000) * ownerCut); _charityCut = ((broughtSprites[spriteId].price / 1000) * charityCut); require (msg.value == broughtSprites[spriteId].price + _ownerCut + _charityCut); broughtSprites[spriteId].owner.transfer(broughtSprites[spriteId].price); numberOfSpritesOwnedByUser[broughtSprites[spriteId].owner]--; if (broughtSprites[spriteId].timesTraded == 0) { // Featured sprite that is being purchased for the first time allPurchasedSprites.push(spriteId); } Transfer (broughtSprites[spriteId].owner, msg.sender, spriteId); } else { // Buying a sprite that has never been brought before, from a kitten currently listed for sale in the CryptoKitties contract. The sale price will go to the owner of the kitten in the CryptoKitties contract (who very possibly would have never even heard of this game) require (broughtSprites[spriteId].timesTraded == 0); require (broughtSprites[spriteId].price == 0); // Here we are looking up the price of the Sprite's corresponding Kitty uint priceIfAny = SaleClockAuction(SaleClockAuctionAddress).getCurrentPrice(spriteId); require (priceIfAny > 0); // If the kitten in the CryptoKitties contract isn't for sale, a Sprite for it won't be for sale either _ownerCut = ((priceIfAny / 1000) * ownerCut) * priceMultiplier / priceDivider; _charityCut = ((priceIfAny / 1000) * charityCut) * priceMultiplier / priceDivider; // Crypto Kitty prices decrease every few seconds by a fractional amount, so use >= require (msg.value >= (priceIfAny * priceMultiplier / priceDivider) + _ownerCut + _charityCut); // Get the owner of the Kitty for sale var (kittyOwner,,,,) = SaleClockAuction(SaleClockAuctionAddress).getAuction(spriteId); kittyOwner.transfer(priceIfAny * priceMultiplier / priceDivider); allPurchasedSprites.push(spriteId); broughtSprites[spriteId].spriteImageID = uint(block.blockhash(block.number-1))%360 + 1; // Random number to determine what image/character the sprite will be Transfer (kittyOwner, msg.sender, spriteId); } totalBuys++; spriteOwningHistory[msg.sender].push(spriteId); numberOfSpritesOwnedByUser[msg.sender]++; broughtSprites[spriteId].owner = msg.sender; broughtSprites[spriteId].forSale = false; broughtSprites[spriteId].timesTraded++; broughtSprites[spriteId].featured = false; etherForOwner += _ownerCut; etherForCharity += _charityCut; } // Also used to adjust price if already for sale function listSpriteForSale (uint spriteId, uint price) { require (price > 0); if (broughtSprites[spriteId].owner != msg.sender) { require (broughtSprites[spriteId].timesTraded == 0); // This will be the owner of a Crypto Kitty, who can control the price of their unbrought Sprite address kittyOwner = KittyCore(KittyCoreAddress).ownerOf(spriteId); require (kittyOwner == msg.sender); broughtSprites[spriteId].owner = msg.sender; broughtSprites[spriteId].spriteImageID = uint(block.blockhash(block.number-1))%360 + 1; } broughtSprites[spriteId].forSale = true; broughtSprites[spriteId].price = price; } function removeSpriteFromSale (uint spriteId) { if (broughtSprites[spriteId].owner != msg.sender) { require (broughtSprites[spriteId].timesTraded == 0); address kittyOwner = KittyCore(KittyCoreAddress).ownerOf(spriteId); require (kittyOwner == msg.sender); broughtSprites[spriteId].price = 1; // When a user buys a Sprite Id that isn't for sale in the buySprite() function (ie. would be a Sprite that's never been brought before, for a Crypto Kitty that's for sale), one of the requirements is broughtSprites[spriteId].price == 0, which will be the case by default. By making the price = 1 this will throw and the Sprite won't be able to be brought } broughtSprites[spriteId].forSale = false; } // The following functions are in case a different contract wants to pull this data, which requires a function returning it (even if the variables are public) since solidity contracts can't directly pull storage of another contract function featuredSpritesLength() view external returns (uint) { return featuredSprites.length; } function usersSpriteOwningHistory (address user) view external returns (uint[]) { return spriteOwningHistory[user]; } function lookupSprite (uint spriteId) view external returns (address, uint, bool, uint, uint, bool) { return (broughtSprites[spriteId].owner, broughtSprites[spriteId].spriteImageID, broughtSprites[spriteId].forSale, broughtSprites[spriteId].price, broughtSprites[spriteId].timesTraded, broughtSprites[spriteId].featured); } function lookupFeaturedSprites (uint _index) view external returns (uint) { return featuredSprites[_index]; } function lookupAllSprites (uint _index) view external returns (uint) { return allPurchasedSprites[_index]; } // Will call SaleClockAuction to get the owner of a kitten and check its price (if it's for sale). We're calling the getAuction() function in the SaleClockAuction to get the kitty owner (that function returns 5 variables, we only want the owner). ownerOf() in the KittyCore contract won't return the kitty owner if the kitty is for sale, and this probably won't be used (including it in case it's needed to lookup an owner of a kitty not for sale later for any reason) function lookupKitty (uint kittyId) view returns (address, uint, address) { var (kittyOwner,,,,) = SaleClockAuction(SaleClockAuctionAddress).getAuction(kittyId); uint priceIfAny = SaleClockAuction(SaleClockAuctionAddress).getCurrentPrice(kittyId); address kittyOwnerNotForSale = KittyCore(KittyCoreAddress).ownerOf(kittyId); return (kittyOwner, priceIfAny, kittyOwnerNotForSale); } // The below two functions will pull all info of a kitten. Split into two functions otherwise stack too deep errors. These may not even be needed, may just be used so the website can display all info of a kitten when someone looks it up. function lookupKittyDetails1 (uint kittyId) view returns (bool, bool, uint, uint, uint) { var (isGestating, isReady, cooldownIndex, nextActionAt, siringWithId,,,,,) = KittyCore(KittyCoreAddress).getKitty(kittyId); return (isGestating, isReady, cooldownIndex, nextActionAt, siringWithId); } function lookupKittyDetails2 (uint kittyId) view returns (uint, uint, uint, uint, uint) { var(,,,,,birthTime, matronId, sireId, generation, genes) = KittyCore(KittyCoreAddress).getKitty(kittyId); return (birthTime, matronId, sireId, generation, genes); } // ERC-721 required functions below string public name = 'Crypto Sprites'; string public symbol = 'CRS'; uint8 public decimals = 0; // Sprites are non-fungible, ie. can't be divided into pieces function name() public view returns (string) { return name; } function symbol() public view returns (string) { return symbol; } function totalSupply() public view returns (uint) { return allPurchasedSprites.length; } function balanceOf (address _owner) public view returns (uint) { return numberOfSpritesOwnedByUser[_owner]; } function ownerOf (uint _tokenId) external view returns (address){ return broughtSprites[_tokenId].owner; } function approve (address _to, uint256 _tokenId) external { require (broughtSprites[_tokenId].owner == msg.sender); require (addressToReceiverToAllowedSprite[msg.sender][_to][_tokenId] == false); addressToReceiverToAllowedSprite[msg.sender][_to][_tokenId] = true; addressToReceiverToAmountAllowed[msg.sender][_to]++; Approval (msg.sender, _to, _tokenId); } function disapprove (address _to, uint256 _tokenId) external { require (broughtSprites[_tokenId].owner == msg.sender); require (addressToReceiverToAllowedSprite[msg.sender][_to][_tokenId] == true); // Else the next line may be 0 - 1 and underflow addressToReceiverToAmountAllowed[msg.sender][_to]--; addressToReceiverToAllowedSprite[msg.sender][_to][_tokenId] = false; } // Not strictly necessary - this can be done with transferFrom() as well function takeOwnership (uint256 _tokenId) external { require (addressToReceiverToAllowedSprite[broughtSprites[_tokenId].owner][msg.sender][_tokenId] == true); addressToReceiverToAllowedSprite[broughtSprites[_tokenId].owner][msg.sender][_tokenId] = false; addressToReceiverToAmountAllowed[broughtSprites[_tokenId].owner][msg.sender]--; numberOfSpritesOwnedByUser[broughtSprites[_tokenId].owner]--; numberOfSpritesOwnedByUser[msg.sender]++; spriteOwningHistory[msg.sender].push(_tokenId); Transfer (broughtSprites[_tokenId].owner, msg.sender, _tokenId); broughtSprites[_tokenId].owner = msg.sender; } function transfer (address _to, uint _tokenId) external { require (broughtSprites[_tokenId].owner == msg.sender); broughtSprites[_tokenId].owner = _to; numberOfSpritesOwnedByUser[msg.sender]--; numberOfSpritesOwnedByUser[_to]++; spriteOwningHistory[_to].push(_tokenId); Transfer (msg.sender, _to, _tokenId); } function transferFrom (address _from, address _to, uint256 _tokenId) external { require (addressToReceiverToAllowedSprite[_from][msg.sender][_tokenId] == true); require (broughtSprites[_tokenId].owner == _from); addressToReceiverToAllowedSprite[_from][msg.sender][_tokenId] = false; addressToReceiverToAmountAllowed[_from][msg.sender]--; numberOfSpritesOwnedByUser[_from]--; numberOfSpritesOwnedByUser[_to]++; spriteOwningHistory[_to].push(_tokenId); broughtSprites[_tokenId].owner = _to; Transfer (_from, _to, _tokenId); } function allowance (address _owner, address _spender) view returns (uint) { return addressToReceiverToAmountAllowed[_owner][_spender]; } function supportsInterface (bytes4 _interfaceID) external view returns (bool) { return ((_interfaceID == InterfaceSignature_ERC165) || (_interfaceID == InterfaceSignature_ERC721)); } }
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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_featurePrice","type":"uint256"}],"name":"adjustFeaturePrice","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":"charityCut","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":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"numberOfSpritesOwnedByUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"spriteId","type":"uint256"}],"name":"lookupSprite","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceDivider","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"addressToReceiverToAmountAllowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"featuredSprites","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spriteId","type":"uint256"}],"name":"buySprite","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allPurchasedSprites","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"broughtSprites","outputs":[{"name":"owner","type":"address"},{"name":"spriteImageID","type":"uint256"},{"name":"forSale","type":"bool"},{"name":"price","type":"uint256"},{"name":"timesTraded","type":"uint256"},{"name":"featured","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherForOwner","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spriteId","type":"uint256"}],"name":"removeSpriteFromSale","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":"totalBuys","outputs":[{"name":"","type":"uint256"}],"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":"spriteId","type":"uint256"},{"name":"price","type":"uint256"}],"name":"listSpriteForSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spriteId","type":"uint256"}],"name":"featureSprite","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_ownerCut","type":"uint256"},{"name":"_charityCut","type":"uint256"}],"name":"adjustCut","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"spriteOwningHistory","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"usersSpriteOwningHistory","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"lookupAllSprites","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_priceMultiplier","type":"uint256"},{"name":"_priceDivider","type":"uint256"}],"name":"adjustDefaultSpritePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"kittyId","type":"uint256"}],"name":"calculatePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"etherForCharity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"kittyId","type":"uint256"}],"name":"lookupKittyDetails1","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFeatures","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"lookupFeaturedSprites","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"featuredSpritesLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"kittyId","type":"uint256"}],"name":"lookupKittyDetails2","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"kittyId","type":"uint256"}],"name":"lookupKitty","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"addressToReceiverToAllowedSprite","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"featurePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"disapprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60606040527306012c8cf97bead5deae237070f9587f8e7a266d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b1690c08e213a35ed9bab7b318de14420fb57d8c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b30cb3b3e03a508db2a0a3e07ba1297b47bb0fb1600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f600655600f600755662386f26fc100006008556001600955600a80556040805190810160405280600e81526020017f43727970746f2053707269746573000000000000000000000000000000000000815250601490805190602001906200016e9291906200022b565b506040805190810160405280600381526020017f435253000000000000000000000000000000000000000000000000000000000081525060159080519060200190620001bc9291906200022b565b506000601660006101000a81548160ff021916908360ff1602179055503415620001e557600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002da565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026e57805160ff19168380011785556200029f565b828001600101855582156200029f579182015b828111156200029e57825182559160200191906001019062000281565b5b509050620002ae9190620002b2565b5090565b620002d791905b80821115620002d3576000816000905550600101620002b9565b5090565b90565b61412b80620002ea6000396000f30060606040523615610244576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461027e57806306fdde03146102d8578063095ea7b3146103665780630a71d020146103a857806318160ddd146103cb578063186e4297146103f457806323b872dd1461041d578063253e34471461047e5780632759ea4a146104cb578063313ce56714610559578063365044a8146105885780633ccfd60b146105b15780633e7e730d146105c6578063408512101461063257806351c54c681461066957806353eeb4301461068157806358d38231146106b85780635a5e0074146107465780635e7037d01461076f5780636352211e146107925780636c7f3f17146107f557806370a082311461081e57806378d46c3f1461086b57806383b5ff8b1461089757806388d18ea4146108c05780638bc6a72b146108d85780638da5cb5b1461090457806395d89b41146109595780639b6a2b2f146109e75780639e0cbb6414610a3d578063a542a02f14610acb578063a6f9dae114610b02578063a774f16314610b3b578063a9059cbb14610b67578063ae10426514610ba9578063b2e6ceeb14610be0578063d36f0e9c14610c03578063d50cb88b14610c2c578063d7b4c9b114610c55578063d94288de14610cb0578063d95431cd14610cd9578063dd62ed3e14610d10578063e118eda414610d7c578063ea7c211514610da5578063f0d504eb14610df8578063f15886db14610e95578063f63841e414610f0e578063fbabdb0614610f37575b60023481151561025057fe5b0460046000828254019250508190555060023481151561026c57fe5b04600560008282540192505081905550005b341561028957600080fd5b6102be60048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610f79565b604051808215151515815260200191505060405180910390f35b34156102e357600080fd5b6102eb6111ae565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032b578082015181840152602081019050610310565b50505050905090810190601f1680156103585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037157600080fd5b6103a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611256565b005b34156103b357600080fd5b6103c9600480803590602001909190505061150e565b005b34156103d657600080fd5b6103de611582565b6040518082815260200191505060405180910390f35b34156103ff57600080fd5b61040761158f565b6040518082815260200191505060405180910390f35b341561042857600080fd5b61047c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611595565b005b341561048957600080fd5b6104b5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119a9565b6040518082815260200191505060405180910390f35b34156104d657600080fd5b6104ec60048080359060200190919050506119c1565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018515151515815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b341561056457600080fd5b61056c611aa3565b604051808260ff1660ff16815260200191505060405180910390f35b341561059357600080fd5b61059b611ab6565b6040518082815260200191505060405180910390f35b34156105bc57600080fd5b6105c4611abc565b005b34156105d157600080fd5b61061c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bf0565b6040518082815260200191505060405180910390f35b341561063d57600080fd5b6106536004808035906020019091905050611c15565b6040518082815260200191505060405180910390f35b61067f6004808035906020019091905050611c39565b005b341561068c57600080fd5b6106a2600480803590602001909190505061240f565b6040518082815260200191505060405180910390f35b34156106c357600080fd5b6106d96004808035906020019091905050612433565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018515151515815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b341561075157600080fd5b6107596124a9565b6040518082815260200191505060405180910390f35b341561077a57600080fd5b61079060048080359060200190919050506124af565b005b341561079d57600080fd5b6107b36004808035906020019091905050612681565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561080057600080fd5b6108086126c1565b6040518082815260200191505060405180910390f35b341561082957600080fd5b610855600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506126c7565b6040518082815260200191505060405180910390f35b341561087657600080fd5b6108956004808035906020019091908035906020019091905050612710565b005b34156108a257600080fd5b6108aa612978565b6040518082815260200191505060405180910390f35b6108d6600480803590602001909190505061297e565b005b34156108e357600080fd5b6109026004808035906020019091908035906020019091905050612d0f565b005b341561090f57600080fd5b610917612d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561096457600080fd5b61096c612db2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109f257600080fd5b610a27600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612e5a565b6040518082815260200191505060405180910390f35b3415610a4857600080fd5b610a74600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612e8b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ab7578082015181840152602081019050610a9c565b505050509050019250505060405180910390f35b3415610ad657600080fd5b610aec6004808035906020019091905050612f28565b6040518082815260200191505060405180910390f35b3415610b0d57600080fd5b610b39600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f4c565b005b3415610b4657600080fd5b610b656004808035906020019091908035906020019091905050612fea565b005b3415610b7257600080fd5b610ba7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613075565b005b3415610bb457600080fd5b610bca60048080359060200190919050506132a8565b6040518082815260200191505060405180910390f35b3415610beb57600080fd5b610c0160048080359060200190919050506133ce565b005b3415610c0e57600080fd5b610c1661387e565b6040518082815260200191505060405180910390f35b3415610c3757600080fd5b610c3f613884565b6040518082815260200191505060405180910390f35b3415610c6057600080fd5b610c76600480803590602001909190505061388a565b6040518086151515158152602001851515151581526020018481526020018381526020018281526020019550505050505060405180910390f35b3415610cbb57600080fd5b610cc36139b1565b6040518082815260200191505060405180910390f35b3415610ce457600080fd5b610cfa60048080359060200190919050506139b7565b6040518082815260200191505060405180910390f35b3415610d1b57600080fd5b610d66600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506139db565b6040518082815260200191505060405180910390f35b3415610d8757600080fd5b610d8f613a62565b6040518082815260200191505060405180910390f35b3415610db057600080fd5b610dc66004808035906020019091905050613a6f565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3415610e0357600080fd5b610e196004808035906020019091905050613b96565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3415610ea057600080fd5b610ef4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613df0565b604051808215151515815260200191505060405180910390f35b3415610f1957600080fd5b610f21613e2c565b6040518082815260200191505060405180910390f35b3415610f4257600080fd5b610f77600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e32565b005b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111a7575060405180807f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81526020017f74323536290000000000000000000000000000000000000000000000000000008152506025019050604051809103902060405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060405180807f617070726f766528616464726573732c75696e743235362900000000000000008152506018019050604051809103902060405180807f6f776e65724f662875696e7432353629000000000000000000000000000000008152506010019050604051809103902060405180807f62616c616e63654f6628616464726573732900000000000000000000000000008152506012019050604051809103902060405180807f746f74616c537570706c79282900000000000000000000000000000000000000815250600d019050604051809103902018181818187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6111b6614086565b60148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561124c5780601f106112215761010080835404028352916020019161124c565b820191906000526020600020905b81548152906001019060200180831161122f57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112c657600080fd5b60001515601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16151514151561137357600080fd5b6001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156957600080fd5b60008111151561157857600080fd5b8060088190555050565b6000600c80549050905090565b60075481565b60011515601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16151514151561164257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116b257600080fd5b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816118d5919061409a565b91600052602060002090016000839091909150555081600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60116020528060005260406000206000915090505481565b600080600080600080600f600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f600089815260200190815260200160002060010154600f60008a815260200190815260200160002060020160009054906101000a900460ff16600f60008b815260200190815260200160002060030154600f60008c815260200190815260200160002060040154600f60008d815260200190815260200160002060050160009054906101000a900460ff1695509550955095509550955091939550919395565b601660009054906101000a900460ff1681565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f193505050501515611b7a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005549081150290604051600060405180830381858888f193505050501515611bde57600080fd5b60006004819055506000600581905550565b6013602052816000526040600020602052806000526040600020600091509150505481565b600b81815481101515611c2457fe5b90600052602060002090016000915090505481565b60008060008060011515600f600087815260200190815260200160002060020160009054906101000a900460ff1615151415611ee6576006546103e8600f600088815260200190815260200160002060030154811515611c9557fe5b040293506007546103e8600f600088815260200190815260200160002060030154811515611cbf57fe5b040292508284600f600088815260200190815260200160002060030154010134141515611ceb57600080fd5b600f600086815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600f6000888152602001908152602001600020600301549081150290604051600060405180830381858888f193505050501515611d7757600080fd5b60116000600f600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506000600f6000878152602001908152602001600020600401541415611e4657600c8054806001018281611e30919061409a565b9160005260206000209001600087909190915055505b3373ffffffffffffffffffffffffffffffffffffffff16600f600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3612248565b6000600f600087815260200190815260200160002060040154141515611f0b57600080fd5b6000600f600087815260200190815260200160002060030154141515611f3057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56866000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515611fc957600080fd5b6102c65a03f11515611fda57600080fd5b505050604051805190509150600082111515611ff557600080fd5b600a546009546006546103e88581151561200b57fe5b04020281151561201757fe5b049350600a546009546007546103e88581151561203057fe5b04020281151561203c57fe5b0492508284600a54600954850281151561205257fe5b040101341015151561206357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378bd793586600060405160a001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060a060405180830381600087803b15156120fc57600080fd5b6102c65a03f1151561210d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190505050505090508073ffffffffffffffffffffffffffffffffffffffff166108fc600a54600954850281151561216057fe5b049081150290604051600060405180830381858888f19350505050151561218657600080fd5b600c805480600101828161219a919061409a565b91600052602060002090016000879091909150555060016101686001430340600190048115156121c657fe5b0601600f6000878152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35b600e60008154809291906001019190505550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816122ab919061409a565b916000526020600020900160008790919091505550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555033600f600087815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f600087815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600f6000868152602001908152602001600020600401600081548092919060010191905055506000600f600087815260200190815260200160002060050160006101000a81548160ff02191690831515021790555083600460008282540192505081905550826005600082825401925050819055505050505050565b600c8181548110151561241e57fe5b90600052602060002090016000915090505481565b600f6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16908060030154908060040154908060050160009054906101000a900460ff16905086565b60045481565b60003373ffffffffffffffffffffffffffffffffffffffff16600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561264e576000600f60008481526020019081526020016000206004015414151561254157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156125da57600080fd5b6102c65a03f115156125eb57600080fd5b5050506040518051905090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561263157600080fd5b6001600f6000848152602001908152602001600020600301819055505b6000600f600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600e5481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808211151561272057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612929576000600f6000858152602001908152602001600020600401541415156127b057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561284957600080fd5b6102c65a03f1151561285a57600080fd5b5050506040518051905090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156128a057600080fd5b33600f600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600161016860014303406001900481151561290c57fe5b0601600f6000858152602001908152602001600020600101819055505b6001600f600085815260200190815260200160002060020160006101000a81548160ff02191690831515021790555081600f600085815260200190815260200160002060030181905550505050565b60065481565b6000806008543414151561299157600080fd5b6001600f600085815260200190815260200160002060050160006101000a81548160ff0219169083151502179055506000600f6000858152602001908152602001600020600401541415612cbf57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612a7857600080fd5b6102c65a03f11515612a8957600080fd5b505050604051805190509150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b2e57600080fd5b6102c65a03f11515612b3f57600080fd5b505050604051805190509050600081118015612b8657508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15612be757600a546009548202811515612b9c57fe5b04600f6000858152602001908152602001600020600301819055506001600f600085815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b81600f600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001610168600143034060019004811515612c5357fe5b0601600f600085815260200190815260200160002060010181905550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055505b600d6000815480929190600101919050555034600460008282540192505081905550600b8054806001018281612cf5919061409a565b916000526020600020900160008590919091505550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d6a57600080fd5b6033818301101515612d7b57600080fd5b81600681905550806007819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612dba614086565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e505780601f10612e2557610100808354040283529160200191612e50565b820191906000526020600020905b815481529060010190602001808311612e3357829003601f168201915b5050505050905090565b601060205281600052604060002081815481101515612e7557fe5b9060005260206000209001600091509150505481565b612e936140c6565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612f1c57602002820191906000526020600020905b815481526020019060010190808311612f08575b50505050509050919050565b6000600c82815481101515612f3957fe5b9060005260206000209001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fa757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304557600080fd5b60008211151561305457600080fd5b60008111151561306357600080fd5b8160098190555080600a819055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130e557600080fd5b81600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161322a919061409a565b9160005260206000209001600083909190915055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56866000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561334757600080fd5b6102c65a03f1151561335857600080fd5b505050604051805190509250600a546009546006546103e88681151561337a57fe5b04020281151561338657fe5b049150600a546009546007546103e88681151561339f57fe5b0402028115156133ab57fe5b0490508082600a5460095486028115156133c157fe5b0401019350505050919050565b6001151560126000600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff1615151415156134b157600080fd5b600060126000600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060136000600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555060116000600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281613776919061409a565b9160005260206000209001600083909190915055503373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a333600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b60095481565b600080600080600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e98b7f4d8c600060405161014001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505061014060405180830381600087803b151561393457600080fd5b6102c65a03f1151561394557600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519050505050505094509450945094509450848484848499509950995099509950505050505091939590929450565b600d5481565b6000600b828154811015156139c857fe5b9060005260206000209001549050919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b80549050905090565b600080600080600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e98b7f4d8c600060405161014001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505061014060405180830381600087803b1515613b1957600080fd5b6102c65a03f11515613b2a57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519050995099509950995099505050505050848484848499509950995099509950505050505091939590929450565b600080600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378bd793588600060405160a001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060a060405180830381600087803b1515613c3857600080fd5b6102c65a03f11515613c4957600080fd5b50505060405180519060200180519060200180519060200180519060200180519050505050509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56886000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613d0a57600080fd5b6102c65a03f11515613d1b57600080fd5b505050604051805190509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e886000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613dc057600080fd5b6102c65a03f11515613dd157600080fd5b5050506040518051905090508282829550955095505050509193909250565b6012602052826000526040600020602052816000526040600020602052806000526040600020600092509250509054906101000a900460ff1681565b60085481565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ea257600080fd5b60011515601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff161515141515613f4f57600080fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060405190810160405280600081525090565b8154818355818115116140c1578183600052602060002091820191016140c091906140da565b5b505050565b602060405190810160405280600081525090565b6140fc91905b808211156140f85760008160009055506001016140e0565b5090565b905600a165627a7a7230582063869ce9172c329b2672a079769b997a412d82833318e8c469648e67b68442c10029
Deployed Bytecode
0x60606040523615610244576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461027e57806306fdde03146102d8578063095ea7b3146103665780630a71d020146103a857806318160ddd146103cb578063186e4297146103f457806323b872dd1461041d578063253e34471461047e5780632759ea4a146104cb578063313ce56714610559578063365044a8146105885780633ccfd60b146105b15780633e7e730d146105c6578063408512101461063257806351c54c681461066957806353eeb4301461068157806358d38231146106b85780635a5e0074146107465780635e7037d01461076f5780636352211e146107925780636c7f3f17146107f557806370a082311461081e57806378d46c3f1461086b57806383b5ff8b1461089757806388d18ea4146108c05780638bc6a72b146108d85780638da5cb5b1461090457806395d89b41146109595780639b6a2b2f146109e75780639e0cbb6414610a3d578063a542a02f14610acb578063a6f9dae114610b02578063a774f16314610b3b578063a9059cbb14610b67578063ae10426514610ba9578063b2e6ceeb14610be0578063d36f0e9c14610c03578063d50cb88b14610c2c578063d7b4c9b114610c55578063d94288de14610cb0578063d95431cd14610cd9578063dd62ed3e14610d10578063e118eda414610d7c578063ea7c211514610da5578063f0d504eb14610df8578063f15886db14610e95578063f63841e414610f0e578063fbabdb0614610f37575b60023481151561025057fe5b0460046000828254019250508190555060023481151561026c57fe5b04600560008282540192505081905550005b341561028957600080fd5b6102be60048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610f79565b604051808215151515815260200191505060405180910390f35b34156102e357600080fd5b6102eb6111ae565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032b578082015181840152602081019050610310565b50505050905090810190601f1680156103585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037157600080fd5b6103a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611256565b005b34156103b357600080fd5b6103c9600480803590602001909190505061150e565b005b34156103d657600080fd5b6103de611582565b6040518082815260200191505060405180910390f35b34156103ff57600080fd5b61040761158f565b6040518082815260200191505060405180910390f35b341561042857600080fd5b61047c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611595565b005b341561048957600080fd5b6104b5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119a9565b6040518082815260200191505060405180910390f35b34156104d657600080fd5b6104ec60048080359060200190919050506119c1565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018515151515815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b341561056457600080fd5b61056c611aa3565b604051808260ff1660ff16815260200191505060405180910390f35b341561059357600080fd5b61059b611ab6565b6040518082815260200191505060405180910390f35b34156105bc57600080fd5b6105c4611abc565b005b34156105d157600080fd5b61061c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bf0565b6040518082815260200191505060405180910390f35b341561063d57600080fd5b6106536004808035906020019091905050611c15565b6040518082815260200191505060405180910390f35b61067f6004808035906020019091905050611c39565b005b341561068c57600080fd5b6106a2600480803590602001909190505061240f565b6040518082815260200191505060405180910390f35b34156106c357600080fd5b6106d96004808035906020019091905050612433565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018515151515815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b341561075157600080fd5b6107596124a9565b6040518082815260200191505060405180910390f35b341561077a57600080fd5b61079060048080359060200190919050506124af565b005b341561079d57600080fd5b6107b36004808035906020019091905050612681565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561080057600080fd5b6108086126c1565b6040518082815260200191505060405180910390f35b341561082957600080fd5b610855600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506126c7565b6040518082815260200191505060405180910390f35b341561087657600080fd5b6108956004808035906020019091908035906020019091905050612710565b005b34156108a257600080fd5b6108aa612978565b6040518082815260200191505060405180910390f35b6108d6600480803590602001909190505061297e565b005b34156108e357600080fd5b6109026004808035906020019091908035906020019091905050612d0f565b005b341561090f57600080fd5b610917612d8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561096457600080fd5b61096c612db2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109f257600080fd5b610a27600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612e5a565b6040518082815260200191505060405180910390f35b3415610a4857600080fd5b610a74600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612e8b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ab7578082015181840152602081019050610a9c565b505050509050019250505060405180910390f35b3415610ad657600080fd5b610aec6004808035906020019091905050612f28565b6040518082815260200191505060405180910390f35b3415610b0d57600080fd5b610b39600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f4c565b005b3415610b4657600080fd5b610b656004808035906020019091908035906020019091905050612fea565b005b3415610b7257600080fd5b610ba7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613075565b005b3415610bb457600080fd5b610bca60048080359060200190919050506132a8565b6040518082815260200191505060405180910390f35b3415610beb57600080fd5b610c0160048080359060200190919050506133ce565b005b3415610c0e57600080fd5b610c1661387e565b6040518082815260200191505060405180910390f35b3415610c3757600080fd5b610c3f613884565b6040518082815260200191505060405180910390f35b3415610c6057600080fd5b610c76600480803590602001909190505061388a565b6040518086151515158152602001851515151581526020018481526020018381526020018281526020019550505050505060405180910390f35b3415610cbb57600080fd5b610cc36139b1565b6040518082815260200191505060405180910390f35b3415610ce457600080fd5b610cfa60048080359060200190919050506139b7565b6040518082815260200191505060405180910390f35b3415610d1b57600080fd5b610d66600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506139db565b6040518082815260200191505060405180910390f35b3415610d8757600080fd5b610d8f613a62565b6040518082815260200191505060405180910390f35b3415610db057600080fd5b610dc66004808035906020019091905050613a6f565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3415610e0357600080fd5b610e196004808035906020019091905050613b96565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3415610ea057600080fd5b610ef4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613df0565b604051808215151515815260200191505060405180910390f35b3415610f1957600080fd5b610f21613e2c565b6040518082815260200191505060405180910390f35b3415610f4257600080fd5b610f77600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e32565b005b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111a7575060405180807f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81526020017f74323536290000000000000000000000000000000000000000000000000000008152506025019050604051809103902060405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060405180807f617070726f766528616464726573732c75696e743235362900000000000000008152506018019050604051809103902060405180807f6f776e65724f662875696e7432353629000000000000000000000000000000008152506010019050604051809103902060405180807f62616c616e63654f6628616464726573732900000000000000000000000000008152506012019050604051809103902060405180807f746f74616c537570706c79282900000000000000000000000000000000000000815250600d019050604051809103902018181818187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6111b6614086565b60148054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561124c5780601f106112215761010080835404028352916020019161124c565b820191906000526020600020905b81548152906001019060200180831161122f57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112c657600080fd5b60001515601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16151514151561137357600080fd5b6001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156957600080fd5b60008111151561157857600080fd5b8060088190555050565b6000600c80549050905090565b60075481565b60011515601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16151514151561164257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116b257600080fd5b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816118d5919061409a565b91600052602060002090016000839091909150555081600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60116020528060005260406000206000915090505481565b600080600080600080600f600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f600089815260200190815260200160002060010154600f60008a815260200190815260200160002060020160009054906101000a900460ff16600f60008b815260200190815260200160002060030154600f60008c815260200190815260200160002060040154600f60008d815260200190815260200160002060050160009054906101000a900460ff1695509550955095509550955091939550919395565b601660009054906101000a900460ff1681565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f193505050501515611b7a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005549081150290604051600060405180830381858888f193505050501515611bde57600080fd5b60006004819055506000600581905550565b6013602052816000526040600020602052806000526040600020600091509150505481565b600b81815481101515611c2457fe5b90600052602060002090016000915090505481565b60008060008060011515600f600087815260200190815260200160002060020160009054906101000a900460ff1615151415611ee6576006546103e8600f600088815260200190815260200160002060030154811515611c9557fe5b040293506007546103e8600f600088815260200190815260200160002060030154811515611cbf57fe5b040292508284600f600088815260200190815260200160002060030154010134141515611ceb57600080fd5b600f600086815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600f6000888152602001908152602001600020600301549081150290604051600060405180830381858888f193505050501515611d7757600080fd5b60116000600f600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506000600f6000878152602001908152602001600020600401541415611e4657600c8054806001018281611e30919061409a565b9160005260206000209001600087909190915055505b3373ffffffffffffffffffffffffffffffffffffffff16600f600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3612248565b6000600f600087815260200190815260200160002060040154141515611f0b57600080fd5b6000600f600087815260200190815260200160002060030154141515611f3057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56866000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515611fc957600080fd5b6102c65a03f11515611fda57600080fd5b505050604051805190509150600082111515611ff557600080fd5b600a546009546006546103e88581151561200b57fe5b04020281151561201757fe5b049350600a546009546007546103e88581151561203057fe5b04020281151561203c57fe5b0492508284600a54600954850281151561205257fe5b040101341015151561206357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378bd793586600060405160a001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060a060405180830381600087803b15156120fc57600080fd5b6102c65a03f1151561210d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190505050505090508073ffffffffffffffffffffffffffffffffffffffff166108fc600a54600954850281151561216057fe5b049081150290604051600060405180830381858888f19350505050151561218657600080fd5b600c805480600101828161219a919061409a565b91600052602060002090016000879091909150555060016101686001430340600190048115156121c657fe5b0601600f6000878152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35b600e60008154809291906001019190505550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816122ab919061409a565b916000526020600020900160008790919091505550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555033600f600087815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f600087815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600f6000868152602001908152602001600020600401600081548092919060010191905055506000600f600087815260200190815260200160002060050160006101000a81548160ff02191690831515021790555083600460008282540192505081905550826005600082825401925050819055505050505050565b600c8181548110151561241e57fe5b90600052602060002090016000915090505481565b600f6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16908060030154908060040154908060050160009054906101000a900460ff16905086565b60045481565b60003373ffffffffffffffffffffffffffffffffffffffff16600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561264e576000600f60008481526020019081526020016000206004015414151561254157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156125da57600080fd5b6102c65a03f115156125eb57600080fd5b5050506040518051905090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561263157600080fd5b6001600f6000848152602001908152602001600020600301819055505b6000600f600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600e5481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808211151561272057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612929576000600f6000858152602001908152602001600020600401541415156127b057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561284957600080fd5b6102c65a03f1151561285a57600080fd5b5050506040518051905090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156128a057600080fd5b33600f600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600161016860014303406001900481151561290c57fe5b0601600f6000858152602001908152602001600020600101819055505b6001600f600085815260200190815260200160002060020160006101000a81548160ff02191690831515021790555081600f600085815260200190815260200160002060030181905550505050565b60065481565b6000806008543414151561299157600080fd5b6001600f600085815260200190815260200160002060050160006101000a81548160ff0219169083151502179055506000600f6000858152602001908152602001600020600401541415612cbf57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612a7857600080fd5b6102c65a03f11515612a8957600080fd5b505050604051805190509150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56846000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612b2e57600080fd5b6102c65a03f11515612b3f57600080fd5b505050604051805190509050600081118015612b8657508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15612be757600a546009548202811515612b9c57fe5b04600f6000858152602001908152602001600020600301819055506001600f600085815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b81600f600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001610168600143034060019004811515612c5357fe5b0601600f600085815260200190815260200160002060010181905550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055505b600d6000815480929190600101919050555034600460008282540192505081905550600b8054806001018281612cf5919061409a565b916000526020600020900160008590919091505550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d6a57600080fd5b6033818301101515612d7b57600080fd5b81600681905550806007819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612dba614086565b60158054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e505780601f10612e2557610100808354040283529160200191612e50565b820191906000526020600020905b815481529060010190602001808311612e3357829003601f168201915b5050505050905090565b601060205281600052604060002081815481101515612e7557fe5b9060005260206000209001600091509150505481565b612e936140c6565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612f1c57602002820191906000526020600020905b815481526020019060010190808311612f08575b50505050509050919050565b6000600c82815481101515612f3957fe5b9060005260206000209001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fa757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304557600080fd5b60008211151561305457600080fd5b60008111151561306357600080fd5b8160098190555080600a819055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130e557600080fd5b81600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161322a919061409a565b9160005260206000209001600083909190915055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56866000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561334757600080fd5b6102c65a03f1151561335857600080fd5b505050604051805190509250600a546009546006546103e88681151561337a57fe5b04020281151561338657fe5b049150600a546009546007546103e88681151561339f57fe5b0402028115156133ab57fe5b0490508082600a5460095486028115156133c157fe5b0401019350505050919050565b6001151560126000600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff1615151415156134b157600080fd5b600060126000600f600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060136000600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555060116000600f600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281613776919061409a565b9160005260206000209001600083909190915055503373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a333600f600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b60095481565b600080600080600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e98b7f4d8c600060405161014001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505061014060405180830381600087803b151561393457600080fd5b6102c65a03f1151561394557600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519050505050505094509450945094509450848484848499509950995099509950505050505091939590929450565b600d5481565b6000600b828154811015156139c857fe5b9060005260206000209001549050919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b80549050905090565b600080600080600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e98b7f4d8c600060405161014001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505061014060405180830381600087803b1515613b1957600080fd5b6102c65a03f11515613b2a57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519060200180519050995099509950995099505050505050848484848499509950995099509950505050505091939590929450565b600080600080600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378bd793588600060405160a001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060a060405180830381600087803b1515613c3857600080fd5b6102c65a03f11515613c4957600080fd5b50505060405180519060200180519060200180519060200180519060200180519050505050509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c55d0f56886000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613d0a57600080fd5b6102c65a03f11515613d1b57600080fd5b505050604051805190509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e886000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613dc057600080fd5b6102c65a03f11515613dd157600080fd5b5050506040518051905090508282829550955095505050509193909250565b6012602052826000526040600020602052816000526040600020602052806000526040600020600092509250509054906101000a900460ff1681565b60085481565b3373ffffffffffffffffffffffffffffffffffffffff16600f600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ea257600080fd5b60011515601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff161515141515613f4f57600080fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060405190810160405280600081525090565b8154818355818115116140c1578183600052602060002091820191016140c091906140da565b5b505050565b602060405190810160405280600081525090565b6140fc91905b808211156140f85760008160009055506001016140e0565b5090565b905600a165627a7a7230582063869ce9172c329b2672a079769b997a412d82833318e8c469648e67b68442c10029
Swarm Source
bzzr://63869ce9172c329b2672a079769b997a412d82833318e8c469648e67b68442c1
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.