text: (window.webpackJsonp=window.webpackJsonp||[]).push([[0],{197:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_white.1160315e.png"},198:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_black.e0323321.png"},199:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_red.604d1849.png"},200:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_green.4039d34b.png"},201:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_blue.e93644c0.png"},202:function(e,t,n){e.exports=n.p+"static/media/fantasy_dragon_yellow.2eeeff3b.png"},203:function(e,t,n){e.exports=n.p+"static/media/jewel07_ruby.ac02531d.png"},204:function(e,t,n){e.exports=n.p+"static/media/jewel05_emerald.51a5e030.png"},205:function(e,t,n){e.exports=n.p+"static/media/jewel09_sapphire.0b134f37.png"},206:function(e,t,n){e.exports=n.p+"static/media/jewel11_citrine.49f07d40.png"},216:function(e,t,n){e.exports=n.p+"static/media/poweredby6p.f4b16392.png"},217:function(e,t,n){e.exports=n(519)},222:function(e,t,n){},224:function(e,t,n){},257:function(e,t){},259:function(e,t){},284:function(e,t){},327:function(e,t){},401:function(e){e.exports={contractName:"SixPillars",abi:[{constant:!0,inputs:[],name:"InterfaceId_ERC165",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"InterfaceId_ERC721Enumerable",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"InterfaceId_ERC721TokenReceiver",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"InterfaceId_ERC721",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"InterfaceId_ERC721Metadata",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_creator",type:"address"},{indexed:!1,name:"_inscription",type:"uint256"},{indexed:!1,name:"_tokenId",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_creator",type:"address"},{indexed:!1,name:"_tokenId",type:"uint256"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_creator",type:"address"},{indexed:!1,name:"_tokenId",type:"uint256"}],name:"CreatedBy",type:"event"},{anonymous:!1,inputs:[{indexed:!1,name:"_tokenId",type:"uint256"}],name:"ClearCreator",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_approved",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"},{indexed:!1,name:"_amount",type:"uint256"}],name:"ApprovalWithAmount",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"},{indexed:!1,name:"_amount",type:"uint256"}],name:"TransferWithAmount",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_approved",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_operator",type:"address"},{indexed:!1,name:"_approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{constant:!0,inputs:[{name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_index",type:"uint256"}],name:"tokenByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_operator",type:"address"},{name:"_from",type:"address"},{name:"_tokenId",type:"uint256"},{name:"_data",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"ownerOf",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"},{name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"transferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!1,inputs:[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"getApproved",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_operator",type:"address"}],name:"isApprovedForAll",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_approved",type:"address"},{name:"_tokenId",type:"uint256"},{name:"_amount",type:"uint256"}],name:"approve",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!1,inputs:[{name:"_approved",type:"address"},{name:"_tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"amountOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"msgHash",type:"bytes32"},{name:"v",type:"uint8"},{name:"r",type:"bytes32"},{name:"s",type:"bytes32"}],name:"recover",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"pure",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_inscription",type:"uint256"},{name:"_isSetCreator",type:"bool"}],name:"mint",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_tokenId",type:"uint256"}],name:"createdBy",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_tokenId",type:"uint256"}],name:"clearCreator",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"inscription",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"creator",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"createdAt",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_tokenId",type:"uint256"},{name:"_uri",type:"string"}],name:"setTokenURI",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_creator",type:"address"}],name:"balanceOfCreator",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_creator",type:"address"},{name:"_index",type:"uint256"}],name:"tokenOfCreatorByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_creator",type:"address"}],name:"balanceOfOwnerAndCreator",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_creator",type:"address"},{name:"_index",type:"uint256"}],name:"tokenOfOwnerAndCreatorByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}],bytecode:"0x60806040523480156200001157600080fd5b506200004f6301ffc9a77c0100000000000000000000000000000000000000000000000000000000026200015a640100000000026401000000009004565b6200008c6380ac58cd7c0100000000000000000000000000000000000000000000000000000000026200015a640100000000026401000000009004565b620000c963780e9d637c0100000000000000000000000000000000000000000000000000000000026200015a640100000000026401000000009004565b62000106635b5e139f7c0100000000000000000000000000000000000000000000000000000000026200015a640100000000026401000000009004565b6200014363150b7a027c0100000000000000000000000000000000000000000000000000000000026200015a640100000000026401000000009004565b6102d2600281905550600060038190555062000219565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515620001ac57600080fd5b600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61408080620002296000396000f3006080604052600436106101cc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680621baa89146101d157806301ffc9a7146101fe57806306fdde0314610262578063081812fc146102f2578063095ea7b31461035f578063150b7a021461039f57806315105fa814610476578063162094c4146104a357806318160ddd146104e857806319fa8f501461051357806323b872dd1461057c5780632f745c59146105dc578063426a84931461063d57806342842e0e1461068757806342966c68146106e75780634f6ccce7146107145780634fc092751461075557806350a1676e146107b6578063510b5158146107f757806363365651146108645780636352211e146108cd57806363895eb41461093a57806370a08231146109a357806379d28ac9146109fa578063819ee03a14610a5157806383f5a47e14610aba57806395d89b4114610b3b578063968c15de14610bcb578063a1ac8c5614610c0c578063a22cb46514610c83578063b88d4fde14610cd2578063bd12a00714610d4a578063c2bf17b014610db3578063c87b56dd14610e4d578063d1a1beb414610ef3578063e8eb228414610f4c578063e985e9c514610f8d575b600080fd5b3480156101dd57600080fd5b506101fc60048036038101908080359060200190929190505050611008565b005b34801561020a57600080fd5b5061024860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611146565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b506102776111ae565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b757808201518184015260208101905061029c565b50505050905090810190601f1680156102e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fe57600080fd5b5061031d600480360381019080803590602001909291905050506111eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111fd565b005b3480156103ab57600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190820180359060200191909192939192939050505061120d565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561048257600080fd5b506104a16004803603810190808035906020019092919050505061123e565b005b3480156104af57600080fd5b506104e660048036038101908080359060200190929190803590602001908201803590602001919091929391929390505050611364565b005b3480156104f457600080fd5b506104fd611421565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b5061052861142d565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611454565b005b3480156105e857600080fd5b50610627600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b610685600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506115f7565b005b6106e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611607565b005b3480156106f357600080fd5b50610712600480360381019080803590602001909291905050506116e5565b005b34801561072057600080fd5b5061073f6004803603810190808035906020019092919050505061182a565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b506107a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061183c565b6040518082815260200191505060405180910390f35b3480156107c257600080fd5b506107e160048036038101908080359060200190929190505050611959565b6040518082815260200191505060405180910390f35b34801561080357600080fd5b5061082260048036038101908080359060200190929190505050611990565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087057600080fd5b506108796119e7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156108d957600080fd5b506108f860048036038101908080359060200190929190505050611a0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561094657600080fd5b5061094f611a20565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156109af57600080fd5b506109e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a47565b6040518082815260200191505060405180910390f35b348015610a0657600080fd5b50610a3b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ace565b6040518082815260200191505060405180910390f35b348015610a5d57600080fd5b50610a66611bb8565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610ac657600080fd5b50610b25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bdf565b6040518082815260200191505060405180910390f35b348015610b4757600080fd5b50610b50611dcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b90578082015181840152602081019050610b75565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bd757600080fd5b50610bf660048036038101908080359060200190929190505050611e0c565b6040518082815260200191505060405180910390f35b348015610c1857600080fd5b50610c6d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e43565b6040518082815260200191505060405180910390f35b348015610c8f57600080fd5b50610cd0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612000565b005b610d48600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190820180359060200191909192939192939050505061213c565b005b348015610d5657600080fd5b50610d5f61223e565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610dbf57600080fd5b50610e0b6004803603810190808035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050612265565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e5957600080fd5b50610e78600480360381019080803590602001909291905050506122f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eb8578082015181840152602081019050610e9d565b50505050905090810190601f168015610ee55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eff57600080fd5b50610f4a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291905050506123c2565b005b348015610f5857600080fd5b50610f7760048036038101908080359060200190929190505050612517565b6040518082815260200191505060405180910390f35b348015610f9957600080fd5b50610fee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254e565b604051808215151515815260200191505060405180910390f35b60008061101483612562565b915060008281548110151561102557fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561109457600080fd5b336000838154811015156110a457fe5b906000526020600020906009020160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fff8bb7fb3f9399329e771a899663512e27f6a61ace14f788a702c0f01fbc7f8b846040518082815260200191505060405180910390a2505050565b600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b60606040805190810160405280600a81526020017f53697850696c6c61727300000000000000000000000000000000000000000000815250905090565b60006111f6826125c5565b9050919050565b6112098282600061261c565b5050565b600063150b7a027c010000000000000000000000000000000000000000000000000000000002905095945050505050565b60008061124a83612562565b915060008281548110151561125b57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c957600080fd5b600080838154811015156112d957fe5b906000526020600020906009020160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7bd093fff706c1478043eb8d9c9a16c5899318ad9a74bacb13514b8d488c31db836040518082815260200191505060405180910390a1505050565b600061136f84612562565b90503373ffffffffffffffffffffffffffffffffffffffff1660008281548110151561139757fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156113eb57600080fd5b82826000838154811015156113fc57fe5b9060005260206000209060090201600801919061141a929190613ca7565b5050505050565b60008080549050905090565b6301ffc9a77c01000000000000000000000000000000000000000000000000000000000281565b600061146284848434612849565b9050806000101561151b578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114b3573d6000803e3d6000fd5b50818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b50505050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310151561157457600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156115c057fe5b906000526020600020015490506000818154811015156115dc57fe5b90600052602060002090600902016000015491505092915050565b61160283838361261c565b505050565b6000611626848484346020604051908101604052806000815250612b9f565b905080600010156116df578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611677573d6000803e3d6000fd5b50818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b50505050565b60008060006116f384612562565b925060008381548110151561170457fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060008381548110151561174757fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117b557600080fd5b6117bf8285612e48565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453866040518082815260200191505060405180910390a350505050565b6000611835826133d5565b9050919050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561187c57600080fd5b60009150600090505b60008054905081101561194c578473ffffffffffffffffffffffffffffffffffffffff166000828154811015156118b857fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561193f57838214156119365760008181548110151561191d57fe5b9060005260206000209060090201600001549250611951565b81806001019250505b8080600101915050611885565b600080fd5b505092915050565b60008061196583612562565b905060008181548110151561197657fe5b906000526020600020906009020160040154915050919050565b60008061199c83612562565b90506000818154811015156119ad57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b63780e9d637c01000000000000000000000000000000000000000000000000000000000281565b6000611a1982613411565b9050919050565b63150b7a027c01000000000000000000000000000000000000000000000000000000000281565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611a8457600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611b0e57600080fd5b60009150600090505b600080549050811015611bae578373ffffffffffffffffffffffffffffffffffffffff16600082815481101515611b4a57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ba15781806001019250505b8080600101915050611b17565b8192505050919050565b6380ac58cd7c01000000000000000000000000000000000000000000000000000000000281565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611c4f5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1515611c5a57600080fd5b60009250600091505b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611dc057600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611cf957fe5b906000526020600020015490508573ffffffffffffffffffffffffffffffffffffffff16600082815481101515611d2c57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611db35784831415611daa57600081815481101515611d9157fe5b9060005260206000209060090201600001549350611dc5565b82806001019350505b8180600101925050611c63565b600080fd5b5050509392505050565b60606040805190810160405280600381526020017f5350540000000000000000000000000000000000000000000000000000000000815250905090565b600080611e1883612562565b9050600081815481101515611e2957fe5b906000526020600020906009020160010154915050919050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611eb35750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1515611ebe57600080fd5b60009250600091505b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611ff457600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611f5d57fe5b906000526020600020015490508473ffffffffffffffffffffffffffffffffffffffff16600082815481101515611f9057fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611fe75782806001019350505b8180600101925050611ec7565b82935050505092915050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203b57600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b600061217d8686863487878080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b9f565b90508060001015612236578573ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121ce573d6000803e3d6000fd5b50838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b505050505050565b635b5e139f7c01000000000000000000000000000000000000000000000000000000000281565b6000600185858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156122de573d6000803e3d6000fd5b505050602060405103519050949350505050565b606060006122ff83612562565b905060008181548110151561231057fe5b90600052602060002090600902016008018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b55780601f1061238a576101008083540402835291602001916123b5565b820191906000526020600020905b81548152906001019060200180831161239857829003601f168201915b5050505050915050919050565b60008060025491506000600354141580156123de575043600354105b156123ed576003544303820191505b81604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612442578051825260208201915060208101905060208303925061241d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600190049050806002819055504360038190555061248f85828686613468565b60011515831515146124a25760006124a4565b335b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee8684604051808381526020018281526020019250505060405180910390a35050505050565b60008061252383612562565b905060008181548110151561253457fe5b906000526020600020906009020160020154915050919050565b600061255a83836137e6565b905092915050565b600080600160008481526020019081526020016000205490506000805490508110151561258e57600080fd5b8260008281548110151561259e57fe5b9060005260206000209060090201600001541415156125bc57600080fd5b80915050919050565b6000806125d183612562565b90506000818154811015156125e257fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60008061262884612562565b915060008281548110151561263957fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156126a857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126e857506126e7813361254e565b5b15156126f357600080fd5b8460008381548110151561270357fe5b906000526020600020906009020160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260008381548110151561276257fe5b906000526020600020906009020160020181905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4826000101561284257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f47acbf2e865dd3b62c6613c6db7412416e0943adb9af678f64ab3c3ff623a404866040518082815260200191505060405180910390a45b5050505050565b600080600080600061285a87612562565b935060008481548110151561286b57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508273ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614801561290657508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b151561291157600080fd5b60008481548110151561292057fe5b90600052602060002090600902016002015491506000808581548110151561294457fe5b9060005260206000209060090201600201819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612999575061299883336137e6565b5b905080156129b5576000861415156129b057600080fd5b612ac2565b3373ffffffffffffffffffffffffffffffffffffffff166000858154811015156129db57fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a36578194508582149050612ac1565b600073ffffffffffffffffffffffffffffffffffffffff16600085815481101515612a5d57fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ab25750816000105b15612ac05781945085821490505b5b5b801515612ace57600080fd5b60008085815481101515612ade57fe5b906000526020600020906009020160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612b3889898961387a565b868873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050949350505050565b600080612bab86613c94565b15612e30578573ffffffffffffffffffffffffffffffffffffffff1663150b7a02338988876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ca5578082015181840152602081019050612c8a565b50505050905090810190601f168015612cd25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015612cf457600080fd5b505af1158015612d08573d6000803e3d6000fd5b505050506040513d6020811015612d1e57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515612e2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f696e7465726e616c536166655472616e7366657246726f6d206d73672e73656e81526020017f6465722063616e206e6f7420617070726f76656400000000000000000000000081525060400191505060405180910390fd5b5b612e3c87878787612849565b91505095945050505050565b600080600080600080612e5a87612562565b95508773ffffffffffffffffffffffffffffffffffffffff16600087815481101515612e8257fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612ed657600080fd5b600086815481101515612ee557fe5b90600052602060002090600902016003015494506001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039350838514151561307757846000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515612f9957fe5b9060005260206000200154815481101515612fb057fe5b906000526020600020906009020160030181905550600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561301157fe5b9060005260206000200154600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561306857fe5b90600052602060002001819055505b83600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816130c29190613d27565b50859450600160008054905003935083851415156133a3576000848154811015156130e957fe5b906000526020600020906009020160000154925060008481548110151561310c57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060008481548110151561314f57fe5b906000526020600020906009020160030154905084600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156131b057fe5b90600052602060002001819055508460016000858152602001908152602001600020819055506000848154811015156131e557fe5b906000526020600020906009020160008681548110151561320257fe5b906000526020600020906009020160008201548160000155600182015481600101556002820154816002015560038201548160030155600482015481600401556005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008820181600801908054600181600116156101000203166002900461339e929190613d53565b509050505b60006001600089815260200190815260200160002081905550836000816133ca9190613dda565b505050505050505050565b60008080549050821015156133e957600080fd5b6000828154811015156133f857fe5b9060005260206000209060090201600001549050919050565b60008061341d83612562565b905060008181548110151561342e57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000806000613475613e0c565b60016000888152602001908152602001600020549350600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156134c757600080fd5b6000841480156134dc57506000805490506000105b1561351157866000808154811015156134f157fe5b9060005260206000209060090201600001541415151561351057600080fd5b5b6000805490509350600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509250600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002001600090919290919091505550846135d35760006135d5565b335b915061012060405190810160405280888152602001878152602001600081526020018481526020014381526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016020604051908101604052806000815250815250905060008190806001815401808255809150509060018203906000526020600020906009020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160080190805190602001906137c0929190613e9b565b505050508360016000898152602001908152602001600020819055505050505050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060008061388985612562565b9350600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156138f457508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561396b57508673ffffffffffffffffffffffffffffffffffffffff1660008581548110151561392157fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561397657600080fd5b60008481548110151561398557fe5b90600052602060002090600902016003015492506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039150826000600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613a3057fe5b9060005260206000200154815481101515613a4757fe5b906000526020600020906009020160030181905550600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613aa857fe5b9060005260206000200154600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613aff57fe5b906000526020600020018190555081600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081613b589190613d27565b50600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084908060018154018082558091505090600182039060005260206000200160009091929091909150555085600085815481101515613c1757fe5b906000526020600020906009020160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600085815481101515613c7657fe5b90600052602060002090600902016003018190555050505050505050565b600080823b905060008111915050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ce857803560ff1916838001178555613d16565b82800160010185558215613d16579182015b82811115613d15578235825591602001919060010190613cfa565b5b509050613d239190613f1b565b5090565b815481835581811115613d4e57818360005260206000209182019101613d4d9190613f1b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d8c5780548555613dc9565b82800160010185558215613dc957600052602060002091601f016020900482015b82811115613dc8578254825591600101919060010190613dad565b5b509050613dd69190613f1b565b5090565b815481835581811115613e0757600902816009028360005260206000209182019101613e069190613f40565b5b505050565b610120604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613edc57805160ff1916838001178555613f0a565b82800160010185558215613f0a579182015b82811115613f09578251825591602001919060010190613eee565b5b509050613f179190613f1b565b5090565b613f3d91905b80821115613f39576000816000905550600101613f21565b5090565b90565b61400991905b808211156140055760008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556007820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600882016000613ffc919061400c565b50600901613f46565b5090565b90565b50805460018160011615610100020316600290046000825580601f106140325750614051565b601f0160209004906000526020600020908101906140509190613f1b565b5b505600a165627a7a7230582040d4ddc176768d37368c4a50e91f1d8a67544d30b3542dcb157ecdc4927e616c0029",deployedBytecode:"0x6080604052600436106101cc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680621baa89146101d157806301ffc9a7146101fe57806306fdde0314610262578063081812fc146102f2578063095ea7b31461035f578063150b7a021461039f57806315105fa814610476578063162094c4146104a357806318160ddd146104e857806319fa8f501461051357806323b872dd1461057c5780632f745c59146105dc578063426a84931461063d57806342842e0e1461068757806342966c68146106e75780634f6ccce7146107145780634fc092751461075557806350a1676e146107b6578063510b5158146107f757806363365651146108645780636352211e146108cd57806363895eb41461093a57806370a08231146109a357806379d28ac9146109fa578063819ee03a14610a5157806383f5a47e14610aba57806395d89b4114610b3b578063968c15de14610bcb578063a1ac8c5614610c0c578063a22cb46514610c83578063b88d4fde14610cd2578063bd12a00714610d4a578063c2bf17b014610db3578063c87b56dd14610e4d578063d1a1beb414610ef3578063e8eb228414610f4c578063e985e9c514610f8d575b600080fd5b3480156101dd57600080fd5b506101fc60048036038101908080359060200190929190505050611008565b005b34801561020a57600080fd5b5061024860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611146565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b506102776111ae565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b757808201518184015260208101905061029c565b50505050905090810190601f1680156102e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fe57600080fd5b5061031d600480360381019080803590602001909291905050506111eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111fd565b005b3480156103ab57600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190820180359060200191909192939192939050505061120d565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561048257600080fd5b506104a16004803603810190808035906020019092919050505061123e565b005b3480156104af57600080fd5b506104e660048036038101908080359060200190929190803590602001908201803590602001919091929391929390505050611364565b005b3480156104f457600080fd5b506104fd611421565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b5061052861142d565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611454565b005b3480156105e857600080fd5b50610627600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b610685600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506115f7565b005b6106e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611607565b005b3480156106f357600080fd5b50610712600480360381019080803590602001909291905050506116e5565b005b34801561072057600080fd5b5061073f6004803603810190808035906020019092919050505061182a565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b506107a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061183c565b6040518082815260200191505060405180910390f35b3480156107c257600080fd5b506107e160048036038101908080359060200190929190505050611959565b6040518082815260200191505060405180910390f35b34801561080357600080fd5b5061082260048036038101908080359060200190929190505050611990565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087057600080fd5b506108796119e7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156108d957600080fd5b506108f860048036038101908080359060200190929190505050611a0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561094657600080fd5b5061094f611a20565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156109af57600080fd5b506109e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a47565b6040518082815260200191505060405180910390f35b348015610a0657600080fd5b50610a3b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ace565b6040518082815260200191505060405180910390f35b348015610a5d57600080fd5b50610a66611bb8565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610ac657600080fd5b50610b25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bdf565b6040518082815260200191505060405180910390f35b348015610b4757600080fd5b50610b50611dcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b90578082015181840152602081019050610b75565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bd757600080fd5b50610bf660048036038101908080359060200190929190505050611e0c565b6040518082815260200191505060405180910390f35b348015610c1857600080fd5b50610c6d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e43565b6040518082815260200191505060405180910390f35b348015610c8f57600080fd5b50610cd0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612000565b005b610d48600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190820180359060200191909192939192939050505061213c565b005b348015610d5657600080fd5b50610d5f61223e565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610dbf57600080fd5b50610e0b6004803603810190808035600019169060200190929190803560ff16906020019092919080356000191690602001909291908035600019169060200190929190505050612265565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e5957600080fd5b50610e78600480360381019080803590602001909291905050506122f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eb8578082015181840152602081019050610e9d565b50505050905090810190601f168015610ee55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eff57600080fd5b50610f4a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291905050506123c2565b005b348015610f5857600080fd5b50610f7760048036038101908080359060200190929190505050612517565b6040518082815260200191505060405180910390f35b348015610f9957600080fd5b50610fee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254e565b604051808215151515815260200191505060405180910390f35b60008061101483612562565b915060008281548110151561102557fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561109457600080fd5b336000838154811015156110a457fe5b906000526020600020906009020160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fff8bb7fb3f9399329e771a899663512e27f6a61ace14f788a702c0f01fbc7f8b846040518082815260200191505060405180910390a2505050565b600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b60606040805190810160405280600a81526020017f53697850696c6c61727300000000000000000000000000000000000000000000815250905090565b60006111f6826125c5565b9050919050565b6112098282600061261c565b5050565b600063150b7a027c010000000000000000000000000000000000000000000000000000000002905095945050505050565b60008061124a83612562565b915060008281548110151561125b57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c957600080fd5b600080838154811015156112d957fe5b906000526020600020906009020160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7bd093fff706c1478043eb8d9c9a16c5899318ad9a74bacb13514b8d488c31db836040518082815260200191505060405180910390a1505050565b600061136f84612562565b90503373ffffffffffffffffffffffffffffffffffffffff1660008281548110151561139757fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156113eb57600080fd5b82826000838154811015156113fc57fe5b9060005260206000209060090201600801919061141a929190613ca7565b5050505050565b60008080549050905090565b6301ffc9a77c01000000000000000000000000000000000000000000000000000000000281565b600061146284848434612849565b9050806000101561151b578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114b3573d6000803e3d6000fd5b50818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b50505050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310151561157457600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156115c057fe5b906000526020600020015490506000818154811015156115dc57fe5b90600052602060002090600902016000015491505092915050565b61160283838361261c565b505050565b6000611626848484346020604051908101604052806000815250612b9f565b905080600010156116df578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611677573d6000803e3d6000fd5b50818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b50505050565b60008060006116f384612562565b925060008381548110151561170457fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060008381548110151561174757fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117b557600080fd5b6117bf8285612e48565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453866040518082815260200191505060405180910390a350505050565b6000611835826133d5565b9050919050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561187c57600080fd5b60009150600090505b60008054905081101561194c578473ffffffffffffffffffffffffffffffffffffffff166000828154811015156118b857fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561193f57838214156119365760008181548110151561191d57fe5b9060005260206000209060090201600001549250611951565b81806001019250505b8080600101915050611885565b600080fd5b505092915050565b60008061196583612562565b905060008181548110151561197657fe5b906000526020600020906009020160040154915050919050565b60008061199c83612562565b90506000818154811015156119ad57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b63780e9d637c01000000000000000000000000000000000000000000000000000000000281565b6000611a1982613411565b9050919050565b63150b7a027c01000000000000000000000000000000000000000000000000000000000281565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611a8457600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611b0e57600080fd5b60009150600090505b600080549050811015611bae578373ffffffffffffffffffffffffffffffffffffffff16600082815481101515611b4a57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ba15781806001019250505b8080600101915050611b17565b8192505050919050565b6380ac58cd7c01000000000000000000000000000000000000000000000000000000000281565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611c4f5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1515611c5a57600080fd5b60009250600091505b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611dc057600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611cf957fe5b906000526020600020015490508573ffffffffffffffffffffffffffffffffffffffff16600082815481101515611d2c57fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611db35784831415611daa57600081815481101515611d9157fe5b9060005260206000209060090201600001549350611dc5565b82806001019350505b8180600101925050611c63565b600080fd5b5050509392505050565b60606040805190810160405280600381526020017f5350540000000000000000000000000000000000000000000000000000000000815250905090565b600080611e1883612562565b9050600081815481101515611e2957fe5b906000526020600020906009020160010154915050919050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611eb35750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1515611ebe57600080fd5b60009250600091505b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611ff457600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611f5d57fe5b906000526020600020015490508473ffffffffffffffffffffffffffffffffffffffff16600082815481101515611f9057fe5b906000526020600020906009020160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611fe75782806001019350505b8180600101925050611ec7565b82935050505092915050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203b57600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b600061217d8686863487878080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b9f565b90508060001015612236578573ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121ce573d6000803e3d6000fd5b50838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f78cfbf59ac826b3433da5294c46a9dbb9d8dd1991f51e84bfbcb7cf4df4edaab846040518082815260200191505060405180910390a45b505050505050565b635b5e139f7c01000000000000000000000000000000000000000000000000000000000281565b6000600185858585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156122de573d6000803e3d6000fd5b505050602060405103519050949350505050565b606060006122ff83612562565b905060008181548110151561231057fe5b90600052602060002090600902016008018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b55780601f1061238a576101008083540402835291602001916123b5565b820191906000526020600020905b81548152906001019060200180831161239857829003601f168201915b5050505050915050919050565b60008060025491506000600354141580156123de575043600354105b156123ed576003544303820191505b81604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515612442578051825260208201915060208101905060208303925061241d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600190049050806002819055504360038190555061248f85828686613468565b60011515831515146124a25760006124a4565b335b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee8684604051808381526020018281526020019250505060405180910390a35050505050565b60008061252383612562565b905060008181548110151561253457fe5b906000526020600020906009020160020154915050919050565b600061255a83836137e6565b905092915050565b600080600160008481526020019081526020016000205490506000805490508110151561258e57600080fd5b8260008281548110151561259e57fe5b9060005260206000209060090201600001541415156125bc57600080fd5b80915050919050565b6000806125d183612562565b90506000818154811015156125e257fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60008061262884612562565b915060008281548110151561263957fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156126a857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126e857506126e7813361254e565b5b15156126f357600080fd5b8460008381548110151561270357fe5b906000526020600020906009020160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260008381548110151561276257fe5b906000526020600020906009020160020181905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4826000101561284257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f47acbf2e865dd3b62c6613c6db7412416e0943adb9af678f64ab3c3ff623a404866040518082815260200191505060405180910390a45b5050505050565b600080600080600061285a87612562565b935060008481548110151561286b57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508273ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614801561290657508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b151561291157600080fd5b60008481548110151561292057fe5b90600052602060002090600902016002015491506000808581548110151561294457fe5b9060005260206000209060090201600201819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612999575061299883336137e6565b5b905080156129b5576000861415156129b057600080fd5b612ac2565b3373ffffffffffffffffffffffffffffffffffffffff166000858154811015156129db57fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a36578194508582149050612ac1565b600073ffffffffffffffffffffffffffffffffffffffff16600085815481101515612a5d57fe5b906000526020600020906009020160070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ab25750816000105b15612ac05781945085821490505b5b5b801515612ace57600080fd5b60008085815481101515612ade57fe5b906000526020600020906009020160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612b3889898961387a565b868873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050949350505050565b600080612bab86613c94565b15612e30578573ffffffffffffffffffffffffffffffffffffffff1663150b7a02338988876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ca5578082015181840152602081019050612c8a565b50505050905090810190601f168015612cd25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015612cf457600080fd5b505af1158015612d08573d6000803e3d6000fd5b505050506040513d6020811015612d1e57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515612e2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f696e7465726e616c536166655472616e7366657246726f6d206d73672e73656e81526020017f6465722063616e206e6f7420617070726f76656400000000000000000000000081525060400191505060405180910390fd5b5b612e3c87878787612849565b91505095945050505050565b600080600080600080612e5a87612562565b95508773ffffffffffffffffffffffffffffffffffffffff16600087815481101515612e8257fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612ed657600080fd5b600086815481101515612ee557fe5b90600052602060002090600902016003015494506001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039350838514151561307757846000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515612f9957fe5b9060005260206000200154815481101515612fb057fe5b906000526020600020906009020160030181905550600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561301157fe5b9060005260206000200154600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561306857fe5b90600052602060002001819055505b83600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816130c29190613d27565b50859450600160008054905003935083851415156133a3576000848154811015156130e957fe5b906000526020600020906009020160000154925060008481548110151561310c57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060008481548110151561314f57fe5b906000526020600020906009020160030154905084600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156131b057fe5b90600052602060002001819055508460016000858152602001908152602001600020819055506000848154811015156131e557fe5b906000526020600020906009020160008681548110151561320257fe5b906000526020600020906009020160008201548160000155600182015481600101556002820154816002015560038201548160030155600482015481600401556005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008820181600801908054600181600116156101000203166002900461339e929190613d53565b509050505b60006001600089815260200190815260200160002081905550836000816133ca9190613dda565b505050505050505050565b60008080549050821015156133e957600080fd5b6000828154811015156133f857fe5b9060005260206000209060090201600001549050919050565b60008061341d83612562565b905060008181548110151561342e57fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000806000613475613e0c565b60016000888152602001908152602001600020549350600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156134c757600080fd5b6000841480156134dc57506000805490506000105b1561351157866000808154811015156134f157fe5b9060005260206000209060090201600001541415151561351057600080fd5b5b6000805490509350600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509250600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002001600090919290919091505550846135d35760006135d5565b335b915061012060405190810160405280888152602001878152602001600081526020018481526020014381526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016020604051908101604052806000815250815250905060008190806001815401808255809150509060018203906000526020600020906009020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160080190805190602001906137c0929190613e9b565b505050508360016000898152602001908152602001600020819055505050505050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060008061388985612562565b9350600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156138f457508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561396b57508673ffffffffffffffffffffffffffffffffffffffff1660008581548110151561392157fe5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561397657600080fd5b60008481548110151561398557fe5b90600052602060002090600902016003015492506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039150826000600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613a3057fe5b9060005260206000200154815481101515613a4757fe5b906000526020600020906009020160030181905550600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613aa857fe5b9060005260206000200154600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613aff57fe5b906000526020600020018190555081600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081613b589190613d27565b50600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084908060018154018082558091505090600182039060005260206000200160009091929091909150555085600085815481101515613c1757fe5b906000526020600020906009020160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600085815481101515613c7657fe5b90600052602060002090600902016003018190555050505050505050565b600080823b905060008111915050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ce857803560ff1916838001178555613d16565b82800160010185558215613d16579182015b82811115613d15578235825591602001919060010190613cfa565b5b509050613d239190613f1b565b5090565b815481835581811115613d4e57818360005260206000209182019101613d4d9190613f1b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d8c5780548555613dc9565b82800160010185558215613dc957600052602060002091601f016020900482015b82811115613dc8578254825591600101919060010190613dad565b5b509050613dd69190613f1b565b5090565b815481835581811115613e0757600902816009028360005260206000209182019101613e069190613f40565b5b505050565b610120604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613edc57805160ff1916838001178555613f0a565b82800160010185558215613f0a579182015b82811115613f09578251825591602001919060010190613eee565b5b509050613f179190613f1b565b5090565b613f3d91905b80821115613f39576000816000905550600101613f21565b5090565b90565b61400991905b808211156140055760008082016000905560018201600090556002820160009055600382016000905560048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556007820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600882016000613ffc919061400c565b50600901613f46565b5090565b90565b50805460018160011615610100020316600290046000825580601f106140325750614051565b601f0160209004906000526020600020908101906140509190613f1b565b5b505600a165627a7a7230582040d4ddc176768d37368c4a50e91f1d8a67544d30b3542dcb157ecdc4927e616c0029",sourceMap:"193:19039:7:-;;;12450:329;8:9:-1;5:2;;;30:1;27;20:12;5:2;12450:329:7;12477:38;749:10:2;12496:18:7;;12477;;;:38;;;:::i;:::-;12521;6249:10:3;12540:18:7;;12521;;;:38;;;:::i;:::-;12565:48;1513:10:4;12584:28:7;;12565:18;;;:48;;;:::i;:::-;12619:46;988:10:5;12638:26:7;;12619:18;;;:46;;;:::i;:::-;12671:51;1223:10:6;12690:31:7;;12671:18;;;:51;;;:::i;:::-;12742:3;12728:11;:17;;;;12773:1;12751:19;:23;;;;193:19039;;2252:150;2340:10;2324:26;;:12;:26;;;;;2316:35;;;;;;;;2393:4;2357:19;:33;2377:12;2357:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;2252:150;:::o;193:19039::-;;;;;;;",deployedSourceMap:"193:19039:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14594:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14594:275:7;;;;;;;;;;;;;;;;;;;;;;;;;;2120:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2120:128:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3355:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3355:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3355:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5642:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5642:118:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5252:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3741:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3741:165:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15103:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15103:251:7;;;;;;;;;;;;;;;;;;;;;;;;;;16404:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16404:187:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2457:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2457:86:7;;;;;;;;;;;;;;;;;;;;;;;705:54:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4932:301:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2691:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2691:240:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5978:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4600:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14065:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14065:312:7;;;;;;;;;;;;;;;;;;;;;;;;;;2562:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:110:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17276:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17276:372:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16088:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16088:152:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15778:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15778:148:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1459:64:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1459:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4123:110:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4123:110:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:67:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3951:153:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3951:153:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16743:283;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16743:283:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6205:54:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6205:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18725:505:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18725:505:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3449:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3449:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3449:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15492:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15492:156:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17949:418;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17949:418:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5392:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5392:231:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4252:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:62:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:62:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12783:140:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12783:140:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3538:145:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3538:145:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13311:579;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13311:579:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6126:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6126:149:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5779:149:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14594:275;14646:10;14689:15;14659:24;14674:8;14659:14;:24::i;:::-;14646:37;;14707:6;14714:5;14707:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;14689:39;;14761:1;14742:21;;:7;:21;;;14734:30;;;;;;;;14794:10;14770:6;14777:5;14770:13;;;;;;;;;;;;;;;;;;;;:21;;;:34;;;;;;;;;;;;;;;;;;14832:10;14815:49;;;14850:8;14815:49;;;;;;;;;;;;;;;;;;14594:275;;;:::o;2120:128::-;2191:4;2210:19;:33;2230:12;2210:33;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:40;;2120:128;;;:::o;3355:75::-;3392:6;3406:19;;;;;;;;;;;;;;;;;;;;3355:75;:::o;5642:118::-;5704:7;5726:29;5746:8;5726:19;:29::i;:::-;5719:36;;5642:118;;;:::o;5252:121::-;5329:39;5345:9;5356:8;5366:1;5329:15;:39::i;:::-;5252:121;;:::o;3741:165::-;3849:6;1223:10:6;3870:31:7;;3863:38;;3741:165;;;;;;;:::o;15103:251::-;15158:10;15201:15;15171:24;15186:8;15171:14;:24::i;:::-;15158:37;;15219:6;15226:5;15219:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;15201:39;;15268:7;15254:21;;:10;:21;;;15246:30;;;;;;;;15314:1;15282:6;15289:5;15282:13;;;;;;;;;;;;;;;;;;;;:21;;;:34;;;;;;;;;;;;;;;;;;15327:22;15340:8;15327:22;;;;;;;;;;;;;;;;;;15103:251;;;:::o;16404:187::-;16471:10;16484:24;16499:8;16484:14;:24::i;:::-;16471:37;;16545:10;16522:33;;:6;16529:5;16522:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:33;;;16514:42;;;;;;;;16582:4;;16562:6;16569:5;16562:13;;;;;;;;;;;;;;;;;;;;:17;;:24;;;;;;;:::i;:::-;;16404:187;;;;:::o;2457:86::-;2503:7;2525:6;:13;;;;2518:20;;2457:86;:::o;705:54:2:-;749:10;705:54;;;:::o;4932:301:7:-;5023:18;5044:53;5065:5;5072:3;5077:8;5087:9;5044:20;:53::i;:::-;5023:74;;5111:10;5107:1;:14;5103:126;;;5131:5;:14;;:26;5146:10;5131:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5131:26:7;5201:8;5196:3;5170:52;;5189:5;5170:52;;;5211:10;5170:52;;;;;;;;;;;;;;;;;;5103:126;4932:301;;;;:::o;2691:240::-;2775:7;2847:13;2807:18;:26;2826:6;2807:26;;;;;;;;;;;;;;;:33;;;;2798:6;:42;2790:51;;;;;;;;2863:18;:26;2882:6;2863:26;;;;;;;;;;;;;;;2890:6;2863:34;;;;;;;;;;;;;;;;;;2847:50;;2910:6;2917:5;2910:13;;;;;;;;;;;;;;;;;;;;:16;;;2903:23;;2691:240;;;;;:::o;5978:144::-;6072:45;6088:9;6099:8;6109:7;6072:15;:45::i;:::-;5978:144;;;:::o;4600:313::-;4695:18;4716:61;4741:5;4748:3;4753:8;4763:9;4716:61;;;;;;;;;;;;;:24;:61::i;:::-;4695:82;;4791:10;4787:1;:14;4783:126;;;4811:5;:14;;:26;4826:10;4811:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4811:26:7;4881:8;4876:3;4850:52;;4869:5;4850:52;;;4891:10;4850:52;;;;;;;;;;;;;;;;;;4783:126;4600:313;;;;:::o;14065:312::-;14112:10;14155:13;14196:15;14125:24;14140:8;14125:14;:24::i;:::-;14112:37;;14171:6;14178:5;14171:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;14155:35;;14214:6;14221:5;14214:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;14196:39;;14258:10;14249:19;;:5;:19;;;14241:28;;;;;;;;14275:32;14291:5;14298:8;14275:15;:32::i;:::-;14343:7;14318:54;;14330:5;14318:54;;;14358:8;14318:54;;;;;;;;;;;;;;;;;;14065:312;;;;:::o;2562:110::-;2623:7;2645:22;2660:6;2645:14;:22::i;:::-;2638:29;;2562:110;;;:::o;17276:372::-;17364:7;17416:13;17444:9;17407:1;17387:22;;:8;:22;;;;17379:31;;;;;;;;17432:1;17416:17;;17456:1;17444:13;;17439:191;17463:6;:13;;;;17459:1;:17;17439:191;;;17516:8;17495:29;;:6;17502:1;17495:9;;;;;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:29;;;17491:133;;;17549:6;17540:5;:15;17536:63;;;17576:6;17583:1;17576:9;;;;;;;;;;;;;;;;;;;;:12;;;17569:19;;;;17536:63;17608:7;;;;;;;17491:133;17478:3;;;;;;;17439:191;;;17635:8;;;17276:372;;;;;;;:::o;16088:152::-;16147:7;16162:10;16175:24;16190:8;16175:14;:24::i;:::-;16162:37;;16212:6;16219:5;16212:13;;;;;;;;;;;;;;;;;;;;:23;;;16205:30;;16088:152;;;;:::o;15778:148::-;15835:7;15850:10;15863:24;15878:8;15863:14;:24::i;:::-;15850:37;;15900:6;15907:5;15900:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;15893:28;;15778:148;;;;:::o;1459:64:4:-;1513:10;1459:64;;;:::o;4123:110:7:-;4181:7;4203:25;4219:8;4203:15;:25::i;:::-;4196:32;;4123:110;;;:::o;1166:67:6:-;1223:10;1166:67;;;:::o;3951:153:7:-;4009:7;4050:1;4032:20;;:6;:20;;;;4024:29;;;;;;;;4066:18;:26;4085:6;4066:26;;;;;;;;;;;;;;;:33;;;;4059:40;;3951:153;;;:::o;16743:283::-;16810:7;16862:13;16890:9;16853:1;16833:22;;:8;:22;;;;16825:31;;;;;;;;16878:1;16862:17;;16902:1;16890:13;;16885:119;16909:6;:13;;;;16905:1;:17;16885:119;;;16962:8;16941:29;;:6;16948:1;16941:9;;;;;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:29;;;16937:61;;;16982:7;;;;;;;16937:61;16924:3;;;;;;;16885:119;;;17016:5;17009:12;;16743:283;;;;;:::o;6205:54:3:-;6249:10;6205:54;;;:::o;18725:505:7:-;18837:7;18917:13;18945:9;19012:13;18879:1;18861:20;;:6;:20;;;;18860:50;;;;;18907:1;18887:22;;:8;:22;;;;18860:50;18852:59;;;;;;;;18933:1;18917:17;;18957:1;18945:13;;18940:272;18964:18;:26;18983:6;18964:26;;;;;;;;;;;;;;;:33;;;;18960:1;:37;18940:272;;;19028:18;:26;19047:6;19028:26;;;;;;;;;;;;;;;19055:1;19028:29;;;;;;;;;;;;;;;;;;19012:45;;19094:8;19069:33;;:6;19076:5;19069:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:33;;;19065:141;;;19127:6;19118:5;:15;19114:67;;;19154:6;19161:5;19154:13;;;;;;;;;;;;;;;;;;;;:16;;;19147:23;;;;19114:67;19190:7;;;;;;;19065:141;18999:3;;;;;;;18940:272;;;19217:8;;;18725:505;;;;;;;;;:::o;3449:70::-;3488:6;3502:12;;;;;;;;;;;;;;;;;;;;3449:70;:::o;15492:156::-;15553:7;15568:10;15581:24;15596:8;15581:14;:24::i;:::-;15568:37;;15618:6;15625:5;15618:13;;;;;;;;;;;;;;;;;;;;:25;;;15611:32;;15492:156;;;;:::o;17949:418::-;18040:7;18120:15;18150:9;18217:13;18082:1;18064:20;;:6;:20;;;;18063:50;;;;;18110:1;18090:22;;:8;:22;;;;18063:50;18055:59;;;;;;;;18138:1;18120:19;;18162:1;18150:13;;18145:198;18169:18;:26;18188:6;18169:26;;;;;;;;;;;;;;;:33;;;;18165:1;:37;18145:198;;;18233:18;:26;18252:6;18233:26;;;;;;;;;;;;;;;18260:1;18233:29;;;;;;;;;;;;;;;;;;18217:45;;18299:8;18274:33;;:6;18281:5;18274:13;;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:33;;;18270:67;;;18319:9;;;;;;;18270:67;18204:3;;;;;;;18145:198;;;18355:7;18348:14;;17949:418;;;;;;;:::o;5392:231::-;5490:10;5477:23;;:9;:23;;;;5469:32;;;;;;;;5550:9;5507:17;:29;5525:10;5507:29;;;;;;;;;;;;;;;:40;5537:9;5507:40;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;5597:9;5570:48;;5585:10;5570:48;;;5608:9;5570:48;;;;;;;;;;;;;;;;;;;;;;5392:231;;:::o;4252:329::-;4360:18;4381:64;4406:5;4413:3;4418:8;4428:9;4439:5;;4381:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:64::i;:::-;4360:85;;4459:10;4455:1;:14;4451:126;;;4479:5;:14;;:26;4494:10;4479:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4479:26:7;4549:8;4544:3;4518:52;;4537:5;4518:52;;;4559:10;4518:52;;;;;;;;;;;;;;;;;;4451:126;4252:329;;;;;;:::o;936:62:5:-;988:10;936:62;;;:::o;12783:140:7:-;12869:7;12891:27;12901:7;12910:1;12913;12916;12891:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12891:27:7;;;;;;;;12884:34;;12783:140;;;;;;:::o;3538:145::-;3597:6;3611:10;3624:24;3639:8;3624:14;:24::i;:::-;3611:37;;3661:6;3668:5;3661:13;;;;;;;;;;;;;;;;;;;;:17;;3654:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:145;;;;:::o;13311:579::-;13395:12;13563:18;13410:11;;13395:26;;13455:1;13432:19;;:24;;13431:66;;;;;13484:12;13462:19;;:34;13431:66;13427:131;;;13531:19;;13516:12;:34;13507:44;;;;13427:131;13619:4;13602:22;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13602:22:7;;;13592:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13592:33:7;;;;;;;;;;;;;;;;13584:42;;;13563:63;;13646:10;13632:11;:24;;;;13684:12;13662:19;:34;;;;13702:56;13713:3;13718:10;13730:12;13744:13;13702:10;:56::i;:::-;13810:4;13793:21;;:13;:21;;;13792:49;;13839:1;13792:49;;;13818:10;13792:49;13769:116;;13781:3;13769:116;;;13849:12;13869:10;13769:116;;;;;;;;;;;;;;;;;;;;;;;;13311:579;;;;;:::o;6126:149::-;6185:7;6200:10;6213:24;6228:8;6213:14;:24::i;:::-;6200:37;;6250:6;6257:5;6250:13;;;;;;;;;;;;;;;;;;;;:20;;;6243:27;;6126:149;;;;:::o;5779:::-;5861:4;5880:43;5905:6;5913:9;5880:24;:43::i;:::-;5873:50;;5779:149;;;;:::o;3083:219::-;3148:7;3163:10;3176:14;:24;3191:8;3176:24;;;;;;;;;;;;3163:37;;3222:6;:13;;;;3214:5;:21;3206:30;;;;;;;;3270:8;3250:6;3257:5;3250:13;;;;;;;;;;;;;;;;;;;;:16;;;:28;3242:37;;;;;;;;3292:5;3285:12;;3083:219;;;;:::o;8455:162::-;8525:7;8540:10;8553:24;8568:8;8553:14;:24::i;:::-;8540:37;;8590:6;8597:5;8590:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;8583:29;;8455:162;;;;:::o;8777:503::-;8871:10;8914:13;8884:24;8899:8;8884:14;:24::i;:::-;8871:37;;8930:6;8937:5;8930:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;8914:35;;8976:5;8963:18;;:9;:18;;;;8955:27;;;;;;;;9010:5;8996:19;;:10;:19;;;:58;;;;9019:35;9036:5;9043:10;9019:16;:35::i;:::-;8996:58;8988:67;;;;;;;;9086:9;9061:6;9068:5;9061:13;;;;;;;;;;;;;;;;;;;;:22;;;:34;;;;;;;;;;;;;;;;;;9124:7;9101:6;9108:5;9101:13;;;;;;;;;;;;;;;;;;;;:20;;:30;;;;9169:8;9158:9;9142:36;;9151:5;9142:36;;;;;;;;;;;;9192:7;9188:1;:11;9184:92;;;9251:8;9240:9;9214:55;;9233:5;9214:55;;;9261:7;9214:55;;;;;;;;;;;;;;;;;;9184:92;8777:503;;;;;:::o;6988:1463::-;7098:18;7124:10;7167:13;7727:14;7800:16;7137:24;7152:8;7137:14;:24::i;:::-;7124:37;;7183:6;7190:5;7183:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7167:35;;7226:5;7217:14;;:5;:14;;;7216:34;;;;;7246:3;7237:12;;:5;:12;;;;7216:34;7208:43;;;;;;;;7744:6;7751:5;7744:13;;;;;;;;;;;;;;;;;;;;:20;;;7727:37;;7793:1;7770:6;7777:5;7770:13;;;;;;;;;;;;;;;;;;;;:20;;:24;;;;7834:5;7820:19;;:10;:19;;;7819:68;;;;7844:43;7869:5;7876:10;7844:24;:43::i;:::-;7819:68;7800:87;;7897:11;7893:365;;;7985:1;7975:6;:11;7967:20;;;;;;;;7893:365;;;8031:10;8005:36;;:6;8012:5;8005:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:36;;;8001:257;;;8064:6;8051:19;;8103:6;8093;:16;8078:32;;8001:257;;;8163:1;8129:36;;:6;8136:5;8129:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:36;;;8128:54;;;;;8175:6;8171:1;:10;8128:54;8124:134;;;8205:6;8192:19;;8244:6;8234;:16;8219:32;;8124:134;8001:257;7893:365;8271:11;8263:20;;;;;;;;8345:1;8312:6;8319:5;8312:13;;;;;;;;;;;;;;;;;;;;:22;;;:35;;;;;;;;;;;;;;;;;;8370;8384:5;8391:3;8396:8;8370:13;:35::i;:::-;8437:8;8432:3;8416:30;;8425:5;8416:30;;;;;;;;;;;;6988:1463;;;;;;;;;;:::o;6532:452::-;6659:7;6703:13;6678:15;6689:3;6678:10;:15::i;:::-;6674:243;;;6739:3;6719:41;;;6761:10;6773:5;6780:8;6790:5;6719:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6719:77:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6719:77:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6719:77:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6719:77:7;;;;;;;;;;;;;;;;6703:93;;1223:10:6;6822:31:7;;6812:41;;;:6;:41;;;;6804:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6674:243;6929:50;6950:5;6957:3;6962:8;6972:6;6929:20;:50::i;:::-;6922:57;;6532:452;;;;;;;;:::o;10052:1338::-;10130:10;10285:24;10342:22;10904:19;10978:22;11039:27;10143:24;10158:8;10143:14;:24::i;:::-;10130:37;;10204:10;10181:33;;:6;10188:5;10181:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:33;;;10173:42;;;;;;;;10312:6;10319:5;10312:13;;;;;;;;;;;;;;;;;;;;:24;;;10285:51;;10407:1;10367:18;:30;10386:10;10367:30;;;;;;;;;;;;;;;:37;;;;:41;10342:66;;10438:14;10418:16;:34;;10414:245;;;10531:16;10462:6;10469:18;:30;10488:10;10469:30;;;;;;;;;;;;;;;10500:14;10469:46;;;;;;;;;;;;;;;;;;10462:55;;;;;;;;;;;;;;;;;;;;:66;;:85;;;;10606:18;:30;10625:10;10606:30;;;;;;;;;;;;;;;10637:14;10606:46;;;;;;;;;;;;;;;;;;10555:18;:30;10574:10;10555:30;;;;;;;;;;;;;;;10586:16;10555:48;;;;;;;;;;;;;;;;;:97;;;;10414:245;10704:14;10664:18;:30;10683:10;10664:30;;;;;;;;;;;;;;;:54;;;;;:::i;:::-;;10805:5;10786:24;;10849:1;10833:6;:13;;;;:17;10816:34;;10880:14;10860:16;:34;;10856:460;;;10926:6;10933:14;10926:22;;;;;;;;;;;;;;;;;;;;:25;;;10904:47;;11003:6;11010:14;11003:22;;;;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;10978:53;;11069:6;11076:14;11069:22;;;;;;;;;;;;;;;;;;;;:33;;;11039:63;;11168:16;11110:18;:34;11129:14;11110:34;;;;;;;;;;;;;;;11145:19;11110:55;;;;;;;;;;;;;;;;;:74;;;;11236:16;11206:14;:27;11221:11;11206:27;;;;;;;;;;;:46;;;;11287:6;11294:14;11287:22;;;;;;;;;;;;;;;;;;;;11260:6;11267:16;11260:24;;;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10856:460;11348:1;11321:14;:24;11336:8;11321:24;;;;;;;;;;;:28;;;;11371:14;11355:6;:30;;;;;:::i;:::-;;10052:1338;;;;;;;;:::o;2935:144::-;2998:7;3030:6;:13;;;;3021:6;:22;3013:31;;;;;;;;3057:6;3064;3057:14;;;;;;;;;;;;;;;;;;;;:17;;;3050:24;;2935:144;;;:::o;6358:155::-;6424:7;6439:10;6452:24;6467:8;6452:14;:24::i;:::-;6439:37;;6489:6;6496:5;6489:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6482:26;;6358:155;;;;:::o;9331:717::-;9444:10;9673:18;9782:15;9845:29;;:::i;:::-;9457:14;:24;9472:8;9457:24;;;;;;;;;;;;9444:37;;9515:1;9495:22;;:8;:22;;;;9487:31;;;;;;;;9538:1;9529:5;:10;9528:35;;;;;9549:6;:13;;;;9545:1;:17;9528:35;9524:89;;;9597:8;9581:6;9588:1;9581:9;;;;;;;;;;;;;;;;;;;;:12;;;:24;;9573:33;;;;;;;;9524:89;9627:6;:13;;;;9619:21;;9694:18;:28;9713:8;9694:28;;;;;;;;;;;;;;;:35;;;;9673:56;;9735:18;:28;9754:8;9735:28;;;;;;;;;;;;;;;9769:5;9735:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9735:40:7;;;;;;;;;;;;;;;;;;;;;;9800:13;:39;;9837:1;9800:39;;;9816:10;9800:39;9782:57;;9877:93;;;;;;;;;9883:8;9877:93;;;;9893:12;9877:93;;;;9907:1;9877:93;;;;9910:10;9877:93;;;;9922:12;9877:93;;;;9936:8;9877:93;;;;;;9946:7;9877:93;;;;;;9963:1;9877:93;;;;;;;;;;;;;;;;;;;;;;9845:125;;9976:6;9988:16;9976:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9976:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10038:5;10011:14;:24;10026:8;10011:24;;;;;;;;;;;:32;;;;9331:717;;;;;;;;:::o;8621:152::-;8713:4;8732:17;:25;8750:6;8732:25;;;;;;;;;;;;;;;:36;8758:9;8732:36;;;;;;;;;;;;;;;;;;;;;;;;;8725:43;;8621:152;;;;:::o;11394:868::-;11488:10;11667:24;11724:22;12076:18;11501:24;11516:8;11501:14;:24::i;:::-;11488:37;;11560:1;11540:22;;:8;:22;;;;11539:52;;;;;11582:8;11568:22;;:10;:22;;;;11539:52;:91;;;;;11619:10;11596:33;;:6;11603:5;11596:13;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:33;;;11539:91;11531:100;;;;;;;;11694:6;11701:5;11694:13;;;;;;;;;;;;;;;;;;;;:24;;;11667:51;;11789:1;11749:18;:30;11768:10;11749:30;;;;;;;;;;;;;;;:37;;;;:41;11724:66;;11866:16;11797:6;11804:18;:30;11823:10;11804:30;;;;;;;;;;;;;;;11835:14;11804:46;;;;;;;;;;;;;;;;;;11797:55;;;;;;;;;;;;;;;;;;;;:66;;:85;;;;11939:18;:30;11958:10;11939:30;;;;;;;;;;;;;;;11970:14;11939:46;;;;;;;;;;;;;;;;;;11888:18;:30;11907:10;11888:30;;;;;;;;;;;;;;;11919:16;11888:48;;;;;;;;;;;;;;;;;:97;;;;12031:14;11991:18;:30;12010:10;11991:30;;;;;;;;;;;;;;;:54;;;;;:::i;:::-;;12097:18;:28;12116:8;12097:28;;;;;;;;;;;;;;;:35;;;;12076:56;;12138:18;:28;12157:8;12138:28;;;;;;;;;;;;;;;12172:5;12138:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12138:40:7;;;;;;;;;;;;;;;;;;;;;;12206:8;12184:6;12191:5;12184:13;;;;;;;;;;;;;;;;;;;;:19;;;:30;;;;;;;;;;;;;;;;;;12247:10;12220:6;12227:5;12220:13;;;;;;;;;;;;;;;;;;;;:24;;:37;;;;11394:868;;;;;;;:::o;12266:150::-;12323:4;12335:12;12384:4;12372:17;12364:25;;12410:1;12403:4;:8;12396:15;;12266:150;;;;:::o;193:19039::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o",source:'pragma solidity ^0.4.23;\n\nimport "./ERC/ERC165.sol";\nimport "./ERC/ERC721.sol";\nimport "./ERC/ERC721Enumerable.sol";\nimport "./ERC/ERC721Metadata.sol";\nimport "./ERC/ERC721TokenReceiver.sol";\n\ncontract SixPillars is ERC165, ERC721, ERC721Enumerable, ERC721Metadata, ERC721TokenReceiver {\n  /// This emits when minted new token.\n  event Mint(\n    address indexed _owner,\n    address indexed _creator,\n    uint256 _inscription,\n    uint256 _tokenId\n  );\n\n  /// This emits when burned any token.\n  event Burn(\n    address indexed _owner,\n    address indexed _creator,\n    uint256 _tokenId\n  );\n\n  /// This emits when set new creator of any token.\n  event CreatedBy(\n    address indexed _creator,\n    uint256 _tokenId\n  );\n\n  /// This emits when remove creator of any token.\n  event ClearCreator(\n    uint256 _tokenId\n  );\n\n  /// This emits when the approved amount for an NFT is changed or reaffirmed.\n  /// and it emits after `Approval` event.\n  event ApprovalWithAmount(\n    address indexed _owner,\n    address indexed _approved,\n    uint256 indexed _tokenId,\n    uint256 _amount\n  );\n\n  /// This emits when ownership of any token changes by used amount.\n  /// and it emits after `Transfer` event.\n  event TransferWithAmount(\n    address indexed _from,\n    address indexed _to,\n    uint256 indexed _tokenId,\n    uint256 _amount\n  );\n\n  struct Token {\n    uint256 id;\n    uint256 inscription;\n    uint256 amount;\n    uint256 ownerIndex; // ownerToTokensIndex[_owner][ownerIndex]\n    uint256 createdAt; // block number at created\n    address owner;\n    address creator;\n    address approved;\n    string uri;\n  }\n\n  Token[] internal tokens;\n  mapping(uint256 => uint256) internal tokenIdToIndex; // tokenId -> tokens index\n  uint256 internal tokenIdSeed;\n  uint256 internal lastMintBlockNumber;\n\n  mapping(address => uint256[]) internal ownerToTokensIndex; // owner address -> tokens index array\n  mapping(address => mapping(address => bool)) internal operatorApprovals; // approved address -> approve address flag mapping\n\n  mapping(bytes4 => bool) internal supportedInterfaces;\n\n  /**\n   * ERC165\n  ***/\n\n  // @override\n  function supportsInterface(bytes4 _interfaceId) external view returns (bool) {\n    return supportedInterfaces[_interfaceId];\n  }\n\n  function _registerInterface(bytes4 _interfaceId) internal {\n    require(_interfaceId != 0xffffffff);\n    supportedInterfaces[_interfaceId] = true;\n  }\n\n  /**\n   * ERC721Enumerable\n  ***/\n\n  // @override\n  function totalSupply() external view returns (uint256) {\n    return tokens.length;\n  }\n\n  // @override\n  function tokenByIndex(uint256 _index) external view returns (uint256) {\n    return tokenIdByIndex(_index);\n  }\n\n  // @override\n  function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256) {\n    require(_index < ownerToTokensIndex[_owner].length);\n    uint256 index = ownerToTokensIndex[_owner][_index];\n    return tokens[index].id;\n  }\n\n  function tokenIdByIndex(uint256 _index) internal view returns (uint256) {\n    require(_index < tokens.length);\n    return tokens[_index].id;\n  }\n\n  function indexByTokenId(uint256 _tokenId) internal view returns (uint256) {\n    uint index = tokenIdToIndex[_tokenId];\n    require(index < tokens.length);\n    require(tokens[index].id == _tokenId);\n    return index;\n  }\n\n  /**\n   * ERC721Metadata\n  ***/\n\n  // @override\n  function name() public view returns (string) {\n    return "SixPillars";\n  }\n\n  // @override\n  function symbol() public view returns (string) {\n    return "SPT";\n  }\n\n  // @override\n  function tokenURI(uint256 _tokenId) external view returns (string) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].uri;\n  }\n\n  /**\n   * ERC721TokenReceiver\n  ***/\n\n  // @override\n  function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes _data) external returns(bytes4) {\n    return InterfaceId_ERC721TokenReceiver;\n  }\n\n  /**\n   * ERC721\n  ***/\n\n  // @override\n  function balanceOf(address _owner) external view returns (uint256) {\n    require(_owner != address(0));\n    return ownerToTokensIndex[_owner].length;\n  }\n\n  // @override\n  function ownerOf(uint256 _tokenId) external view returns (address) {\n    return internalOwnerOf(_tokenId);\n  }\n\n  // @override\n  function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) external payable {\n    uint256 sendAmount = internalSafeTransferFrom(_from, _to, _tokenId, msg.value, _data);\n    if (0 < sendAmount) {\n      _from.transfer(sendAmount);\n      emit TransferWithAmount(_from, _to, _tokenId, sendAmount);\n    }\n  }\n\n  // @override\n  function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable {\n    uint256 sendAmount = internalSafeTransferFrom(_from, _to, _tokenId, msg.value, "");\n    if (0 < sendAmount) {\n      _from.transfer(sendAmount);\n      emit TransferWithAmount(_from, _to, _tokenId, sendAmount);\n    }\n  }\n\n  // @override\n  function transferFrom(address _from, address _to, uint256 _tokenId) external payable {\n    uint256 sendAmount = internalTransferFrom(_from, _to, _tokenId, msg.value);\n    if (0 < sendAmount) {\n      _from.transfer(sendAmount);\n      emit TransferWithAmount(_from, _to, _tokenId, sendAmount);\n    }\n  }\n\n  // @override\n  function approve(address _approved, uint256 _tokenId) external payable {\n    internalApprove(_approved, _tokenId, 0);\n  }\n\n  // @override\n  function setApprovalForAll(address _operator, bool _approved) external {\n    require(_operator != msg.sender);\n    operatorApprovals[msg.sender][_operator] = _approved;\n    emit ApprovalForAll(msg.sender, _operator, _approved);\n  }\n\n  // @override\n  function getApproved(uint256 _tokenId) external view returns (address) {\n    return internalGetApproved(_tokenId);\n  }\n\n  // @override\n  function isApprovedForAll(address _owner, address _operator) public view returns (bool) {\n    return internalIsApprovedForAll(_owner, _operator);\n  }\n\n  /**\n   * payment methods for ERC721\n  ***/\n\n  function approve(address _approved, uint256 _tokenId, uint256 _amount) external payable {\n    internalApprove(_approved, _tokenId, _amount);\n  }\n\n  function amountOf(uint256 _tokenId) external view returns (uint256) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].amount;\n  }\n\n  /**\n   * internal methods for ERC721 external methods\n  ***/\n\n  // @override\n  function internalOwnerOf(uint256 _tokenId) internal view returns (address) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].owner;\n  }\n\n  // @override\n  function internalSafeTransferFrom(address _from, address _to, uint256 _tokenId, uint256 _value, bytes _data) internal returns (uint256) {\n    if (isContract(_to)) {\n      bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data);\n      require(retval == InterfaceId_ERC721TokenReceiver, "internalSafeTransferFrom msg.sender can not approved");\n    }\n    return internalTransferFrom(_from, _to, _tokenId, _value);\n  }\n\n  function internalTransferFrom(address _from, address _to, uint256 _tokenId, uint256 _value) internal returns (uint256 sendAmount) {\n    uint index = indexByTokenId(_tokenId);\n    address owner = tokens[index].owner;\n    require((_from == owner) && (_from != _to));\n\n    // can transfer, if meet one of the confitions\n    // 1. sender is owner.\n    // 2. sender is approved of owner\'s all token transfer to "_to" address.\n    // 3. if an approved address is set,\n    // 3-1. and amount is set, approved sender pay token amount to owner, transfer to "_to" address.\n    // 3-2. and amount is not set, sender is approved of token transfer to "_to" address.\n    // 4. if an approved address is not set, sender to pay token amount to owner.\n    uint256 amount = tokens[index].amount;\n    tokens[index].amount = 0;\n    bool canTransfer = (msg.sender == owner) || internalIsApprovedForAll(owner, msg.sender);\n    if (canTransfer) {\n      // owner and approved sender, not payable.\n      require(_value == 0);\n\n    } else if (tokens[index].approved == msg.sender) {\n      sendAmount = amount;\n      canTransfer = (amount == _value);\n\n    } else if ((tokens[index].approved == address(0)) && (0 < amount)) {\n      sendAmount = amount;\n      canTransfer = (amount == _value);\n    }\n    require(canTransfer);\n\n    // clear approved\n    tokens[index].approved = address(0);\n\n    // transfer\n    transferToken(_from, _to, _tokenId);\n    emit Transfer(_from, _to, _tokenId);\n  }\n\n  function internalGetApproved(uint256 _tokenId) internal view returns (address) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].approved;\n  }\n\n  function internalIsApprovedForAll(address _owner, address _operator) internal view returns (bool) {\n    return operatorApprovals[_owner][_operator];\n  }\n\n  function internalApprove(address _approved, uint256 _tokenId, uint256 _amount) internal {\n    uint index = indexByTokenId(_tokenId);\n    address owner = tokens[index].owner;\n    require(_approved != owner);\n    require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\n    tokens[index].approved = _approved;\n    tokens[index].amount = _amount;\n    emit Approval(owner, _approved, _tokenId);\n    if (0 < _amount) {\n      emit ApprovalWithAmount(owner, _approved, _tokenId, _amount);\n    }\n  }\n\n  /**\n   * internal methods for ERC721\n  ***/\n\n  function addTokenTo(address _toOwner, uint256 _tokenId, uint256 _inscription, bool _isSetCreator) internal {\n    uint index = tokenIdToIndex[_tokenId];\n    require(_toOwner != address(0));\n    if ((index == 0) && (0 < tokens.length)) {\n      require(tokens[0].id != _tokenId);\n    }\n\n    index = tokens.length;\n\n    // add token to owner\n    uint256 ownerIndex = ownerToTokensIndex[_toOwner].length;\n    ownerToTokensIndex[_toOwner].push(index);\n\n    address creator = _isSetCreator ? msg.sender : address(0);\n    Token memory tokenWithCreator = Token(_tokenId, _inscription, 0, ownerIndex, block.number, _toOwner, creator, address(0), "");\n    tokens.push(tokenWithCreator);\n    tokenIdToIndex[_tokenId] = index;\n  }\n\n  function removeTokenFrom(address _fromOwner, uint256 _tokenId) internal {\n    uint index = indexByTokenId(_tokenId);\n    require(tokens[index].owner == _fromOwner);\n\n    // change removeToken index <--\x3e lastToken index for owner\n    uint256 removeTokenIndex = tokens[index].ownerIndex;\n    uint256 lastTokenIndex = ownerToTokensIndex[_fromOwner].length - 1;\n    if (removeTokenIndex != lastTokenIndex) {\n      tokens[ownerToTokensIndex[_fromOwner][lastTokenIndex] ].ownerIndex = removeTokenIndex;\n      ownerToTokensIndex[_fromOwner][removeTokenIndex] = ownerToTokensIndex[_fromOwner][lastTokenIndex];\n    }\n    ownerToTokensIndex[_fromOwner].length = lastTokenIndex;\n\n    // change removeToken index <--\x3e lastToken index for all\n    removeTokenIndex = index;\n    lastTokenIndex = tokens.length - 1;\n    if (removeTokenIndex != lastTokenIndex) {\n      uint256 lastTokenId = tokens[lastTokenIndex].id;\n\n      // owner to\n      address lastTokenOwner = tokens[lastTokenIndex].owner;\n      uint256 lastTokenOwnerIndex = tokens[lastTokenIndex].ownerIndex;\n      ownerToTokensIndex[lastTokenOwner][lastTokenOwnerIndex] = removeTokenIndex;\n\n      // all\n      tokenIdToIndex[lastTokenId] = removeTokenIndex;\n      tokens[removeTokenIndex] = tokens[lastTokenIndex];\n    }\n    tokenIdToIndex[_tokenId] = 0;\n    tokens.length = lastTokenIndex;\n  }\n\n  function transferToken(address _fromOwner, address _toOwner, uint256 _tokenId) internal {\n    uint index = indexByTokenId(_tokenId);\n    require((_toOwner != address(0)) && (_fromOwner != _toOwner) && (tokens[index].owner == _fromOwner));\n\n    // remove from old owner\n    uint256 removeTokenIndex = tokens[index].ownerIndex;\n    uint256 lastTokenIndex = ownerToTokensIndex[_fromOwner].length - 1;\n\n    tokens[ownerToTokensIndex[_fromOwner][lastTokenIndex] ].ownerIndex = removeTokenIndex;\n    ownerToTokensIndex[_fromOwner][removeTokenIndex] = ownerToTokensIndex[_fromOwner][lastTokenIndex];\n    ownerToTokensIndex[_fromOwner].length = lastTokenIndex;\n\n    // add to new owner\n    uint256 ownerIndex = ownerToTokensIndex[_toOwner].length;\n    ownerToTokensIndex[_toOwner].push(index);\n    tokens[index].owner = _toOwner;\n    tokens[index].ownerIndex = ownerIndex;\n  }\n\n  function isContract(address addr) internal view returns (bool) {\n    uint256 size;\n    assembly { size := extcodesize(addr) }\n    return size > 0;\n  }\n\n  /**\n   * SixPillars\n  ***/\n\n  constructor() public {\n    _registerInterface(InterfaceId_ERC165);\n    _registerInterface(InterfaceId_ERC721);\n    _registerInterface(InterfaceId_ERC721Enumerable);\n    _registerInterface(InterfaceId_ERC721Metadata);\n    _registerInterface(InterfaceId_ERC721TokenReceiver);\n    tokenIdSeed = 722;\n    lastMintBlockNumber = 0;\n  }\n\n  function recover(bytes32 msgHash, uint8 v, bytes32 r, bytes32 s) public pure returns (address) {\n    return ecrecover(msgHash, v, r, s);\n  }\n\n  /// Mint new token.\n  ///\n  /// emit Mint(owner, creator, inscription, tokenId)\n  /// Throw _to is not valid.\n  /// Throw new token id is already used. (please try again later)\n  /// @param _to Owner of new token.\n  /// @param _inscription immutable parameter for new token.\n  /// @param _isSetCreator if true, creator of new token is msg.sender. if false, creator is zero address.\n  function mint(address _to, uint256 _inscription, bool _isSetCreator) external {\n    uint256 seed = tokenIdSeed;\n    if ((lastMintBlockNumber != 0) && (lastMintBlockNumber < block.number)) {\n      seed += (block.number - lastMintBlockNumber);\n    }\n    uint256 newTokenId = uint256(keccak256(abi.encodePacked(seed)));\n    tokenIdSeed = newTokenId;\n    lastMintBlockNumber = block.number;\n    addTokenTo(_to, newTokenId, _inscription, _isSetCreator);\n    emit Mint(\n      _to,\n      (_isSetCreator == true) ? msg.sender : address(0),\n      _inscription,\n      newTokenId\n    );\n  }\n\n  /// Burn your token.\n  ///\n  /// emit Burn(owner, creator, tokenId)\n  /// Throw token owner is not msg.sender.\n  /// @param _tokenId id of the token you want to burned.\n  function burn(uint256 _tokenId) external {\n    uint index = indexByTokenId(_tokenId);\n    address owner = tokens[index].owner;\n    address creator = tokens[index].creator;\n    require(owner == msg.sender);\n    removeTokenFrom(owner, _tokenId);\n    emit Burn(\n      owner,\n      creator,\n      _tokenId\n    );\n  }\n\n  /// Add creator to the token\n  ///\n  /// msg.sender is new creator.\n  /// emit CreatedBy(creator, tokenId)\n  /// Throw token creator is already added.\n  /// @param _tokenId id of the token you want add creator.\n  function createdBy(uint256 _tokenId) external {\n    uint index = indexByTokenId(_tokenId);\n    address creator = tokens[index].creator;\n    require(creator == address(0));\n    tokens[index].creator = msg.sender;\n    emit CreatedBy(\n      msg.sender,\n      _tokenId\n    );\n  }\n\n  /// Remove creator to the token\n  ///\n  /// creator of the token will be zero address.\n  /// emit ClearCreator(tokenId)\n  /// Throw token creator is not msg.sender.\n  /// @param _tokenId id of the token you want remove creator.\n  function clearCreator(uint256 _tokenId) external {\n    uint index = indexByTokenId(_tokenId);\n    address creator = tokens[index].creator;\n    require(msg.sender == creator);\n    tokens[index].creator = address(0);\n    emit ClearCreator(_tokenId);\n  }\n\n  /// Get inscription of the token.\n  /// @param _tokenId id of the token you get it.\n  /// @return uint256 inscription of the token.\n  function inscription(uint256 _tokenId) external view returns(uint256) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].inscription;\n  }\n\n  /// Get creator of the token.\n  /// @param _tokenId id of the token you get it.\n  /// @return address creator of the token.\n  function creator(uint256 _tokenId) external view returns(address) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].creator;\n  }\n\n  /// Get block number of the token at created.\n  /// @param _tokenId id of the token you get it.\n  /// @return uint256 block number of the token at created.\n  function createdAt(uint256 _tokenId) external view returns(uint256) {\n    uint index = indexByTokenId(_tokenId);\n    return tokens[index].createdAt;\n  }\n\n  /// Set new url for your token.\n  ///\n  /// Throw token owner is not msg.sender.\n  /// @param _tokenId id of the token you set it.\n  /// @param _uri new uri.\n  function setTokenURI(uint256 _tokenId, string _uri) external {\n    uint index = indexByTokenId(_tokenId);\n    require(tokens[index].owner == msg.sender);\n    tokens[index].uri = _uri;\n  }\n\n  /// Token balance of creator.\n  ///\n  /// Throw creator is not valid.\n  /// @param _creator creator of the tokens.\n  /// @return uint256 balance.\n  function balanceOfCreator(address _creator) external view returns (uint256) {\n    require(_creator != address(0));\n    uint256 count = 0;\n    for (uint256 i = 0; i < tokens.length; i++) {\n      if (tokens[i].creator == _creator) {\n        count++;\n      }\n    }\n    return count;\n  }\n\n  /// Get token ID of the specified creator and index.\n  ///\n  /// Throw owner is not valid.\n  /// Throw overflow index.\n  /// @param _creator creator of the token.\n  /// @param _index index of the creator tokens.\n  /// @return uint256 token id.\n  function tokenOfCreatorByIndex(address _creator, uint256 _index) external view returns (uint256) {\n    require(_creator != address(0));\n    uint256 count = 0;\n    for (uint256 i = 0; i < tokens.length; i++) {\n      if (tokens[i].creator == _creator) {\n        if (count == _index) {\n          return tokens[i].id;\n        }\n        count++;\n      }\n    }\n    revert();\n  }\n\n  /// Token balance of owner and creator.\n  ///\n  /// Throw owner is not valid.\n  /// Throw creator is not valid.\n  /// @param _owner owner of the tokens.\n  /// @param _creator creator of the tokens.\n  /// @return uint256 balance of `token.owner == _owner` and `token.creator == _creator` tokens.\n  function balanceOfOwnerAndCreator(address _owner, address _creator) external view returns (uint256) {\n    require((_owner != address(0)) && (_creator != address(0)));\n    uint256 balance = 0;\n    for (uint256 i = 0; i < ownerToTokensIndex[_owner].length; i++) {\n      uint256 index = ownerToTokensIndex[_owner][i];\n      if (tokens[index].creator == _creator) {\n        balance++;\n      }\n    }\n    return balance;\n  }\n\n  /// Get token ID of the specified owner, creator, and index.\n  ///\n  /// Throw owner is not valid.\n  /// Throw creator is not valid.\n  /// Throw overflow index.\n  /// @param _owner owner of the token.\n  /// @param _creator creator of the token, you can use zero address.\n  /// @param _index index of the creator tokens.\n  /// @return uint256 token id.\n  function tokenOfOwnerAndCreatorByIndex(address _owner, address _creator, uint256 _index) external view returns (uint256) {\n    require((_owner != address(0)) && (_creator != address(0)));\n    uint256 count = 0;\n    for (uint256 i = 0; i < ownerToTokensIndex[_owner].length; i++) {\n      uint256 index = ownerToTokensIndex[_owner][i];\n      if (tokens[index].creator == _creator) {\n        if (count == _index) {\n          return tokens[index].id;\n        }\n        count++;\n      }\n    }\n    revert();\n  }\n}\n',sourcePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/SixPillars.sol",ast:{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/SixPillars.sol",exportedSymbols:{SixPillars:[2132]},id:2133,nodeType:"SourceUnit",nodes:[{id:285,literals:["solidity","^","0.4",".23"],nodeType:"PragmaDirective",src:"0:24:7"},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC165.sol",file:"./ERC/ERC165.sol",id:286,nodeType:"ImportDirective",scope:2133,sourceUnit:100,src:"26:26:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721.sol",file:"./ERC/ERC721.sol",id:287,nodeType:"ImportDirective",scope:2133,sourceUnit:206,src:"53:26:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721Enumerable.sol",file:"./ERC/ERC721Enumerable.sol",id:288,nodeType:"ImportDirective",scope:2133,sourceUnit:236,src:"80:36:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721Metadata.sol",file:"./ERC/ERC721Metadata.sol",id:289,nodeType:"ImportDirective",scope:2133,sourceUnit:262,src:"117:34:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721TokenReceiver.sol",file:"./ERC/ERC721TokenReceiver.sol",id:290,nodeType:"ImportDirective",scope:2133,sourceUnit:284,src:"152:39:7",symbolAliases:[],unitAlias:""},{baseContracts:[{arguments:null,baseName:{contractScope:null,id:291,name:"ERC165",nodeType:"UserDefinedTypeName",referencedDeclaration:99,src:"216:6:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC165_$99",typeString:"contract ERC165"}},id:292,nodeType:"InheritanceSpecifier",src:"216:6:7"},{arguments:null,baseName:{contractScope:null,id:293,name:"ERC721",nodeType:"UserDefinedTypeName",referencedDeclaration:205,src:"224:6:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721_$205",typeString:"contract ERC721"}},id:294,nodeType:"InheritanceSpecifier",src:"224:6:7"},{arguments:null,baseName:{contractScope:null,id:295,name:"ERC721Enumerable",nodeType:"UserDefinedTypeName",referencedDeclaration:235,src:"232:16:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721Enumerable_$235",typeString:"contract ERC721Enumerable"}},id:296,nodeType:"InheritanceSpecifier",src:"232:16:7"},{arguments:null,baseName:{contractScope:null,id:297,name:"ERC721Metadata",nodeType:"UserDefinedTypeName",referencedDeclaration:261,src:"250:14:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721Metadata_$261",typeString:"contract ERC721Metadata"}},id:298,nodeType:"InheritanceSpecifier",src:"250:14:7"},{arguments:null,baseName:{contractScope:null,id:299,name:"ERC721TokenReceiver",nodeType:"UserDefinedTypeName",referencedDeclaration:283,src:"266:19:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721TokenReceiver_$283",typeString:"contract ERC721TokenReceiver"}},id:300,nodeType:"InheritanceSpecifier",src:"266:19:7"}],contractDependencies:[99,93,205,199,229,235,255,261,277,283],contractKind:"contract",documentation:null,fullyImplemented:!0,id:2132,linearizedBaseContracts:[2132,283,277,261,255,235,229,205,199,99,93],name:"SixPillars",nodeType:"ContractDefinition",nodes:[{anonymous:!1,documentation:"This emits when minted new token.",id:310,name:"Mint",nodeType:"EventDefinition",parameters:{id:309,nodeType:"ParameterList",parameters:[{constant:!1,id:302,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:310,src:"346:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:301,name:"address",nodeType:"ElementaryTypeName",src:"346:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:304,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:310,src:"374:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:303,name:"address",nodeType:"ElementaryTypeName",src:"374:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:306,indexed:!1,name:"_inscription",nodeType:"VariableDeclaration",scope:310,src:"404:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:305,name:"uint256",nodeType:"ElementaryTypeName",src:"404:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:308,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:310,src:"430:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:307,name:"uint256",nodeType:"ElementaryTypeName",src:"430:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"340:110:7"},src:"330:121:7"},{anonymous:!1,documentation:"This emits when burned any token.",id:318,name:"Burn",nodeType:"EventDefinition",parameters:{id:317,nodeType:"ParameterList",parameters:[{constant:!1,id:312,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:318,src:"511:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:311,name:"address",nodeType:"ElementaryTypeName",src:"511:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:314,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:318,src:"539:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:313,name:"address",nodeType:"ElementaryTypeName",src:"539:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:316,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:318,src:"569:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:315,name:"uint256",nodeType:"ElementaryTypeName",src:"569:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"505:84:7"},src:"495:95:7"},{anonymous:!1,documentation:"This emits when set new creator of any token.",id:324,name:"CreatedBy",nodeType:"EventDefinition",parameters:{id:323,nodeType:"ParameterList",parameters:[{constant:!1,id:320,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:324,src:"667:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:319,name:"address",nodeType:"ElementaryTypeName",src:"667:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:322,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:324,src:"697:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:321,name:"uint256",nodeType:"ElementaryTypeName",src:"697:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"661:56:7"},src:"646:72:7"},{anonymous:!1,documentation:"This emits when remove creator of any token.",id:328,name:"ClearCreator",nodeType:"EventDefinition",parameters:{id:327,nodeType:"ParameterList",parameters:[{constant:!1,id:326,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:328,src:"797:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:325,name:"uint256",nodeType:"ElementaryTypeName",src:"797:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"791:26:7"},src:"773:45:7"},{anonymous:!1,documentation:"This emits when the approved amount for an NFT is changed or reaffirmed.\n and it emits after `Approval` event.",id:338,name:"ApprovalWithAmount",nodeType:"EventDefinition",parameters:{id:337,nodeType:"ParameterList",parameters:[{constant:!1,id:330,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:338,src:"974:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:329,name:"address",nodeType:"ElementaryTypeName",src:"974:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:332,indexed:!0,name:"_approved",nodeType:"VariableDeclaration",scope:338,src:"1002:25:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:331,name:"address",nodeType:"ElementaryTypeName",src:"1002:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:334,indexed:!0,name:"_tokenId",nodeType:"VariableDeclaration",scope:338,src:"1033:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:333,name:"uint256",nodeType:"ElementaryTypeName",src:"1033:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:336,indexed:!1,name:"_amount",nodeType:"VariableDeclaration",scope:338,src:"1063:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:335,name:"uint256",nodeType:"ElementaryTypeName",src:"1063:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"968:114:7"},src:"944:139:7"},{anonymous:!1,documentation:"This emits when ownership of any token changes by used amount.\n and it emits after `Transfer` event.",id:348,name:"TransferWithAmount",nodeType:"EventDefinition",parameters:{id:347,nodeType:"ParameterList",parameters:[{constant:!1,id:340,indexed:!0,name:"_from",nodeType:"VariableDeclaration",scope:348,src:"1229:21:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:339,name:"address",nodeType:"ElementaryTypeName",src:"1229:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:342,indexed:!0,name:"_to",nodeType:"VariableDeclaration",scope:348,src:"1256:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:341,name:"address",nodeType:"ElementaryTypeName",src:"1256:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:344,indexed:!0,name:"_tokenId",nodeType:"VariableDeclaration",scope:348,src:"1281:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:343,name:"uint256",nodeType:"ElementaryTypeName",src:"1281:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:346,indexed:!1,name:"_amount",nodeType:"VariableDeclaration",scope:348,src:"1311:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:345,name:"uint256",nodeType:"ElementaryTypeName",src:"1311:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"1223:107:7"},src:"1199:132:7"},{canonicalName:"SixPillars.Token",id:367,members:[{constant:!1,id:350,name:"id",nodeType:"VariableDeclaration",scope:367,src:"1354:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:349,name:"uint256",nodeType:"ElementaryTypeName",src:"1354:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:352,name:"inscription",nodeType:"VariableDeclaration",scope:367,src:"1370:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:351,name:"uint256",nodeType:"ElementaryTypeName",src:"1370:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:354,name:"amount",nodeType:"VariableDeclaration",scope:367,src:"1395:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:353,name:"uint256",nodeType:"ElementaryTypeName",src:"1395:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:356,name:"ownerIndex",nodeType:"VariableDeclaration",scope:367,src:"1415:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:355,name:"uint256",nodeType:"ElementaryTypeName",src:"1415:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:358,name:"createdAt",nodeType:"VariableDeclaration",scope:367,src:"1481:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:357,name:"uint256",nodeType:"ElementaryTypeName",src:"1481:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:360,name:"owner",nodeType:"VariableDeclaration",scope:367,src:"1531:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:359,name:"address",nodeType:"ElementaryTypeName",src:"1531:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:362,name:"creator",nodeType:"VariableDeclaration",scope:367,src:"1550:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:361,name:"address",nodeType:"ElementaryTypeName",src:"1550:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:364,name:"approved",nodeType:"VariableDeclaration",scope:367,src:"1571:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:363,name:"address",nodeType:"ElementaryTypeName",src:"1571:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:366,name:"uri",nodeType:"VariableDeclaration",scope:367,src:"1593:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"},typeName:{id:365,name:"string",nodeType:"ElementaryTypeName",src:"1593:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],name:"Token",nodeType:"StructDefinition",scope:2132,src:"1335:273:7",visibility:"public"},{constant:!1,id:370,name:"tokens",nodeType:"VariableDeclaration",scope:2132,src:"1612:23:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token[]"},typeName:{baseType:{contractScope:null,id:368,name:"Token",nodeType:"UserDefinedTypeName",referencedDeclaration:367,src:"1612:5:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage_ptr",typeString:"struct SixPillars.Token"}},id:369,length:null,nodeType:"ArrayTypeName",src:"1612:7:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage_ptr",typeString:"struct SixPillars.Token[]"}},value:null,visibility:"internal"},{constant:!1,id:374,name:"tokenIdToIndex",nodeType:"VariableDeclaration",scope:2132,src:"1639:51:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"},typeName:{id:373,keyType:{id:371,name:"uint256",nodeType:"ElementaryTypeName",src:"1647:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Mapping",src:"1639:27:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"},valueType:{id:372,name:"uint256",nodeType:"ElementaryTypeName",src:"1658:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}},value:null,visibility:"internal"},{constant:!1,id:376,name:"tokenIdSeed",nodeType:"VariableDeclaration",scope:2132,src:"1721:28:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:375,name:"uint256",nodeType:"ElementaryTypeName",src:"1721:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:378,name:"lastMintBlockNumber",nodeType:"VariableDeclaration",scope:2132,src:"1753:36:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:377,name:"uint256",nodeType:"ElementaryTypeName",src:"1753:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:383,name:"ownerToTokensIndex",nodeType:"VariableDeclaration",scope:2132,src:"1794:57:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[])"},typeName:{id:382,keyType:{id:379,name:"address",nodeType:"ElementaryTypeName",src:"1802:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1794:29:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[])"},valueType:{baseType:{id:380,name:"uint256",nodeType:"ElementaryTypeName",src:"1813:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:381,length:null,nodeType:"ArrayTypeName",src:"1813:9:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage_ptr",typeString:"uint256[]"}}},value:null,visibility:"internal"},{constant:!1,id:389,name:"operatorApprovals",nodeType:"VariableDeclaration",scope:2132,src:"1894:71:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"},typeName:{id:388,keyType:{id:384,name:"address",nodeType:"ElementaryTypeName",src:"1902:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1894:44:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"},valueType:{id:387,keyType:{id:385,name:"address",nodeType:"ElementaryTypeName",src:"1921:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1913:24:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"},valueType:{id:386,name:"bool",nodeType:"ElementaryTypeName",src:"1932:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}}},value:null,visibility:"internal"},{constant:!1,id:393,name:"supportedInterfaces",nodeType:"VariableDeclaration",scope:2132,src:"2022:52:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"},typeName:{id:392,keyType:{id:390,name:"bytes4",nodeType:"ElementaryTypeName",src:"2030:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"Mapping",src:"2022:23:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"},valueType:{id:391,name:"bool",nodeType:"ElementaryTypeName",src:"2040:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}},value:null,visibility:"internal"},{body:{id:404,nodeType:"Block",src:"2197:51:7",statements:[{expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:400,name:"supportedInterfaces",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:393,src:"2210:19:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"}},id:402,indexExpression:{argumentTypes:null,id:401,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:395,src:"2230:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2210:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:399,id:403,nodeType:"Return",src:"2203:40:7"}]},documentation:"ERC165**",id:405,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"supportsInterface",nodeType:"FunctionDefinition",parameters:{id:396,nodeType:"ParameterList",parameters:[{constant:!1,id:395,name:"_interfaceId",nodeType:"VariableDeclaration",scope:405,src:"2147:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:394,name:"bytes4",nodeType:"ElementaryTypeName",src:"2147:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"2146:21:7"},payable:!1,returnParameters:{id:399,nodeType:"ParameterList",parameters:[{constant:!1,id:398,name:"",nodeType:"VariableDeclaration",scope:405,src:"2191:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:397,name:"bool",nodeType:"ElementaryTypeName",src:"2191:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"2190:6:7"},scope:2132,src:"2120:128:7",stateMutability:"view",superFunction:92,visibility:"external"},{body:{id:422,nodeType:"Block",src:"2310:92:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bytes4",typeString:"bytes4"},id:413,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:411,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:407,src:"2324:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,hexValue:"30786666666666666666",id:412,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"2340:10:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_4294967295_by_1",typeString:"int_const 4294967295"},value:"0xffffffff"},src:"2324:26:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:410,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"2316:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:414,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2316:35:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:415,nodeType:"ExpressionStatement",src:"2316:35:7"},{expression:{argumentTypes:null,id:420,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:416,name:"supportedInterfaces",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:393,src:"2357:19:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"}},id:418,indexExpression:{argumentTypes:null,id:417,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:407,src:"2377:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"2357:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"74727565",id:419,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"2393:4:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"},src:"2357:40:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:421,nodeType:"ExpressionStatement",src:"2357:40:7"}]},documentation:null,id:423,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"_registerInterface",nodeType:"FunctionDefinition",parameters:{id:408,nodeType:"ParameterList",parameters:[{constant:!1,id:407,name:"_interfaceId",nodeType:"VariableDeclaration",scope:423,src:"2280:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:406,name:"bytes4",nodeType:"ElementaryTypeName",src:"2280:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"2279:21:7"},payable:!1,returnParameters:{id:409,nodeType:"ParameterList",parameters:[],src:"2310:0:7"},scope:2132,src:"2252:150:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:431,nodeType:"Block",src:"2512:31:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,id:428,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"2525:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:429,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"2525:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:427,id:430,nodeType:"Return",src:"2518:20:7"}]},documentation:"ERC721Enumerable**",id:432,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"totalSupply",nodeType:"FunctionDefinition",parameters:{id:424,nodeType:"ParameterList",parameters:[],src:"2477:2:7"},payable:!1,returnParameters:{id:427,nodeType:"ParameterList",parameters:[{constant:!1,id:426,name:"",nodeType:"VariableDeclaration",scope:432,src:"2503:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:425,name:"uint256",nodeType:"ElementaryTypeName",src:"2503:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2502:9:7"},scope:2132,src:"2457:86:7",stateMutability:"view",superFunction:212,visibility:"external"},{body:{id:443,nodeType:"Block",src:"2632:40:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:440,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:434,src:"2660:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:439,name:"tokenIdByIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:496,src:"2645:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:441,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2645:22:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:438,id:442,nodeType:"Return",src:"2638:29:7"}]},documentation:null,id:444,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenByIndex",nodeType:"FunctionDefinition",parameters:{id:435,nodeType:"ParameterList",parameters:[{constant:!1,id:434,name:"_index",nodeType:"VariableDeclaration",scope:444,src:"2584:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:433,name:"uint256",nodeType:"ElementaryTypeName",src:"2584:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2583:16:7"},payable:!1,returnParameters:{id:438,nodeType:"ParameterList",parameters:[{constant:!1,id:437,name:"",nodeType:"VariableDeclaration",scope:444,src:"2623:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:436,name:"uint256",nodeType:"ElementaryTypeName",src:"2623:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2622:9:7"},scope:2132,src:"2562:110:7",stateMutability:"view",superFunction:219,visibility:"external"},{body:{id:475,nodeType:"Block",src:"2784:147:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:459,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:454,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:448,src:"2798:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:455,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"2807:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:457,indexExpression:{argumentTypes:null,id:456,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:446,src:"2826:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2807:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:458,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"2807:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"2798:42:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:453,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"2790:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:460,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2790:51:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:461,nodeType:"ExpressionStatement",src:"2790:51:7"},{assignments:[463],declarations:[{constant:!1,id:463,name:"index",nodeType:"VariableDeclaration",scope:476,src:"2847:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:462,name:"uint256",nodeType:"ElementaryTypeName",src:"2847:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:469,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:464,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"2863:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:466,indexExpression:{argumentTypes:null,id:465,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:446,src:"2882:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2863:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:468,indexExpression:{argumentTypes:null,id:467,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:448,src:"2890:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2863:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"2847:50:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:470,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"2910:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:472,indexExpression:{argumentTypes:null,id:471,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:463,src:"2917:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2910:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:473,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"2910:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:452,id:474,nodeType:"Return",src:"2903:23:7"}]},documentation:null,id:476,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfOwnerByIndex",nodeType:"FunctionDefinition",parameters:{id:449,nodeType:"ParameterList",parameters:[{constant:!1,id:446,name:"_owner",nodeType:"VariableDeclaration",scope:476,src:"2720:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:445,name:"address",nodeType:"ElementaryTypeName",src:"2720:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:448,name:"_index",nodeType:"VariableDeclaration",scope:476,src:"2736:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:447,name:"uint256",nodeType:"ElementaryTypeName",src:"2736:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2719:32:7"},payable:!1,returnParameters:{id:452,nodeType:"ParameterList",parameters:[{constant:!1,id:451,name:"",nodeType:"VariableDeclaration",scope:476,src:"2775:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:450,name:"uint256",nodeType:"ElementaryTypeName",src:"2775:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2774:9:7"},scope:2132,src:"2691:240:7",stateMutability:"view",superFunction:228,visibility:"external"},{body:{id:495,nodeType:"Block",src:"3007:72:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:487,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:484,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:478,src:"3021:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:485,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3030:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:486,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"3030:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3021:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:483,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3013:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:488,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3013:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:489,nodeType:"ExpressionStatement",src:"3013:31:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:490,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3057:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:492,indexExpression:{argumentTypes:null,id:491,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:478,src:"3064:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3057:14:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:493,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"3057:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:482,id:494,nodeType:"Return",src:"3050:24:7"}]},documentation:null,id:496,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenIdByIndex",nodeType:"FunctionDefinition",parameters:{id:479,nodeType:"ParameterList",parameters:[{constant:!1,id:478,name:"_index",nodeType:"VariableDeclaration",scope:496,src:"2959:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:477,name:"uint256",nodeType:"ElementaryTypeName",src:"2959:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2958:16:7"},payable:!1,returnParameters:{id:482,nodeType:"ParameterList",parameters:[{constant:!1,id:481,name:"",nodeType:"VariableDeclaration",scope:496,src:"2998:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:480,name:"uint256",nodeType:"ElementaryTypeName",src:"2998:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2997:9:7"},scope:2132,src:"2935:144:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:527,nodeType:"Block",src:"3157:145:7",statements:[{assignments:[504],declarations:[{constant:!1,id:504,name:"index",nodeType:"VariableDeclaration",scope:528,src:"3163:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:503,name:"uint",nodeType:"ElementaryTypeName",src:"3163:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:508,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,id:505,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"3176:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:507,indexExpression:{argumentTypes:null,id:506,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:498,src:"3191:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3176:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"3163:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:513,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:510,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3214:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:511,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3222:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:512,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"3222:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3214:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:509,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3206:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:514,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3206:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:515,nodeType:"ExpressionStatement",src:"3206:30:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:522,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:517,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3250:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:519,indexExpression:{argumentTypes:null,id:518,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3257:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3250:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:520,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"3250:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:521,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:498,src:"3270:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3250:28:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:516,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3242:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:523,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3242:37:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:524,nodeType:"ExpressionStatement",src:"3242:37:7"},{expression:{argumentTypes:null,id:525,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3292:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:502,id:526,nodeType:"Return",src:"3285:12:7"}]},documentation:null,id:528,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"indexByTokenId",nodeType:"FunctionDefinition",parameters:{id:499,nodeType:"ParameterList",parameters:[{constant:!1,id:498,name:"_tokenId",nodeType:"VariableDeclaration",scope:528,src:"3107:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:497,name:"uint256",nodeType:"ElementaryTypeName",src:"3107:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3106:18:7"},payable:!1,returnParameters:{id:502,nodeType:"ParameterList",parameters:[{constant:!1,id:501,name:"",nodeType:"VariableDeclaration",scope:528,src:"3148:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:500,name:"uint256",nodeType:"ElementaryTypeName",src:"3148:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3147:9:7"},scope:2132,src:"3083:219:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:535,nodeType:"Block",src:"3400:30:7",statements:[{expression:{argumentTypes:null,hexValue:"53697850696c6c617273",id:533,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"3413:12:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_8c15bb392de923abc867448f8286fcc16b30a5f15d607099034c4841e7728fbe",typeString:'literal_string "SixPillars"'},value:"SixPillars"},functionReturnParameters:532,id:534,nodeType:"Return",src:"3406:19:7"}]},documentation:"ERC721Metadata**",id:536,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"name",nodeType:"FunctionDefinition",parameters:{id:529,nodeType:"ParameterList",parameters:[],src:"3368:2:7"},payable:!1,returnParameters:{id:532,nodeType:"ParameterList",parameters:[{constant:!1,id:531,name:"",nodeType:"VariableDeclaration",scope:536,src:"3392:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:530,name:"string",nodeType:"ElementaryTypeName",src:"3392:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3391:8:7"},scope:2132,src:"3355:75:7",stateMutability:"view",superFunction:242,visibility:"public"},{body:{id:543,nodeType:"Block",src:"3496:23:7",statements:[{expression:{argumentTypes:null,hexValue:"535054",id:541,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"3509:5:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_2f05a0ffc0c491cdeacb458a2f79632dce5a8d01cb1da4810845afdbd2865821",typeString:'literal_string "SPT"'},value:"SPT"},functionReturnParameters:540,id:542,nodeType:"Return",src:"3502:12:7"}]},documentation:null,id:544,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"symbol",nodeType:"FunctionDefinition",parameters:{id:537,nodeType:"ParameterList",parameters:[],src:"3464:2:7"},payable:!1,returnParameters:{id:540,nodeType:"ParameterList",parameters:[{constant:!1,id:539,name:"",nodeType:"VariableDeclaration",scope:544,src:"3488:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:538,name:"string",nodeType:"ElementaryTypeName",src:"3488:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3487:8:7"},scope:2132,src:"3449:70:7",stateMutability:"view",superFunction:247,visibility:"public"},{body:{id:562,nodeType:"Block",src:"3605:78:7",statements:[{assignments:[552],declarations:[{constant:!1,id:552,name:"index",nodeType:"VariableDeclaration",scope:563,src:"3611:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:551,name:"uint",nodeType:"ElementaryTypeName",src:"3611:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:556,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:554,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:546,src:"3639:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:553,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"3624:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:555,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3624:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"3611:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:557,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3661:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:559,indexExpression:{argumentTypes:null,id:558,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:552,src:"3668:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3661:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:560,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"uri",nodeType:"MemberAccess",referencedDeclaration:366,src:"3661:17:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},functionReturnParameters:550,id:561,nodeType:"Return",src:"3654:24:7"}]},documentation:null,id:563,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenURI",nodeType:"FunctionDefinition",parameters:{id:547,nodeType:"ParameterList",parameters:[{constant:!1,id:546,name:"_tokenId",nodeType:"VariableDeclaration",scope:563,src:"3556:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:545,name:"uint256",nodeType:"ElementaryTypeName",src:"3556:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3555:18:7"},payable:!1,returnParameters:{id:550,nodeType:"ParameterList",parameters:[{constant:!1,id:549,name:"",nodeType:"VariableDeclaration",scope:563,src:"3597:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:548,name:"string",nodeType:"ElementaryTypeName",src:"3597:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3596:8:7"},scope:2132,src:"3538:145:7",stateMutability:"view",superFunction:254,visibility:"external"},{body:{id:578,nodeType:"Block",src:"3857:49:7",statements:[{expression:{argumentTypes:null,id:576,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"3870:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},functionReturnParameters:575,id:577,nodeType:"Return",src:"3863:38:7"}]},documentation:"ERC721TokenReceiver**",id:579,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"onERC721Received",nodeType:"FunctionDefinition",parameters:{id:572,nodeType:"ParameterList",parameters:[{constant:!1,id:565,name:"_operator",nodeType:"VariableDeclaration",scope:579,src:"3767:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:564,name:"address",nodeType:"ElementaryTypeName",src:"3767:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:567,name:"_from",nodeType:"VariableDeclaration",scope:579,src:"3786:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:566,name:"address",nodeType:"ElementaryTypeName",src:"3786:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:569,name:"_tokenId",nodeType:"VariableDeclaration",scope:579,src:"3801:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:568,name:"uint256",nodeType:"ElementaryTypeName",src:"3801:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:571,name:"_data",nodeType:"VariableDeclaration",scope:579,src:"3819:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes"},typeName:{id:570,name:"bytes",nodeType:"ElementaryTypeName",src:"3819:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"3766:65:7"},payable:!1,returnParameters:{id:575,nodeType:"ParameterList",parameters:[{constant:!1,id:574,name:"",nodeType:"VariableDeclaration",scope:579,src:"3849:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:573,name:"bytes4",nodeType:"ElementaryTypeName",src:"3849:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"3848:8:7"},scope:2132,src:"3741:165:7",stateMutability:"nonpayable",superFunction:276,visibility:"external"},{body:{id:599,nodeType:"Block",src:"4018:86:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:591,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:587,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:581,src:"4032:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:589,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4050:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:588,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"4042:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:590,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4042:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"4032:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:586,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"4024:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:592,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4024:29:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:593,nodeType:"ExpressionStatement",src:"4024:29:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:594,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"4066:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:596,indexExpression:{argumentTypes:null,id:595,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:581,src:"4085:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"4066:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:597,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"4066:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:585,id:598,nodeType:"Return",src:"4059:40:7"}]},documentation:"ERC721**",id:600,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOf",nodeType:"FunctionDefinition",parameters:{id:582,nodeType:"ParameterList",parameters:[{constant:!1,id:581,name:"_owner",nodeType:"VariableDeclaration",scope:600,src:"3970:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:580,name:"address",nodeType:"ElementaryTypeName",src:"3970:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"3969:16:7"},payable:!1,returnParameters:{id:585,nodeType:"ParameterList",parameters:[{constant:!1,id:584,name:"",nodeType:"VariableDeclaration",scope:600,src:"4009:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:583,name:"uint256",nodeType:"ElementaryTypeName",src:"4009:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4008:9:7"},scope:2132,src:"3951:153:7",stateMutability:"view",superFunction:132,visibility:"external"},{body:{id:611,nodeType:"Block",src:"4190:43:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:608,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:602,src:"4219:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:607,name:"internalOwnerOf",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:856,src:"4203:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_address_$",typeString:"function (uint256) view returns (address)"}},id:609,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4203:25:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:606,id:610,nodeType:"Return",src:"4196:32:7"}]},documentation:null,id:612,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"ownerOf",nodeType:"FunctionDefinition",parameters:{id:603,nodeType:"ParameterList",parameters:[{constant:!1,id:602,name:"_tokenId",nodeType:"VariableDeclaration",scope:612,src:"4140:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:601,name:"uint256",nodeType:"ElementaryTypeName",src:"4140:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4139:18:7"},payable:!1,returnParameters:{id:606,nodeType:"ParameterList",parameters:[{constant:!1,id:605,name:"",nodeType:"VariableDeclaration",scope:612,src:"4181:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:604,name:"address",nodeType:"ElementaryTypeName",src:"4181:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"4180:9:7"},scope:2132,src:"4123:110:7",stateMutability:"view",superFunction:139,visibility:"external"},{body:{id:652,nodeType:"Block",src:"4354:227:7",statements:[{assignments:[624],declarations:[{constant:!1,id:624,name:"sendAmount",nodeType:"VariableDeclaration",scope:653,src:"4360:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:623,name:"uint256",nodeType:"ElementaryTypeName",src:"4360:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:633,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:626,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4406:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:627,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:616,src:"4413:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:628,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:618,src:"4418:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:629,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"4428:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:630,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"4428:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:631,name:"_data",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:620,src:"4439:5:7",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes calldata"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes calldata"}],id:625,name:"internalSafeTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:904,src:"4381:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256,bytes memory) returns (uint256)"}},id:632,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4381:64:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"4360:85:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:636,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:634,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4455:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:635,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4459:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"4455:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:651,nodeType:"IfStatement",src:"4451:126:7",trueBody:{id:650,nodeType:"Block",src:"4471:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:640,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4494:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:637,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4479:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:639,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"4479:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:641,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4479:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:642,nodeType:"ExpressionStatement",src:"4479:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:644,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4537:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:645,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:616,src:"4544:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:646,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:618,src:"4549:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:647,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4559:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:643,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"4518:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:648,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4518:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:649,nodeType:"EmitStatement",src:"4513:57:7"}]}}]},documentation:null,id:653,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"safeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:621,nodeType:"ParameterList",parameters:[{constant:!1,id:614,name:"_from",nodeType:"VariableDeclaration",scope:653,src:"4278:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:613,name:"address",nodeType:"ElementaryTypeName",src:"4278:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:616,name:"_to",nodeType:"VariableDeclaration",scope:653,src:"4293:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:615,name:"address",nodeType:"ElementaryTypeName",src:"4293:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:618,name:"_tokenId",nodeType:"VariableDeclaration",scope:653,src:"4306:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:617,name:"uint256",nodeType:"ElementaryTypeName",src:"4306:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:620,name:"_data",nodeType:"VariableDeclaration",scope:653,src:"4324:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes"},typeName:{id:619,name:"bytes",nodeType:"ElementaryTypeName",src:"4324:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"4277:59:7"},payable:!0,returnParameters:{id:622,nodeType:"ParameterList",parameters:[],src:"4354:0:7"},scope:2132,src:"4252:329:7",stateMutability:"payable",superFunction:150,visibility:"external"},{body:{id:691,nodeType:"Block",src:"4689:224:7",statements:[{assignments:[663],declarations:[{constant:!1,id:663,name:"sendAmount",nodeType:"VariableDeclaration",scope:692,src:"4695:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:662,name:"uint256",nodeType:"ElementaryTypeName",src:"4695:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:672,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:665,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4741:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:666,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:657,src:"4748:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:667,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:659,src:"4753:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:668,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"4763:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:669,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"4763:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"",id:670,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"4774:2:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'},value:""}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'}],id:664,name:"internalSafeTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:904,src:"4716:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256,bytes memory) returns (uint256)"}},id:671,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4716:61:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"4695:82:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:675,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:673,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4787:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:674,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4791:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"4787:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:690,nodeType:"IfStatement",src:"4783:126:7",trueBody:{id:689,nodeType:"Block",src:"4803:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:679,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4826:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:676,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4811:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:678,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"4811:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:680,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4811:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:681,nodeType:"ExpressionStatement",src:"4811:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:683,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4869:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:684,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:657,src:"4876:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:685,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:659,src:"4881:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:686,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4891:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:682,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"4850:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:687,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4850:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:688,nodeType:"EmitStatement",src:"4845:57:7"}]}}]},documentation:null,id:692,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"safeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:660,nodeType:"ParameterList",parameters:[{constant:!1,id:655,name:"_from",nodeType:"VariableDeclaration",scope:692,src:"4626:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:654,name:"address",nodeType:"ElementaryTypeName",src:"4626:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:657,name:"_to",nodeType:"VariableDeclaration",scope:692,src:"4641:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:656,name:"address",nodeType:"ElementaryTypeName",src:"4641:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:659,name:"_tokenId",nodeType:"VariableDeclaration",scope:692,src:"4654:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:658,name:"uint256",nodeType:"ElementaryTypeName",src:"4654:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4625:46:7"},payable:!0,returnParameters:{id:661,nodeType:"ParameterList",parameters:[],src:"4689:0:7"},scope:2132,src:"4600:313:7",stateMutability:"payable",superFunction:159,visibility:"external"},{body:{id:729,nodeType:"Block",src:"5017:216:7",statements:[{assignments:[702],declarations:[{constant:!1,id:702,name:"sendAmount",nodeType:"VariableDeclaration",scope:730,src:"5023:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:701,name:"uint256",nodeType:"ElementaryTypeName",src:"5023:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:710,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:704,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5065:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:705,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:696,src:"5072:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:706,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:698,src:"5077:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:707,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5087:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:708,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"5087:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:703,name:"internalTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1052,src:"5044:20:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256) returns (uint256)"}},id:709,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5044:53:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"5023:74:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:713,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:711,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"5107:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:712,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5111:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"5107:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:728,nodeType:"IfStatement",src:"5103:126:7",trueBody:{id:727,nodeType:"Block",src:"5123:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:717,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5146:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:714,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5131:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:716,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"5131:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:718,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5131:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:719,nodeType:"ExpressionStatement",src:"5131:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:721,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5189:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:722,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:696,src:"5196:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:723,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:698,src:"5201:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:724,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5211:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:720,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"5170:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:725,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5170:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:726,nodeType:"EmitStatement",src:"5165:57:7"}]}}]},documentation:null,id:730,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"transferFrom",nodeType:"FunctionDefinition",parameters:{id:699,nodeType:"ParameterList",parameters:[{constant:!1,id:694,name:"_from",nodeType:"VariableDeclaration",scope:730,src:"4954:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:693,name:"address",nodeType:"ElementaryTypeName",src:"4954:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:696,name:"_to",nodeType:"VariableDeclaration",scope:730,src:"4969:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:695,name:"address",nodeType:"ElementaryTypeName",src:"4969:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:698,name:"_tokenId",nodeType:"VariableDeclaration",scope:730,src:"4982:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:697,name:"uint256",nodeType:"ElementaryTypeName",src:"4982:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4953:46:7"},payable:!0,returnParameters:{id:700,nodeType:"ParameterList",parameters:[],src:"5017:0:7"},scope:2132,src:"4932:301:7",stateMutability:"payable",superFunction:168,visibility:"external"},{body:{id:743,nodeType:"Block",src:"5323:50:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:738,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:732,src:"5345:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:739,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:734,src:"5356:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"30",id:740,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"5366:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:737,name:"internalApprove",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1161,src:"5329:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,uint256,uint256)"}},id:741,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5329:39:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:742,nodeType:"ExpressionStatement",src:"5329:39:7"}]},documentation:null,id:744,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"approve",nodeType:"FunctionDefinition",parameters:{id:735,nodeType:"ParameterList",parameters:[{constant:!1,id:732,name:"_approved",nodeType:"VariableDeclaration",scope:744,src:"5269:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:731,name:"address",nodeType:"ElementaryTypeName",src:"5269:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:734,name:"_tokenId",nodeType:"VariableDeclaration",scope:744,src:"5288:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:733,name:"uint256",nodeType:"ElementaryTypeName",src:"5288:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5268:37:7"},payable:!0,returnParameters:{id:736,nodeType:"ParameterList",parameters:[],src:"5323:0:7"},scope:2132,src:"5252:121:7",stateMutability:"payable",superFunction:175,visibility:"external"},{body:{id:774,nodeType:"Block",src:"5463:160:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:755,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:752,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5477:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:753,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5490:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:754,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5490:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"5477:23:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:751,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"5469:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:756,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5469:32:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:757,nodeType:"ExpressionStatement",src:"5469:32:7"},{expression:{argumentTypes:null,id:765,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:758,name:"operatorApprovals",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:389,src:"5507:17:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"}},id:762,indexExpression:{argumentTypes:null,expression:{argumentTypes:null,id:759,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5525:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:760,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5525:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"5507:29:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"}},id:763,indexExpression:{argumentTypes:null,id:761,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5537:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"5507:40:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:764,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:748,src:"5550:9:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"5507:52:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:766,nodeType:"ExpressionStatement",src:"5507:52:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:768,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5585:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:769,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5585:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:770,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5597:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:771,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:748,src:"5608:9:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_bool",typeString:"bool"}],id:767,name:"ApprovalForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:125,src:"5570:14:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",typeString:"function (address,address,bool)"}},id:772,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5570:48:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:773,nodeType:"EmitStatement",src:"5565:53:7"}]},documentation:null,id:775,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"setApprovalForAll",nodeType:"FunctionDefinition",parameters:{id:749,nodeType:"ParameterList",parameters:[{constant:!1,id:746,name:"_operator",nodeType:"VariableDeclaration",scope:775,src:"5419:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:745,name:"address",nodeType:"ElementaryTypeName",src:"5419:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:748,name:"_approved",nodeType:"VariableDeclaration",scope:775,src:"5438:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:747,name:"bool",nodeType:"ElementaryTypeName",src:"5438:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"5418:35:7"},payable:!1,returnParameters:{id:750,nodeType:"ParameterList",parameters:[],src:"5463:0:7"},scope:2132,src:"5392:231:7",stateMutability:"nonpayable",superFunction:182,visibility:"external"},{body:{id:786,nodeType:"Block",src:"5713:47:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:783,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:777,src:"5746:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:782,name:"internalGetApproved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1071,src:"5726:19:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_address_$",typeString:"function (uint256) view returns (address)"}},id:784,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5726:29:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:781,id:785,nodeType:"Return",src:"5719:36:7"}]},documentation:null,id:787,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"getApproved",nodeType:"FunctionDefinition",parameters:{id:778,nodeType:"ParameterList",parameters:[{constant:!1,id:777,name:"_tokenId",nodeType:"VariableDeclaration",scope:787,src:"5663:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:776,name:"uint256",nodeType:"ElementaryTypeName",src:"5663:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5662:18:7"},payable:!1,returnParameters:{id:781,nodeType:"ParameterList",parameters:[{constant:!1,id:780,name:"",nodeType:"VariableDeclaration",scope:787,src:"5704:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:779,name:"address",nodeType:"ElementaryTypeName",src:"5704:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"5703:9:7"},scope:2132,src:"5642:118:7",stateMutability:"view",superFunction:189,visibility:"external"},{body:{id:801,nodeType:"Block",src:"5867:61:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:797,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:789,src:"5905:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:798,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:791,src:"5913:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:796,name:"internalIsApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1087,src:"5880:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:799,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5880:43:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:795,id:800,nodeType:"Return",src:"5873:50:7"}]},documentation:null,id:802,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"isApprovedForAll",nodeType:"FunctionDefinition",parameters:{id:792,nodeType:"ParameterList",parameters:[{constant:!1,id:789,name:"_owner",nodeType:"VariableDeclaration",scope:802,src:"5805:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:788,name:"address",nodeType:"ElementaryTypeName",src:"5805:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:791,name:"_operator",nodeType:"VariableDeclaration",scope:802,src:"5821:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:790,name:"address",nodeType:"ElementaryTypeName",src:"5821:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"5804:35:7"},payable:!1,returnParameters:{id:795,nodeType:"ParameterList",parameters:[{constant:!1,id:794,name:"",nodeType:"VariableDeclaration",scope:802,src:"5861:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:793,name:"bool",nodeType:"ElementaryTypeName",src:"5861:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"5860:6:7"},scope:2132,src:"5779:149:7",stateMutability:"view",superFunction:198,visibility:"public"},{body:{id:817,nodeType:"Block",src:"6066:56:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:812,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:804,src:"6088:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:813,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:806,src:"6099:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:814,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:808,src:"6109:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:811,name:"internalApprove",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1161,src:"6072:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,uint256,uint256)"}},id:815,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6072:45:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:816,nodeType:"ExpressionStatement",src:"6072:45:7"}]},documentation:"payment methods for ERC721**",id:818,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"approve",nodeType:"FunctionDefinition",parameters:{id:809,nodeType:"ParameterList",parameters:[{constant:!1,id:804,name:"_approved",nodeType:"VariableDeclaration",scope:818,src:"5995:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:803,name:"address",nodeType:"ElementaryTypeName",src:"5995:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:806,name:"_tokenId",nodeType:"VariableDeclaration",scope:818,src:"6014:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:805,name:"uint256",nodeType:"ElementaryTypeName",src:"6014:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:808,name:"_amount",nodeType:"VariableDeclaration",scope:818,src:"6032:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:807,name:"uint256",nodeType:"ElementaryTypeName",src:"6032:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5994:54:7"},payable:!0,returnParameters:{id:810,nodeType:"ParameterList",parameters:[],src:"6066:0:7"},scope:2132,src:"5978:144:7",stateMutability:"payable",superFunction:null,visibility:"external"},{body:{id:836,nodeType:"Block",src:"6194:81:7",statements:[{assignments:[826],declarations:[{constant:!1,id:826,name:"index",nodeType:"VariableDeclaration",scope:837,src:"6200:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:825,name:"uint",nodeType:"ElementaryTypeName",src:"6200:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:830,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:828,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:820,src:"6228:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:827,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"6213:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:829,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6213:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"6200:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:831,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"6250:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:833,indexExpression:{argumentTypes:null,id:832,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:826,src:"6257:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"6250:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:834,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"6250:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:824,id:835,nodeType:"Return",src:"6243:27:7"}]},documentation:null,id:837,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"amountOf",nodeType:"FunctionDefinition",parameters:{id:821,nodeType:"ParameterList",parameters:[{constant:!1,id:820,name:"_tokenId",nodeType:"VariableDeclaration",scope:837,src:"6144:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:819,name:"uint256",nodeType:"ElementaryTypeName",src:"6144:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6143:18:7"},payable:!1,returnParameters:{id:824,nodeType:"ParameterList",parameters:[{constant:!1,id:823,name:"",nodeType:"VariableDeclaration",scope:837,src:"6185:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:822,name:"uint256",nodeType:"ElementaryTypeName",src:"6185:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6184:9:7"},scope:2132,src:"6126:149:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:855,nodeType:"Block",src:"6433:80:7",statements:[{assignments:[845],declarations:[{constant:!1,id:845,name:"index",nodeType:"VariableDeclaration",scope:856,src:"6439:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:844,name:"uint",nodeType:"ElementaryTypeName",src:"6439:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:849,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:847,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:839,src:"6467:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:846,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"6452:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:848,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6452:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"6439:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:850,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"6489:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:852,indexExpression:{argumentTypes:null,id:851,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:845,src:"6496:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"6489:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:853,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"6489:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:843,id:854,nodeType:"Return",src:"6482:26:7"}]},documentation:"internal methods for ERC721 external methods**",id:856,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalOwnerOf",nodeType:"FunctionDefinition",parameters:{id:840,nodeType:"ParameterList",parameters:[{constant:!1,id:839,name:"_tokenId",nodeType:"VariableDeclaration",scope:856,src:"6383:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:838,name:"uint256",nodeType:"ElementaryTypeName",src:"6383:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6382:18:7"},payable:!1,returnParameters:{id:843,nodeType:"ParameterList",parameters:[{constant:!1,id:842,name:"",nodeType:"VariableDeclaration",scope:856,src:"6424:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:841,name:"address",nodeType:"ElementaryTypeName",src:"6424:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"6423:9:7"},scope:2132,src:"6358:155:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:903,nodeType:"Block",src:"6668:316:7",statements:[{condition:{argumentTypes:null,arguments:[{argumentTypes:null,id:872,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6689:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:871,name:"isContract",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1539,src:"6678:10:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$returns$_t_bool_$",typeString:"function (address) view returns (bool)"}},id:873,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6678:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:895,nodeType:"IfStatement",src:"6674:243:7",trueBody:{id:894,nodeType:"Block",src:"6695:222:7",statements:[{assignments:[875],declarations:[{constant:!1,id:875,name:"retval",nodeType:"VariableDeclaration",scope:904,src:"6703:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:874,name:"bytes4",nodeType:"ElementaryTypeName",src:"6703:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],id:886,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:880,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"6761:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:881,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"6761:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:882,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:858,src:"6773:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:883,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:862,src:"6780:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:884,name:"_data",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:866,src:"6790:5:7",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}],expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:877,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6739:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:876,name:"ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:283,src:"6719:19:7",typeDescriptions:{typeIdentifier:"t_type$_t_contract$_ERC721TokenReceiver_$283_$",typeString:"type(contract ERC721TokenReceiver)"}},id:878,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6719:24:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721TokenReceiver_$283",typeString:"contract ERC721TokenReceiver"}},id:879,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"onERC721Received",nodeType:"MemberAccess",referencedDeclaration:276,src:"6719:41:7",typeDescriptions:{typeIdentifier:"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",typeString:"function (address,address,uint256,bytes memory) external returns (bytes4)"}},id:885,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6719:77:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"VariableDeclarationStatement",src:"6703:93:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bytes4",typeString:"bytes4"},id:890,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:888,name:"retval",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:875,src:"6812:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:889,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"6822:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},src:"6812:41:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},{argumentTypes:null,hexValue:"696e7465726e616c536166655472616e7366657246726f6d206d73672e73656e6465722063616e206e6f7420617070726f766564",id:891,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"6855:54:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_cf6292341bd90e1f62f287f7556a45630456515082144a3919f87eb468252a55",typeString:'literal_string "internalSafeTransferFrom msg.sender can not approved"'},value:"internalSafeTransferFrom msg.sender can not approved"}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"},{typeIdentifier:"t_stringliteral_cf6292341bd90e1f62f287f7556a45630456515082144a3919f87eb468252a55",typeString:'literal_string "internalSafeTransferFrom msg.sender can not approved"'}],id:887,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2151,src:"6804:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",typeString:"function (bool,string memory) pure"}},id:892,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6804:106:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:893,nodeType:"ExpressionStatement",src:"6804:106:7"}]}},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:897,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:858,src:"6950:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:898,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6957:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:899,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:862,src:"6962:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:900,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:864,src:"6972:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:896,name:"internalTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1052,src:"6929:20:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256) returns (uint256)"}},id:901,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6929:50:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:870,id:902,nodeType:"Return",src:"6922:57:7"}]},documentation:null,id:904,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalSafeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:867,nodeType:"ParameterList",parameters:[{constant:!1,id:858,name:"_from",nodeType:"VariableDeclaration",scope:904,src:"6566:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:857,name:"address",nodeType:"ElementaryTypeName",src:"6566:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:860,name:"_to",nodeType:"VariableDeclaration",scope:904,src:"6581:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:859,name:"address",nodeType:"ElementaryTypeName",src:"6581:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:862,name:"_tokenId",nodeType:"VariableDeclaration",scope:904,src:"6594:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:861,name:"uint256",nodeType:"ElementaryTypeName",src:"6594:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:864,name:"_value",nodeType:"VariableDeclaration",scope:904,src:"6612:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:863,name:"uint256",nodeType:"ElementaryTypeName",src:"6612:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:866,name:"_data",nodeType:"VariableDeclaration",scope:904,src:"6628:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes"},typeName:{id:865,name:"bytes",nodeType:"ElementaryTypeName",src:"6628:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"6565:75:7"},payable:!1,returnParameters:{id:870,nodeType:"ParameterList",parameters:[{constant:!1,id:869,name:"",nodeType:"VariableDeclaration",scope:904,src:"6659:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:868,name:"uint256",nodeType:"ElementaryTypeName",src:"6659:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6658:9:7"},scope:2132,src:"6532:452:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1051,nodeType:"Block",src:"7118:1333:7",statements:[{assignments:[918],declarations:[{constant:!1,id:918,name:"index",nodeType:"VariableDeclaration",scope:1052,src:"7124:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:917,name:"uint",nodeType:"ElementaryTypeName",src:"7124:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:922,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:920,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"7152:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:919,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"7137:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:921,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7137:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"7124:37:7"},{assignments:[924],declarations:[{constant:!1,id:924,name:"owner",nodeType:"VariableDeclaration",scope:1052,src:"7167:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:923,name:"address",nodeType:"ElementaryTypeName",src:"7167:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:929,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:925,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7183:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:927,indexExpression:{argumentTypes:null,id:926,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7190:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7183:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:928,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"7183:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"7167:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:939,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:933,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:931,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"7217:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:932,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7226:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7217:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:934,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7216:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:937,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:935,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"7237:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:936,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"7246:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7237:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:938,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7236:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"7216:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:930,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"7208:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:940,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7208:43:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:941,nodeType:"ExpressionStatement",src:"7208:43:7"},{assignments:[943],declarations:[{constant:!1,id:943,name:"amount",nodeType:"VariableDeclaration",scope:1052,src:"7727:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:942,name:"uint256",nodeType:"ElementaryTypeName",src:"7727:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:948,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:944,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7744:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:946,indexExpression:{argumentTypes:null,id:945,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7751:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7744:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:947,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"7744:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"7727:37:7"},{expression:{argumentTypes:null,id:954,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:949,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7770:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:951,indexExpression:{argumentTypes:null,id:950,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7777:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7770:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:952,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"7770:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:953,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"7793:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"7770:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:955,nodeType:"ExpressionStatement",src:"7770:24:7"},{assignments:[957],declarations:[{constant:!1,id:957,name:"canTransfer",nodeType:"VariableDeclaration",scope:1052,src:"7800:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:956,name:"bool",nodeType:"ElementaryTypeName",src:"7800:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],id:969,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:968,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:961,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:958,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"7820:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:959,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"7820:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:960,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7834:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7820:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:962,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7819:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"||",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,id:964,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7869:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,expression:{argumentTypes:null,id:965,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"7876:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:966,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"7876:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:963,name:"internalIsApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1087,src:"7844:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:967,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7844:43:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"7819:68:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"VariableDeclarationStatement",src:"7800:87:7"},{condition:{argumentTypes:null,id:970,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"7897:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:984,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:978,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8005:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:980,indexExpression:{argumentTypes:null,id:979,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8012:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8005:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:981,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8005:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:982,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"8031:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:983,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"8031:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8005:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1010,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1004,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:997,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8129:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:999,indexExpression:{argumentTypes:null,id:998,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8136:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8129:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1e3,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8129:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1002,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8163:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1001,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"8155:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1003,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8155:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8129:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1005,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8128:38:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1008,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1006,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8171:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:1007,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8175:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8171:10:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1009,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8170:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8128:54:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1023,nodeType:"IfStatement",src:"8124:134:7",trueBody:{id:1022,nodeType:"Block",src:"8184:74:7",statements:[{expression:{argumentTypes:null,id:1013,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1011,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:915,src:"8192:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1012,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8205:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8192:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1014,nodeType:"ExpressionStatement",src:"8192:19:7"},{expression:{argumentTypes:null,id:1020,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1015,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8219:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1018,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1016,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8234:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1017,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"8244:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8234:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1019,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8233:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8219:32:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1021,nodeType:"ExpressionStatement",src:"8219:32:7"}]}},id:1024,nodeType:"IfStatement",src:"8001:257:7",trueBody:{id:996,nodeType:"Block",src:"8043:75:7",statements:[{expression:{argumentTypes:null,id:987,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:985,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:915,src:"8051:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:986,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8064:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8051:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:988,nodeType:"ExpressionStatement",src:"8051:19:7"},{expression:{argumentTypes:null,id:994,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:989,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8078:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:992,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:990,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8093:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:991,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"8103:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8093:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:993,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8092:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8078:32:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:995,nodeType:"ExpressionStatement",src:"8078:32:7"}]}},id:1025,nodeType:"IfStatement",src:"7893:365:7",trueBody:{id:977,nodeType:"Block",src:"7910:85:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:974,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:972,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"7975:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"30",id:973,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"7985:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"7975:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:971,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"7967:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:975,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7967:20:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:976,nodeType:"ExpressionStatement",src:"7967:20:7"}]}},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1027,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8271:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1026,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8263:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1028,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8263:20:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1029,nodeType:"ExpressionStatement",src:"8263:20:7"},{expression:{argumentTypes:null,id:1037,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1030,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8312:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1032,indexExpression:{argumentTypes:null,id:1031,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8319:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8312:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1033,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8312:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1035,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8345:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1034,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"8337:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1036,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8337:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8312:35:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1038,nodeType:"ExpressionStatement",src:"8312:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1040,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"8384:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1041,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"8391:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1042,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"8396:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1039,name:"transferToken",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1523,src:"8370:13:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1043,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8370:35:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1044,nodeType:"ExpressionStatement",src:"8370:35:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1046,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"8425:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1047,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"8432:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1048,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"8437:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1045,name:"Transfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:109,src:"8416:8:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1049,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8416:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1050,nodeType:"EmitStatement",src:"8411:35:7"}]},documentation:null,id:1052,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalTransferFrom",nodeType:"FunctionDefinition",parameters:{id:913,nodeType:"ParameterList",parameters:[{constant:!1,id:906,name:"_from",nodeType:"VariableDeclaration",scope:1052,src:"7018:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:905,name:"address",nodeType:"ElementaryTypeName",src:"7018:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:908,name:"_to",nodeType:"VariableDeclaration",scope:1052,src:"7033:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:907,name:"address",nodeType:"ElementaryTypeName",src:"7033:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:910,name:"_tokenId",nodeType:"VariableDeclaration",scope:1052,src:"7046:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:909,name:"uint256",nodeType:"ElementaryTypeName",src:"7046:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:912,name:"_value",nodeType:"VariableDeclaration",scope:1052,src:"7064:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:911,name:"uint256",nodeType:"ElementaryTypeName",src:"7064:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"7017:62:7"},payable:!1,returnParameters:{id:916,nodeType:"ParameterList",parameters:[{constant:!1,id:915,name:"sendAmount",nodeType:"VariableDeclaration",scope:1052,src:"7098:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:914,name:"uint256",nodeType:"ElementaryTypeName",src:"7098:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"7097:20:7"},scope:2132,src:"6988:1463:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1070,nodeType:"Block",src:"8534:83:7",statements:[{assignments:[1060],declarations:[{constant:!1,id:1060,name:"index",nodeType:"VariableDeclaration",scope:1071,src:"8540:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1059,name:"uint",nodeType:"ElementaryTypeName",src:"8540:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1064,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1062,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1054,src:"8568:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1061,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"8553:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1063,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8553:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"8540:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1065,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8590:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1067,indexExpression:{argumentTypes:null,id:1066,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1060,src:"8597:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8590:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1068,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8590:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1058,id:1069,nodeType:"Return",src:"8583:29:7"}]},documentation:null,id:1071,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalGetApproved",nodeType:"FunctionDefinition",parameters:{id:1055,nodeType:"ParameterList",parameters:[{constant:!1,id:1054,name:"_tokenId",nodeType:"VariableDeclaration",scope:1071,src:"8484:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1053,name:"uint256",nodeType:"ElementaryTypeName",src:"8484:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"8483:18:7"},payable:!1,returnParameters:{id:1058,nodeType:"ParameterList",parameters:[{constant:!1,id:1057,name:"",nodeType:"VariableDeclaration",scope:1071,src:"8525:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1056,name:"address",nodeType:"ElementaryTypeName",src:"8525:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"8524:9:7"},scope:2132,src:"8455:162:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1086,nodeType:"Block",src:"8719:54:7",statements:[{expression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1080,name:"operatorApprovals",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:389,src:"8732:17:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"}},id:1082,indexExpression:{argumentTypes:null,id:1081,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1073,src:"8750:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8732:25:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"}},id:1084,indexExpression:{argumentTypes:null,id:1083,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1075,src:"8758:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8732:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:1079,id:1085,nodeType:"Return",src:"8725:43:7"}]},documentation:null,id:1087,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalIsApprovedForAll",nodeType:"FunctionDefinition",parameters:{id:1076,nodeType:"ParameterList",parameters:[{constant:!1,id:1073,name:"_owner",nodeType:"VariableDeclaration",scope:1087,src:"8655:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1072,name:"address",nodeType:"ElementaryTypeName",src:"8655:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1075,name:"_operator",nodeType:"VariableDeclaration",scope:1087,src:"8671:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1074,name:"address",nodeType:"ElementaryTypeName",src:"8671:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"8654:35:7"},payable:!1,returnParameters:{id:1079,nodeType:"ParameterList",parameters:[{constant:!1,id:1078,name:"",nodeType:"VariableDeclaration",scope:1087,src:"8713:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1077,name:"bool",nodeType:"ElementaryTypeName",src:"8713:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"8712:6:7"},scope:2132,src:"8621:152:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1160,nodeType:"Block",src:"8865:415:7",statements:[{assignments:[1097],declarations:[{constant:!1,id:1097,name:"index",nodeType:"VariableDeclaration",scope:1161,src:"8871:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1096,name:"uint",nodeType:"ElementaryTypeName",src:"8871:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1101,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1099,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"8899:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1098,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"8884:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1100,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8884:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"8871:37:7"},{assignments:[1103],declarations:[{constant:!1,id:1103,name:"owner",nodeType:"VariableDeclaration",scope:1161,src:"8914:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1102,name:"address",nodeType:"ElementaryTypeName",src:"8914:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1108,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1104,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8930:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1106,indexExpression:{argumentTypes:null,id:1105,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"8937:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8930:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1107,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"8930:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"8914:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1112,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1110,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"8963:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1111,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"8976:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8963:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1109,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8955:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1113,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8955:27:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1114,nodeType:"ExpressionStatement",src:"8955:27:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1125,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1119,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1116,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"8996:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1117,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"8996:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1118,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9010:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8996:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"||",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1121,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9036:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,expression:{argumentTypes:null,id:1122,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"9043:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1123,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"9043:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:1120,name:"isApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:802,src:"9019:16:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:1124,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9019:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8996:58:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1115,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8988:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1126,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8988:67:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1127,nodeType:"ExpressionStatement",src:"8988:67:7"},{expression:{argumentTypes:null,id:1133,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1128,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9061:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1130,indexExpression:{argumentTypes:null,id:1129,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"9068:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9061:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1131,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"9061:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1132,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9086:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"9061:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1134,nodeType:"ExpressionStatement",src:"9061:34:7"},{expression:{argumentTypes:null,id:1140,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1135,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9101:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1137,indexExpression:{argumentTypes:null,id:1136,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"9108:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9101:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1138,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"9101:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1139,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9124:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9101:30:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1141,nodeType:"ExpressionStatement",src:"9101:30:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1143,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9151:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1144,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9158:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1145,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"9169:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1142,name:"Approval",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:117,src:"9142:8:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1146,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9142:36:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1147,nodeType:"EmitStatement",src:"9137:41:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1150,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1148,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9188:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:1149,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9192:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9188:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1159,nodeType:"IfStatement",src:"9184:92:7",trueBody:{id:1158,nodeType:"Block",src:"9201:75:7",statements:[{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1152,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9233:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1153,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9240:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1154,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"9251:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1155,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9261:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1151,name:"ApprovalWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:338,src:"9214:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:1156,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9214:55:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1157,nodeType:"EmitStatement",src:"9209:60:7"}]}}]},documentation:null,id:1161,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalApprove",nodeType:"FunctionDefinition",parameters:{id:1094,nodeType:"ParameterList",parameters:[{constant:!1,id:1089,name:"_approved",nodeType:"VariableDeclaration",scope:1161,src:"8802:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1088,name:"address",nodeType:"ElementaryTypeName",src:"8802:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1091,name:"_tokenId",nodeType:"VariableDeclaration",scope:1161,src:"8821:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1090,name:"uint256",nodeType:"ElementaryTypeName",src:"8821:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1093,name:"_amount",nodeType:"VariableDeclaration",scope:1161,src:"8839:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1092,name:"uint256",nodeType:"ElementaryTypeName",src:"8839:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"8801:54:7"},payable:!1,returnParameters:{id:1095,nodeType:"ParameterList",parameters:[],src:"8865:0:7"},scope:2132,src:"8777:503:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1265,nodeType:"Block",src:"9438:610:7",statements:[{assignments:[1173],declarations:[{constant:!1,id:1173,name:"index",nodeType:"VariableDeclaration",scope:1266,src:"9444:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1172,name:"uint",nodeType:"ElementaryTypeName",src:"9444:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1177,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1174,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"9457:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1176,indexExpression:{argumentTypes:null,id:1175,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9472:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9457:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"9444:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1183,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1179,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9495:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1181,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9515:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1180,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9507:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1182,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9507:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"9495:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1178,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"9487:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1184,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9487:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1185,nodeType:"ExpressionStatement",src:"9487:31:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1195,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1188,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1186,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9529:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"30",id:1187,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9538:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"9529:10:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1189,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"9528:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1193,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1190,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9545:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1191,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9549:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1192,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9549:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9545:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1194,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"9544:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"9528:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1206,nodeType:"IfStatement",src:"9524:89:7",trueBody:{id:1205,nodeType:"Block",src:"9565:48:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1202,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1197,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9581:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1199,indexExpression:{argumentTypes:null,hexValue:"30",id:1198,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9588:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9581:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1200,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"9581:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1201,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9597:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9581:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1196,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"9573:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1203,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9573:33:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1204,nodeType:"ExpressionStatement",src:"9573:33:7"}]}},{expression:{argumentTypes:null,id:1210,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1207,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9619:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1208,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9627:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1209,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9627:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9619:21:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1211,nodeType:"ExpressionStatement",src:"9619:21:7"},{assignments:[1213],declarations:[{constant:!1,id:1213,name:"ownerIndex",nodeType:"VariableDeclaration",scope:1266,src:"9673:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1212,name:"uint256",nodeType:"ElementaryTypeName",src:"9673:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1218,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1214,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"9694:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1216,indexExpression:{argumentTypes:null,id:1215,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9713:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9694:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1217,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9694:35:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"9673:56:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1223,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9769:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1219,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"9735:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1221,indexExpression:{argumentTypes:null,id:1220,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9754:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9735:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1222,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"9735:33:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) returns (uint256)"}},id:1224,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9735:40:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1225,nodeType:"ExpressionStatement",src:"9735:40:7"},{assignments:[1227],declarations:[{constant:!1,id:1227,name:"creator",nodeType:"VariableDeclaration",scope:1266,src:"9782:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1226,name:"address",nodeType:"ElementaryTypeName",src:"9782:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1235,initialValue:{argumentTypes:null,condition:{argumentTypes:null,id:1228,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1169,src:"9800:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1232,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9837:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1231,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9829:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1233,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9829:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1234,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"Conditional",src:"9800:39:7",trueExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1229,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"9816:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1230,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"9816:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"9782:57:7"},{assignments:[1237],declarations:[{constant:!1,id:1237,name:"tokenWithCreator",nodeType:"VariableDeclaration",scope:1266,src:"9845:29:7",stateVariable:!1,storageLocation:"memory",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token"},typeName:{contractScope:null,id:1236,name:"Token",nodeType:"UserDefinedTypeName",referencedDeclaration:367,src:"9845:5:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage_ptr",typeString:"struct SixPillars.Token"}},value:null,visibility:"internal"}],id:1252,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1239,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9883:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1240,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1167,src:"9893:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"30",id:1241,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9907:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},{argumentTypes:null,id:1242,name:"ownerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1213,src:"9910:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:1243,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"9922:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1244,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"9922:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1245,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9936:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1246,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1227,src:"9946:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1248,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9963:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1247,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9955:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1249,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9955:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,hexValue:"",id:1250,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"9967:2:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'},value:""}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'}],id:1238,name:"Token",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:367,src:"9877:5:7",typeDescriptions:{typeIdentifier:"t_type$_t_struct$_Token_$367_storage_ptr_$",typeString:"type(struct SixPillars.Token storage pointer)"}},id:1251,isConstant:!1,isLValue:!1,isPure:!1,kind:"structConstructorCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9877:93:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory",typeString:"struct SixPillars.Token memory"}},nodeType:"VariableDeclarationStatement",src:"9845:125:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1256,name:"tokenWithCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1237,src:"9988:16:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token memory"}],expression:{argumentTypes:null,id:1253,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9976:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1255,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"9976:11:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_struct$_Token_$367_storage_$returns$_t_uint256_$",typeString:"function (struct SixPillars.Token storage ref) returns (uint256)"}},id:1257,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9976:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1258,nodeType:"ExpressionStatement",src:"9976:29:7"},{expression:{argumentTypes:null,id:1263,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1259,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"10011:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1261,indexExpression:{argumentTypes:null,id:1260,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"10026:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"10011:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1262,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"10038:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10011:32:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1264,nodeType:"ExpressionStatement",src:"10011:32:7"}]},documentation:"internal methods for ERC721**",id:1266,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"addTokenTo",nodeType:"FunctionDefinition",parameters:{id:1170,nodeType:"ParameterList",parameters:[{constant:!1,id:1163,name:"_toOwner",nodeType:"VariableDeclaration",scope:1266,src:"9351:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1162,name:"address",nodeType:"ElementaryTypeName",src:"9351:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1165,name:"_tokenId",nodeType:"VariableDeclaration",scope:1266,src:"9369:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1164,name:"uint256",nodeType:"ElementaryTypeName",src:"9369:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1167,name:"_inscription",nodeType:"VariableDeclaration",scope:1266,src:"9387:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1166,name:"uint256",nodeType:"ElementaryTypeName",src:"9387:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1169,name:"_isSetCreator",nodeType:"VariableDeclaration",scope:1266,src:"9409:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1168,name:"bool",nodeType:"ElementaryTypeName",src:"9409:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"9350:78:7"},payable:!1,returnParameters:{id:1171,nodeType:"ParameterList",parameters:[],src:"9438:0:7"},scope:2132,src:"9331:717:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1410,nodeType:"Block",src:"10124:1266:7",statements:[{assignments:[1274],declarations:[{constant:!1,id:1274,name:"index",nodeType:"VariableDeclaration",scope:1411,src:"10130:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1273,name:"uint",nodeType:"ElementaryTypeName",src:"10130:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1278,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1276,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1270,src:"10158:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1275,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"10143:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1277,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"10143:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10130:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1285,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1280,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10181:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1282,indexExpression:{argumentTypes:null,id:1281,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10188:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10181:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1283,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"10181:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1284,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10204:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"10181:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1279,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"10173:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1286,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"10173:42:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1287,nodeType:"ExpressionStatement",src:"10173:42:7"},{assignments:[1289],declarations:[{constant:!1,id:1289,name:"removeTokenIndex",nodeType:"VariableDeclaration",scope:1411,src:"10285:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1288,name:"uint256",nodeType:"ElementaryTypeName",src:"10285:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1294,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1290,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10312:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1292,indexExpression:{argumentTypes:null,id:1291,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10319:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10312:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1293,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"10312:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10285:51:7"},{assignments:[1296],declarations:[{constant:!1,id:1296,name:"lastTokenIndex",nodeType:"VariableDeclaration",scope:1411,src:"10342:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1295,name:"uint256",nodeType:"ElementaryTypeName",src:"10342:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1303,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1302,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1297,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10367:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1299,indexExpression:{argumentTypes:null,id:1298,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10386:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10367:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1300,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10367:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1301,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"10407:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"10367:41:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10342:66:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1306,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1304,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10418:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1305,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10438:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10418:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1331,nodeType:"IfStatement",src:"10414:245:7",trueBody:{id:1330,nodeType:"Block",src:"10454:205:7",statements:[{expression:{argumentTypes:null,id:1316,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1307,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10462:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1313,indexExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1308,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10469:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1310,indexExpression:{argumentTypes:null,id:1309,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10488:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10469:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1312,indexExpression:{argumentTypes:null,id:1311,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10500:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10469:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10462:55:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1314,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"10462:66:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1315,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10531:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10462:85:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1317,nodeType:"ExpressionStatement",src:"10462:85:7"},{expression:{argumentTypes:null,id:1328,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1318,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10555:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1321,indexExpression:{argumentTypes:null,id:1319,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10574:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10555:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1322,indexExpression:{argumentTypes:null,id:1320,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10586:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"10555:48:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1323,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10606:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1325,indexExpression:{argumentTypes:null,id:1324,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10625:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10606:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1327,indexExpression:{argumentTypes:null,id:1326,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10637:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10606:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10555:97:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1329,nodeType:"ExpressionStatement",src:"10555:97:7"}]}},{expression:{argumentTypes:null,id:1337,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1332,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10664:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1334,indexExpression:{argumentTypes:null,id:1333,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10683:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10664:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1335,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10664:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1336,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10704:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10664:54:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1338,nodeType:"ExpressionStatement",src:"10664:54:7"},{expression:{argumentTypes:null,id:1341,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1339,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10786:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1340,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10805:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10786:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1342,nodeType:"ExpressionStatement",src:"10786:24:7"},{expression:{argumentTypes:null,id:1348,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1343,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10816:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1347,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1344,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10833:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1345,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10833:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1346,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"10849:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"10833:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10816:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1349,nodeType:"ExpressionStatement",src:"10816:34:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1352,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1350,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10860:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1351,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10880:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10860:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1397,nodeType:"IfStatement",src:"10856:460:7",trueBody:{id:1396,nodeType:"Block",src:"10896:420:7",statements:[{assignments:[1354],declarations:[{constant:!1,id:1354,name:"lastTokenId",nodeType:"VariableDeclaration",scope:1411,src:"10904:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1353,name:"uint256",nodeType:"ElementaryTypeName",src:"10904:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1359,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1355,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10926:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1357,indexExpression:{argumentTypes:null,id:1356,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10933:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10926:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1358,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"10926:25:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10904:47:7"},{assignments:[1361],declarations:[{constant:!1,id:1361,name:"lastTokenOwner",nodeType:"VariableDeclaration",scope:1411,src:"10978:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1360,name:"address",nodeType:"ElementaryTypeName",src:"10978:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1366,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1362,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11003:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1364,indexExpression:{argumentTypes:null,id:1363,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11010:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11003:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1365,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"11003:28:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"10978:53:7"},{assignments:[1368],declarations:[{constant:!1,id:1368,name:"lastTokenOwnerIndex",nodeType:"VariableDeclaration",scope:1411,src:"11039:27:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1367,name:"uint256",nodeType:"ElementaryTypeName",src:"11039:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1373,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1369,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11069:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1371,indexExpression:{argumentTypes:null,id:1370,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11076:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11069:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1372,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11069:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11039:63:7"},{expression:{argumentTypes:null,id:1380,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1374,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11110:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1377,indexExpression:{argumentTypes:null,id:1375,name:"lastTokenOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1361,src:"11129:14:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11110:34:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1378,indexExpression:{argumentTypes:null,id:1376,name:"lastTokenOwnerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1368,src:"11145:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11110:55:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1379,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11168:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11110:74:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1381,nodeType:"ExpressionStatement",src:"11110:74:7"},{expression:{argumentTypes:null,id:1386,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1382,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"11206:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1384,indexExpression:{argumentTypes:null,id:1383,name:"lastTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1354,src:"11221:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11206:27:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1385,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11236:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11206:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1387,nodeType:"ExpressionStatement",src:"11206:46:7"},{expression:{argumentTypes:null,id:1394,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1388,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11260:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1390,indexExpression:{argumentTypes:null,id:1389,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11267:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11260:24:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1391,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11287:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1393,indexExpression:{argumentTypes:null,id:1392,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11294:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11287:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},src:"11260:49:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1395,nodeType:"ExpressionStatement",src:"11260:49:7"}]}},{expression:{argumentTypes:null,id:1402,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1398,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"11321:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1400,indexExpression:{argumentTypes:null,id:1399,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1270,src:"11336:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11321:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:1401,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11348:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"11321:28:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1403,nodeType:"ExpressionStatement",src:"11321:28:7"},{expression:{argumentTypes:null,id:1408,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1404,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11355:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1406,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11355:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1407,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11371:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11355:30:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1409,nodeType:"ExpressionStatement",src:"11355:30:7"}]},documentation:null,id:1411,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"removeTokenFrom",nodeType:"FunctionDefinition",parameters:{id:1271,nodeType:"ParameterList",parameters:[{constant:!1,id:1268,name:"_fromOwner",nodeType:"VariableDeclaration",scope:1411,src:"10077:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1267,name:"address",nodeType:"ElementaryTypeName",src:"10077:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1270,name:"_tokenId",nodeType:"VariableDeclaration",scope:1411,src:"10097:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1269,name:"uint256",nodeType:"ElementaryTypeName",src:"10097:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"10076:38:7"},payable:!1,returnParameters:{id:1272,nodeType:"ParameterList",parameters:[],src:"10124:0:7"},scope:2132,src:"10052:1338:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1522,nodeType:"Block",src:"11482:780:7",statements:[{assignments:[1421],declarations:[{constant:!1,id:1421,name:"index",nodeType:"VariableDeclaration",scope:1523,src:"11488:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1420,name:"uint",nodeType:"ElementaryTypeName",src:"11488:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1425,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1423,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1417,src:"11516:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1422,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"11501:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1424,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11501:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11488:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1445,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1437,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1431,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1427,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"11540:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1429,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11560:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1428,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"11552:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1430,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11552:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11540:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1432,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11539:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1435,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1433,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11568:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1434,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"11582:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11568:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1436,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11567:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"11539:52:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1443,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1438,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11596:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1440,indexExpression:{argumentTypes:null,id:1439,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"11603:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11596:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1441,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"11596:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1442,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11619:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11596:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1444,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11595:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"11539:91:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1426,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"11531:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1446,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11531:100:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1447,nodeType:"ExpressionStatement",src:"11531:100:7"},{assignments:[1449],declarations:[{constant:!1,id:1449,name:"removeTokenIndex",nodeType:"VariableDeclaration",scope:1523,src:"11667:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1448,name:"uint256",nodeType:"ElementaryTypeName",src:"11667:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1454,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1450,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11694:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1452,indexExpression:{argumentTypes:null,id:1451,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"11701:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11694:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1453,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11694:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11667:51:7"},{assignments:[1456],declarations:[{constant:!1,id:1456,name:"lastTokenIndex",nodeType:"VariableDeclaration",scope:1523,src:"11724:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1455,name:"uint256",nodeType:"ElementaryTypeName",src:"11724:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1463,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1462,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1457,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11749:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1459,indexExpression:{argumentTypes:null,id:1458,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11768:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11749:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1460,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11749:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1461,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11789:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"11749:41:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11724:66:7"},{expression:{argumentTypes:null,id:1473,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1464,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11797:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1470,indexExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1465,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11804:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1467,indexExpression:{argumentTypes:null,id:1466,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11823:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11804:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1469,indexExpression:{argumentTypes:null,id:1468,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"11835:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11804:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11797:55:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1471,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11797:66:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1472,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1449,src:"11866:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11797:85:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1474,nodeType:"ExpressionStatement",src:"11797:85:7"},{expression:{argumentTypes:null,id:1485,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1475,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11888:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1478,indexExpression:{argumentTypes:null,id:1476,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11907:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11888:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1479,indexExpression:{argumentTypes:null,id:1477,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1449,src:"11919:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11888:48:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1480,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11939:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1482,indexExpression:{argumentTypes:null,id:1481,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11958:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11939:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1484,indexExpression:{argumentTypes:null,id:1483,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"11970:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11939:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11888:97:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1486,nodeType:"ExpressionStatement",src:"11888:97:7"},{expression:{argumentTypes:null,id:1492,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1487,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11991:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1489,indexExpression:{argumentTypes:null,id:1488,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"12010:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11991:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1490,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11991:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1491,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"12031:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11991:54:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1493,nodeType:"ExpressionStatement",src:"11991:54:7"},{assignments:[1495],declarations:[{constant:!1,id:1495,name:"ownerIndex",nodeType:"VariableDeclaration",scope:1523,src:"12076:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1494,name:"uint256",nodeType:"ElementaryTypeName",src:"12076:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1500,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1496,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"12097:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1498,indexExpression:{argumentTypes:null,id:1497,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12116:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12097:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1499,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"12097:35:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"12076:56:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1505,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12172:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1501,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"12138:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1503,indexExpression:{argumentTypes:null,id:1502,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12157:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12138:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1504,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"12138:33:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) returns (uint256)"}},id:1506,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12138:40:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1507,nodeType:"ExpressionStatement",src:"12138:40:7"},{expression:{argumentTypes:null,id:1513,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1508,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"12184:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1510,indexExpression:{argumentTypes:null,id:1509,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12191:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12184:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1511,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"12184:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1512,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12206:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"12184:30:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1514,nodeType:"ExpressionStatement",src:"12184:30:7"},{expression:{argumentTypes:null,id:1520,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1515,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"12220:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1517,indexExpression:{argumentTypes:null,id:1516,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12227:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12220:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1518,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"12220:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1519,name:"ownerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1495,src:"12247:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"12220:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1521,nodeType:"ExpressionStatement",src:"12220:37:7"}]},documentation:null,id:1523,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"transferToken",nodeType:"FunctionDefinition",parameters:{id:1418,nodeType:"ParameterList",parameters:[{constant:!1,id:1413,name:"_fromOwner",nodeType:"VariableDeclaration",scope:1523,src:"11417:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1412,name:"address",nodeType:"ElementaryTypeName",src:"11417:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1415,name:"_toOwner",nodeType:"VariableDeclaration",scope:1523,src:"11437:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1414,name:"address",nodeType:"ElementaryTypeName",src:"11437:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1417,name:"_tokenId",nodeType:"VariableDeclaration",scope:1523,src:"11455:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1416,name:"uint256",nodeType:"ElementaryTypeName",src:"11455:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"11416:56:7"},payable:!1,returnParameters:{id:1419,nodeType:"ParameterList",parameters:[],src:"11482:0:7"},scope:2132,src:"11394:868:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1538,nodeType:"Block",src:"12329:87:7",statements:[{assignments:[],declarations:[{constant:!1,id:1531,name:"size",nodeType:"VariableDeclaration",scope:1539,src:"12335:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1530,name:"uint256",nodeType:"ElementaryTypeName",src:"12335:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1532,initialValue:null,nodeType:"VariableDeclarationStatement",src:"12335:12:7"},{externalReferences:[{size:{declaration:1531,isOffset:!1,isSlot:!1,src:"12364:4:7",valueSize:1}},{addr:{declaration:1525,isOffset:!1,isSlot:!1,src:"12384:4:7",valueSize:1}}],id:1533,nodeType:"InlineAssembly",operations:"{\n    size := extcodesize(addr)\n}",src:"12353:49:7"},{expression:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1536,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1534,name:"size",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1531,src:"12403:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:">",rightExpression:{argumentTypes:null,hexValue:"30",id:1535,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12410:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"12403:8:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:1529,id:1537,nodeType:"Return",src:"12396:15:7"}]},documentation:null,id:1539,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"isContract",nodeType:"FunctionDefinition",parameters:{id:1526,nodeType:"ParameterList",parameters:[{constant:!1,id:1525,name:"addr",nodeType:"VariableDeclaration",scope:1539,src:"12286:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1524,name:"address",nodeType:"ElementaryTypeName",src:"12286:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"12285:14:7"},payable:!1,returnParameters:{id:1529,nodeType:"ParameterList",parameters:[{constant:!1,id:1528,name:"",nodeType:"VariableDeclaration",scope:1539,src:"12323:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1527,name:"bool",nodeType:"ElementaryTypeName",src:"12323:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"12322:6:7"},scope:2132,src:"12266:150:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1570,nodeType:"Block",src:"12471:308:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1543,name:"InterfaceId_ERC165",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:98,src:"12496:18:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1542,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12477:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1544,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12477:38:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1545,nodeType:"ExpressionStatement",src:"12477:38:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1547,name:"InterfaceId_ERC721",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:204,src:"12540:18:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1546,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12521:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1548,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12521:38:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1549,nodeType:"ExpressionStatement",src:"12521:38:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1551,name:"InterfaceId_ERC721Enumerable",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:234,src:"12584:28:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1550,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12565:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1552,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12565:48:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1553,nodeType:"ExpressionStatement",src:"12565:48:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1555,name:"InterfaceId_ERC721Metadata",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:260,src:"12638:26:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1554,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12619:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1556,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12619:46:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1557,nodeType:"ExpressionStatement",src:"12619:46:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1559,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"12690:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1558,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12671:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1560,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12671:51:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1561,nodeType:"ExpressionStatement",src:"12671:51:7"},{expression:{argumentTypes:null,id:1564,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1562,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"12728:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"373232",id:1563,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12742:3:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_722_by_1",typeString:"int_const 722"},value:"722"},src:"12728:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1565,nodeType:"ExpressionStatement",src:"12728:17:7"},{expression:{argumentTypes:null,id:1568,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1566,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"12751:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:1567,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12773:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"12751:23:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1569,nodeType:"ExpressionStatement",src:"12751:23:7"}]},documentation:"SixPillars**",id:1571,implemented:!0,isConstructor:!0,isDeclaredConst:!1,modifiers:[],name:"",nodeType:"FunctionDefinition",parameters:{id:1540,nodeType:"ParameterList",parameters:[],src:"12461:2:7"},payable:!1,returnParameters:{id:1541,nodeType:"ParameterList",parameters:[],src:"12471:0:7"},scope:2132,src:"12450:329:7",stateMutability:"nonpayable",superFunction:null,visibility:"public"},{body:{id:1591,nodeType:"Block",src:"12878:45:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1585,name:"msgHash",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1573,src:"12901:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},{argumentTypes:null,id:1586,name:"v",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1575,src:"12910:1:7",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"}},{argumentTypes:null,id:1587,name:"r",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1577,src:"12913:1:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},{argumentTypes:null,id:1588,name:"s",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1579,src:"12916:1:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes32",typeString:"bytes32"},{typeIdentifier:"t_uint8",typeString:"uint8"},{typeIdentifier:"t_bytes32",typeString:"bytes32"},{typeIdentifier:"t_bytes32",typeString:"bytes32"}],id:1584,name:"ecrecover",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2139,src:"12891:9:7",typeDescriptions:{typeIdentifier:"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",typeString:"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},id:1589,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12891:27:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1583,id:1590,nodeType:"Return",src:"12884:34:7"}]},documentation:null,id:1592,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"recover",nodeType:"FunctionDefinition",parameters:{id:1580,nodeType:"ParameterList",parameters:[{constant:!1,id:1573,name:"msgHash",nodeType:"VariableDeclaration",scope:1592,src:"12800:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1572,name:"bytes32",nodeType:"ElementaryTypeName",src:"12800:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"},{constant:!1,id:1575,name:"v",nodeType:"VariableDeclaration",scope:1592,src:"12817:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"},typeName:{id:1574,name:"uint8",nodeType:"ElementaryTypeName",src:"12817:5:7",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"}},value:null,visibility:"internal"},{constant:!1,id:1577,name:"r",nodeType:"VariableDeclaration",scope:1592,src:"12826:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1576,name:"bytes32",nodeType:"ElementaryTypeName",src:"12826:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"},{constant:!1,id:1579,name:"s",nodeType:"VariableDeclaration",scope:1592,src:"12837:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1578,name:"bytes32",nodeType:"ElementaryTypeName",src:"12837:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"}],src:"12799:48:7"},payable:!1,returnParameters:{id:1583,nodeType:"ParameterList",parameters:[{constant:!1,id:1582,name:"",nodeType:"VariableDeclaration",scope:1592,src:"12869:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1581,name:"address",nodeType:"ElementaryTypeName",src:"12869:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"12868:9:7"},scope:2132,src:"12783:140:7",stateMutability:"pure",superFunction:null,visibility:"public"},{body:{id:1668,nodeType:"Block",src:"13389:501:7",statements:[{assignments:[1602],declarations:[{constant:!1,id:1602,name:"seed",nodeType:"VariableDeclaration",scope:1669,src:"13395:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1601,name:"uint256",nodeType:"ElementaryTypeName",src:"13395:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1604,initialValue:{argumentTypes:null,id:1603,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"13410:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"13395:26:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1614,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1607,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1605,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13432:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,hexValue:"30",id:1606,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"13455:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"13432:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1608,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13431:26:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1612,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1609,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13462:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1610,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13484:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1611,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13484:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13462:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1613,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13461:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"13431:66:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1624,nodeType:"IfStatement",src:"13427:131:7",trueBody:{id:1623,nodeType:"Block",src:"13499:59:7",statements:[{expression:{argumentTypes:null,id:1621,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1615,name:"seed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1602,src:"13507:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"+=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1619,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1616,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13516:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1617,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13516:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,id:1618,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13531:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13516:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],id:1620,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13515:36:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13507:44:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1622,nodeType:"ExpressionStatement",src:"13507:44:7"}]}},{assignments:[1626],declarations:[{constant:!1,id:1626,name:"newTokenId",nodeType:"VariableDeclaration",scope:1669,src:"13563:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1625,name:"uint256",nodeType:"ElementaryTypeName",src:"13563:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1635,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,arguments:[{argumentTypes:null,arguments:[{argumentTypes:null,id:1631,name:"seed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1602,src:"13619:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:1629,name:"abi",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2134,src:"13602:3:7",typeDescriptions:{typeIdentifier:"t_magic_abi",typeString:"abi"}},id:1630,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,memberName:"encodePacked",nodeType:"MemberAccess",referencedDeclaration:null,src:"13602:16:7",typeDescriptions:{typeIdentifier:"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",typeString:"function () pure returns (bytes memory)"}},id:1632,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13602:22:7",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}],id:1628,name:"keccak256",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2141,src:"13592:9:7",typeDescriptions:{typeIdentifier:"t_function_sha3_pure$__$returns$_t_bytes32_$",typeString:"function () pure returns (bytes32)"}},id:1633,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13592:33:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes32",typeString:"bytes32"}],id:1627,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"13584:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_uint256_$",typeString:"type(uint256)"},typeName:"uint256"},id:1634,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13584:42:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"13563:63:7"},{expression:{argumentTypes:null,id:1638,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1636,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"13632:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1637,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13646:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13632:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1639,nodeType:"ExpressionStatement",src:"13632:24:7"},{expression:{argumentTypes:null,id:1643,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1640,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13662:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1641,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13684:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1642,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13684:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13662:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1644,nodeType:"ExpressionStatement",src:"13662:34:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1646,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1594,src:"13713:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1647,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13718:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1648,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1596,src:"13730:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1649,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1598,src:"13744:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bool",typeString:"bool"}],id:1645,name:"addTokenTo",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1266,src:"13702:10:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",typeString:"function (address,uint256,uint256,bool)"}},id:1650,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13702:56:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1651,nodeType:"ExpressionStatement",src:"13702:56:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1653,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1594,src:"13781:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,condition:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1656,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1654,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1598,src:"13793:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"74727565",id:1655,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"13810:4:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"},src:"13793:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1657,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13792:23:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1661,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"13839:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1660,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"13831:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1662,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13831:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1663,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"Conditional",src:"13792:49:7",trueExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1658,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"13818:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1659,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"13818:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1664,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1596,src:"13849:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1665,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13869:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1652,name:"Mint",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:310,src:"13769:4:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:1666,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13769:116:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1667,nodeType:"EmitStatement",src:"13764:121:7"}]},documentation:"Mint new token.\n\n  /// emit Mint(owner, creator, inscription, tokenId)\n Throw _to is not valid.\n Throw new token id is already used. (please try again later)\n @param _to Owner of new token.\n @param _inscription immutable parameter for new token.\n @param _isSetCreator if true, creator of new token is msg.sender. if false, creator is zero address.",id:1669,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"mint",nodeType:"FunctionDefinition",parameters:{id:1599,nodeType:"ParameterList",parameters:[{constant:!1,id:1594,name:"_to",nodeType:"VariableDeclaration",scope:1669,src:"13325:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1593,name:"address",nodeType:"ElementaryTypeName",src:"13325:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1596,name:"_inscription",nodeType:"VariableDeclaration",scope:1669,src:"13338:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1595,name:"uint256",nodeType:"ElementaryTypeName",src:"13338:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1598,name:"_isSetCreator",nodeType:"VariableDeclaration",scope:1669,src:"13360:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1597,name:"bool",nodeType:"ElementaryTypeName",src:"13360:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"13324:55:7"},payable:!1,returnParameters:{id:1600,nodeType:"ParameterList",parameters:[],src:"13389:0:7"},scope:2132,src:"13311:579:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1712,nodeType:"Block",src:"14106:271:7",statements:[{assignments:[1675],declarations:[{constant:!1,id:1675,name:"index",nodeType:"VariableDeclaration",scope:1713,src:"14112:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1674,name:"uint",nodeType:"ElementaryTypeName",src:"14112:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1679,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1677,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14140:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1676,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"14125:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1678,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14125:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"14112:37:7"},{assignments:[1681],declarations:[{constant:!1,id:1681,name:"owner",nodeType:"VariableDeclaration",scope:1713,src:"14155:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1680,name:"address",nodeType:"ElementaryTypeName",src:"14155:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1686,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1682,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14171:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1684,indexExpression:{argumentTypes:null,id:1683,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1675,src:"14178:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14171:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1685,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"14171:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14155:35:7"},{assignments:[1688],declarations:[{constant:!1,id:1688,name:"creator",nodeType:"VariableDeclaration",scope:1713,src:"14196:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1687,name:"address",nodeType:"ElementaryTypeName",src:"14196:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1693,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1689,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14214:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1691,indexExpression:{argumentTypes:null,id:1690,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1675,src:"14221:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14214:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1692,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14214:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14196:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1698,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1695,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14249:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1696,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14258:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1697,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14258:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14249:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1694,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"14241:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1699,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14241:28:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1700,nodeType:"ExpressionStatement",src:"14241:28:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1702,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14291:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1703,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14298:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1701,name:"removeTokenFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1411,src:"14275:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,uint256)"}},id:1704,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14275:32:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1705,nodeType:"ExpressionStatement",src:"14275:32:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1707,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14330:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1708,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1688,src:"14343:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1709,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14358:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1706,name:"Burn",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:318,src:"14318:4:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1710,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14318:54:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1711,nodeType:"EmitStatement",src:"14313:59:7"}]},documentation:"Burn your token.\n\n  /// emit Burn(owner, creator, tokenId)\n Throw token owner is not msg.sender.\n @param _tokenId id of the token you want to burned.",id:1713,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"burn",nodeType:"FunctionDefinition",parameters:{id:1672,nodeType:"ParameterList",parameters:[{constant:!1,id:1671,name:"_tokenId",nodeType:"VariableDeclaration",scope:1713,src:"14079:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1670,name:"uint256",nodeType:"ElementaryTypeName",src:"14079:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"14078:18:7"},payable:!1,returnParameters:{id:1673,nodeType:"ParameterList",parameters:[],src:"14106:0:7"},scope:2132,src:"14065:312:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1753,nodeType:"Block",src:"14640:229:7",statements:[{assignments:[1719],declarations:[{constant:!1,id:1719,name:"index",nodeType:"VariableDeclaration",scope:1754,src:"14646:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1718,name:"uint",nodeType:"ElementaryTypeName",src:"14646:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1723,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1721,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1715,src:"14674:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1720,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"14659:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1722,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14659:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"14646:37:7"},{assignments:[1725],declarations:[{constant:!1,id:1725,name:"creator",nodeType:"VariableDeclaration",scope:1754,src:"14689:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1724,name:"address",nodeType:"ElementaryTypeName",src:"14689:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1730,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1726,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14707:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1728,indexExpression:{argumentTypes:null,id:1727,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1719,src:"14714:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14707:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1729,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14707:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14689:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1736,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1732,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1725,src:"14742:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1734,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"14761:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1733,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"14753:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1735,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14753:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14742:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1731,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"14734:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1737,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14734:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1738,nodeType:"ExpressionStatement",src:"14734:30:7"},{expression:{argumentTypes:null,id:1745,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1739,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14770:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1741,indexExpression:{argumentTypes:null,id:1740,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1719,src:"14777:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14770:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1742,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14770:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1743,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14794:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1744,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14794:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14770:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1746,nodeType:"ExpressionStatement",src:"14770:34:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:1748,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14832:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1749,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14832:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1750,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1715,src:"14850:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1747,name:"CreatedBy",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:324,src:"14815:9:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,uint256)"}},id:1751,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14815:49:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1752,nodeType:"EmitStatement",src:"14810:54:7"}]},documentation:"Add creator to the token\n\n  /// msg.sender is new creator.\n emit CreatedBy(creator, tokenId)\n Throw token creator is already added.\n @param _tokenId id of the token you want add creator.",id:1754,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"createdBy",nodeType:"FunctionDefinition",parameters:{id:1716,nodeType:"ParameterList",parameters:[{constant:!1,id:1715,name:"_tokenId",nodeType:"VariableDeclaration",scope:1754,src:"14613:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1714,name:"uint256",nodeType:"ElementaryTypeName",src:"14613:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"14612:18:7"},payable:!1,returnParameters:{id:1717,nodeType:"ParameterList",parameters:[],src:"14640:0:7"},scope:2132,src:"14594:275:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1792,nodeType:"Block",src:"15152:202:7",statements:[{assignments:[1760],declarations:[{constant:!1,id:1760,name:"index",nodeType:"VariableDeclaration",scope:1793,src:"15158:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1759,name:"uint",nodeType:"ElementaryTypeName",src:"15158:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1764,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1762,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1756,src:"15186:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1761,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15171:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1763,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15171:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15158:37:7"},{assignments:[1766],declarations:[{constant:!1,id:1766,name:"creator",nodeType:"VariableDeclaration",scope:1793,src:"15201:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1765,name:"address",nodeType:"ElementaryTypeName",src:"15201:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1771,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1767,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15219:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1769,indexExpression:{argumentTypes:null,id:1768,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1760,src:"15226:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15219:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1770,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15219:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"15201:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1776,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1773,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"15254:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1774,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"15254:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1775,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1766,src:"15268:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"15254:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1772,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"15246:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1777,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15246:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1778,nodeType:"ExpressionStatement",src:"15246:30:7"},{expression:{argumentTypes:null,id:1786,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1779,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15282:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1781,indexExpression:{argumentTypes:null,id:1780,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1760,src:"15289:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15282:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1782,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15282:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1784,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"15314:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1783,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"15306:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1785,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15306:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"15282:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1787,nodeType:"ExpressionStatement",src:"15282:34:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1789,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1756,src:"15340:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1788,name:"ClearCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:328,src:"15327:12:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:1790,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15327:22:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1791,nodeType:"EmitStatement",src:"15322:27:7"}]},documentation:"Remove creator to the token\n\n  /// creator of the token will be zero address.\n emit ClearCreator(tokenId)\n Throw token creator is not msg.sender.\n @param _tokenId id of the token you want remove creator.",id:1793,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"clearCreator",nodeType:"FunctionDefinition",parameters:{id:1757,nodeType:"ParameterList",parameters:[{constant:!1,id:1756,name:"_tokenId",nodeType:"VariableDeclaration",scope:1793,src:"15125:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1755,name:"uint256",nodeType:"ElementaryTypeName",src:"15125:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15124:18:7"},payable:!1,returnParameters:{id:1758,nodeType:"ParameterList",parameters:[],src:"15152:0:7"},scope:2132,src:"15103:251:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1811,nodeType:"Block",src:"15562:86:7",statements:[{assignments:[1801],declarations:[{constant:!1,id:1801,name:"index",nodeType:"VariableDeclaration",scope:1812,src:"15568:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1800,name:"uint",nodeType:"ElementaryTypeName",src:"15568:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1805,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1803,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1795,src:"15596:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1802,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15581:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1804,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15581:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15568:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1806,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15618:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1808,indexExpression:{argumentTypes:null,id:1807,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1801,src:"15625:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15618:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1809,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"inscription",nodeType:"MemberAccess",referencedDeclaration:352,src:"15618:25:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1799,id:1810,nodeType:"Return",src:"15611:32:7"}]},documentation:"Get inscription of the token.\n @param _tokenId id of the token you get it.\n @return uint256 inscription of the token.",id:1812,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"inscription",nodeType:"FunctionDefinition",parameters:{id:1796,nodeType:"ParameterList",parameters:[{constant:!1,id:1795,name:"_tokenId",nodeType:"VariableDeclaration",scope:1812,src:"15513:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1794,name:"uint256",nodeType:"ElementaryTypeName",src:"15513:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15512:18:7"},payable:!1,returnParameters:{id:1799,nodeType:"ParameterList",parameters:[{constant:!1,id:1798,name:"",nodeType:"VariableDeclaration",scope:1812,src:"15553:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1797,name:"uint256",nodeType:"ElementaryTypeName",src:"15553:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15552:9:7"},scope:2132,src:"15492:156:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1830,nodeType:"Block",src:"15844:82:7",statements:[{assignments:[1820],declarations:[{constant:!1,id:1820,name:"index",nodeType:"VariableDeclaration",scope:1831,src:"15850:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1819,name:"uint",nodeType:"ElementaryTypeName",src:"15850:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1824,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1822,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1814,src:"15878:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1821,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15863:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1823,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15863:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15850:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1825,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15900:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1827,indexExpression:{argumentTypes:null,id:1826,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1820,src:"15907:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15900:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1828,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15900:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1818,id:1829,nodeType:"Return",src:"15893:28:7"}]},documentation:"Get creator of the token.\n @param _tokenId id of the token you get it.\n @return address creator of the token.",id:1831,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"creator",nodeType:"FunctionDefinition",parameters:{id:1815,nodeType:"ParameterList",parameters:[{constant:!1,id:1814,name:"_tokenId",nodeType:"VariableDeclaration",scope:1831,src:"15795:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1813,name:"uint256",nodeType:"ElementaryTypeName",src:"15795:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15794:18:7"},payable:!1,returnParameters:{id:1818,nodeType:"ParameterList",parameters:[{constant:!1,id:1817,name:"",nodeType:"VariableDeclaration",scope:1831,src:"15835:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1816,name:"address",nodeType:"ElementaryTypeName",src:"15835:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"15834:9:7"},scope:2132,src:"15778:148:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1849,nodeType:"Block",src:"16156:84:7",statements:[{assignments:[1839],declarations:[{constant:!1,id:1839,name:"index",nodeType:"VariableDeclaration",scope:1850,src:"16162:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1838,name:"uint",nodeType:"ElementaryTypeName",src:"16162:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1843,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1841,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1833,src:"16190:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1840,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"16175:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1842,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16175:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"16162:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1844,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16212:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1846,indexExpression:{argumentTypes:null,id:1845,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1839,src:"16219:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16212:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1847,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"createdAt",nodeType:"MemberAccess",referencedDeclaration:358,src:"16212:23:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1837,id:1848,nodeType:"Return",src:"16205:30:7"}]},documentation:"Get block number of the token at created.\n @param _tokenId id of the token you get it.\n @return uint256 block number of the token at created.",id:1850,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"createdAt",nodeType:"FunctionDefinition",parameters:{id:1834,nodeType:"ParameterList",parameters:[{constant:!1,id:1833,name:"_tokenId",nodeType:"VariableDeclaration",scope:1850,src:"16107:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1832,name:"uint256",nodeType:"ElementaryTypeName",src:"16107:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16106:18:7"},payable:!1,returnParameters:{id:1837,nodeType:"ParameterList",parameters:[{constant:!1,id:1836,name:"",nodeType:"VariableDeclaration",scope:1850,src:"16147:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1835,name:"uint256",nodeType:"ElementaryTypeName",src:"16147:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16146:9:7"},scope:2132,src:"16088:152:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1880,nodeType:"Block",src:"16465:126:7",statements:[{assignments:[1858],declarations:[{constant:!1,id:1858,name:"index",nodeType:"VariableDeclaration",scope:1881,src:"16471:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1857,name:"uint",nodeType:"ElementaryTypeName",src:"16471:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1862,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1860,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1852,src:"16499:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1859,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"16484:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1861,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16484:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"16471:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1870,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1864,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16522:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1866,indexExpression:{argumentTypes:null,id:1865,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1858,src:"16529:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16522:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1867,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"16522:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1868,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"16545:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1869,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"16545:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16522:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1863,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"16514:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1871,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16514:42:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1872,nodeType:"ExpressionStatement",src:"16514:42:7"},{expression:{argumentTypes:null,id:1878,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1873,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16562:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1875,indexExpression:{argumentTypes:null,id:1874,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1858,src:"16569:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16562:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1876,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"uri",nodeType:"MemberAccess",referencedDeclaration:366,src:"16562:17:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1877,name:"_uri",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1854,src:"16582:4:7",typeDescriptions:{typeIdentifier:"t_string_calldata_ptr",typeString:"string calldata"}},src:"16562:24:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},id:1879,nodeType:"ExpressionStatement",src:"16562:24:7"}]},documentation:"Set new url for your token.\n\n  /// Throw token owner is not msg.sender.\n @param _tokenId id of the token you set it.\n @param _uri new uri.",id:1881,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"setTokenURI",nodeType:"FunctionDefinition",parameters:{id:1855,nodeType:"ParameterList",parameters:[{constant:!1,id:1852,name:"_tokenId",nodeType:"VariableDeclaration",scope:1881,src:"16425:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1851,name:"uint256",nodeType:"ElementaryTypeName",src:"16425:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1854,name:"_uri",nodeType:"VariableDeclaration",scope:1881,src:"16443:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_calldata_ptr",typeString:"string"},typeName:{id:1853,name:"string",nodeType:"ElementaryTypeName",src:"16443:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"16424:31:7"},payable:!1,returnParameters:{id:1856,nodeType:"ParameterList",parameters:[],src:"16465:0:7"},scope:2132,src:"16404:187:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1926,nodeType:"Block",src:"16819:207:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1893,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1889,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1883,src:"16833:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1891,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16853:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1890,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"16845:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1892,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16845:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16833:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1888,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"16825:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1894,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16825:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1895,nodeType:"ExpressionStatement",src:"16825:31:7"},{assignments:[1897],declarations:[{constant:!1,id:1897,name:"count",nodeType:"VariableDeclaration",scope:1927,src:"16862:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1896,name:"uint256",nodeType:"ElementaryTypeName",src:"16862:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1899,initialValue:{argumentTypes:null,hexValue:"30",id:1898,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16878:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"16862:17:7"},{body:{id:1922,nodeType:"Block",src:"16929:75:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1916,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1911,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16941:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1913,indexExpression:{argumentTypes:null,id:1912,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16948:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16941:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1914,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"16941:17:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1915,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1883,src:"16962:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16941:29:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1921,nodeType:"IfStatement",src:"16937:61:7",trueBody:{id:1920,nodeType:"Block",src:"16972:26:7",statements:[{expression:{argumentTypes:null,id:1918,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"16982:7:7",subExpression:{argumentTypes:null,id:1917,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1897,src:"16982:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1919,nodeType:"ExpressionStatement",src:"16982:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1907,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1904,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16905:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1905,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16909:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1906,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"16909:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"16905:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1923,initializationExpression:{assignments:[1901],declarations:[{constant:!1,id:1901,name:"i",nodeType:"VariableDeclaration",scope:1927,src:"16890:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1900,name:"uint256",nodeType:"ElementaryTypeName",src:"16890:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1903,initialValue:{argumentTypes:null,hexValue:"30",id:1902,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16902:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"16890:13:7"},loopExpression:{expression:{argumentTypes:null,id:1909,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"16924:3:7",subExpression:{argumentTypes:null,id:1908,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16924:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1910,nodeType:"ExpressionStatement",src:"16924:3:7"},nodeType:"ForStatement",src:"16885:119:7"},{expression:{argumentTypes:null,id:1924,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1897,src:"17016:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1887,id:1925,nodeType:"Return",src:"17009:12:7"}]},documentation:"Token balance of creator.\n\n  /// Throw creator is not valid.\n @param _creator creator of the tokens.\n @return uint256 balance.",id:1927,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOfCreator",nodeType:"FunctionDefinition",parameters:{id:1884,nodeType:"ParameterList",parameters:[{constant:!1,id:1883,name:"_creator",nodeType:"VariableDeclaration",scope:1927,src:"16769:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1882,name:"address",nodeType:"ElementaryTypeName",src:"16769:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"16768:18:7"},payable:!1,returnParameters:{id:1887,nodeType:"ParameterList",parameters:[{constant:!1,id:1886,name:"",nodeType:"VariableDeclaration",scope:1927,src:"16810:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1885,name:"uint256",nodeType:"ElementaryTypeName",src:"16810:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16809:9:7"},scope:2132,src:"16743:283:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1985,nodeType:"Block",src:"17373:275:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1941,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1937,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1929,src:"17387:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1939,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17407:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1938,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"17399:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1940,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17399:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"17387:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1936,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"17379:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1942,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17379:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1943,nodeType:"ExpressionStatement",src:"17379:31:7"},{assignments:[1945],declarations:[{constant:!1,id:1945,name:"count",nodeType:"VariableDeclaration",scope:1986,src:"17416:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1944,name:"uint256",nodeType:"ElementaryTypeName",src:"17416:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1947,initialValue:{argumentTypes:null,hexValue:"30",id:1946,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17432:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"17416:17:7"},{body:{id:1980,nodeType:"Block",src:"17483:147:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1964,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1959,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17495:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1961,indexExpression:{argumentTypes:null,id:1960,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17502:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"17495:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1962,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"17495:17:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1963,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1929,src:"17516:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"17495:29:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1979,nodeType:"IfStatement",src:"17491:133:7",trueBody:{id:1978,nodeType:"Block",src:"17526:98:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1967,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1965,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1945,src:"17540:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1966,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1931,src:"17549:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"17540:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1974,nodeType:"IfStatement",src:"17536:63:7",trueBody:{id:1973,nodeType:"Block",src:"17557:42:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1968,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17576:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1970,indexExpression:{argumentTypes:null,id:1969,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17583:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"17576:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1971,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"17576:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1935,id:1972,nodeType:"Return",src:"17569:19:7"}]}},{expression:{argumentTypes:null,id:1976,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"17608:7:7",subExpression:{argumentTypes:null,id:1975,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1945,src:"17608:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1977,nodeType:"ExpressionStatement",src:"17608:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1955,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1952,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17459:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1953,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17463:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1954,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"17463:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"17459:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1981,initializationExpression:{assignments:[1949],declarations:[{constant:!1,id:1949,name:"i",nodeType:"VariableDeclaration",scope:1986,src:"17444:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1948,name:"uint256",nodeType:"ElementaryTypeName",src:"17444:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1951,initialValue:{argumentTypes:null,hexValue:"30",id:1950,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17456:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"17444:13:7"},loopExpression:{expression:{argumentTypes:null,id:1957,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"17478:3:7",subExpression:{argumentTypes:null,id:1956,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17478:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1958,nodeType:"ExpressionStatement",src:"17478:3:7"},nodeType:"ForStatement",src:"17439:191:7"},{expression:{argumentTypes:null,arguments:[],expression:{argumentTypes:[],id:1982,name:"revert",nodeType:"Identifier",overloadedDeclarations:[2152,2153],referencedDeclaration:2152,src:"17635:6:7",typeDescriptions:{typeIdentifier:"t_function_revert_pure$__$returns$__$",typeString:"function () pure"}},id:1983,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17635:8:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1984,nodeType:"ExpressionStatement",src:"17635:8:7"}]},documentation:"Get token ID of the specified creator and index.\n\n  /// Throw owner is not valid.\n Throw overflow index.\n @param _creator creator of the token.\n @param _index index of the creator tokens.\n @return uint256 token id.",id:1986,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfCreatorByIndex",nodeType:"FunctionDefinition",parameters:{id:1932,nodeType:"ParameterList",parameters:[{constant:!1,id:1929,name:"_creator",nodeType:"VariableDeclaration",scope:1986,src:"17307:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1928,name:"address",nodeType:"ElementaryTypeName",src:"17307:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1931,name:"_index",nodeType:"VariableDeclaration",scope:1986,src:"17325:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1930,name:"uint256",nodeType:"ElementaryTypeName",src:"17325:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"17306:34:7"},payable:!1,returnParameters:{id:1935,nodeType:"ParameterList",parameters:[{constant:!1,id:1934,name:"",nodeType:"VariableDeclaration",scope:1986,src:"17364:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1933,name:"uint256",nodeType:"ElementaryTypeName",src:"17364:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"17363:9:7"},scope:2132,src:"17276:372:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:2051,nodeType:"Block",src:"18049:318:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:2008,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2e3,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1996,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18064:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1998,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18082:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1997,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18074:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1999,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18074:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18064:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2001,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18063:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2006,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2002,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1990,src:"18090:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2004,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18110:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2003,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18102:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2005,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18102:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18090:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2007,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18089:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"18063:50:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1995,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"18055:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:2009,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18055:59:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2010,nodeType:"ExpressionStatement",src:"18055:59:7"},{assignments:[2012],declarations:[{constant:!1,id:2012,name:"balance",nodeType:"VariableDeclaration",scope:2052,src:"18120:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2011,name:"uint256",nodeType:"ElementaryTypeName",src:"18120:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2014,initialValue:{argumentTypes:null,hexValue:"30",id:2013,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18138:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18120:19:7"},{body:{id:2047,nodeType:"Block",src:"18209:134:7",statements:[{assignments:[2029],declarations:[{constant:!1,id:2029,name:"index",nodeType:"VariableDeclaration",scope:2052,src:"18217:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2028,name:"uint256",nodeType:"ElementaryTypeName",src:"18217:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2035,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2030,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18233:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2032,indexExpression:{argumentTypes:null,id:2031,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18252:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18233:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2034,indexExpression:{argumentTypes:null,id:2033,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18260:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18233:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"18217:45:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2041,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2036,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"18274:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2038,indexExpression:{argumentTypes:null,id:2037,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2029,src:"18281:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18274:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2039,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"18274:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2040,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1990,src:"18299:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18274:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2046,nodeType:"IfStatement",src:"18270:67:7",trueBody:{id:2045,nodeType:"Block",src:"18309:28:7",statements:[{expression:{argumentTypes:null,id:2043,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18319:9:7",subExpression:{argumentTypes:null,id:2042,name:"balance",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2012,src:"18319:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2044,nodeType:"ExpressionStatement",src:"18319:9:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2024,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2019,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18165:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2020,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18169:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2022,indexExpression:{argumentTypes:null,id:2021,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18188:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18169:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2023,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"18169:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"18165:37:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:2048,initializationExpression:{assignments:[2016],declarations:[{constant:!1,id:2016,name:"i",nodeType:"VariableDeclaration",scope:2052,src:"18150:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2015,name:"uint256",nodeType:"ElementaryTypeName",src:"18150:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2018,initialValue:{argumentTypes:null,hexValue:"30",id:2017,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18162:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18150:13:7"},loopExpression:{expression:{argumentTypes:null,id:2026,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18204:3:7",subExpression:{argumentTypes:null,id:2025,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18204:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2027,nodeType:"ExpressionStatement",src:"18204:3:7"},nodeType:"ForStatement",src:"18145:198:7"},{expression:{argumentTypes:null,id:2049,name:"balance",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2012,src:"18355:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1994,id:2050,nodeType:"Return",src:"18348:14:7"}]},documentation:"Token balance of owner and creator.\n\n  /// Throw owner is not valid.\n Throw creator is not valid.\n @param _owner owner of the tokens.\n @param _creator creator of the tokens.\n @return uint256 balance of `token.owner == _owner` and `token.creator == _creator` tokens.",id:2052,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOfOwnerAndCreator",nodeType:"FunctionDefinition",parameters:{id:1991,nodeType:"ParameterList",parameters:[{constant:!1,id:1988,name:"_owner",nodeType:"VariableDeclaration",scope:2052,src:"17983:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1987,name:"address",nodeType:"ElementaryTypeName",src:"17983:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1990,name:"_creator",nodeType:"VariableDeclaration",scope:2052,src:"17999:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1989,name:"address",nodeType:"ElementaryTypeName",src:"17999:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"17982:34:7"},payable:!1,returnParameters:{id:1994,nodeType:"ParameterList",parameters:[{constant:!1,id:1993,name:"",nodeType:"VariableDeclaration",scope:2052,src:"18040:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1992,name:"uint256",nodeType:"ElementaryTypeName",src:"18040:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18039:9:7"},scope:2132,src:"17949:418:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:2130,nodeType:"Block",src:"18846:384:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:2076,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2068,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2064,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"18861:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2066,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18879:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2065,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18871:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2067,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18871:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18861:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2069,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18860:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2074,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2070,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2056,src:"18887:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2072,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18907:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2071,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18899:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2073,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18899:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18887:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2075,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18886:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"18860:50:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:2063,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"18852:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:2077,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18852:59:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2078,nodeType:"ExpressionStatement",src:"18852:59:7"},{assignments:[2080],declarations:[{constant:!1,id:2080,name:"count",nodeType:"VariableDeclaration",scope:2131,src:"18917:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2079,name:"uint256",nodeType:"ElementaryTypeName",src:"18917:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2082,initialValue:{argumentTypes:null,hexValue:"30",id:2081,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18933:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18917:17:7"},{body:{id:2125,nodeType:"Block",src:"19004:208:7",statements:[{assignments:[2097],declarations:[{constant:!1,id:2097,name:"index",nodeType:"VariableDeclaration",scope:2131,src:"19012:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2096,name:"uint256",nodeType:"ElementaryTypeName",src:"19012:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2103,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2098,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"19028:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2100,indexExpression:{argumentTypes:null,id:2099,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"19047:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19028:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2102,indexExpression:{argumentTypes:null,id:2101,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"19055:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19028:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"19012:45:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2109,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2104,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"19069:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2106,indexExpression:{argumentTypes:null,id:2105,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2097,src:"19076:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19069:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2107,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"19069:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2108,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2056,src:"19094:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"19069:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2124,nodeType:"IfStatement",src:"19065:141:7",trueBody:{id:2123,nodeType:"Block",src:"19104:102:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2112,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2110,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2080,src:"19118:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2111,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2058,src:"19127:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"19118:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2119,nodeType:"IfStatement",src:"19114:67:7",trueBody:{id:2118,nodeType:"Block",src:"19135:46:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2113,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"19154:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2115,indexExpression:{argumentTypes:null,id:2114,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2097,src:"19161:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19154:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2116,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"19154:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:2062,id:2117,nodeType:"Return",src:"19147:23:7"}]}},{expression:{argumentTypes:null,id:2121,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"19190:7:7",subExpression:{argumentTypes:null,id:2120,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2080,src:"19190:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2122,nodeType:"ExpressionStatement",src:"19190:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2092,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2087,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"18960:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2088,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18964:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2090,indexExpression:{argumentTypes:null,id:2089,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"18983:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18964:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2091,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"18964:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"18960:37:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:2126,initializationExpression:{assignments:[2084],declarations:[{constant:!1,id:2084,name:"i",nodeType:"VariableDeclaration",scope:2131,src:"18945:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2083,name:"uint256",nodeType:"ElementaryTypeName",src:"18945:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2086,initialValue:{argumentTypes:null,hexValue:"30",id:2085,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18957:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18945:13:7"},loopExpression:{expression:{argumentTypes:null,id:2094,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18999:3:7",subExpression:{argumentTypes:null,id:2093,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"18999:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2095,nodeType:"ExpressionStatement",src:"18999:3:7"},nodeType:"ForStatement",src:"18940:272:7"},{expression:{argumentTypes:null,arguments:[],expression:{argumentTypes:[],id:2127,name:"revert",nodeType:"Identifier",overloadedDeclarations:[2152,2153],referencedDeclaration:2152,src:"19217:6:7",typeDescriptions:{typeIdentifier:"t_function_revert_pure$__$returns$__$",typeString:"function () pure"}},id:2128,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"19217:8:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2129,nodeType:"ExpressionStatement",src:"19217:8:7"}]},documentation:"Get token ID of the specified owner, creator, and index.\n\n  /// Throw owner is not valid.\n Throw creator is not valid.\n Throw overflow index.\n @param _owner owner of the token.\n @param _creator creator of the token, you can use zero address.\n @param _index index of the creator tokens.\n @return uint256 token id.",id:2131,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfOwnerAndCreatorByIndex",nodeType:"FunctionDefinition",parameters:{id:2059,nodeType:"ParameterList",parameters:[{constant:!1,id:2054,name:"_owner",nodeType:"VariableDeclaration",scope:2131,src:"18764:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:2053,name:"address",nodeType:"ElementaryTypeName",src:"18764:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:2056,name:"_creator",nodeType:"VariableDeclaration",scope:2131,src:"18780:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:2055,name:"address",nodeType:"ElementaryTypeName",src:"18780:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:2058,name:"_index",nodeType:"VariableDeclaration",scope:2131,src:"18798:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2057,name:"uint256",nodeType:"ElementaryTypeName",src:"18798:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18763:50:7"},payable:!1,returnParameters:{id:2062,nodeType:"ParameterList",parameters:[{constant:!1,id:2061,name:"",nodeType:"VariableDeclaration",scope:2131,src:"18837:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2060,name:"uint256",nodeType:"ElementaryTypeName",src:"18837:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18836:9:7"},scope:2132,src:"18725:505:7",stateMutability:"view",superFunction:null,visibility:"external"}],scope:2133,src:"193:19039:7"}],src:"0:19233:7"},legacyAST:{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/SixPillars.sol",exportedSymbols:{SixPillars:[2132]},id:2133,nodeType:"SourceUnit",nodes:[{id:285,literals:["solidity","^","0.4",".23"],nodeType:"PragmaDirective",src:"0:24:7"},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC165.sol",file:"./ERC/ERC165.sol",id:286,nodeType:"ImportDirective",scope:2133,sourceUnit:100,src:"26:26:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721.sol",file:"./ERC/ERC721.sol",id:287,nodeType:"ImportDirective",scope:2133,sourceUnit:206,src:"53:26:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721Enumerable.sol",file:"./ERC/ERC721Enumerable.sol",id:288,nodeType:"ImportDirective",scope:2133,sourceUnit:236,src:"80:36:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721Metadata.sol",file:"./ERC/ERC721Metadata.sol",id:289,nodeType:"ImportDirective",scope:2133,sourceUnit:262,src:"117:34:7",symbolAliases:[],unitAlias:""},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/ERC/ERC721TokenReceiver.sol",file:"./ERC/ERC721TokenReceiver.sol",id:290,nodeType:"ImportDirective",scope:2133,sourceUnit:284,src:"152:39:7",symbolAliases:[],unitAlias:""},{baseContracts:[{arguments:null,baseName:{contractScope:null,id:291,name:"ERC165",nodeType:"UserDefinedTypeName",referencedDeclaration:99,src:"216:6:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC165_$99",typeString:"contract ERC165"}},id:292,nodeType:"InheritanceSpecifier",src:"216:6:7"},{arguments:null,baseName:{contractScope:null,id:293,name:"ERC721",nodeType:"UserDefinedTypeName",referencedDeclaration:205,src:"224:6:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721_$205",typeString:"contract ERC721"}},id:294,nodeType:"InheritanceSpecifier",src:"224:6:7"},{arguments:null,baseName:{contractScope:null,id:295,name:"ERC721Enumerable",nodeType:"UserDefinedTypeName",referencedDeclaration:235,src:"232:16:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721Enumerable_$235",typeString:"contract ERC721Enumerable"}},id:296,nodeType:"InheritanceSpecifier",src:"232:16:7"},{arguments:null,baseName:{contractScope:null,id:297,name:"ERC721Metadata",nodeType:"UserDefinedTypeName",referencedDeclaration:261,src:"250:14:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721Metadata_$261",typeString:"contract ERC721Metadata"}},id:298,nodeType:"InheritanceSpecifier",src:"250:14:7"},{arguments:null,baseName:{contractScope:null,id:299,name:"ERC721TokenReceiver",nodeType:"UserDefinedTypeName",referencedDeclaration:283,src:"266:19:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721TokenReceiver_$283",typeString:"contract ERC721TokenReceiver"}},id:300,nodeType:"InheritanceSpecifier",src:"266:19:7"}],contractDependencies:[99,93,205,199,229,235,255,261,277,283],contractKind:"contract",documentation:null,fullyImplemented:!0,id:2132,linearizedBaseContracts:[2132,283,277,261,255,235,229,205,199,99,93],name:"SixPillars",nodeType:"ContractDefinition",nodes:[{anonymous:!1,documentation:"This emits when minted new token.",id:310,name:"Mint",nodeType:"EventDefinition",parameters:{id:309,nodeType:"ParameterList",parameters:[{constant:!1,id:302,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:310,src:"346:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:301,name:"address",nodeType:"ElementaryTypeName",src:"346:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:304,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:310,src:"374:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:303,name:"address",nodeType:"ElementaryTypeName",src:"374:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:306,indexed:!1,name:"_inscription",nodeType:"VariableDeclaration",scope:310,src:"404:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:305,name:"uint256",nodeType:"ElementaryTypeName",src:"404:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:308,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:310,src:"430:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:307,name:"uint256",nodeType:"ElementaryTypeName",src:"430:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"340:110:7"},src:"330:121:7"},{anonymous:!1,documentation:"This emits when burned any token.",id:318,name:"Burn",nodeType:"EventDefinition",parameters:{id:317,nodeType:"ParameterList",parameters:[{constant:!1,id:312,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:318,src:"511:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:311,name:"address",nodeType:"ElementaryTypeName",src:"511:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:314,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:318,src:"539:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:313,name:"address",nodeType:"ElementaryTypeName",src:"539:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:316,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:318,src:"569:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:315,name:"uint256",nodeType:"ElementaryTypeName",src:"569:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"505:84:7"},src:"495:95:7"},{anonymous:!1,documentation:"This emits when set new creator of any token.",id:324,name:"CreatedBy",nodeType:"EventDefinition",parameters:{id:323,nodeType:"ParameterList",parameters:[{constant:!1,id:320,indexed:!0,name:"_creator",nodeType:"VariableDeclaration",scope:324,src:"667:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:319,name:"address",nodeType:"ElementaryTypeName",src:"667:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:322,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:324,src:"697:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:321,name:"uint256",nodeType:"ElementaryTypeName",src:"697:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"661:56:7"},src:"646:72:7"},{anonymous:!1,documentation:"This emits when remove creator of any token.",id:328,name:"ClearCreator",nodeType:"EventDefinition",parameters:{id:327,nodeType:"ParameterList",parameters:[{constant:!1,id:326,indexed:!1,name:"_tokenId",nodeType:"VariableDeclaration",scope:328,src:"797:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:325,name:"uint256",nodeType:"ElementaryTypeName",src:"797:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"791:26:7"},src:"773:45:7"},{anonymous:!1,documentation:"This emits when the approved amount for an NFT is changed or reaffirmed.\n and it emits after `Approval` event.",id:338,name:"ApprovalWithAmount",nodeType:"EventDefinition",parameters:{id:337,nodeType:"ParameterList",parameters:[{constant:!1,id:330,indexed:!0,name:"_owner",nodeType:"VariableDeclaration",scope:338,src:"974:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:329,name:"address",nodeType:"ElementaryTypeName",src:"974:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:332,indexed:!0,name:"_approved",nodeType:"VariableDeclaration",scope:338,src:"1002:25:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:331,name:"address",nodeType:"ElementaryTypeName",src:"1002:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:334,indexed:!0,name:"_tokenId",nodeType:"VariableDeclaration",scope:338,src:"1033:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:333,name:"uint256",nodeType:"ElementaryTypeName",src:"1033:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:336,indexed:!1,name:"_amount",nodeType:"VariableDeclaration",scope:338,src:"1063:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:335,name:"uint256",nodeType:"ElementaryTypeName",src:"1063:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"968:114:7"},src:"944:139:7"},{anonymous:!1,documentation:"This emits when ownership of any token changes by used amount.\n and it emits after `Transfer` event.",id:348,name:"TransferWithAmount",nodeType:"EventDefinition",parameters:{id:347,nodeType:"ParameterList",parameters:[{constant:!1,id:340,indexed:!0,name:"_from",nodeType:"VariableDeclaration",scope:348,src:"1229:21:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:339,name:"address",nodeType:"ElementaryTypeName",src:"1229:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:342,indexed:!0,name:"_to",nodeType:"VariableDeclaration",scope:348,src:"1256:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:341,name:"address",nodeType:"ElementaryTypeName",src:"1256:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:344,indexed:!0,name:"_tokenId",nodeType:"VariableDeclaration",scope:348,src:"1281:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:343,name:"uint256",nodeType:"ElementaryTypeName",src:"1281:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:346,indexed:!1,name:"_amount",nodeType:"VariableDeclaration",scope:348,src:"1311:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:345,name:"uint256",nodeType:"ElementaryTypeName",src:"1311:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"1223:107:7"},src:"1199:132:7"},{canonicalName:"SixPillars.Token",id:367,members:[{constant:!1,id:350,name:"id",nodeType:"VariableDeclaration",scope:367,src:"1354:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:349,name:"uint256",nodeType:"ElementaryTypeName",src:"1354:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:352,name:"inscription",nodeType:"VariableDeclaration",scope:367,src:"1370:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:351,name:"uint256",nodeType:"ElementaryTypeName",src:"1370:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:354,name:"amount",nodeType:"VariableDeclaration",scope:367,src:"1395:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:353,name:"uint256",nodeType:"ElementaryTypeName",src:"1395:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:356,name:"ownerIndex",nodeType:"VariableDeclaration",scope:367,src:"1415:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:355,name:"uint256",nodeType:"ElementaryTypeName",src:"1415:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:358,name:"createdAt",nodeType:"VariableDeclaration",scope:367,src:"1481:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:357,name:"uint256",nodeType:"ElementaryTypeName",src:"1481:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:360,name:"owner",nodeType:"VariableDeclaration",scope:367,src:"1531:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:359,name:"address",nodeType:"ElementaryTypeName",src:"1531:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:362,name:"creator",nodeType:"VariableDeclaration",scope:367,src:"1550:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:361,name:"address",nodeType:"ElementaryTypeName",src:"1550:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:364,name:"approved",nodeType:"VariableDeclaration",scope:367,src:"1571:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:363,name:"address",nodeType:"ElementaryTypeName",src:"1571:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:366,name:"uri",nodeType:"VariableDeclaration",scope:367,src:"1593:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"},typeName:{id:365,name:"string",nodeType:"ElementaryTypeName",src:"1593:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],name:"Token",nodeType:"StructDefinition",scope:2132,src:"1335:273:7",visibility:"public"},{constant:!1,id:370,name:"tokens",nodeType:"VariableDeclaration",scope:2132,src:"1612:23:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token[]"},typeName:{baseType:{contractScope:null,id:368,name:"Token",nodeType:"UserDefinedTypeName",referencedDeclaration:367,src:"1612:5:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage_ptr",typeString:"struct SixPillars.Token"}},id:369,length:null,nodeType:"ArrayTypeName",src:"1612:7:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage_ptr",typeString:"struct SixPillars.Token[]"}},value:null,visibility:"internal"},{constant:!1,id:374,name:"tokenIdToIndex",nodeType:"VariableDeclaration",scope:2132,src:"1639:51:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"},typeName:{id:373,keyType:{id:371,name:"uint256",nodeType:"ElementaryTypeName",src:"1647:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Mapping",src:"1639:27:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"},valueType:{id:372,name:"uint256",nodeType:"ElementaryTypeName",src:"1658:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}},value:null,visibility:"internal"},{constant:!1,id:376,name:"tokenIdSeed",nodeType:"VariableDeclaration",scope:2132,src:"1721:28:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:375,name:"uint256",nodeType:"ElementaryTypeName",src:"1721:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:378,name:"lastMintBlockNumber",nodeType:"VariableDeclaration",scope:2132,src:"1753:36:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:377,name:"uint256",nodeType:"ElementaryTypeName",src:"1753:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:383,name:"ownerToTokensIndex",nodeType:"VariableDeclaration",scope:2132,src:"1794:57:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[])"},typeName:{id:382,keyType:{id:379,name:"address",nodeType:"ElementaryTypeName",src:"1802:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1794:29:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[])"},valueType:{baseType:{id:380,name:"uint256",nodeType:"ElementaryTypeName",src:"1813:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:381,length:null,nodeType:"ArrayTypeName",src:"1813:9:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage_ptr",typeString:"uint256[]"}}},value:null,visibility:"internal"},{constant:!1,id:389,name:"operatorApprovals",nodeType:"VariableDeclaration",scope:2132,src:"1894:71:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"},typeName:{id:388,keyType:{id:384,name:"address",nodeType:"ElementaryTypeName",src:"1902:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1894:44:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"},valueType:{id:387,keyType:{id:385,name:"address",nodeType:"ElementaryTypeName",src:"1921:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Mapping",src:"1913:24:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"},valueType:{id:386,name:"bool",nodeType:"ElementaryTypeName",src:"1932:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}}},value:null,visibility:"internal"},{constant:!1,id:393,name:"supportedInterfaces",nodeType:"VariableDeclaration",scope:2132,src:"2022:52:7",stateVariable:!0,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"},typeName:{id:392,keyType:{id:390,name:"bytes4",nodeType:"ElementaryTypeName",src:"2030:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"Mapping",src:"2022:23:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"},valueType:{id:391,name:"bool",nodeType:"ElementaryTypeName",src:"2040:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}},value:null,visibility:"internal"},{body:{id:404,nodeType:"Block",src:"2197:51:7",statements:[{expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:400,name:"supportedInterfaces",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:393,src:"2210:19:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"}},id:402,indexExpression:{argumentTypes:null,id:401,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:395,src:"2230:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2210:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:399,id:403,nodeType:"Return",src:"2203:40:7"}]},documentation:"ERC165**",id:405,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"supportsInterface",nodeType:"FunctionDefinition",parameters:{id:396,nodeType:"ParameterList",parameters:[{constant:!1,id:395,name:"_interfaceId",nodeType:"VariableDeclaration",scope:405,src:"2147:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:394,name:"bytes4",nodeType:"ElementaryTypeName",src:"2147:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"2146:21:7"},payable:!1,returnParameters:{id:399,nodeType:"ParameterList",parameters:[{constant:!1,id:398,name:"",nodeType:"VariableDeclaration",scope:405,src:"2191:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:397,name:"bool",nodeType:"ElementaryTypeName",src:"2191:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"2190:6:7"},scope:2132,src:"2120:128:7",stateMutability:"view",superFunction:92,visibility:"external"},{body:{id:422,nodeType:"Block",src:"2310:92:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bytes4",typeString:"bytes4"},id:413,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:411,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:407,src:"2324:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,hexValue:"30786666666666666666",id:412,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"2340:10:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_4294967295_by_1",typeString:"int_const 4294967295"},value:"0xffffffff"},src:"2324:26:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:410,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"2316:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:414,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2316:35:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:415,nodeType:"ExpressionStatement",src:"2316:35:7"},{expression:{argumentTypes:null,id:420,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:416,name:"supportedInterfaces",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:393,src:"2357:19:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_bytes4_$_t_bool_$",typeString:"mapping(bytes4 => bool)"}},id:418,indexExpression:{argumentTypes:null,id:417,name:"_interfaceId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:407,src:"2377:12:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"2357:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"74727565",id:419,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"2393:4:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"},src:"2357:40:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:421,nodeType:"ExpressionStatement",src:"2357:40:7"}]},documentation:null,id:423,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"_registerInterface",nodeType:"FunctionDefinition",parameters:{id:408,nodeType:"ParameterList",parameters:[{constant:!1,id:407,name:"_interfaceId",nodeType:"VariableDeclaration",scope:423,src:"2280:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:406,name:"bytes4",nodeType:"ElementaryTypeName",src:"2280:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"2279:21:7"},payable:!1,returnParameters:{id:409,nodeType:"ParameterList",parameters:[],src:"2310:0:7"},scope:2132,src:"2252:150:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:431,nodeType:"Block",src:"2512:31:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,id:428,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"2525:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:429,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"2525:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:427,id:430,nodeType:"Return",src:"2518:20:7"}]},documentation:"ERC721Enumerable**",id:432,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"totalSupply",nodeType:"FunctionDefinition",parameters:{id:424,nodeType:"ParameterList",parameters:[],src:"2477:2:7"},payable:!1,returnParameters:{id:427,nodeType:"ParameterList",parameters:[{constant:!1,id:426,name:"",nodeType:"VariableDeclaration",scope:432,src:"2503:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:425,name:"uint256",nodeType:"ElementaryTypeName",src:"2503:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2502:9:7"},scope:2132,src:"2457:86:7",stateMutability:"view",superFunction:212,visibility:"external"},{body:{id:443,nodeType:"Block",src:"2632:40:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:440,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:434,src:"2660:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:439,name:"tokenIdByIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:496,src:"2645:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:441,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2645:22:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:438,id:442,nodeType:"Return",src:"2638:29:7"}]},documentation:null,id:444,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenByIndex",nodeType:"FunctionDefinition",parameters:{id:435,nodeType:"ParameterList",parameters:[{constant:!1,id:434,name:"_index",nodeType:"VariableDeclaration",scope:444,src:"2584:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:433,name:"uint256",nodeType:"ElementaryTypeName",src:"2584:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2583:16:7"},payable:!1,returnParameters:{id:438,nodeType:"ParameterList",parameters:[{constant:!1,id:437,name:"",nodeType:"VariableDeclaration",scope:444,src:"2623:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:436,name:"uint256",nodeType:"ElementaryTypeName",src:"2623:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2622:9:7"},scope:2132,src:"2562:110:7",stateMutability:"view",superFunction:219,visibility:"external"},{body:{id:475,nodeType:"Block",src:"2784:147:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:459,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:454,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:448,src:"2798:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:455,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"2807:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:457,indexExpression:{argumentTypes:null,id:456,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:446,src:"2826:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2807:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:458,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"2807:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"2798:42:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:453,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"2790:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:460,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"2790:51:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:461,nodeType:"ExpressionStatement",src:"2790:51:7"},{assignments:[463],declarations:[{constant:!1,id:463,name:"index",nodeType:"VariableDeclaration",scope:476,src:"2847:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:462,name:"uint256",nodeType:"ElementaryTypeName",src:"2847:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:469,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:464,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"2863:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:466,indexExpression:{argumentTypes:null,id:465,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:446,src:"2882:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2863:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:468,indexExpression:{argumentTypes:null,id:467,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:448,src:"2890:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2863:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"2847:50:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:470,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"2910:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:472,indexExpression:{argumentTypes:null,id:471,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:463,src:"2917:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"2910:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:473,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"2910:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:452,id:474,nodeType:"Return",src:"2903:23:7"}]},documentation:null,id:476,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfOwnerByIndex",nodeType:"FunctionDefinition",parameters:{id:449,nodeType:"ParameterList",parameters:[{constant:!1,id:446,name:"_owner",nodeType:"VariableDeclaration",scope:476,src:"2720:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:445,name:"address",nodeType:"ElementaryTypeName",src:"2720:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:448,name:"_index",nodeType:"VariableDeclaration",scope:476,src:"2736:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:447,name:"uint256",nodeType:"ElementaryTypeName",src:"2736:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2719:32:7"},payable:!1,returnParameters:{id:452,nodeType:"ParameterList",parameters:[{constant:!1,id:451,name:"",nodeType:"VariableDeclaration",scope:476,src:"2775:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:450,name:"uint256",nodeType:"ElementaryTypeName",src:"2775:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2774:9:7"},scope:2132,src:"2691:240:7",stateMutability:"view",superFunction:228,visibility:"external"},{body:{id:495,nodeType:"Block",src:"3007:72:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:487,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:484,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:478,src:"3021:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:485,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3030:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:486,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"3030:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3021:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:483,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3013:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:488,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3013:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:489,nodeType:"ExpressionStatement",src:"3013:31:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:490,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3057:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:492,indexExpression:{argumentTypes:null,id:491,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:478,src:"3064:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3057:14:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:493,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"3057:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:482,id:494,nodeType:"Return",src:"3050:24:7"}]},documentation:null,id:496,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenIdByIndex",nodeType:"FunctionDefinition",parameters:{id:479,nodeType:"ParameterList",parameters:[{constant:!1,id:478,name:"_index",nodeType:"VariableDeclaration",scope:496,src:"2959:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:477,name:"uint256",nodeType:"ElementaryTypeName",src:"2959:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2958:16:7"},payable:!1,returnParameters:{id:482,nodeType:"ParameterList",parameters:[{constant:!1,id:481,name:"",nodeType:"VariableDeclaration",scope:496,src:"2998:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:480,name:"uint256",nodeType:"ElementaryTypeName",src:"2998:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"2997:9:7"},scope:2132,src:"2935:144:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:527,nodeType:"Block",src:"3157:145:7",statements:[{assignments:[504],declarations:[{constant:!1,id:504,name:"index",nodeType:"VariableDeclaration",scope:528,src:"3163:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:503,name:"uint",nodeType:"ElementaryTypeName",src:"3163:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:508,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,id:505,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"3176:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:507,indexExpression:{argumentTypes:null,id:506,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:498,src:"3191:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3176:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"3163:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:513,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:510,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3214:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:511,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3222:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:512,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"3222:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3214:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:509,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3206:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:514,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3206:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:515,nodeType:"ExpressionStatement",src:"3206:30:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:522,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:517,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3250:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:519,indexExpression:{argumentTypes:null,id:518,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3257:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3250:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:520,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"3250:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:521,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:498,src:"3270:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"3250:28:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:516,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"3242:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:523,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3242:37:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:524,nodeType:"ExpressionStatement",src:"3242:37:7"},{expression:{argumentTypes:null,id:525,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:504,src:"3292:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:502,id:526,nodeType:"Return",src:"3285:12:7"}]},documentation:null,id:528,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"indexByTokenId",nodeType:"FunctionDefinition",parameters:{id:499,nodeType:"ParameterList",parameters:[{constant:!1,id:498,name:"_tokenId",nodeType:"VariableDeclaration",scope:528,src:"3107:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:497,name:"uint256",nodeType:"ElementaryTypeName",src:"3107:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3106:18:7"},payable:!1,returnParameters:{id:502,nodeType:"ParameterList",parameters:[{constant:!1,id:501,name:"",nodeType:"VariableDeclaration",scope:528,src:"3148:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:500,name:"uint256",nodeType:"ElementaryTypeName",src:"3148:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3147:9:7"},scope:2132,src:"3083:219:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:535,nodeType:"Block",src:"3400:30:7",statements:[{expression:{argumentTypes:null,hexValue:"53697850696c6c617273",id:533,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"3413:12:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_8c15bb392de923abc867448f8286fcc16b30a5f15d607099034c4841e7728fbe",typeString:'literal_string "SixPillars"'},value:"SixPillars"},functionReturnParameters:532,id:534,nodeType:"Return",src:"3406:19:7"}]},documentation:"ERC721Metadata**",id:536,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"name",nodeType:"FunctionDefinition",parameters:{id:529,nodeType:"ParameterList",parameters:[],src:"3368:2:7"},payable:!1,returnParameters:{id:532,nodeType:"ParameterList",parameters:[{constant:!1,id:531,name:"",nodeType:"VariableDeclaration",scope:536,src:"3392:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:530,name:"string",nodeType:"ElementaryTypeName",src:"3392:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3391:8:7"},scope:2132,src:"3355:75:7",stateMutability:"view",superFunction:242,visibility:"public"},{body:{id:543,nodeType:"Block",src:"3496:23:7",statements:[{expression:{argumentTypes:null,hexValue:"535054",id:541,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"3509:5:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_2f05a0ffc0c491cdeacb458a2f79632dce5a8d01cb1da4810845afdbd2865821",typeString:'literal_string "SPT"'},value:"SPT"},functionReturnParameters:540,id:542,nodeType:"Return",src:"3502:12:7"}]},documentation:null,id:544,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"symbol",nodeType:"FunctionDefinition",parameters:{id:537,nodeType:"ParameterList",parameters:[],src:"3464:2:7"},payable:!1,returnParameters:{id:540,nodeType:"ParameterList",parameters:[{constant:!1,id:539,name:"",nodeType:"VariableDeclaration",scope:544,src:"3488:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:538,name:"string",nodeType:"ElementaryTypeName",src:"3488:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3487:8:7"},scope:2132,src:"3449:70:7",stateMutability:"view",superFunction:247,visibility:"public"},{body:{id:562,nodeType:"Block",src:"3605:78:7",statements:[{assignments:[552],declarations:[{constant:!1,id:552,name:"index",nodeType:"VariableDeclaration",scope:563,src:"3611:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:551,name:"uint",nodeType:"ElementaryTypeName",src:"3611:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:556,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:554,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:546,src:"3639:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:553,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"3624:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:555,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"3624:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"3611:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:557,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"3661:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:559,indexExpression:{argumentTypes:null,id:558,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:552,src:"3668:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"3661:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:560,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"uri",nodeType:"MemberAccess",referencedDeclaration:366,src:"3661:17:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},functionReturnParameters:550,id:561,nodeType:"Return",src:"3654:24:7"}]},documentation:null,id:563,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenURI",nodeType:"FunctionDefinition",parameters:{id:547,nodeType:"ParameterList",parameters:[{constant:!1,id:546,name:"_tokenId",nodeType:"VariableDeclaration",scope:563,src:"3556:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:545,name:"uint256",nodeType:"ElementaryTypeName",src:"3556:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"3555:18:7"},payable:!1,returnParameters:{id:550,nodeType:"ParameterList",parameters:[{constant:!1,id:549,name:"",nodeType:"VariableDeclaration",scope:563,src:"3597:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_memory_ptr",typeString:"string"},typeName:{id:548,name:"string",nodeType:"ElementaryTypeName",src:"3597:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"3596:8:7"},scope:2132,src:"3538:145:7",stateMutability:"view",superFunction:254,visibility:"external"},{body:{id:578,nodeType:"Block",src:"3857:49:7",statements:[{expression:{argumentTypes:null,id:576,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"3870:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},functionReturnParameters:575,id:577,nodeType:"Return",src:"3863:38:7"}]},documentation:"ERC721TokenReceiver**",id:579,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"onERC721Received",nodeType:"FunctionDefinition",parameters:{id:572,nodeType:"ParameterList",parameters:[{constant:!1,id:565,name:"_operator",nodeType:"VariableDeclaration",scope:579,src:"3767:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:564,name:"address",nodeType:"ElementaryTypeName",src:"3767:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:567,name:"_from",nodeType:"VariableDeclaration",scope:579,src:"3786:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:566,name:"address",nodeType:"ElementaryTypeName",src:"3786:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:569,name:"_tokenId",nodeType:"VariableDeclaration",scope:579,src:"3801:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:568,name:"uint256",nodeType:"ElementaryTypeName",src:"3801:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:571,name:"_data",nodeType:"VariableDeclaration",scope:579,src:"3819:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes"},typeName:{id:570,name:"bytes",nodeType:"ElementaryTypeName",src:"3819:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"3766:65:7"},payable:!1,returnParameters:{id:575,nodeType:"ParameterList",parameters:[{constant:!1,id:574,name:"",nodeType:"VariableDeclaration",scope:579,src:"3849:6:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:573,name:"bytes4",nodeType:"ElementaryTypeName",src:"3849:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],src:"3848:8:7"},scope:2132,src:"3741:165:7",stateMutability:"nonpayable",superFunction:276,visibility:"external"},{body:{id:599,nodeType:"Block",src:"4018:86:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:591,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:587,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:581,src:"4032:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:589,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4050:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:588,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"4042:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:590,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4042:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"4032:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:586,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"4024:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:592,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4024:29:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:593,nodeType:"ExpressionStatement",src:"4024:29:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:594,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"4066:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:596,indexExpression:{argumentTypes:null,id:595,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:581,src:"4085:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"4066:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:597,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"4066:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:585,id:598,nodeType:"Return",src:"4059:40:7"}]},documentation:"ERC721**",id:600,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOf",nodeType:"FunctionDefinition",parameters:{id:582,nodeType:"ParameterList",parameters:[{constant:!1,id:581,name:"_owner",nodeType:"VariableDeclaration",scope:600,src:"3970:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:580,name:"address",nodeType:"ElementaryTypeName",src:"3970:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"3969:16:7"},payable:!1,returnParameters:{id:585,nodeType:"ParameterList",parameters:[{constant:!1,id:584,name:"",nodeType:"VariableDeclaration",scope:600,src:"4009:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:583,name:"uint256",nodeType:"ElementaryTypeName",src:"4009:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4008:9:7"},scope:2132,src:"3951:153:7",stateMutability:"view",superFunction:132,visibility:"external"},{body:{id:611,nodeType:"Block",src:"4190:43:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:608,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:602,src:"4219:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:607,name:"internalOwnerOf",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:856,src:"4203:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_address_$",typeString:"function (uint256) view returns (address)"}},id:609,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4203:25:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:606,id:610,nodeType:"Return",src:"4196:32:7"}]},documentation:null,id:612,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"ownerOf",nodeType:"FunctionDefinition",parameters:{id:603,nodeType:"ParameterList",parameters:[{constant:!1,id:602,name:"_tokenId",nodeType:"VariableDeclaration",scope:612,src:"4140:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:601,name:"uint256",nodeType:"ElementaryTypeName",src:"4140:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4139:18:7"},payable:!1,returnParameters:{id:606,nodeType:"ParameterList",parameters:[{constant:!1,id:605,name:"",nodeType:"VariableDeclaration",scope:612,src:"4181:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:604,name:"address",nodeType:"ElementaryTypeName",src:"4181:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"4180:9:7"},scope:2132,src:"4123:110:7",stateMutability:"view",superFunction:139,visibility:"external"},{body:{id:652,nodeType:"Block",src:"4354:227:7",statements:[{assignments:[624],declarations:[{constant:!1,id:624,name:"sendAmount",nodeType:"VariableDeclaration",scope:653,src:"4360:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:623,name:"uint256",nodeType:"ElementaryTypeName",src:"4360:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:633,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:626,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4406:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:627,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:616,src:"4413:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:628,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:618,src:"4418:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:629,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"4428:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:630,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"4428:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:631,name:"_data",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:620,src:"4439:5:7",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes calldata"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes calldata"}],id:625,name:"internalSafeTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:904,src:"4381:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256,bytes memory) returns (uint256)"}},id:632,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4381:64:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"4360:85:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:636,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:634,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4455:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:635,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4459:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"4455:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:651,nodeType:"IfStatement",src:"4451:126:7",trueBody:{id:650,nodeType:"Block",src:"4471:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:640,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4494:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:637,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4479:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:639,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"4479:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:641,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4479:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:642,nodeType:"ExpressionStatement",src:"4479:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:644,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:614,src:"4537:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:645,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:616,src:"4544:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:646,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:618,src:"4549:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:647,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:624,src:"4559:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:643,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"4518:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:648,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4518:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:649,nodeType:"EmitStatement",src:"4513:57:7"}]}}]},documentation:null,id:653,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"safeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:621,nodeType:"ParameterList",parameters:[{constant:!1,id:614,name:"_from",nodeType:"VariableDeclaration",scope:653,src:"4278:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:613,name:"address",nodeType:"ElementaryTypeName",src:"4278:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:616,name:"_to",nodeType:"VariableDeclaration",scope:653,src:"4293:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:615,name:"address",nodeType:"ElementaryTypeName",src:"4293:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:618,name:"_tokenId",nodeType:"VariableDeclaration",scope:653,src:"4306:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:617,name:"uint256",nodeType:"ElementaryTypeName",src:"4306:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:620,name:"_data",nodeType:"VariableDeclaration",scope:653,src:"4324:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_calldata_ptr",typeString:"bytes"},typeName:{id:619,name:"bytes",nodeType:"ElementaryTypeName",src:"4324:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"4277:59:7"},payable:!0,returnParameters:{id:622,nodeType:"ParameterList",parameters:[],src:"4354:0:7"},scope:2132,src:"4252:329:7",stateMutability:"payable",superFunction:150,visibility:"external"},{body:{id:691,nodeType:"Block",src:"4689:224:7",statements:[{assignments:[663],declarations:[{constant:!1,id:663,name:"sendAmount",nodeType:"VariableDeclaration",scope:692,src:"4695:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:662,name:"uint256",nodeType:"ElementaryTypeName",src:"4695:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:672,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:665,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4741:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:666,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:657,src:"4748:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:667,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:659,src:"4753:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:668,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"4763:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:669,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"4763:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"",id:670,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"4774:2:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'},value:""}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'}],id:664,name:"internalSafeTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:904,src:"4716:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256,bytes memory) returns (uint256)"}},id:671,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4716:61:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"4695:82:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:675,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:673,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"4787:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:674,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4791:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"4787:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:690,nodeType:"IfStatement",src:"4783:126:7",trueBody:{id:689,nodeType:"Block",src:"4803:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:679,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4826:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:676,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4811:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:678,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"4811:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:680,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4811:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:681,nodeType:"ExpressionStatement",src:"4811:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:683,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:655,src:"4869:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:684,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:657,src:"4876:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:685,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:659,src:"4881:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:686,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:663,src:"4891:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:682,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"4850:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:687,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"4850:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:688,nodeType:"EmitStatement",src:"4845:57:7"}]}}]},documentation:null,id:692,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"safeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:660,nodeType:"ParameterList",parameters:[{constant:!1,id:655,name:"_from",nodeType:"VariableDeclaration",scope:692,src:"4626:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:654,name:"address",nodeType:"ElementaryTypeName",src:"4626:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:657,name:"_to",nodeType:"VariableDeclaration",scope:692,src:"4641:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:656,name:"address",nodeType:"ElementaryTypeName",src:"4641:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:659,name:"_tokenId",nodeType:"VariableDeclaration",scope:692,src:"4654:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:658,name:"uint256",nodeType:"ElementaryTypeName",src:"4654:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4625:46:7"},payable:!0,returnParameters:{id:661,nodeType:"ParameterList",parameters:[],src:"4689:0:7"},scope:2132,src:"4600:313:7",stateMutability:"payable",superFunction:159,visibility:"external"},{body:{id:729,nodeType:"Block",src:"5017:216:7",statements:[{assignments:[702],declarations:[{constant:!1,id:702,name:"sendAmount",nodeType:"VariableDeclaration",scope:730,src:"5023:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:701,name:"uint256",nodeType:"ElementaryTypeName",src:"5023:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:710,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:704,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5065:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:705,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:696,src:"5072:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:706,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:698,src:"5077:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:707,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5087:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:708,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"value",nodeType:"MemberAccess",referencedDeclaration:null,src:"5087:9:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:703,name:"internalTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1052,src:"5044:20:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256) returns (uint256)"}},id:709,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5044:53:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"5023:74:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:713,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:711,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"5107:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:712,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5111:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"5107:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:728,nodeType:"IfStatement",src:"5103:126:7",trueBody:{id:727,nodeType:"Block",src:"5123:106:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:717,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5146:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:714,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5131:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:716,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"transfer",nodeType:"MemberAccess",referencedDeclaration:null,src:"5131:14:7",typeDescriptions:{typeIdentifier:"t_function_transfer_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:718,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5131:26:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:719,nodeType:"ExpressionStatement",src:"5131:26:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:721,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:694,src:"5189:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:722,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:696,src:"5196:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:723,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:698,src:"5201:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:724,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:702,src:"5211:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:720,name:"TransferWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:348,src:"5170:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:725,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5170:52:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:726,nodeType:"EmitStatement",src:"5165:57:7"}]}}]},documentation:null,id:730,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"transferFrom",nodeType:"FunctionDefinition",parameters:{id:699,nodeType:"ParameterList",parameters:[{constant:!1,id:694,name:"_from",nodeType:"VariableDeclaration",scope:730,src:"4954:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:693,name:"address",nodeType:"ElementaryTypeName",src:"4954:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:696,name:"_to",nodeType:"VariableDeclaration",scope:730,src:"4969:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:695,name:"address",nodeType:"ElementaryTypeName",src:"4969:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:698,name:"_tokenId",nodeType:"VariableDeclaration",scope:730,src:"4982:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:697,name:"uint256",nodeType:"ElementaryTypeName",src:"4982:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"4953:46:7"},payable:!0,returnParameters:{id:700,nodeType:"ParameterList",parameters:[],src:"5017:0:7"},scope:2132,src:"4932:301:7",stateMutability:"payable",superFunction:168,visibility:"external"},{body:{id:743,nodeType:"Block",src:"5323:50:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:738,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:732,src:"5345:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:739,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:734,src:"5356:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"30",id:740,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"5366:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:737,name:"internalApprove",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1161,src:"5329:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,uint256,uint256)"}},id:741,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5329:39:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:742,nodeType:"ExpressionStatement",src:"5329:39:7"}]},documentation:null,id:744,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"approve",nodeType:"FunctionDefinition",parameters:{id:735,nodeType:"ParameterList",parameters:[{constant:!1,id:732,name:"_approved",nodeType:"VariableDeclaration",scope:744,src:"5269:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:731,name:"address",nodeType:"ElementaryTypeName",src:"5269:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:734,name:"_tokenId",nodeType:"VariableDeclaration",scope:744,src:"5288:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:733,name:"uint256",nodeType:"ElementaryTypeName",src:"5288:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5268:37:7"},payable:!0,returnParameters:{id:736,nodeType:"ParameterList",parameters:[],src:"5323:0:7"},scope:2132,src:"5252:121:7",stateMutability:"payable",superFunction:175,visibility:"external"},{body:{id:774,nodeType:"Block",src:"5463:160:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:755,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:752,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5477:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:753,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5490:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:754,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5490:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"5477:23:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:751,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"5469:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:756,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5469:32:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:757,nodeType:"ExpressionStatement",src:"5469:32:7"},{expression:{argumentTypes:null,id:765,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:758,name:"operatorApprovals",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:389,src:"5507:17:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"}},id:762,indexExpression:{argumentTypes:null,expression:{argumentTypes:null,id:759,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5525:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:760,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5525:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"5507:29:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"}},id:763,indexExpression:{argumentTypes:null,id:761,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5537:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"5507:40:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:764,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:748,src:"5550:9:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"5507:52:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:766,nodeType:"ExpressionStatement",src:"5507:52:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:768,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"5585:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:769,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"5585:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:770,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:746,src:"5597:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:771,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:748,src:"5608:9:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_bool",typeString:"bool"}],id:767,name:"ApprovalForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:125,src:"5570:14:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",typeString:"function (address,address,bool)"}},id:772,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5570:48:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:773,nodeType:"EmitStatement",src:"5565:53:7"}]},documentation:null,id:775,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"setApprovalForAll",nodeType:"FunctionDefinition",parameters:{id:749,nodeType:"ParameterList",parameters:[{constant:!1,id:746,name:"_operator",nodeType:"VariableDeclaration",scope:775,src:"5419:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:745,name:"address",nodeType:"ElementaryTypeName",src:"5419:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:748,name:"_approved",nodeType:"VariableDeclaration",scope:775,src:"5438:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:747,name:"bool",nodeType:"ElementaryTypeName",src:"5438:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"5418:35:7"},payable:!1,returnParameters:{id:750,nodeType:"ParameterList",parameters:[],src:"5463:0:7"},scope:2132,src:"5392:231:7",stateMutability:"nonpayable",superFunction:182,visibility:"external"},{body:{id:786,nodeType:"Block",src:"5713:47:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:783,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:777,src:"5746:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:782,name:"internalGetApproved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1071,src:"5726:19:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_address_$",typeString:"function (uint256) view returns (address)"}},id:784,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5726:29:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:781,id:785,nodeType:"Return",src:"5719:36:7"}]},documentation:null,id:787,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"getApproved",nodeType:"FunctionDefinition",parameters:{id:778,nodeType:"ParameterList",parameters:[{constant:!1,id:777,name:"_tokenId",nodeType:"VariableDeclaration",scope:787,src:"5663:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:776,name:"uint256",nodeType:"ElementaryTypeName",src:"5663:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5662:18:7"},payable:!1,returnParameters:{id:781,nodeType:"ParameterList",parameters:[{constant:!1,id:780,name:"",nodeType:"VariableDeclaration",scope:787,src:"5704:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:779,name:"address",nodeType:"ElementaryTypeName",src:"5704:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"5703:9:7"},scope:2132,src:"5642:118:7",stateMutability:"view",superFunction:189,visibility:"external"},{body:{id:801,nodeType:"Block",src:"5867:61:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:797,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:789,src:"5905:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:798,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:791,src:"5913:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:796,name:"internalIsApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1087,src:"5880:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:799,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"5880:43:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:795,id:800,nodeType:"Return",src:"5873:50:7"}]},documentation:null,id:802,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"isApprovedForAll",nodeType:"FunctionDefinition",parameters:{id:792,nodeType:"ParameterList",parameters:[{constant:!1,id:789,name:"_owner",nodeType:"VariableDeclaration",scope:802,src:"5805:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:788,name:"address",nodeType:"ElementaryTypeName",src:"5805:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:791,name:"_operator",nodeType:"VariableDeclaration",scope:802,src:"5821:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:790,name:"address",nodeType:"ElementaryTypeName",src:"5821:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"5804:35:7"},payable:!1,returnParameters:{id:795,nodeType:"ParameterList",parameters:[{constant:!1,id:794,name:"",nodeType:"VariableDeclaration",scope:802,src:"5861:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:793,name:"bool",nodeType:"ElementaryTypeName",src:"5861:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"5860:6:7"},scope:2132,src:"5779:149:7",stateMutability:"view",superFunction:198,visibility:"public"},{body:{id:817,nodeType:"Block",src:"6066:56:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:812,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:804,src:"6088:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:813,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:806,src:"6099:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:814,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:808,src:"6109:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:811,name:"internalApprove",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1161,src:"6072:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,uint256,uint256)"}},id:815,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6072:45:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:816,nodeType:"ExpressionStatement",src:"6072:45:7"}]},documentation:"payment methods for ERC721**",id:818,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"approve",nodeType:"FunctionDefinition",parameters:{id:809,nodeType:"ParameterList",parameters:[{constant:!1,id:804,name:"_approved",nodeType:"VariableDeclaration",scope:818,src:"5995:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:803,name:"address",nodeType:"ElementaryTypeName",src:"5995:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:806,name:"_tokenId",nodeType:"VariableDeclaration",scope:818,src:"6014:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:805,name:"uint256",nodeType:"ElementaryTypeName",src:"6014:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:808,name:"_amount",nodeType:"VariableDeclaration",scope:818,src:"6032:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:807,name:"uint256",nodeType:"ElementaryTypeName",src:"6032:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"5994:54:7"},payable:!0,returnParameters:{id:810,nodeType:"ParameterList",parameters:[],src:"6066:0:7"},scope:2132,src:"5978:144:7",stateMutability:"payable",superFunction:null,visibility:"external"},{body:{id:836,nodeType:"Block",src:"6194:81:7",statements:[{assignments:[826],declarations:[{constant:!1,id:826,name:"index",nodeType:"VariableDeclaration",scope:837,src:"6200:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:825,name:"uint",nodeType:"ElementaryTypeName",src:"6200:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:830,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:828,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:820,src:"6228:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:827,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"6213:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:829,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6213:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"6200:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:831,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"6250:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:833,indexExpression:{argumentTypes:null,id:832,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:826,src:"6257:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"6250:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:834,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"6250:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:824,id:835,nodeType:"Return",src:"6243:27:7"}]},documentation:null,id:837,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"amountOf",nodeType:"FunctionDefinition",parameters:{id:821,nodeType:"ParameterList",parameters:[{constant:!1,id:820,name:"_tokenId",nodeType:"VariableDeclaration",scope:837,src:"6144:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:819,name:"uint256",nodeType:"ElementaryTypeName",src:"6144:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6143:18:7"},payable:!1,returnParameters:{id:824,nodeType:"ParameterList",parameters:[{constant:!1,id:823,name:"",nodeType:"VariableDeclaration",scope:837,src:"6185:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:822,name:"uint256",nodeType:"ElementaryTypeName",src:"6185:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6184:9:7"},scope:2132,src:"6126:149:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:855,nodeType:"Block",src:"6433:80:7",statements:[{assignments:[845],declarations:[{constant:!1,id:845,name:"index",nodeType:"VariableDeclaration",scope:856,src:"6439:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:844,name:"uint",nodeType:"ElementaryTypeName",src:"6439:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:849,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:847,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:839,src:"6467:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:846,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"6452:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:848,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6452:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"6439:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:850,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"6489:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:852,indexExpression:{argumentTypes:null,id:851,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:845,src:"6496:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"6489:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:853,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"6489:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:843,id:854,nodeType:"Return",src:"6482:26:7"}]},documentation:"internal methods for ERC721 external methods**",id:856,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalOwnerOf",nodeType:"FunctionDefinition",parameters:{id:840,nodeType:"ParameterList",parameters:[{constant:!1,id:839,name:"_tokenId",nodeType:"VariableDeclaration",scope:856,src:"6383:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:838,name:"uint256",nodeType:"ElementaryTypeName",src:"6383:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6382:18:7"},payable:!1,returnParameters:{id:843,nodeType:"ParameterList",parameters:[{constant:!1,id:842,name:"",nodeType:"VariableDeclaration",scope:856,src:"6424:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:841,name:"address",nodeType:"ElementaryTypeName",src:"6424:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"6423:9:7"},scope:2132,src:"6358:155:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:903,nodeType:"Block",src:"6668:316:7",statements:[{condition:{argumentTypes:null,arguments:[{argumentTypes:null,id:872,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6689:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:871,name:"isContract",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1539,src:"6678:10:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$returns$_t_bool_$",typeString:"function (address) view returns (bool)"}},id:873,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6678:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:895,nodeType:"IfStatement",src:"6674:243:7",trueBody:{id:894,nodeType:"Block",src:"6695:222:7",statements:[{assignments:[875],declarations:[{constant:!1,id:875,name:"retval",nodeType:"VariableDeclaration",scope:904,src:"6703:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"},typeName:{id:874,name:"bytes4",nodeType:"ElementaryTypeName",src:"6703:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},value:null,visibility:"internal"}],id:886,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:880,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"6761:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:881,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"6761:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:882,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:858,src:"6773:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:883,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:862,src:"6780:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:884,name:"_data",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:866,src:"6790:5:7",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}],expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:877,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6739:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:876,name:"ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:283,src:"6719:19:7",typeDescriptions:{typeIdentifier:"t_type$_t_contract$_ERC721TokenReceiver_$283_$",typeString:"type(contract ERC721TokenReceiver)"}},id:878,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6719:24:7",typeDescriptions:{typeIdentifier:"t_contract$_ERC721TokenReceiver_$283",typeString:"contract ERC721TokenReceiver"}},id:879,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"onERC721Received",nodeType:"MemberAccess",referencedDeclaration:276,src:"6719:41:7",typeDescriptions:{typeIdentifier:"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",typeString:"function (address,address,uint256,bytes memory) external returns (bytes4)"}},id:885,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6719:77:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"VariableDeclarationStatement",src:"6703:93:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bytes4",typeString:"bytes4"},id:890,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:888,name:"retval",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:875,src:"6812:6:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:889,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"6822:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}},src:"6812:41:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},{argumentTypes:null,hexValue:"696e7465726e616c536166655472616e7366657246726f6d206d73672e73656e6465722063616e206e6f7420617070726f766564",id:891,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"6855:54:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_cf6292341bd90e1f62f287f7556a45630456515082144a3919f87eb468252a55",typeString:'literal_string "internalSafeTransferFrom msg.sender can not approved"'},value:"internalSafeTransferFrom msg.sender can not approved"}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"},{typeIdentifier:"t_stringliteral_cf6292341bd90e1f62f287f7556a45630456515082144a3919f87eb468252a55",typeString:'literal_string "internalSafeTransferFrom msg.sender can not approved"'}],id:887,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2151,src:"6804:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",typeString:"function (bool,string memory) pure"}},id:892,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6804:106:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:893,nodeType:"ExpressionStatement",src:"6804:106:7"}]}},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:897,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:858,src:"6950:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:898,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:860,src:"6957:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:899,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:862,src:"6962:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:900,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:864,src:"6972:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:896,name:"internalTransferFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1052,src:"6929:20:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",typeString:"function (address,address,uint256,uint256) returns (uint256)"}},id:901,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"6929:50:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:870,id:902,nodeType:"Return",src:"6922:57:7"}]},documentation:null,id:904,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalSafeTransferFrom",nodeType:"FunctionDefinition",parameters:{id:867,nodeType:"ParameterList",parameters:[{constant:!1,id:858,name:"_from",nodeType:"VariableDeclaration",scope:904,src:"6566:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:857,name:"address",nodeType:"ElementaryTypeName",src:"6566:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:860,name:"_to",nodeType:"VariableDeclaration",scope:904,src:"6581:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:859,name:"address",nodeType:"ElementaryTypeName",src:"6581:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:862,name:"_tokenId",nodeType:"VariableDeclaration",scope:904,src:"6594:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:861,name:"uint256",nodeType:"ElementaryTypeName",src:"6594:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:864,name:"_value",nodeType:"VariableDeclaration",scope:904,src:"6612:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:863,name:"uint256",nodeType:"ElementaryTypeName",src:"6612:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:866,name:"_data",nodeType:"VariableDeclaration",scope:904,src:"6628:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes"},typeName:{id:865,name:"bytes",nodeType:"ElementaryTypeName",src:"6628:5:7",typeDescriptions:{typeIdentifier:"t_bytes_storage_ptr",typeString:"bytes"}},value:null,visibility:"internal"}],src:"6565:75:7"},payable:!1,returnParameters:{id:870,nodeType:"ParameterList",parameters:[{constant:!1,id:869,name:"",nodeType:"VariableDeclaration",scope:904,src:"6659:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:868,name:"uint256",nodeType:"ElementaryTypeName",src:"6659:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"6658:9:7"},scope:2132,src:"6532:452:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1051,nodeType:"Block",src:"7118:1333:7",statements:[{assignments:[918],declarations:[{constant:!1,id:918,name:"index",nodeType:"VariableDeclaration",scope:1052,src:"7124:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:917,name:"uint",nodeType:"ElementaryTypeName",src:"7124:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:922,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:920,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"7152:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:919,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"7137:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:921,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7137:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"7124:37:7"},{assignments:[924],declarations:[{constant:!1,id:924,name:"owner",nodeType:"VariableDeclaration",scope:1052,src:"7167:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:923,name:"address",nodeType:"ElementaryTypeName",src:"7167:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:929,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:925,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7183:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:927,indexExpression:{argumentTypes:null,id:926,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7190:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7183:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:928,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"7183:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"7167:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:939,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:933,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:931,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"7217:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:932,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7226:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7217:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:934,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7216:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:937,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:935,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"7237:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:936,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"7246:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7237:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:938,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7236:14:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"7216:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:930,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"7208:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:940,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7208:43:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:941,nodeType:"ExpressionStatement",src:"7208:43:7"},{assignments:[943],declarations:[{constant:!1,id:943,name:"amount",nodeType:"VariableDeclaration",scope:1052,src:"7727:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:942,name:"uint256",nodeType:"ElementaryTypeName",src:"7727:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:948,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:944,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7744:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:946,indexExpression:{argumentTypes:null,id:945,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7751:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7744:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:947,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"7744:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"7727:37:7"},{expression:{argumentTypes:null,id:954,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:949,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"7770:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:951,indexExpression:{argumentTypes:null,id:950,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"7777:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"7770:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:952,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"7770:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:953,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"7793:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"7770:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:955,nodeType:"ExpressionStatement",src:"7770:24:7"},{assignments:[957],declarations:[{constant:!1,id:957,name:"canTransfer",nodeType:"VariableDeclaration",scope:1052,src:"7800:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:956,name:"bool",nodeType:"ElementaryTypeName",src:"7800:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],id:969,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:968,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:961,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:958,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"7820:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:959,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"7820:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:960,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7834:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"7820:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:962,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"7819:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"||",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,id:964,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:924,src:"7869:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,expression:{argumentTypes:null,id:965,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"7876:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:966,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"7876:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:963,name:"internalIsApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1087,src:"7844:24:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:967,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7844:43:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"7819:68:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"VariableDeclarationStatement",src:"7800:87:7"},{condition:{argumentTypes:null,id:970,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"7897:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:984,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:978,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8005:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:980,indexExpression:{argumentTypes:null,id:979,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8012:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8005:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:981,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8005:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:982,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"8031:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:983,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"8031:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8005:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1010,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1004,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:997,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8129:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:999,indexExpression:{argumentTypes:null,id:998,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8136:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8129:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1e3,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8129:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1002,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8163:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1001,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"8155:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1003,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8155:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8129:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1005,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8128:38:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1008,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1006,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8171:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:1007,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8175:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8171:10:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1009,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8170:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8128:54:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1023,nodeType:"IfStatement",src:"8124:134:7",trueBody:{id:1022,nodeType:"Block",src:"8184:74:7",statements:[{expression:{argumentTypes:null,id:1013,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1011,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:915,src:"8192:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1012,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8205:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8192:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1014,nodeType:"ExpressionStatement",src:"8192:19:7"},{expression:{argumentTypes:null,id:1020,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1015,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8219:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1018,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1016,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8234:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1017,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"8244:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8234:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1019,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8233:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8219:32:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1021,nodeType:"ExpressionStatement",src:"8219:32:7"}]}},id:1024,nodeType:"IfStatement",src:"8001:257:7",trueBody:{id:996,nodeType:"Block",src:"8043:75:7",statements:[{expression:{argumentTypes:null,id:987,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:985,name:"sendAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:915,src:"8051:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:986,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8064:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8051:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:988,nodeType:"ExpressionStatement",src:"8051:19:7"},{expression:{argumentTypes:null,id:994,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:989,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8078:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:992,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:990,name:"amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:943,src:"8093:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:991,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"8103:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"8093:16:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:993,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"8092:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8078:32:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:995,nodeType:"ExpressionStatement",src:"8078:32:7"}]}},id:1025,nodeType:"IfStatement",src:"7893:365:7",trueBody:{id:977,nodeType:"Block",src:"7910:85:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:974,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:972,name:"_value",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:912,src:"7975:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"30",id:973,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"7985:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"7975:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:971,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"7967:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:975,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"7967:20:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:976,nodeType:"ExpressionStatement",src:"7967:20:7"}]}},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1027,name:"canTransfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:957,src:"8271:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1026,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8263:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1028,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8263:20:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1029,nodeType:"ExpressionStatement",src:"8263:20:7"},{expression:{argumentTypes:null,id:1037,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1030,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8312:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1032,indexExpression:{argumentTypes:null,id:1031,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:918,src:"8319:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8312:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1033,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8312:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1035,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"8345:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1034,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"8337:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1036,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8337:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8312:35:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1038,nodeType:"ExpressionStatement",src:"8312:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1040,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"8384:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1041,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"8391:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1042,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"8396:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1039,name:"transferToken",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1523,src:"8370:13:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1043,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8370:35:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1044,nodeType:"ExpressionStatement",src:"8370:35:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1046,name:"_from",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:906,src:"8425:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1047,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:908,src:"8432:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1048,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:910,src:"8437:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1045,name:"Transfer",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:109,src:"8416:8:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1049,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8416:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1050,nodeType:"EmitStatement",src:"8411:35:7"}]},documentation:null,id:1052,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalTransferFrom",nodeType:"FunctionDefinition",parameters:{id:913,nodeType:"ParameterList",parameters:[{constant:!1,id:906,name:"_from",nodeType:"VariableDeclaration",scope:1052,src:"7018:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:905,name:"address",nodeType:"ElementaryTypeName",src:"7018:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:908,name:"_to",nodeType:"VariableDeclaration",scope:1052,src:"7033:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:907,name:"address",nodeType:"ElementaryTypeName",src:"7033:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:910,name:"_tokenId",nodeType:"VariableDeclaration",scope:1052,src:"7046:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:909,name:"uint256",nodeType:"ElementaryTypeName",src:"7046:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:912,name:"_value",nodeType:"VariableDeclaration",scope:1052,src:"7064:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:911,name:"uint256",nodeType:"ElementaryTypeName",src:"7064:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"7017:62:7"},payable:!1,returnParameters:{id:916,nodeType:"ParameterList",parameters:[{constant:!1,id:915,name:"sendAmount",nodeType:"VariableDeclaration",scope:1052,src:"7098:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:914,name:"uint256",nodeType:"ElementaryTypeName",src:"7098:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"7097:20:7"},scope:2132,src:"6988:1463:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1070,nodeType:"Block",src:"8534:83:7",statements:[{assignments:[1060],declarations:[{constant:!1,id:1060,name:"index",nodeType:"VariableDeclaration",scope:1071,src:"8540:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1059,name:"uint",nodeType:"ElementaryTypeName",src:"8540:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1064,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1062,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1054,src:"8568:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1061,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"8553:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1063,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8553:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"8540:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1065,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8590:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1067,indexExpression:{argumentTypes:null,id:1066,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1060,src:"8597:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8590:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1068,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"8590:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1058,id:1069,nodeType:"Return",src:"8583:29:7"}]},documentation:null,id:1071,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalGetApproved",nodeType:"FunctionDefinition",parameters:{id:1055,nodeType:"ParameterList",parameters:[{constant:!1,id:1054,name:"_tokenId",nodeType:"VariableDeclaration",scope:1071,src:"8484:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1053,name:"uint256",nodeType:"ElementaryTypeName",src:"8484:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"8483:18:7"},payable:!1,returnParameters:{id:1058,nodeType:"ParameterList",parameters:[{constant:!1,id:1057,name:"",nodeType:"VariableDeclaration",scope:1071,src:"8525:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1056,name:"address",nodeType:"ElementaryTypeName",src:"8525:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"8524:9:7"},scope:2132,src:"8455:162:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1086,nodeType:"Block",src:"8719:54:7",statements:[{expression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1080,name:"operatorApprovals",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:389,src:"8732:17:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",typeString:"mapping(address => mapping(address => bool))"}},id:1082,indexExpression:{argumentTypes:null,id:1081,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1073,src:"8750:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8732:25:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_bool_$",typeString:"mapping(address => bool)"}},id:1084,indexExpression:{argumentTypes:null,id:1083,name:"_operator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1075,src:"8758:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8732:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:1079,id:1085,nodeType:"Return",src:"8725:43:7"}]},documentation:null,id:1087,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"internalIsApprovedForAll",nodeType:"FunctionDefinition",parameters:{id:1076,nodeType:"ParameterList",parameters:[{constant:!1,id:1073,name:"_owner",nodeType:"VariableDeclaration",scope:1087,src:"8655:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1072,name:"address",nodeType:"ElementaryTypeName",src:"8655:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1075,name:"_operator",nodeType:"VariableDeclaration",scope:1087,src:"8671:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1074,name:"address",nodeType:"ElementaryTypeName",src:"8671:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"8654:35:7"},payable:!1,returnParameters:{id:1079,nodeType:"ParameterList",parameters:[{constant:!1,id:1078,name:"",nodeType:"VariableDeclaration",scope:1087,src:"8713:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1077,name:"bool",nodeType:"ElementaryTypeName",src:"8713:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"8712:6:7"},scope:2132,src:"8621:152:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1160,nodeType:"Block",src:"8865:415:7",statements:[{assignments:[1097],declarations:[{constant:!1,id:1097,name:"index",nodeType:"VariableDeclaration",scope:1161,src:"8871:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1096,name:"uint",nodeType:"ElementaryTypeName",src:"8871:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1101,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1099,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"8899:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1098,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"8884:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1100,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8884:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"8871:37:7"},{assignments:[1103],declarations:[{constant:!1,id:1103,name:"owner",nodeType:"VariableDeclaration",scope:1161,src:"8914:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1102,name:"address",nodeType:"ElementaryTypeName",src:"8914:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1108,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1104,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"8930:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1106,indexExpression:{argumentTypes:null,id:1105,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"8937:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"8930:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1107,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"8930:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"8914:35:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1112,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1110,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"8963:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1111,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"8976:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8963:18:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1109,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8955:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1113,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8955:27:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1114,nodeType:"ExpressionStatement",src:"8955:27:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1125,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1119,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1116,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"8996:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1117,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"8996:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1118,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9010:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"8996:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"||",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1121,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9036:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,expression:{argumentTypes:null,id:1122,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"9043:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1123,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"9043:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"}],id:1120,name:"isApprovedForAll",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:802,src:"9019:16:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",typeString:"function (address,address) view returns (bool)"}},id:1124,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9019:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"8996:58:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1115,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"8988:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1126,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"8988:67:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1127,nodeType:"ExpressionStatement",src:"8988:67:7"},{expression:{argumentTypes:null,id:1133,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1128,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9061:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1130,indexExpression:{argumentTypes:null,id:1129,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"9068:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9061:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1131,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"approved",nodeType:"MemberAccess",referencedDeclaration:364,src:"9061:22:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1132,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9086:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"9061:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1134,nodeType:"ExpressionStatement",src:"9061:34:7"},{expression:{argumentTypes:null,id:1140,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1135,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9101:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1137,indexExpression:{argumentTypes:null,id:1136,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1097,src:"9108:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9101:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1138,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"amount",nodeType:"MemberAccess",referencedDeclaration:354,src:"9101:20:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1139,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9124:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9101:30:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1141,nodeType:"ExpressionStatement",src:"9101:30:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1143,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9151:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1144,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9158:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1145,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"9169:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1142,name:"Approval",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:117,src:"9142:8:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1146,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9142:36:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1147,nodeType:"EmitStatement",src:"9137:41:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1150,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1148,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9188:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,id:1149,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9192:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9188:11:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1159,nodeType:"IfStatement",src:"9184:92:7",trueBody:{id:1158,nodeType:"Block",src:"9201:75:7",statements:[{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1152,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1103,src:"9233:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1153,name:"_approved",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1089,src:"9240:9:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1154,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1091,src:"9251:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1155,name:"_amount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1093,src:"9261:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1151,name:"ApprovalWithAmount",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:338,src:"9214:18:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:1156,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9214:55:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1157,nodeType:"EmitStatement",src:"9209:60:7"}]}}]},documentation:null,id:1161,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"internalApprove",nodeType:"FunctionDefinition",parameters:{id:1094,nodeType:"ParameterList",parameters:[{constant:!1,id:1089,name:"_approved",nodeType:"VariableDeclaration",scope:1161,src:"8802:17:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1088,name:"address",nodeType:"ElementaryTypeName",src:"8802:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1091,name:"_tokenId",nodeType:"VariableDeclaration",scope:1161,src:"8821:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1090,name:"uint256",nodeType:"ElementaryTypeName",src:"8821:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1093,name:"_amount",nodeType:"VariableDeclaration",scope:1161,src:"8839:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1092,name:"uint256",nodeType:"ElementaryTypeName",src:"8839:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"8801:54:7"},payable:!1,returnParameters:{id:1095,nodeType:"ParameterList",parameters:[],src:"8865:0:7"},scope:2132,src:"8777:503:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1265,nodeType:"Block",src:"9438:610:7",statements:[{assignments:[1173],declarations:[{constant:!1,id:1173,name:"index",nodeType:"VariableDeclaration",scope:1266,src:"9444:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1172,name:"uint",nodeType:"ElementaryTypeName",src:"9444:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1177,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1174,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"9457:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1176,indexExpression:{argumentTypes:null,id:1175,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9472:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9457:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"9444:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1183,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1179,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9495:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1181,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9515:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1180,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9507:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1182,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9507:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"9495:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1178,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"9487:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1184,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9487:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1185,nodeType:"ExpressionStatement",src:"9487:31:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1195,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1188,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1186,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9529:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"30",id:1187,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9538:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"9529:10:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1189,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"9528:12:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1193,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,hexValue:"30",id:1190,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9545:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1191,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9549:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1192,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9549:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9545:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1194,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"9544:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"9528:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1206,nodeType:"IfStatement",src:"9524:89:7",trueBody:{id:1205,nodeType:"Block",src:"9565:48:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1202,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1197,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9581:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1199,indexExpression:{argumentTypes:null,hexValue:"30",id:1198,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9588:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9581:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1200,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"9581:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1201,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9597:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9581:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1196,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"9573:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1203,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9573:33:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1204,nodeType:"ExpressionStatement",src:"9573:33:7"}]}},{expression:{argumentTypes:null,id:1210,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1207,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9619:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1208,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9627:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1209,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9627:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"9619:21:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1211,nodeType:"ExpressionStatement",src:"9619:21:7"},{assignments:[1213],declarations:[{constant:!1,id:1213,name:"ownerIndex",nodeType:"VariableDeclaration",scope:1266,src:"9673:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1212,name:"uint256",nodeType:"ElementaryTypeName",src:"9673:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1218,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1214,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"9694:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1216,indexExpression:{argumentTypes:null,id:1215,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9713:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9694:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1217,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"9694:35:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"9673:56:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1223,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"9769:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1219,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"9735:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1221,indexExpression:{argumentTypes:null,id:1220,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9754:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"9735:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1222,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"9735:33:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) returns (uint256)"}},id:1224,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9735:40:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1225,nodeType:"ExpressionStatement",src:"9735:40:7"},{assignments:[1227],declarations:[{constant:!1,id:1227,name:"creator",nodeType:"VariableDeclaration",scope:1266,src:"9782:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1226,name:"address",nodeType:"ElementaryTypeName",src:"9782:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1235,initialValue:{argumentTypes:null,condition:{argumentTypes:null,id:1228,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1169,src:"9800:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1232,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9837:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1231,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9829:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1233,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9829:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1234,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"Conditional",src:"9800:39:7",trueExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1229,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"9816:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1230,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"9816:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"9782:57:7"},{assignments:[1237],declarations:[{constant:!1,id:1237,name:"tokenWithCreator",nodeType:"VariableDeclaration",scope:1266,src:"9845:29:7",stateVariable:!1,storageLocation:"memory",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token"},typeName:{contractScope:null,id:1236,name:"Token",nodeType:"UserDefinedTypeName",referencedDeclaration:367,src:"9845:5:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage_ptr",typeString:"struct SixPillars.Token"}},value:null,visibility:"internal"}],id:1252,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1239,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"9883:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1240,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1167,src:"9893:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"30",id:1241,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9907:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},{argumentTypes:null,id:1242,name:"ownerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1213,src:"9910:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,expression:{argumentTypes:null,id:1243,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"9922:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1244,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"9922:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1245,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1163,src:"9936:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1246,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1227,src:"9946:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1248,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"9963:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1247,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"9955:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1249,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9955:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,hexValue:"",id:1250,isConstant:!1,isLValue:!1,isPure:!0,kind:"string",lValueRequested:!1,nodeType:"Literal",src:"9967:2:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'},value:""}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",typeString:'literal_string ""'}],id:1238,name:"Token",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:367,src:"9877:5:7",typeDescriptions:{typeIdentifier:"t_type$_t_struct$_Token_$367_storage_ptr_$",typeString:"type(struct SixPillars.Token storage pointer)"}},id:1251,isConstant:!1,isLValue:!1,isPure:!1,kind:"structConstructorCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9877:93:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory",typeString:"struct SixPillars.Token memory"}},nodeType:"VariableDeclarationStatement",src:"9845:125:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1256,name:"tokenWithCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1237,src:"9988:16:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_struct$_Token_$367_memory_ptr",typeString:"struct SixPillars.Token memory"}],expression:{argumentTypes:null,id:1253,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"9976:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1255,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"9976:11:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_struct$_Token_$367_storage_$returns$_t_uint256_$",typeString:"function (struct SixPillars.Token storage ref) returns (uint256)"}},id:1257,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"9976:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1258,nodeType:"ExpressionStatement",src:"9976:29:7"},{expression:{argumentTypes:null,id:1263,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1259,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"10011:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1261,indexExpression:{argumentTypes:null,id:1260,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1165,src:"10026:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"10011:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1262,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1173,src:"10038:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10011:32:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1264,nodeType:"ExpressionStatement",src:"10011:32:7"}]},documentation:"internal methods for ERC721**",id:1266,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"addTokenTo",nodeType:"FunctionDefinition",parameters:{id:1170,nodeType:"ParameterList",parameters:[{constant:!1,id:1163,name:"_toOwner",nodeType:"VariableDeclaration",scope:1266,src:"9351:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1162,name:"address",nodeType:"ElementaryTypeName",src:"9351:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1165,name:"_tokenId",nodeType:"VariableDeclaration",scope:1266,src:"9369:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1164,name:"uint256",nodeType:"ElementaryTypeName",src:"9369:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1167,name:"_inscription",nodeType:"VariableDeclaration",scope:1266,src:"9387:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1166,name:"uint256",nodeType:"ElementaryTypeName",src:"9387:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1169,name:"_isSetCreator",nodeType:"VariableDeclaration",scope:1266,src:"9409:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1168,name:"bool",nodeType:"ElementaryTypeName",src:"9409:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"9350:78:7"},payable:!1,returnParameters:{id:1171,nodeType:"ParameterList",parameters:[],src:"9438:0:7"},scope:2132,src:"9331:717:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1410,nodeType:"Block",src:"10124:1266:7",statements:[{assignments:[1274],declarations:[{constant:!1,id:1274,name:"index",nodeType:"VariableDeclaration",scope:1411,src:"10130:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1273,name:"uint",nodeType:"ElementaryTypeName",src:"10130:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1278,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1276,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1270,src:"10158:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1275,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"10143:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1277,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"10143:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10130:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1285,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1280,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10181:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1282,indexExpression:{argumentTypes:null,id:1281,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10188:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10181:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1283,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"10181:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1284,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10204:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"10181:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1279,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"10173:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1286,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"10173:42:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1287,nodeType:"ExpressionStatement",src:"10173:42:7"},{assignments:[1289],declarations:[{constant:!1,id:1289,name:"removeTokenIndex",nodeType:"VariableDeclaration",scope:1411,src:"10285:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1288,name:"uint256",nodeType:"ElementaryTypeName",src:"10285:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1294,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1290,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10312:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1292,indexExpression:{argumentTypes:null,id:1291,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10319:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10312:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1293,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"10312:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10285:51:7"},{assignments:[1296],declarations:[{constant:!1,id:1296,name:"lastTokenIndex",nodeType:"VariableDeclaration",scope:1411,src:"10342:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1295,name:"uint256",nodeType:"ElementaryTypeName",src:"10342:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1303,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1302,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1297,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10367:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1299,indexExpression:{argumentTypes:null,id:1298,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10386:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10367:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1300,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10367:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1301,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"10407:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"10367:41:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10342:66:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1306,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1304,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10418:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1305,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10438:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10418:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1331,nodeType:"IfStatement",src:"10414:245:7",trueBody:{id:1330,nodeType:"Block",src:"10454:205:7",statements:[{expression:{argumentTypes:null,id:1316,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1307,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10462:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1313,indexExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1308,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10469:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1310,indexExpression:{argumentTypes:null,id:1309,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10488:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10469:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1312,indexExpression:{argumentTypes:null,id:1311,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10500:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10469:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10462:55:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1314,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"10462:66:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1315,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10531:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10462:85:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1317,nodeType:"ExpressionStatement",src:"10462:85:7"},{expression:{argumentTypes:null,id:1328,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1318,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10555:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1321,indexExpression:{argumentTypes:null,id:1319,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10574:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10555:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1322,indexExpression:{argumentTypes:null,id:1320,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10586:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"10555:48:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1323,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10606:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1325,indexExpression:{argumentTypes:null,id:1324,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10625:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10606:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1327,indexExpression:{argumentTypes:null,id:1326,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10637:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10606:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10555:97:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1329,nodeType:"ExpressionStatement",src:"10555:97:7"}]}},{expression:{argumentTypes:null,id:1337,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1332,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"10664:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1334,indexExpression:{argumentTypes:null,id:1333,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1268,src:"10683:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10664:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1335,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10664:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1336,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10704:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10664:54:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1338,nodeType:"ExpressionStatement",src:"10664:54:7"},{expression:{argumentTypes:null,id:1341,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1339,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10786:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1340,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1274,src:"10805:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10786:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1342,nodeType:"ExpressionStatement",src:"10786:24:7"},{expression:{argumentTypes:null,id:1348,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1343,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10816:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1347,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1344,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10833:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1345,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"10833:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1346,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"10849:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"10833:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10816:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1349,nodeType:"ExpressionStatement",src:"10816:34:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1352,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1350,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"10860:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1351,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10880:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"10860:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1397,nodeType:"IfStatement",src:"10856:460:7",trueBody:{id:1396,nodeType:"Block",src:"10896:420:7",statements:[{assignments:[1354],declarations:[{constant:!1,id:1354,name:"lastTokenId",nodeType:"VariableDeclaration",scope:1411,src:"10904:19:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1353,name:"uint256",nodeType:"ElementaryTypeName",src:"10904:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1359,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1355,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"10926:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1357,indexExpression:{argumentTypes:null,id:1356,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"10933:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"10926:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1358,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"10926:25:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"10904:47:7"},{assignments:[1361],declarations:[{constant:!1,id:1361,name:"lastTokenOwner",nodeType:"VariableDeclaration",scope:1411,src:"10978:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1360,name:"address",nodeType:"ElementaryTypeName",src:"10978:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1366,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1362,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11003:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1364,indexExpression:{argumentTypes:null,id:1363,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11010:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11003:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1365,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"11003:28:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"10978:53:7"},{assignments:[1368],declarations:[{constant:!1,id:1368,name:"lastTokenOwnerIndex",nodeType:"VariableDeclaration",scope:1411,src:"11039:27:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1367,name:"uint256",nodeType:"ElementaryTypeName",src:"11039:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1373,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1369,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11069:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1371,indexExpression:{argumentTypes:null,id:1370,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11076:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11069:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1372,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11069:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11039:63:7"},{expression:{argumentTypes:null,id:1380,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1374,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11110:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1377,indexExpression:{argumentTypes:null,id:1375,name:"lastTokenOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1361,src:"11129:14:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11110:34:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1378,indexExpression:{argumentTypes:null,id:1376,name:"lastTokenOwnerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1368,src:"11145:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11110:55:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1379,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11168:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11110:74:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1381,nodeType:"ExpressionStatement",src:"11110:74:7"},{expression:{argumentTypes:null,id:1386,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1382,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"11206:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1384,indexExpression:{argumentTypes:null,id:1383,name:"lastTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1354,src:"11221:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11206:27:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1385,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11236:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11206:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1387,nodeType:"ExpressionStatement",src:"11206:46:7"},{expression:{argumentTypes:null,id:1394,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1388,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11260:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1390,indexExpression:{argumentTypes:null,id:1389,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1289,src:"11267:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11260:24:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1391,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11287:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1393,indexExpression:{argumentTypes:null,id:1392,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11294:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11287:22:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},src:"11260:49:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1395,nodeType:"ExpressionStatement",src:"11260:49:7"}]}},{expression:{argumentTypes:null,id:1402,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1398,name:"tokenIdToIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:374,src:"11321:14:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_uint256_$_t_uint256_$",typeString:"mapping(uint256 => uint256)"}},id:1400,indexExpression:{argumentTypes:null,id:1399,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1270,src:"11336:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11321:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:1401,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11348:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"11321:28:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1403,nodeType:"ExpressionStatement",src:"11321:28:7"},{expression:{argumentTypes:null,id:1408,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1404,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11355:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1406,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11355:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1407,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1296,src:"11371:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11355:30:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1409,nodeType:"ExpressionStatement",src:"11355:30:7"}]},documentation:null,id:1411,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"removeTokenFrom",nodeType:"FunctionDefinition",parameters:{id:1271,nodeType:"ParameterList",parameters:[{constant:!1,id:1268,name:"_fromOwner",nodeType:"VariableDeclaration",scope:1411,src:"10077:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1267,name:"address",nodeType:"ElementaryTypeName",src:"10077:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1270,name:"_tokenId",nodeType:"VariableDeclaration",scope:1411,src:"10097:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1269,name:"uint256",nodeType:"ElementaryTypeName",src:"10097:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"10076:38:7"},payable:!1,returnParameters:{id:1272,nodeType:"ParameterList",parameters:[],src:"10124:0:7"},scope:2132,src:"10052:1338:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1522,nodeType:"Block",src:"11482:780:7",statements:[{assignments:[1421],declarations:[{constant:!1,id:1421,name:"index",nodeType:"VariableDeclaration",scope:1523,src:"11488:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1420,name:"uint",nodeType:"ElementaryTypeName",src:"11488:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1425,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1423,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1417,src:"11516:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1422,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"11501:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1424,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11501:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11488:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1445,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1437,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1431,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1427,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"11540:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1429,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11560:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1428,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"11552:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1430,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11552:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11540:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1432,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11539:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1435,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1433,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11568:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,id:1434,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"11582:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11568:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1436,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11567:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"11539:52:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1443,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1438,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11596:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1440,indexExpression:{argumentTypes:null,id:1439,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"11603:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11596:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1441,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"11596:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1442,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11619:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"11596:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1444,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"11595:35:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"11539:91:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1426,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"11531:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1446,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"11531:100:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1447,nodeType:"ExpressionStatement",src:"11531:100:7"},{assignments:[1449],declarations:[{constant:!1,id:1449,name:"removeTokenIndex",nodeType:"VariableDeclaration",scope:1523,src:"11667:24:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1448,name:"uint256",nodeType:"ElementaryTypeName",src:"11667:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1454,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1450,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11694:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1452,indexExpression:{argumentTypes:null,id:1451,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"11701:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11694:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1453,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11694:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11667:51:7"},{assignments:[1456],declarations:[{constant:!1,id:1456,name:"lastTokenIndex",nodeType:"VariableDeclaration",scope:1523,src:"11724:22:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1455,name:"uint256",nodeType:"ElementaryTypeName",src:"11724:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1463,initialValue:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1462,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1457,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11749:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1459,indexExpression:{argumentTypes:null,id:1458,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11768:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11749:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1460,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11749:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,hexValue:"31",id:1461,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"11789:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_1_by_1",typeString:"int_const 1"},value:"1"},src:"11749:41:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"11724:66:7"},{expression:{argumentTypes:null,id:1473,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1464,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"11797:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1470,indexExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1465,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11804:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1467,indexExpression:{argumentTypes:null,id:1466,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11823:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11804:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1469,indexExpression:{argumentTypes:null,id:1468,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"11835:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11804:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11797:55:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1471,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"11797:66:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1472,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1449,src:"11866:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11797:85:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1474,nodeType:"ExpressionStatement",src:"11797:85:7"},{expression:{argumentTypes:null,id:1485,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1475,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11888:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1478,indexExpression:{argumentTypes:null,id:1476,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11907:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11888:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1479,indexExpression:{argumentTypes:null,id:1477,name:"removeTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1449,src:"11919:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,nodeType:"IndexAccess",src:"11888:48:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1480,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11939:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1482,indexExpression:{argumentTypes:null,id:1481,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"11958:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11939:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1484,indexExpression:{argumentTypes:null,id:1483,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"11970:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11939:46:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11888:97:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1486,nodeType:"ExpressionStatement",src:"11888:97:7"},{expression:{argumentTypes:null,id:1492,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1487,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"11991:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1489,indexExpression:{argumentTypes:null,id:1488,name:"_fromOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1413,src:"12010:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"11991:30:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1490,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"11991:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1491,name:"lastTokenIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1456,src:"12031:14:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"11991:54:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1493,nodeType:"ExpressionStatement",src:"11991:54:7"},{assignments:[1495],declarations:[{constant:!1,id:1495,name:"ownerIndex",nodeType:"VariableDeclaration",scope:1523,src:"12076:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1494,name:"uint256",nodeType:"ElementaryTypeName",src:"12076:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1500,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1496,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"12097:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1498,indexExpression:{argumentTypes:null,id:1497,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12116:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12097:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1499,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"12097:35:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"12076:56:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1505,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12172:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1501,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"12138:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:1503,indexExpression:{argumentTypes:null,id:1502,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12157:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12138:28:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:1504,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"push",nodeType:"MemberAccess",referencedDeclaration:null,src:"12138:33:7",typeDescriptions:{typeIdentifier:"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) returns (uint256)"}},id:1506,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12138:40:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1507,nodeType:"ExpressionStatement",src:"12138:40:7"},{expression:{argumentTypes:null,id:1513,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1508,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"12184:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1510,indexExpression:{argumentTypes:null,id:1509,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12191:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12184:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1511,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"12184:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1512,name:"_toOwner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1415,src:"12206:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"12184:30:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1514,nodeType:"ExpressionStatement",src:"12184:30:7"},{expression:{argumentTypes:null,id:1520,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1515,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"12220:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1517,indexExpression:{argumentTypes:null,id:1516,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1421,src:"12227:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"12220:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1518,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"ownerIndex",nodeType:"MemberAccess",referencedDeclaration:356,src:"12220:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1519,name:"ownerIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1495,src:"12247:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"12220:37:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1521,nodeType:"ExpressionStatement",src:"12220:37:7"}]},documentation:null,id:1523,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"transferToken",nodeType:"FunctionDefinition",parameters:{id:1418,nodeType:"ParameterList",parameters:[{constant:!1,id:1413,name:"_fromOwner",nodeType:"VariableDeclaration",scope:1523,src:"11417:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1412,name:"address",nodeType:"ElementaryTypeName",src:"11417:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1415,name:"_toOwner",nodeType:"VariableDeclaration",scope:1523,src:"11437:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1414,name:"address",nodeType:"ElementaryTypeName",src:"11437:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1417,name:"_tokenId",nodeType:"VariableDeclaration",scope:1523,src:"11455:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1416,name:"uint256",nodeType:"ElementaryTypeName",src:"11455:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"11416:56:7"},payable:!1,returnParameters:{id:1419,nodeType:"ParameterList",parameters:[],src:"11482:0:7"},scope:2132,src:"11394:868:7",stateMutability:"nonpayable",superFunction:null,visibility:"internal"},{body:{id:1538,nodeType:"Block",src:"12329:87:7",statements:[{assignments:[],declarations:[{constant:!1,id:1531,name:"size",nodeType:"VariableDeclaration",scope:1539,src:"12335:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1530,name:"uint256",nodeType:"ElementaryTypeName",src:"12335:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1532,initialValue:null,nodeType:"VariableDeclarationStatement",src:"12335:12:7"},{externalReferences:[{size:{declaration:1531,isOffset:!1,isSlot:!1,src:"12364:4:7",valueSize:1}},{addr:{declaration:1525,isOffset:!1,isSlot:!1,src:"12384:4:7",valueSize:1}}],id:1533,nodeType:"InlineAssembly",operations:"{\n    size := extcodesize(addr)\n}",src:"12353:49:7"},{expression:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1536,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1534,name:"size",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1531,src:"12403:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:">",rightExpression:{argumentTypes:null,hexValue:"30",id:1535,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12410:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"12403:8:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},functionReturnParameters:1529,id:1537,nodeType:"Return",src:"12396:15:7"}]},documentation:null,id:1539,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"isContract",nodeType:"FunctionDefinition",parameters:{id:1526,nodeType:"ParameterList",parameters:[{constant:!1,id:1525,name:"addr",nodeType:"VariableDeclaration",scope:1539,src:"12286:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1524,name:"address",nodeType:"ElementaryTypeName",src:"12286:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"12285:14:7"},payable:!1,returnParameters:{id:1529,nodeType:"ParameterList",parameters:[{constant:!1,id:1528,name:"",nodeType:"VariableDeclaration",scope:1539,src:"12323:4:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1527,name:"bool",nodeType:"ElementaryTypeName",src:"12323:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"12322:6:7"},scope:2132,src:"12266:150:7",stateMutability:"view",superFunction:null,visibility:"internal"},{body:{id:1570,nodeType:"Block",src:"12471:308:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1543,name:"InterfaceId_ERC165",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:98,src:"12496:18:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1542,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12477:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1544,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12477:38:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1545,nodeType:"ExpressionStatement",src:"12477:38:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1547,name:"InterfaceId_ERC721",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:204,src:"12540:18:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1546,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12521:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1548,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12521:38:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1549,nodeType:"ExpressionStatement",src:"12521:38:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1551,name:"InterfaceId_ERC721Enumerable",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:234,src:"12584:28:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1550,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12565:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1552,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12565:48:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1553,nodeType:"ExpressionStatement",src:"12565:48:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1555,name:"InterfaceId_ERC721Metadata",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:260,src:"12638:26:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1554,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12619:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1556,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12619:46:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1557,nodeType:"ExpressionStatement",src:"12619:46:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1559,name:"InterfaceId_ERC721TokenReceiver",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:282,src:"12690:31:7",typeDescriptions:{typeIdentifier:"t_bytes4",typeString:"bytes4"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes4",typeString:"bytes4"}],id:1558,name:"_registerInterface",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:423,src:"12671:18:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_bytes4_$returns$__$",typeString:"function (bytes4)"}},id:1560,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12671:51:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1561,nodeType:"ExpressionStatement",src:"12671:51:7"},{expression:{argumentTypes:null,id:1564,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1562,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"12728:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"373232",id:1563,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12742:3:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_722_by_1",typeString:"int_const 722"},value:"722"},src:"12728:17:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1565,nodeType:"ExpressionStatement",src:"12728:17:7"},{expression:{argumentTypes:null,id:1568,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1566,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"12751:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,hexValue:"30",id:1567,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"12773:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"12751:23:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1569,nodeType:"ExpressionStatement",src:"12751:23:7"}]},documentation:"SixPillars**",id:1571,implemented:!0,isConstructor:!0,isDeclaredConst:!1,modifiers:[],name:"",nodeType:"FunctionDefinition",parameters:{id:1540,nodeType:"ParameterList",parameters:[],src:"12461:2:7"},payable:!1,returnParameters:{id:1541,nodeType:"ParameterList",parameters:[],src:"12471:0:7"},scope:2132,src:"12450:329:7",stateMutability:"nonpayable",superFunction:null,visibility:"public"},{body:{id:1591,nodeType:"Block",src:"12878:45:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1585,name:"msgHash",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1573,src:"12901:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},{argumentTypes:null,id:1586,name:"v",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1575,src:"12910:1:7",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"}},{argumentTypes:null,id:1587,name:"r",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1577,src:"12913:1:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},{argumentTypes:null,id:1588,name:"s",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1579,src:"12916:1:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes32",typeString:"bytes32"},{typeIdentifier:"t_uint8",typeString:"uint8"},{typeIdentifier:"t_bytes32",typeString:"bytes32"},{typeIdentifier:"t_bytes32",typeString:"bytes32"}],id:1584,name:"ecrecover",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2139,src:"12891:9:7",typeDescriptions:{typeIdentifier:"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",typeString:"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},id:1589,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"12891:27:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1583,id:1590,nodeType:"Return",src:"12884:34:7"}]},documentation:null,id:1592,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"recover",nodeType:"FunctionDefinition",parameters:{id:1580,nodeType:"ParameterList",parameters:[{constant:!1,id:1573,name:"msgHash",nodeType:"VariableDeclaration",scope:1592,src:"12800:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1572,name:"bytes32",nodeType:"ElementaryTypeName",src:"12800:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"},{constant:!1,id:1575,name:"v",nodeType:"VariableDeclaration",scope:1592,src:"12817:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"},typeName:{id:1574,name:"uint8",nodeType:"ElementaryTypeName",src:"12817:5:7",typeDescriptions:{typeIdentifier:"t_uint8",typeString:"uint8"}},value:null,visibility:"internal"},{constant:!1,id:1577,name:"r",nodeType:"VariableDeclaration",scope:1592,src:"12826:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1576,name:"bytes32",nodeType:"ElementaryTypeName",src:"12826:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"},{constant:!1,id:1579,name:"s",nodeType:"VariableDeclaration",scope:1592,src:"12837:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"},typeName:{id:1578,name:"bytes32",nodeType:"ElementaryTypeName",src:"12837:7:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}},value:null,visibility:"internal"}],src:"12799:48:7"},payable:!1,returnParameters:{id:1583,nodeType:"ParameterList",parameters:[{constant:!1,id:1582,name:"",nodeType:"VariableDeclaration",scope:1592,src:"12869:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1581,name:"address",nodeType:"ElementaryTypeName",src:"12869:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"12868:9:7"},scope:2132,src:"12783:140:7",stateMutability:"pure",superFunction:null,visibility:"public"},{body:{id:1668,nodeType:"Block",src:"13389:501:7",statements:[{assignments:[1602],declarations:[{constant:!1,id:1602,name:"seed",nodeType:"VariableDeclaration",scope:1669,src:"13395:12:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1601,name:"uint256",nodeType:"ElementaryTypeName",src:"13395:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1604,initialValue:{argumentTypes:null,id:1603,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"13410:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"13395:26:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1614,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1607,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1605,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13432:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,hexValue:"30",id:1606,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"13455:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},src:"13432:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1608,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13431:26:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1612,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1609,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13462:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1610,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13484:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1611,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13484:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13462:34:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1613,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13461:36:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"13431:66:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1624,nodeType:"IfStatement",src:"13427:131:7",trueBody:{id:1623,nodeType:"Block",src:"13499:59:7",statements:[{expression:{argumentTypes:null,id:1621,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1615,name:"seed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1602,src:"13507:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"+=",rightHandSide:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1619,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1616,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13516:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1617,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13516:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"-",rightExpression:{argumentTypes:null,id:1618,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13531:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13516:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],id:1620,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13515:36:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13507:44:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1622,nodeType:"ExpressionStatement",src:"13507:44:7"}]}},{assignments:[1626],declarations:[{constant:!1,id:1626,name:"newTokenId",nodeType:"VariableDeclaration",scope:1669,src:"13563:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1625,name:"uint256",nodeType:"ElementaryTypeName",src:"13563:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1635,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,arguments:[{argumentTypes:null,arguments:[{argumentTypes:null,id:1631,name:"seed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1602,src:"13619:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],expression:{argumentTypes:null,id:1629,name:"abi",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2134,src:"13602:3:7",typeDescriptions:{typeIdentifier:"t_magic_abi",typeString:"abi"}},id:1630,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,memberName:"encodePacked",nodeType:"MemberAccess",referencedDeclaration:null,src:"13602:16:7",typeDescriptions:{typeIdentifier:"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",typeString:"function () pure returns (bytes memory)"}},id:1632,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13602:22:7",typeDescriptions:{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes_memory_ptr",typeString:"bytes memory"}],id:1628,name:"keccak256",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2141,src:"13592:9:7",typeDescriptions:{typeIdentifier:"t_function_sha3_pure$__$returns$_t_bytes32_$",typeString:"function () pure returns (bytes32)"}},id:1633,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13592:33:7",typeDescriptions:{typeIdentifier:"t_bytes32",typeString:"bytes32"}}],expression:{argumentTypes:[{typeIdentifier:"t_bytes32",typeString:"bytes32"}],id:1627,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"13584:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_uint256_$",typeString:"type(uint256)"},typeName:"uint256"},id:1634,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13584:42:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"13563:63:7"},{expression:{argumentTypes:null,id:1638,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1636,name:"tokenIdSeed",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:376,src:"13632:11:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1637,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13646:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13632:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1639,nodeType:"ExpressionStatement",src:"13632:24:7"},{expression:{argumentTypes:null,id:1643,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,id:1640,name:"lastMintBlockNumber",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:378,src:"13662:19:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1641,name:"block",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2137,src:"13684:5:7",typeDescriptions:{typeIdentifier:"t_magic_block",typeString:"block"}},id:1642,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"number",nodeType:"MemberAccess",referencedDeclaration:null,src:"13684:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"13662:34:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1644,nodeType:"ExpressionStatement",src:"13662:34:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1646,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1594,src:"13713:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1647,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13718:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1648,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1596,src:"13730:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1649,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1598,src:"13744:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bool",typeString:"bool"}],id:1645,name:"addTokenTo",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1266,src:"13702:10:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",typeString:"function (address,uint256,uint256,bool)"}},id:1650,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13702:56:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1651,nodeType:"ExpressionStatement",src:"13702:56:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1653,name:"_to",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1594,src:"13781:3:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,condition:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:1656,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1654,name:"_isSetCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1598,src:"13793:13:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,hexValue:"74727565",id:1655,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"13810:4:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"},src:"13793:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:1657,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"13792:23:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1661,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"13839:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1660,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"13831:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1662,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13831:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1663,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"Conditional",src:"13792:49:7",trueExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1658,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"13818:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1659,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"13818:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1664,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1596,src:"13849:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,id:1665,name:"newTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1626,src:"13869:10:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1652,name:"Mint",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:310,src:"13769:4:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256,uint256)"}},id:1666,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"13769:116:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1667,nodeType:"EmitStatement",src:"13764:121:7"}]},documentation:"Mint new token.\n\n  /// emit Mint(owner, creator, inscription, tokenId)\n Throw _to is not valid.\n Throw new token id is already used. (please try again later)\n @param _to Owner of new token.\n @param _inscription immutable parameter for new token.\n @param _isSetCreator if true, creator of new token is msg.sender. if false, creator is zero address.",id:1669,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"mint",nodeType:"FunctionDefinition",parameters:{id:1599,nodeType:"ParameterList",parameters:[{constant:!1,id:1594,name:"_to",nodeType:"VariableDeclaration",scope:1669,src:"13325:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1593,name:"address",nodeType:"ElementaryTypeName",src:"13325:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1596,name:"_inscription",nodeType:"VariableDeclaration",scope:1669,src:"13338:20:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1595,name:"uint256",nodeType:"ElementaryTypeName",src:"13338:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1598,name:"_isSetCreator",nodeType:"VariableDeclaration",scope:1669,src:"13360:18:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},typeName:{id:1597,name:"bool",nodeType:"ElementaryTypeName",src:"13360:4:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},value:null,visibility:"internal"}],src:"13324:55:7"},payable:!1,returnParameters:{id:1600,nodeType:"ParameterList",parameters:[],src:"13389:0:7"},scope:2132,src:"13311:579:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1712,nodeType:"Block",src:"14106:271:7",statements:[{assignments:[1675],declarations:[{constant:!1,id:1675,name:"index",nodeType:"VariableDeclaration",scope:1713,src:"14112:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1674,name:"uint",nodeType:"ElementaryTypeName",src:"14112:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1679,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1677,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14140:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1676,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"14125:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1678,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14125:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"14112:37:7"},{assignments:[1681],declarations:[{constant:!1,id:1681,name:"owner",nodeType:"VariableDeclaration",scope:1713,src:"14155:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1680,name:"address",nodeType:"ElementaryTypeName",src:"14155:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1686,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1682,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14171:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1684,indexExpression:{argumentTypes:null,id:1683,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1675,src:"14178:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14171:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1685,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"14171:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14155:35:7"},{assignments:[1688],declarations:[{constant:!1,id:1688,name:"creator",nodeType:"VariableDeclaration",scope:1713,src:"14196:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1687,name:"address",nodeType:"ElementaryTypeName",src:"14196:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1693,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1689,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14214:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1691,indexExpression:{argumentTypes:null,id:1690,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1675,src:"14221:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14214:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1692,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14214:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14196:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1698,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1695,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14249:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1696,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14258:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1697,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14258:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14249:19:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1694,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"14241:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1699,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14241:28:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1700,nodeType:"ExpressionStatement",src:"14241:28:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,id:1702,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14291:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1703,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14298:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1701,name:"removeTokenFrom",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1411,src:"14275:15:7",typeDescriptions:{typeIdentifier:"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,uint256)"}},id:1704,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14275:32:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1705,nodeType:"ExpressionStatement",src:"14275:32:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1707,name:"owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1681,src:"14330:5:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1708,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1688,src:"14343:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1709,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1671,src:"14358:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1706,name:"Burn",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:318,src:"14318:4:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,address,uint256)"}},id:1710,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14318:54:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1711,nodeType:"EmitStatement",src:"14313:59:7"}]},documentation:"Burn your token.\n\n  /// emit Burn(owner, creator, tokenId)\n Throw token owner is not msg.sender.\n @param _tokenId id of the token you want to burned.",id:1713,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"burn",nodeType:"FunctionDefinition",parameters:{id:1672,nodeType:"ParameterList",parameters:[{constant:!1,id:1671,name:"_tokenId",nodeType:"VariableDeclaration",scope:1713,src:"14079:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1670,name:"uint256",nodeType:"ElementaryTypeName",src:"14079:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"14078:18:7"},payable:!1,returnParameters:{id:1673,nodeType:"ParameterList",parameters:[],src:"14106:0:7"},scope:2132,src:"14065:312:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1753,nodeType:"Block",src:"14640:229:7",statements:[{assignments:[1719],declarations:[{constant:!1,id:1719,name:"index",nodeType:"VariableDeclaration",scope:1754,src:"14646:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1718,name:"uint",nodeType:"ElementaryTypeName",src:"14646:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1723,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1721,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1715,src:"14674:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1720,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"14659:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1722,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14659:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"14646:37:7"},{assignments:[1725],declarations:[{constant:!1,id:1725,name:"creator",nodeType:"VariableDeclaration",scope:1754,src:"14689:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1724,name:"address",nodeType:"ElementaryTypeName",src:"14689:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1730,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1726,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14707:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1728,indexExpression:{argumentTypes:null,id:1727,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1719,src:"14714:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14707:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1729,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14707:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"14689:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1736,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1732,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1725,src:"14742:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1734,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"14761:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1733,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"14753:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1735,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14753:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14742:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1731,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"14734:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1737,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14734:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1738,nodeType:"ExpressionStatement",src:"14734:30:7"},{expression:{argumentTypes:null,id:1745,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1739,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"14770:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1741,indexExpression:{argumentTypes:null,id:1740,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1719,src:"14777:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"14770:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1742,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"14770:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,expression:{argumentTypes:null,id:1743,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14794:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1744,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14794:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"14770:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1746,nodeType:"ExpressionStatement",src:"14770:34:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:1748,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"14832:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1749,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"14832:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:1750,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1715,src:"14850:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1747,name:"CreatedBy",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:324,src:"14815:9:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",typeString:"function (address,uint256)"}},id:1751,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"14815:49:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1752,nodeType:"EmitStatement",src:"14810:54:7"}]},documentation:"Add creator to the token\n\n  /// msg.sender is new creator.\n emit CreatedBy(creator, tokenId)\n Throw token creator is already added.\n @param _tokenId id of the token you want add creator.",id:1754,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"createdBy",nodeType:"FunctionDefinition",parameters:{id:1716,nodeType:"ParameterList",parameters:[{constant:!1,id:1715,name:"_tokenId",nodeType:"VariableDeclaration",scope:1754,src:"14613:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1714,name:"uint256",nodeType:"ElementaryTypeName",src:"14613:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"14612:18:7"},payable:!1,returnParameters:{id:1717,nodeType:"ParameterList",parameters:[],src:"14640:0:7"},scope:2132,src:"14594:275:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1792,nodeType:"Block",src:"15152:202:7",statements:[{assignments:[1760],declarations:[{constant:!1,id:1760,name:"index",nodeType:"VariableDeclaration",scope:1793,src:"15158:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1759,name:"uint",nodeType:"ElementaryTypeName",src:"15158:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1764,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1762,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1756,src:"15186:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1761,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15171:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1763,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15171:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15158:37:7"},{assignments:[1766],declarations:[{constant:!1,id:1766,name:"creator",nodeType:"VariableDeclaration",scope:1793,src:"15201:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1765,name:"address",nodeType:"ElementaryTypeName",src:"15201:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],id:1771,initialValue:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1767,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15219:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1769,indexExpression:{argumentTypes:null,id:1768,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1760,src:"15226:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15219:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1770,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15219:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"VariableDeclarationStatement",src:"15201:39:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1776,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1773,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"15254:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1774,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"15254:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1775,name:"creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1766,src:"15268:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"15254:21:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1772,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"15246:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1777,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15246:30:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1778,nodeType:"ExpressionStatement",src:"15246:30:7"},{expression:{argumentTypes:null,id:1786,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1779,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15282:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1781,indexExpression:{argumentTypes:null,id:1780,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1760,src:"15289:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15282:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1782,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15282:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1784,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"15314:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1783,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"15306:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1785,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15306:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"15282:34:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},id:1787,nodeType:"ExpressionStatement",src:"15282:34:7"},{eventCall:{argumentTypes:null,arguments:[{argumentTypes:null,id:1789,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1756,src:"15340:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1788,name:"ClearCreator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:328,src:"15327:12:7",typeDescriptions:{typeIdentifier:"t_function_event_nonpayable$_t_uint256_$returns$__$",typeString:"function (uint256)"}},id:1790,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15327:22:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1791,nodeType:"EmitStatement",src:"15322:27:7"}]},documentation:"Remove creator to the token\n\n  /// creator of the token will be zero address.\n emit ClearCreator(tokenId)\n Throw token creator is not msg.sender.\n @param _tokenId id of the token you want remove creator.",id:1793,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"clearCreator",nodeType:"FunctionDefinition",parameters:{id:1757,nodeType:"ParameterList",parameters:[{constant:!1,id:1756,name:"_tokenId",nodeType:"VariableDeclaration",scope:1793,src:"15125:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1755,name:"uint256",nodeType:"ElementaryTypeName",src:"15125:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15124:18:7"},payable:!1,returnParameters:{id:1758,nodeType:"ParameterList",parameters:[],src:"15152:0:7"},scope:2132,src:"15103:251:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1811,nodeType:"Block",src:"15562:86:7",statements:[{assignments:[1801],declarations:[{constant:!1,id:1801,name:"index",nodeType:"VariableDeclaration",scope:1812,src:"15568:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1800,name:"uint",nodeType:"ElementaryTypeName",src:"15568:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1805,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1803,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1795,src:"15596:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1802,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15581:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1804,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15581:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15568:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1806,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15618:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1808,indexExpression:{argumentTypes:null,id:1807,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1801,src:"15625:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15618:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1809,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"inscription",nodeType:"MemberAccess",referencedDeclaration:352,src:"15618:25:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1799,id:1810,nodeType:"Return",src:"15611:32:7"}]},documentation:"Get inscription of the token.\n @param _tokenId id of the token you get it.\n @return uint256 inscription of the token.",id:1812,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"inscription",nodeType:"FunctionDefinition",parameters:{id:1796,nodeType:"ParameterList",parameters:[{constant:!1,id:1795,name:"_tokenId",nodeType:"VariableDeclaration",scope:1812,src:"15513:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1794,name:"uint256",nodeType:"ElementaryTypeName",src:"15513:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15512:18:7"},payable:!1,returnParameters:{id:1799,nodeType:"ParameterList",parameters:[{constant:!1,id:1798,name:"",nodeType:"VariableDeclaration",scope:1812,src:"15553:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1797,name:"uint256",nodeType:"ElementaryTypeName",src:"15553:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15552:9:7"},scope:2132,src:"15492:156:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1830,nodeType:"Block",src:"15844:82:7",statements:[{assignments:[1820],declarations:[{constant:!1,id:1820,name:"index",nodeType:"VariableDeclaration",scope:1831,src:"15850:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1819,name:"uint",nodeType:"ElementaryTypeName",src:"15850:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1824,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1822,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1814,src:"15878:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1821,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"15863:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1823,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"15863:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"15850:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1825,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"15900:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1827,indexExpression:{argumentTypes:null,id:1826,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1820,src:"15907:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"15900:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1828,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"15900:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},functionReturnParameters:1818,id:1829,nodeType:"Return",src:"15893:28:7"}]},documentation:"Get creator of the token.\n @param _tokenId id of the token you get it.\n @return address creator of the token.",id:1831,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"creator",nodeType:"FunctionDefinition",parameters:{id:1815,nodeType:"ParameterList",parameters:[{constant:!1,id:1814,name:"_tokenId",nodeType:"VariableDeclaration",scope:1831,src:"15795:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1813,name:"uint256",nodeType:"ElementaryTypeName",src:"15795:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"15794:18:7"},payable:!1,returnParameters:{id:1818,nodeType:"ParameterList",parameters:[{constant:!1,id:1817,name:"",nodeType:"VariableDeclaration",scope:1831,src:"15835:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1816,name:"address",nodeType:"ElementaryTypeName",src:"15835:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"15834:9:7"},scope:2132,src:"15778:148:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1849,nodeType:"Block",src:"16156:84:7",statements:[{assignments:[1839],declarations:[{constant:!1,id:1839,name:"index",nodeType:"VariableDeclaration",scope:1850,src:"16162:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1838,name:"uint",nodeType:"ElementaryTypeName",src:"16162:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1843,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1841,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1833,src:"16190:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1840,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"16175:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1842,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16175:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"16162:37:7"},{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1844,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16212:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1846,indexExpression:{argumentTypes:null,id:1845,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1839,src:"16219:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16212:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1847,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"createdAt",nodeType:"MemberAccess",referencedDeclaration:358,src:"16212:23:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1837,id:1848,nodeType:"Return",src:"16205:30:7"}]},documentation:"Get block number of the token at created.\n @param _tokenId id of the token you get it.\n @return uint256 block number of the token at created.",id:1850,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"createdAt",nodeType:"FunctionDefinition",parameters:{id:1834,nodeType:"ParameterList",parameters:[{constant:!1,id:1833,name:"_tokenId",nodeType:"VariableDeclaration",scope:1850,src:"16107:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1832,name:"uint256",nodeType:"ElementaryTypeName",src:"16107:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16106:18:7"},payable:!1,returnParameters:{id:1837,nodeType:"ParameterList",parameters:[{constant:!1,id:1836,name:"",nodeType:"VariableDeclaration",scope:1850,src:"16147:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1835,name:"uint256",nodeType:"ElementaryTypeName",src:"16147:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16146:9:7"},scope:2132,src:"16088:152:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1880,nodeType:"Block",src:"16465:126:7",statements:[{assignments:[1858],declarations:[{constant:!1,id:1858,name:"index",nodeType:"VariableDeclaration",scope:1881,src:"16471:10:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1857,name:"uint",nodeType:"ElementaryTypeName",src:"16471:4:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1862,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:1860,name:"_tokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1852,src:"16499:8:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}}],expression:{argumentTypes:[{typeIdentifier:"t_uint256",typeString:"uint256"}],id:1859,name:"indexByTokenId",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:528,src:"16484:14:7",typeDescriptions:{typeIdentifier:"t_function_internal_view$_t_uint256_$returns$_t_uint256_$",typeString:"function (uint256) view returns (uint256)"}},id:1861,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16484:24:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"16471:37:7"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1870,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1864,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16522:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1866,indexExpression:{argumentTypes:null,id:1865,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1858,src:"16529:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16522:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1867,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"owner",nodeType:"MemberAccess",referencedDeclaration:360,src:"16522:19:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1868,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"16545:3:7",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:1869,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"16545:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16522:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1863,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"16514:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1871,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16514:42:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1872,nodeType:"ExpressionStatement",src:"16514:42:7"},{expression:{argumentTypes:null,id:1878,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftHandSide:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1873,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16562:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1875,indexExpression:{argumentTypes:null,id:1874,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1858,src:"16569:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16562:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1876,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!0,memberName:"uri",nodeType:"MemberAccess",referencedDeclaration:366,src:"16562:17:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},nodeType:"Assignment",operator:"=",rightHandSide:{argumentTypes:null,id:1877,name:"_uri",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1854,src:"16582:4:7",typeDescriptions:{typeIdentifier:"t_string_calldata_ptr",typeString:"string calldata"}},src:"16562:24:7",typeDescriptions:{typeIdentifier:"t_string_storage",typeString:"string storage ref"}},id:1879,nodeType:"ExpressionStatement",src:"16562:24:7"}]},documentation:"Set new url for your token.\n\n  /// Throw token owner is not msg.sender.\n @param _tokenId id of the token you set it.\n @param _uri new uri.",id:1881,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"setTokenURI",nodeType:"FunctionDefinition",parameters:{id:1855,nodeType:"ParameterList",parameters:[{constant:!1,id:1852,name:"_tokenId",nodeType:"VariableDeclaration",scope:1881,src:"16425:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1851,name:"uint256",nodeType:"ElementaryTypeName",src:"16425:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:1854,name:"_uri",nodeType:"VariableDeclaration",scope:1881,src:"16443:11:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_string_calldata_ptr",typeString:"string"},typeName:{id:1853,name:"string",nodeType:"ElementaryTypeName",src:"16443:6:7",typeDescriptions:{typeIdentifier:"t_string_storage_ptr",typeString:"string"}},value:null,visibility:"internal"}],src:"16424:31:7"},payable:!1,returnParameters:{id:1856,nodeType:"ParameterList",parameters:[],src:"16465:0:7"},scope:2132,src:"16404:187:7",stateMutability:"nonpayable",superFunction:null,visibility:"external"},{body:{id:1926,nodeType:"Block",src:"16819:207:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1893,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1889,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1883,src:"16833:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1891,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16853:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1890,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"16845:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1892,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16845:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16833:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1888,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"16825:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1894,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"16825:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1895,nodeType:"ExpressionStatement",src:"16825:31:7"},{assignments:[1897],declarations:[{constant:!1,id:1897,name:"count",nodeType:"VariableDeclaration",scope:1927,src:"16862:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1896,name:"uint256",nodeType:"ElementaryTypeName",src:"16862:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1899,initialValue:{argumentTypes:null,hexValue:"30",id:1898,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16878:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"16862:17:7"},{body:{id:1922,nodeType:"Block",src:"16929:75:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1916,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1911,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16941:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1913,indexExpression:{argumentTypes:null,id:1912,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16948:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"16941:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1914,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"16941:17:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1915,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1883,src:"16962:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"16941:29:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1921,nodeType:"IfStatement",src:"16937:61:7",trueBody:{id:1920,nodeType:"Block",src:"16972:26:7",statements:[{expression:{argumentTypes:null,id:1918,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"16982:7:7",subExpression:{argumentTypes:null,id:1917,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1897,src:"16982:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1919,nodeType:"ExpressionStatement",src:"16982:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1907,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1904,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16905:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1905,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"16909:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1906,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"16909:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"16905:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1923,initializationExpression:{assignments:[1901],declarations:[{constant:!1,id:1901,name:"i",nodeType:"VariableDeclaration",scope:1927,src:"16890:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1900,name:"uint256",nodeType:"ElementaryTypeName",src:"16890:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1903,initialValue:{argumentTypes:null,hexValue:"30",id:1902,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"16902:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"16890:13:7"},loopExpression:{expression:{argumentTypes:null,id:1909,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"16924:3:7",subExpression:{argumentTypes:null,id:1908,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1901,src:"16924:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1910,nodeType:"ExpressionStatement",src:"16924:3:7"},nodeType:"ForStatement",src:"16885:119:7"},{expression:{argumentTypes:null,id:1924,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1897,src:"17016:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1887,id:1925,nodeType:"Return",src:"17009:12:7"}]},documentation:"Token balance of creator.\n\n  /// Throw creator is not valid.\n @param _creator creator of the tokens.\n @return uint256 balance.",id:1927,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOfCreator",nodeType:"FunctionDefinition",parameters:{id:1884,nodeType:"ParameterList",parameters:[{constant:!1,id:1883,name:"_creator",nodeType:"VariableDeclaration",scope:1927,src:"16769:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1882,name:"address",nodeType:"ElementaryTypeName",src:"16769:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"16768:18:7"},payable:!1,returnParameters:{id:1887,nodeType:"ParameterList",parameters:[{constant:!1,id:1886,name:"",nodeType:"VariableDeclaration",scope:1927,src:"16810:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1885,name:"uint256",nodeType:"ElementaryTypeName",src:"16810:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"16809:9:7"},scope:2132,src:"16743:283:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:1985,nodeType:"Block",src:"17373:275:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1941,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1937,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1929,src:"17387:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1939,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17407:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1938,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"17399:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1940,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17399:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"17387:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1936,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"17379:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:1942,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17379:31:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1943,nodeType:"ExpressionStatement",src:"17379:31:7"},{assignments:[1945],declarations:[{constant:!1,id:1945,name:"count",nodeType:"VariableDeclaration",scope:1986,src:"17416:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1944,name:"uint256",nodeType:"ElementaryTypeName",src:"17416:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1947,initialValue:{argumentTypes:null,hexValue:"30",id:1946,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17432:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"17416:17:7"},{body:{id:1980,nodeType:"Block",src:"17483:147:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:1964,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1959,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17495:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1961,indexExpression:{argumentTypes:null,id:1960,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17502:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"17495:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1962,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"17495:17:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1963,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1929,src:"17516:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"17495:29:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1979,nodeType:"IfStatement",src:"17491:133:7",trueBody:{id:1978,nodeType:"Block",src:"17526:98:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1967,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1965,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1945,src:"17540:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:1966,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1931,src:"17549:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"17540:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:1974,nodeType:"IfStatement",src:"17536:63:7",trueBody:{id:1973,nodeType:"Block",src:"17557:42:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:1968,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17576:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1970,indexExpression:{argumentTypes:null,id:1969,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17583:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"17576:9:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:1971,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"17576:12:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1935,id:1972,nodeType:"Return",src:"17569:19:7"}]}},{expression:{argumentTypes:null,id:1976,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"17608:7:7",subExpression:{argumentTypes:null,id:1975,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1945,src:"17608:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1977,nodeType:"ExpressionStatement",src:"17608:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:1955,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1952,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17459:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,id:1953,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"17463:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:1954,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"17463:13:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"17459:17:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:1981,initializationExpression:{assignments:[1949],declarations:[{constant:!1,id:1949,name:"i",nodeType:"VariableDeclaration",scope:1986,src:"17444:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1948,name:"uint256",nodeType:"ElementaryTypeName",src:"17444:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:1951,initialValue:{argumentTypes:null,hexValue:"30",id:1950,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"17456:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"17444:13:7"},loopExpression:{expression:{argumentTypes:null,id:1957,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"17478:3:7",subExpression:{argumentTypes:null,id:1956,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1949,src:"17478:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:1958,nodeType:"ExpressionStatement",src:"17478:3:7"},nodeType:"ForStatement",src:"17439:191:7"},{expression:{argumentTypes:null,arguments:[],expression:{argumentTypes:[],id:1982,name:"revert",nodeType:"Identifier",overloadedDeclarations:[2152,2153],referencedDeclaration:2152,src:"17635:6:7",typeDescriptions:{typeIdentifier:"t_function_revert_pure$__$returns$__$",typeString:"function () pure"}},id:1983,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"17635:8:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:1984,nodeType:"ExpressionStatement",src:"17635:8:7"}]},documentation:"Get token ID of the specified creator and index.\n\n  /// Throw owner is not valid.\n Throw overflow index.\n @param _creator creator of the token.\n @param _index index of the creator tokens.\n @return uint256 token id.",id:1986,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfCreatorByIndex",nodeType:"FunctionDefinition",parameters:{id:1932,nodeType:"ParameterList",parameters:[{constant:!1,id:1929,name:"_creator",nodeType:"VariableDeclaration",scope:1986,src:"17307:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1928,name:"address",nodeType:"ElementaryTypeName",src:"17307:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1931,name:"_index",nodeType:"VariableDeclaration",scope:1986,src:"17325:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1930,name:"uint256",nodeType:"ElementaryTypeName",src:"17325:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"17306:34:7"},payable:!1,returnParameters:{id:1935,nodeType:"ParameterList",parameters:[{constant:!1,id:1934,name:"",nodeType:"VariableDeclaration",scope:1986,src:"17364:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1933,name:"uint256",nodeType:"ElementaryTypeName",src:"17364:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"17363:9:7"},scope:2132,src:"17276:372:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:2051,nodeType:"Block",src:"18049:318:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:2008,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2e3,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:1996,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18064:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:1998,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18082:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:1997,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18074:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:1999,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18074:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18064:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2001,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18063:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2006,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2002,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1990,src:"18090:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2004,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18110:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2003,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18102:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2005,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18102:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18090:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2007,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18089:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"18063:50:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:1995,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"18055:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:2009,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18055:59:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2010,nodeType:"ExpressionStatement",src:"18055:59:7"},{assignments:[2012],declarations:[{constant:!1,id:2012,name:"balance",nodeType:"VariableDeclaration",scope:2052,src:"18120:15:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2011,name:"uint256",nodeType:"ElementaryTypeName",src:"18120:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2014,initialValue:{argumentTypes:null,hexValue:"30",id:2013,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18138:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18120:19:7"},{body:{id:2047,nodeType:"Block",src:"18209:134:7",statements:[{assignments:[2029],declarations:[{constant:!1,id:2029,name:"index",nodeType:"VariableDeclaration",scope:2052,src:"18217:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2028,name:"uint256",nodeType:"ElementaryTypeName",src:"18217:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2035,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2030,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18233:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2032,indexExpression:{argumentTypes:null,id:2031,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18252:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18233:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2034,indexExpression:{argumentTypes:null,id:2033,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18260:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18233:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"18217:45:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2041,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2036,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"18274:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2038,indexExpression:{argumentTypes:null,id:2037,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2029,src:"18281:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18274:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2039,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"18274:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2040,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1990,src:"18299:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18274:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2046,nodeType:"IfStatement",src:"18270:67:7",trueBody:{id:2045,nodeType:"Block",src:"18309:28:7",statements:[{expression:{argumentTypes:null,id:2043,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18319:9:7",subExpression:{argumentTypes:null,id:2042,name:"balance",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2012,src:"18319:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2044,nodeType:"ExpressionStatement",src:"18319:9:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2024,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2019,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18165:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2020,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18169:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2022,indexExpression:{argumentTypes:null,id:2021,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:1988,src:"18188:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18169:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2023,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"18169:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"18165:37:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:2048,initializationExpression:{assignments:[2016],declarations:[{constant:!1,id:2016,name:"i",nodeType:"VariableDeclaration",scope:2052,src:"18150:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2015,name:"uint256",nodeType:"ElementaryTypeName",src:"18150:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2018,initialValue:{argumentTypes:null,hexValue:"30",id:2017,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18162:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18150:13:7"},loopExpression:{expression:{argumentTypes:null,id:2026,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18204:3:7",subExpression:{argumentTypes:null,id:2025,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2016,src:"18204:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2027,nodeType:"ExpressionStatement",src:"18204:3:7"},nodeType:"ForStatement",src:"18145:198:7"},{expression:{argumentTypes:null,id:2049,name:"balance",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2012,src:"18355:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:1994,id:2050,nodeType:"Return",src:"18348:14:7"}]},documentation:"Token balance of owner and creator.\n\n  /// Throw owner is not valid.\n Throw creator is not valid.\n @param _owner owner of the tokens.\n @param _creator creator of the tokens.\n @return uint256 balance of `token.owner == _owner` and `token.creator == _creator` tokens.",id:2052,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"balanceOfOwnerAndCreator",nodeType:"FunctionDefinition",parameters:{id:1991,nodeType:"ParameterList",parameters:[{constant:!1,id:1988,name:"_owner",nodeType:"VariableDeclaration",scope:2052,src:"17983:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1987,name:"address",nodeType:"ElementaryTypeName",src:"17983:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:1990,name:"_creator",nodeType:"VariableDeclaration",scope:2052,src:"17999:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:1989,name:"address",nodeType:"ElementaryTypeName",src:"17999:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"17982:34:7"},payable:!1,returnParameters:{id:1994,nodeType:"ParameterList",parameters:[{constant:!1,id:1993,name:"",nodeType:"VariableDeclaration",scope:2052,src:"18040:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:1992,name:"uint256",nodeType:"ElementaryTypeName",src:"18040:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18039:9:7"},scope:2132,src:"17949:418:7",stateMutability:"view",superFunction:null,visibility:"external"},{body:{id:2130,nodeType:"Block",src:"18846:384:7",statements:[{expression:{argumentTypes:null,arguments:[{argumentTypes:null,commonType:{typeIdentifier:"t_bool",typeString:"bool"},id:2076,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2068,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2064,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"18861:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2066,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18879:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2065,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18871:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2067,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18871:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18861:20:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2069,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18860:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},nodeType:"BinaryOperation",operator:"&&",rightExpression:{argumentTypes:null,components:[{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2074,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2070,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2056,src:"18887:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"!=",rightExpression:{argumentTypes:null,arguments:[{argumentTypes:null,hexValue:"30",id:2072,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18907:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"}],expression:{argumentTypes:[{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"}],id:2071,isConstant:!1,isLValue:!1,isPure:!0,lValueRequested:!1,nodeType:"ElementaryTypeNameExpression",src:"18899:7:7",typeDescriptions:{typeIdentifier:"t_type$_t_address_$",typeString:"type(address)"},typeName:"address"},id:2073,isConstant:!1,isLValue:!1,isPure:!0,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18899:10:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"18887:22:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],id:2075,isConstant:!1,isInlineArray:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"TupleExpression",src:"18886:24:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},src:"18860:50:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}}],expression:{argumentTypes:[{typeIdentifier:"t_bool",typeString:"bool"}],id:2063,name:"require",nodeType:"Identifier",overloadedDeclarations:[2150,2151],referencedDeclaration:2150,src:"18852:7:7",typeDescriptions:{typeIdentifier:"t_function_require_pure$_t_bool_$returns$__$",typeString:"function (bool) pure"}},id:2077,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"18852:59:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2078,nodeType:"ExpressionStatement",src:"18852:59:7"},{assignments:[2080],declarations:[{constant:!1,id:2080,name:"count",nodeType:"VariableDeclaration",scope:2131,src:"18917:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2079,name:"uint256",nodeType:"ElementaryTypeName",src:"18917:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2082,initialValue:{argumentTypes:null,hexValue:"30",id:2081,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18933:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18917:17:7"},{body:{id:2125,nodeType:"Block",src:"19004:208:7",statements:[{assignments:[2097],declarations:[{constant:!1,id:2097,name:"index",nodeType:"VariableDeclaration",scope:2131,src:"19012:13:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2096,name:"uint256",nodeType:"ElementaryTypeName",src:"19012:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2103,initialValue:{argumentTypes:null,baseExpression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2098,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"19028:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2100,indexExpression:{argumentTypes:null,id:2099,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"19047:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19028:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2102,indexExpression:{argumentTypes:null,id:2101,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"19055:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19028:29:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"VariableDeclarationStatement",src:"19012:45:7"},{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_address",typeString:"address"},id:2109,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2104,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"19069:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2106,indexExpression:{argumentTypes:null,id:2105,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2097,src:"19076:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19069:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2107,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"creator",nodeType:"MemberAccess",referencedDeclaration:362,src:"19069:21:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2108,name:"_creator",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2056,src:"19094:8:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},src:"19069:33:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2124,nodeType:"IfStatement",src:"19065:141:7",trueBody:{id:2123,nodeType:"Block",src:"19104:102:7",statements:[{condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2112,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2110,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2080,src:"19118:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"==",rightExpression:{argumentTypes:null,id:2111,name:"_index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2058,src:"19127:6:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"19118:15:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},falseBody:null,id:2119,nodeType:"IfStatement",src:"19114:67:7",trueBody:{id:2118,nodeType:"Block",src:"19135:46:7",statements:[{expression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2113,name:"tokens",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:370,src:"19154:6:7",typeDescriptions:{typeIdentifier:"t_array$_t_struct$_Token_$367_storage_$dyn_storage",typeString:"struct SixPillars.Token storage ref[] storage ref"}},id:2115,indexExpression:{argumentTypes:null,id:2114,name:"index",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2097,src:"19161:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"19154:13:7",typeDescriptions:{typeIdentifier:"t_struct$_Token_$367_storage",typeString:"struct SixPillars.Token storage ref"}},id:2116,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"id",nodeType:"MemberAccess",referencedDeclaration:350,src:"19154:16:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},functionReturnParameters:2062,id:2117,nodeType:"Return",src:"19147:23:7"}]}},{expression:{argumentTypes:null,id:2121,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"19190:7:7",subExpression:{argumentTypes:null,id:2120,name:"count",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2080,src:"19190:5:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2122,nodeType:"ExpressionStatement",src:"19190:7:7"}]}}]},condition:{argumentTypes:null,commonType:{typeIdentifier:"t_uint256",typeString:"uint256"},id:2092,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,leftExpression:{argumentTypes:null,id:2087,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"18960:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},nodeType:"BinaryOperation",operator:"<",rightExpression:{argumentTypes:null,expression:{argumentTypes:null,baseExpression:{argumentTypes:null,id:2088,name:"ownerToTokensIndex",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:383,src:"18964:18:7",typeDescriptions:{typeIdentifier:"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",typeString:"mapping(address => uint256[] storage ref)"}},id:2090,indexExpression:{argumentTypes:null,id:2089,name:"_owner",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2054,src:"18983:6:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,nodeType:"IndexAccess",src:"18964:26:7",typeDescriptions:{typeIdentifier:"t_array$_t_uint256_$dyn_storage",typeString:"uint256[] storage ref"}},id:2091,isConstant:!1,isLValue:!0,isPure:!1,lValueRequested:!1,memberName:"length",nodeType:"MemberAccess",referencedDeclaration:null,src:"18964:33:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},src:"18960:37:7",typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"}},id:2126,initializationExpression:{assignments:[2084],declarations:[{constant:!1,id:2084,name:"i",nodeType:"VariableDeclaration",scope:2131,src:"18945:9:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2083,name:"uint256",nodeType:"ElementaryTypeName",src:"18945:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],id:2086,initialValue:{argumentTypes:null,hexValue:"30",id:2085,isConstant:!1,isLValue:!1,isPure:!0,kind:"number",lValueRequested:!1,nodeType:"Literal",src:"18957:1:7",subdenomination:null,typeDescriptions:{typeIdentifier:"t_rational_0_by_1",typeString:"int_const 0"},value:"0"},nodeType:"VariableDeclarationStatement",src:"18945:13:7"},loopExpression:{expression:{argumentTypes:null,id:2094,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,nodeType:"UnaryOperation",operator:"++",prefix:!1,src:"18999:3:7",subExpression:{argumentTypes:null,id:2093,name:"i",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2084,src:"18999:1:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},id:2095,nodeType:"ExpressionStatement",src:"18999:3:7"},nodeType:"ForStatement",src:"18940:272:7"},{expression:{argumentTypes:null,arguments:[],expression:{argumentTypes:[],id:2127,name:"revert",nodeType:"Identifier",overloadedDeclarations:[2152,2153],referencedDeclaration:2152,src:"19217:6:7",typeDescriptions:{typeIdentifier:"t_function_revert_pure$__$returns$__$",typeString:"function () pure"}},id:2128,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"19217:8:7",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:2129,nodeType:"ExpressionStatement",src:"19217:8:7"}]},documentation:"Get token ID of the specified owner, creator, and index.\n\n  /// Throw owner is not valid.\n Throw creator is not valid.\n Throw overflow index.\n @param _owner owner of the token.\n @param _creator creator of the token, you can use zero address.\n @param _index index of the creator tokens.\n @return uint256 token id.",id:2131,implemented:!0,isConstructor:!1,isDeclaredConst:!0,modifiers:[],name:"tokenOfOwnerAndCreatorByIndex",nodeType:"FunctionDefinition",parameters:{id:2059,nodeType:"ParameterList",parameters:[{constant:!1,id:2054,name:"_owner",nodeType:"VariableDeclaration",scope:2131,src:"18764:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:2053,name:"address",nodeType:"ElementaryTypeName",src:"18764:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:2056,name:"_creator",nodeType:"VariableDeclaration",scope:2131,src:"18780:16:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:2055,name:"address",nodeType:"ElementaryTypeName",src:"18780:7:7",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"},{constant:!1,id:2058,name:"_index",nodeType:"VariableDeclaration",scope:2131,src:"18798:14:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2057,name:"uint256",nodeType:"ElementaryTypeName",src:"18798:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18763:50:7"},payable:!1,returnParameters:{id:2062,nodeType:"ParameterList",parameters:[{constant:!1,id:2061,name:"",nodeType:"VariableDeclaration",scope:2131,src:"18837:7:7",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:2060,name:"uint256",nodeType:"ElementaryTypeName",src:"18837:7:7",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"}],src:"18836:9:7"},scope:2132,src:"18725:505:7",stateMutability:"view",superFunction:null,visibility:"external"}],scope:2133,src:"193:19039:7"}],src:"0:19233:7"},compiler:{name:"solc",version:"0.4.24+commit.e67f0147.Emscripten.clang"},networks:{5777:{events:{},links:{},address:"0x474cb85502c0a3f3188e36f7c18fe013af8a71bf",transactionHash:"0x592c58c8d6086527c2fd7d4bf9d4a806292f22829703b340dd9168a031d34af5"}},schemaVersion:"2.0.1",updatedAt:"2018-10-17T07:24:47.770Z"}},402:function(e){e.exports={contractName:"Dragon",abi:[{constant:!1,inputs:[{name:"_inscription",type:"uint256"},{name:"_sixPillarsAddress",type:"address"}],name:"mint",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}],bytecode:"0x608060405234801561001057600080fd5b50610191806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806394bf804d14610046575b600080fd5b34801561005257600080fd5b5061009160048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610093565b005b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d1a1beb4338560016040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515151581526020019350505050600060405180830381600087803b15801561014857600080fd5b505af115801561015c573d6000803e3d6000fd5b505050505050505600a165627a7a72305820f2e272c8da5feeb8be8e8cac5964166f086d11424ff8dfa4ee7c2446d1ac39b10029",deployedBytecode:"0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806394bf804d14610046575b600080fd5b34801561005257600080fd5b5061009160048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610093565b005b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d1a1beb4338560016040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515151581526020019350505050600060405180830381600087803b15801561014857600080fd5b505af115801561015c573d6000803e3d6000fd5b505050505050505600a165627a7a72305820f2e272c8da5feeb8be8e8cac5964166f086d11424ff8dfa4ee7c2446d1ac39b10029",sourceMap:"85:213:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;85:213:0;;;;;;;",deployedSourceMap:"85:213:0:-;;;;;;;;;;;;;;;;;;;;;;;;105:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:21;219:18;184:54;;244:10;:15;;;260:10;272:12;286:4;244:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;244:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;244:47:0;;;;105:191;;;:::o",source:'pragma solidity ^0.4.23;\n\nimport "../node_modules/llllll/contracts/SixPillars.sol";\n\ncontract Dragon {\n  function mint(uint256 _inscription, address _sixPillarsAddress) external {\n    SixPillars sixPillars = SixPillars(_sixPillarsAddress);\n    sixPillars.mint(msg.sender, _inscription, true);\n  }\n}\n',sourcePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/contracts/Dragon.sol",ast:{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/contracts/Dragon.sol",exportedSymbols:{Dragon:[26]},id:27,nodeType:"SourceUnit",nodes:[{id:1,literals:["solidity","^","0.4",".23"],nodeType:"PragmaDirective",src:"0:24:0"},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/SixPillars.sol",file:"../node_modules/llllll/contracts/SixPillars.sol",id:2,nodeType:"ImportDirective",scope:27,sourceUnit:2133,src:"26:57:0",symbolAliases:[],unitAlias:""},{baseContracts:[],contractDependencies:[],contractKind:"contract",documentation:null,fullyImplemented:!0,id:26,linearizedBaseContracts:[26],name:"Dragon",nodeType:"ContractDefinition",nodes:[{body:{id:24,nodeType:"Block",src:"178:118:0",statements:[{assignments:[10],declarations:[{constant:!1,id:10,name:"sixPillars",nodeType:"VariableDeclaration",scope:25,src:"184:21:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"},typeName:{contractScope:null,id:9,name:"SixPillars",nodeType:"UserDefinedTypeName",referencedDeclaration:2132,src:"184:10:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},value:null,visibility:"internal"}],id:14,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:12,name:"_sixPillarsAddress",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:6,src:"219:18:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:11,name:"SixPillars",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2132,src:"208:10:0",typeDescriptions:{typeIdentifier:"t_type$_t_contract$_SixPillars_$2132_$",typeString:"type(contract SixPillars)"}},id:13,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"208:30:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},nodeType:"VariableDeclarationStatement",src:"184:54:0"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:18,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"260:3:0",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:19,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"260:10:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:20,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:4,src:"272:12:0",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"74727565",id:21,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"286:4:0",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bool",typeString:"bool"}],expression:{argumentTypes:null,id:15,name:"sixPillars",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:10,src:"244:10:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},id:17,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"mint",nodeType:"MemberAccess",referencedDeclaration:1669,src:"244:15:0",typeDescriptions:{typeIdentifier:"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$",typeString:"function (address,uint256,bool) external"}},id:22,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"244:47:0",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:23,nodeType:"ExpressionStatement",src:"244:47:0"}]},documentation:null,id:25,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"mint",nodeType:"FunctionDefinition",parameters:{id:7,nodeType:"ParameterList",parameters:[{constant:!1,id:4,name:"_inscription",nodeType:"VariableDeclaration",scope:25,src:"119:20:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:3,name:"uint256",nodeType:"ElementaryTypeName",src:"119:7:0",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:6,name:"_sixPillarsAddress",nodeType:"VariableDeclaration",scope:25,src:"141:26:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:5,name:"address",nodeType:"ElementaryTypeName",src:"141:7:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"118:50:0"},payable:!1,returnParameters:{id:8,nodeType:"ParameterList",parameters:[],src:"178:0:0"},scope:26,src:"105:191:0",stateMutability:"nonpayable",superFunction:null,visibility:"external"}],scope:27,src:"85:213:0"}],src:"0:299:0"},legacyAST:{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/contracts/Dragon.sol",exportedSymbols:{Dragon:[26]},id:27,nodeType:"SourceUnit",nodes:[{id:1,literals:["solidity","^","0.4",".23"],nodeType:"PragmaDirective",src:"0:24:0"},{absolutePath:"/Users/ogawa_mitsunori/Projects/smart-contracts/llllll-samples/llllll-sample-dragons/truffle/node_modules/llllll/contracts/SixPillars.sol",file:"../node_modules/llllll/contracts/SixPillars.sol",id:2,nodeType:"ImportDirective",scope:27,sourceUnit:2133,src:"26:57:0",symbolAliases:[],unitAlias:""},{baseContracts:[],contractDependencies:[],contractKind:"contract",documentation:null,fullyImplemented:!0,id:26,linearizedBaseContracts:[26],name:"Dragon",nodeType:"ContractDefinition",nodes:[{body:{id:24,nodeType:"Block",src:"178:118:0",statements:[{assignments:[10],declarations:[{constant:!1,id:10,name:"sixPillars",nodeType:"VariableDeclaration",scope:25,src:"184:21:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"},typeName:{contractScope:null,id:9,name:"SixPillars",nodeType:"UserDefinedTypeName",referencedDeclaration:2132,src:"184:10:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},value:null,visibility:"internal"}],id:14,initialValue:{argumentTypes:null,arguments:[{argumentTypes:null,id:12,name:"_sixPillarsAddress",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:6,src:"219:18:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"}],id:11,name:"SixPillars",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2132,src:"208:10:0",typeDescriptions:{typeIdentifier:"t_type$_t_contract$_SixPillars_$2132_$",typeString:"type(contract SixPillars)"}},id:13,isConstant:!1,isLValue:!1,isPure:!1,kind:"typeConversion",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"208:30:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},nodeType:"VariableDeclarationStatement",src:"184:54:0"},{expression:{argumentTypes:null,arguments:[{argumentTypes:null,expression:{argumentTypes:null,id:18,name:"msg",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:2147,src:"260:3:0",typeDescriptions:{typeIdentifier:"t_magic_message",typeString:"msg"}},id:19,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"sender",nodeType:"MemberAccess",referencedDeclaration:null,src:"260:10:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},{argumentTypes:null,id:20,name:"_inscription",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:4,src:"272:12:0",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},{argumentTypes:null,hexValue:"74727565",id:21,isConstant:!1,isLValue:!1,isPure:!0,kind:"bool",lValueRequested:!1,nodeType:"Literal",src:"286:4:0",subdenomination:null,typeDescriptions:{typeIdentifier:"t_bool",typeString:"bool"},value:"true"}],expression:{argumentTypes:[{typeIdentifier:"t_address",typeString:"address"},{typeIdentifier:"t_uint256",typeString:"uint256"},{typeIdentifier:"t_bool",typeString:"bool"}],expression:{argumentTypes:null,id:15,name:"sixPillars",nodeType:"Identifier",overloadedDeclarations:[],referencedDeclaration:10,src:"244:10:0",typeDescriptions:{typeIdentifier:"t_contract$_SixPillars_$2132",typeString:"contract SixPillars"}},id:17,isConstant:!1,isLValue:!1,isPure:!1,lValueRequested:!1,memberName:"mint",nodeType:"MemberAccess",referencedDeclaration:1669,src:"244:15:0",typeDescriptions:{typeIdentifier:"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$",typeString:"function (address,uint256,bool) external"}},id:22,isConstant:!1,isLValue:!1,isPure:!1,kind:"functionCall",lValueRequested:!1,names:[],nodeType:"FunctionCall",src:"244:47:0",typeDescriptions:{typeIdentifier:"t_tuple$__$",typeString:"tuple()"}},id:23,nodeType:"ExpressionStatement",src:"244:47:0"}]},documentation:null,id:25,implemented:!0,isConstructor:!1,isDeclaredConst:!1,modifiers:[],name:"mint",nodeType:"FunctionDefinition",parameters:{id:7,nodeType:"ParameterList",parameters:[{constant:!1,id:4,name:"_inscription",nodeType:"VariableDeclaration",scope:25,src:"119:20:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"},typeName:{id:3,name:"uint256",nodeType:"ElementaryTypeName",src:"119:7:0",typeDescriptions:{typeIdentifier:"t_uint256",typeString:"uint256"}},value:null,visibility:"internal"},{constant:!1,id:6,name:"_sixPillarsAddress",nodeType:"VariableDeclaration",scope:25,src:"141:26:0",stateVariable:!1,storageLocation:"default",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"},typeName:{id:5,name:"address",nodeType:"ElementaryTypeName",src:"141:7:0",typeDescriptions:{typeIdentifier:"t_address",typeString:"address"}},value:null,visibility:"internal"}],src:"118:50:0"},payable:!1,returnParameters:{id:8,nodeType:"ParameterList",parameters:[],src:"178:0:0"},scope:26,src:"105:191:0",stateMutability:"nonpayable",superFunction:null,visibility:"external"}],scope:27,src:"85:213:0"}],src:"0:299:0"},compiler:{name:"solc",version:"0.4.24+commit.e67f0147.Emscripten.clang"},networks:{5777:{events:{},links:{},address:"0xf108ad73085823dbddb71ee01020e12b951dda1c",transactionHash:"0xe3c816e980de88d58256ad2dd8d4525a04a77b0f2dff40f0c29c763b97e0081c"}},schemaVersion:"2.0.1",updatedAt:"2018-10-17T07:24:48.125Z"}},519:function(e,t,n){"use strict";n.r(t);var i=n(0),r=n.n(i),s=n(41),a=n.n(s),f=(n(222),n(9)),o=n(10),d=n(12),p=n(11),l=n(13),y=n(523),u=n(524),c=n(522),m=(n(224),n(80)),_=n.n(m),g=r.a.createContext(),T={identity:Symbol("identity"),checking:Symbol("checking"),waiting:Symbol("waiting"),failed:{notfound:Symbol("failed.notfound"),network:Symbol("failed.network")},success:Symbol("success")},D={none:Symbol("none"),pending:Symbol("pending"),success:Symbol("success"),cancel:Symbol("cancel")},b=n(401),I=n(402),S={SixPillars:{abi:b.abi,addresses:{3:"0x9895960b93e314ef221346ab985b895da9a5b7d5",4:"0x542A900357c9638AD6e944a57072c5D01f1C1Ea7",42:"0x542A900357c9638AD6e944a57072c5D01f1C1Ea7",5777:b.networks[5777].address}},Dragon:{abi:I.abi,addresses:{3:"0xcdc2f9e5b782e421f6188736bd294ee5c716db2f",4:"0x26addb72ab35fad08a895cfe717c5ff312a0f699",42:"0xcdc2f9e5b782e421f6188736bd294ee5c716db2f",5777:I.networks[5777].address}}},x=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).state={web3:null,web3Status:T.identity,networkId:null,currentAddress:null,web3Transaction:D.none,mintToken:null},n.mintData=function(e){var t=n.state,i=t.web3,r=t.networkId,s=S.SixPillars.addresses[r];return i.utils.sha3("mint(uint256,address)").substr(0,10)+e.slice(-64)+("0000000000000000000000000000000000000000000000000000000000000000"+s.substr(2,40)).slice(-64)},n.mintToken=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;n.setState({web3Transaction:D.none});var i=n.state,r=i.web3,s=i.networkId,a=i.currentAddress;r.eth.sendTransaction({from:a,to:S.Dragon.addresses[s],data:n.mintData(e)}).on("transactionHash",function(e){n.setState({web3Transaction:D.pending}),t&&t()}).on("receipt",function(e){n.setState({web3Transaction:D.success})}).on("error",function(e){n.setState({web3Transaction:D.cancel})})},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){var e=this;if("undefined"===typeof window.web3)window.addEventListener("message",function(t){var n=t.data;if(n&&n.type&&"ETHEREUM_PROVIDER_SUCCESS"===n.type){var i=new _.a(window.ethereum);e.setState({web3:i,web3Status:i?T.checking:T.failed.notfound})}}),window.postMessage({type:"ETHEREUM_PROVIDER_REQUEST"},"*");else{var t=new _.a(window.web3.currentProvider);this.setState({web3:t,web3Status:t?T.checking:T.failed.notfound})}}},{key:"componentDidUpdate",value:function(e,t){var n=this,i=this.state,r=i.web3,s=i.web3Status,a=this.mintToken;switch(s){case T.checking:this.setState({web3Status:T.waiting}),r.eth.getAccounts().then(function(e){var t=e&&0<e.length&&e[0];if(t)return n.setState({currentAddress:t}),r.eth.net.getId();throw n.setState({web3Status:T.failed.notfound}),new Error}).then(function(e){0<=Object.keys(S.SixPillars.addresses).indexOf(e.toString())?n.setState({web3Status:T.success,networkId:e,mintToken:a}):n.setState({web3Status:T.failed.network})}).catch(function(e){console.log(e)})}}},{key:"render",value:function(){return r.a.createElement(g.Provider,{value:this.state},r.a.Children.only(this.props.children))}}]),t}(r.a.Component),V=n(48),v=n(521),$=function(e){function t(){return Object(f.a)(this,t),Object(d.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){var e=window.sessionStorage.redirect,t=e?e.split("/llllll-sample-dragons"):[];window.sessionStorage.redirect=null,1<t.length&&this.props.history.push(t[1])}},{key:"render",value:function(){return r.a.cloneElement(r.a.Children.only(this.props.children),Object(V.a)({},this.props))}}]),t}(r.a.Component),k=Object(v.a)($),C=n(26),E=n.n(C),L={ropsten:3,reqinkeby:4,kovan:42,local:5777},P={whiteDragon:Symbol("whiteDragon"),blackDragon:Symbol("blackDragon"),redDragon:Symbol("redDragon"),greenDragon:Symbol("greenDragon"),blueDragon:Symbol("blueDragon"),yellowDragon:Symbol("yellowDragon"),redJewel:Symbol("redJewel"),greenJewel:Symbol("greenJewel"),blueJewel:Symbol("blueJewel"),yellowJewel:Symbol("yellowJewel")},R=function(){function e(){Object(f.a)(this,e),this.id=null,this.owner=null,this.creator=null,this.inscription=null,this.tokenType=null,this.fullLength=0,this.bodyWeight=0,this.power=0,this.speed=0,this.vitality=0,this.intellect=0,this.isAlreadyDisplay=!1,this.isAlreadyMixed=!1,this.networkId=0}return Object(o.a)(e,[{key:"byteForInscription",value:function(e,t){var n=Math.floor(255/t);return Math.floor(Math.random()*n)*t+e}},{key:"encode",value:function(){for(var e=this,t=Math.ceil(this.fullLength.toString(16).length/2),n=Math.ceil(this.bodyWeight.toString(16).length/2),i=Math.ceil(this.power.toString(16).length/2),r=Math.ceil(this.speed.toString(16).length/2),s=Math.ceil(this.vitality.toString(16).length/2),a=Math.ceil(this.intellect.toString(16).length/2),f="",o=0;o<32;o++)switch(o){case 1:case 2:case 3:case 4:f=o-1<a?("00000000"+this.intellect.toString(16)).substr(-2*(o-1+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 5:case 6:f=o-5<t?("00000000"+this.fullLength.toString(16)).substr(-2*(o-5+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 8:case 9:f=o-8<n?("00000000"+this.bodyWeight.toString(16)).substr(-2*(o-8+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 10:f=("00"+this.byteForInscription(t-1,2).toString(16)).slice(-2)+f;break;case 11:var d=Object.keys(P),p=d.filter(function(t){return P[t]===e.tokenType})[0];f=("00"+this.byteForInscription(d.indexOf(p),d.length).toString(16)).slice(-2)+f;break;case 12:f=("00"+this.byteForInscription(i-1,4).toString(16)).slice(-2)+f;break;case 13:case 14:case 15:case 16:f=o-13<r?("00000000"+this.speed.toString(16)).substr(-2*(o-13+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 17:case 18:case 19:case 20:f=o-17<s?("00000000"+this.vitality.toString(16)).substr(-2*(o-17+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 22:f=("00"+this.byteForInscription(s-1,4).toString(16)).slice(-2)+f;break;case 23:f=("00"+this.byteForInscription(r-1,4).toString(16)).slice(-2)+f;break;case 25:case 26:case 27:case 28:f=o-25<i?("00000000"+this.power.toString(16)).substr(-2*(o-25+1),2)+f:("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f;break;case 29:f=("00"+this.byteForInscription(n-1,2).toString(16)).slice(-2)+f;break;case 30:f=("00"+this.byteForInscription(a-1,4).toString(16)).slice(-2)+f;break;default:f=("00"+Math.floor(255*Math.random()).toString(16)).slice(-2)+f}return"0x".concat(f)}},{key:"alreadyDisplay",value:function(){this.isAlreadyDisplay=!0,window.localStorage.setItem(e.isAlreadyDisplayKey(this.id,this.networkId),"true")}},{key:"alreadyMixed",value:function(){this.isAlreadyMixed=!0,window.localStorage.setItem(e.isAlreadyMixedKey(this.id,this.networkId),"true")}},{key:"isDragon",value:function(){switch(this.tokenType){case P.whiteDragon:case P.blackDragon:case P.redDragon:case P.greenDragon:case P.blueDragon:case P.yellowDragon:return!0;default:return!1}}}],[{key:"isAlreadyDisplayKey",value:function(e,t){return"DragonAlreadyDisplay_".concat(t,"_").concat("0x".concat(e.slice(-64)).toLowerCase())}},{key:"isAlreadyMixedKey",value:function(e,t){return"DragonAlreadyMixed_".concat(t,"_").concat("0x".concat(e.slice(-64)).toLowerCase())}},{key:"isAlreadyMixed",value:function(e,t){return"true"===window.localStorage.getItem(this.isAlreadyMixedKey(e,t))}},{key:"decodeTokenType",value:function(e,t){var n=t.substr(-24,2),i=Object.keys(P);e.tokenType=P[i[parseInt(n,16)%i.length]]}},{key:"decodeTokenTypeOnlyJewel",value:function(e,t){var n=t.substr(-24,2),i=[P.redJewel,P.greenJewel,P.blueJewel,P.yellowJewel];e.tokenType=i[parseInt(n,16)%i.length]}},{key:"decodeForDragon",value:function(e,t){for(var n=function(e,t){return parseInt(e.substr(-2*(t+1),2),16)},i=n(t,10)%2+1,r=n(t,29)%2+1,s=n(t,12)%4+1,a=n(t,23)%4+1,f=n(t,22)%4+1,o=n(t,30)%4+1,d=0;d<32;d++){var p=n(t,d);switch(d){case 1:case 2:case 3:case 4:d-1<o&&(e.intellect+=p*(1<<8*(d-1)));break;case 5:case 6:d-5<i&&(e.fullLength+=p*(1<<8*(d-5)));break;case 8:case 9:d-8<r&&(e.bodyWeight+=p*(1<<8*(d-8)));break;case 13:case 14:case 15:case 16:d-13<a&&(e.speed+=p*(1<<8*(d-13)));break;case 17:case 18:case 19:case 20:d-17<f&&(e.vitality+=p*(1<<8*(d-17)));break;case 25:case 26:case 27:case 28:d-25<s&&(e.power+=p*(1<<8*(d-25)))}}}},{key:"decodeForJewel",value:function(e,t){var n=function(e,t){return parseInt(e.substr(-2*(t+1),2),16)};e.power=n(t,25)*(n(t,26)%8+3),e.speed=n(t,13)*(n(t,14)%8+3),e.vitality=n(t,17)*(n(t,18)%8+3),e.intellect=n(t,1)*(n(t,2)%8+3)}},{key:"decode",value:function(t,n,i,r,s){if(null===t||0===t.length||null===n||0===n.length||null===i||0===i.length||null===r||0===r.length)return null;var a=new e;return a.id="0x".concat(t.slice(-64)),a.owner=n,a.creator=i,a.inscription="0x".concat(r.slice(-64)),a.networkId=s,i.toLowerCase()===S.Dragon.addresses[s].toLowerCase()?this.decodeTokenType(a,r):this.decodeTokenTypeOnlyJewel(a,r),a.isDragon()?this.decodeForDragon(a,r):this.decodeForJewel(a,r),a.isAlreadyMixed="true"===window.localStorage.getItem(e.isAlreadyMixedKey(a.id,s)),a.isAlreadyDisplay="true"===window.localStorage.getItem(e.isAlreadyDisplayKey(a.id,s)),a}},{key:"mint",value:function(){var t=new e,n=[P.whiteDragon,P.blackDragon];return t.tokenType=n[Math.floor(Math.random()*n.length)],t.fullLength=Math.floor(254*Math.random())+1,t.bodyWeight=Math.floor(254*Math.random())+1,t.power=Math.floor(254*Math.random())+1,t.speed=Math.floor(254*Math.random())+1,t.vitality=Math.floor(254*Math.random())+1,t.intellect=Math.floor(254*Math.random())+1,t}},{key:"mixedMint",value:function(t){var n=new e,i=t.map(function(e){switch(e.tokenType){case P.redJewel:return P.redDragon;case P.greenJewel:return P.greenDragon;case P.blueJewel:return P.blueDragon;case P.yellowJewel:return P.yellowDragon;default:return e.tokenType}});n.tokenType=i[Math.floor(Math.random()*i.length)];var r=function(e,t){return t+e};return n.fullLength=t.filter(function(e){return e.isDragon()}).map(function(e){return e.fullLength}).reduce(r),n.fullLength=n.fullLength<65535?n.fullLength:65535,n.bodyWeight=t.filter(function(e){return e.isDragon()}).map(function(e){return e.bodyWeight}).reduce(r),n.bodyWeight=n.bodyWeight<65535?n.bodyWeight:65535,n.power=t.filter(function(e){return e.isDragon()||e.tokenType===P.redJewel}).map(function(e){return e.power}).reduce(r),n.power=n.power<4294967295?n.power:4294967295,n.speed=t.filter(function(e){return e.isDragon()||e.tokenType===P.blueJewel}).map(function(e){return e.speed}).reduce(r),n.speed=n.speed<4294967295?n.speed:4294967295,n.vitality=t.filter(function(e){return e.isDragon()||e.tokenType===P.greenJewel}).map(function(e){return e.vitality}).reduce(r),n.vitality=n.vitality<4294967295?n.vitality:4294967295,n.intellect=t.filter(function(e){return e.isDragon()||e.tokenType===P.yellowJewel}).map(function(e){return e.intellect}).reduce(r),n.intellect=n.intellect<4294967295?n.intellect:4294967295,n}}]),e}(),N=n(88),q=n(197),h=n.n(q),w=n(198),A=n.n(w),M=n(199),F=n.n(M),B=n(200),O=n.n(B),H=n(201),j=n.n(H),U=n(202),z=n.n(U),W=n(203),J=n.n(W),G=n(204),K=n.n(G),X=n(205),Y=n.n(X),Z=n(206),Q=n.n(Z),ee=function(e){function t(){return Object(f.a)(this,t),Object(d.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){var e,t=this.props,n=t.tokenModel,i=Object(N.a)(t,["tokenModel"]);switch(n.tokenType){case P.whiteDragon:e=h.a;break;case P.blackDragon:e=A.a;break;case P.redDragon:e=F.a;break;case P.greenDragon:e=O.a;break;case P.blueDragon:e=j.a;break;case P.yellowDragon:e=z.a;break;case P.redJewel:e=J.a;break;case P.greenJewel:e=K.a;break;case P.blueJewel:e=Y.a;break;case P.yellowJewel:e=Q.a;break;default:return null}return r.a.createElement("img",Object.assign({src:e,alt:n.id},i))}}]),t}(r.a.Component),te=n(83),ne=n.n(te),ie=function(e){function t(){return Object(f.a)(this,t),Object(d.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){var e=this.props,t=e.tokenModel,n=Object(N.a)(e,["tokenModel"]),i=t.isDragon()?"Dragon":"Jewel";return r.a.createElement(ne.a,Object.assign({label:i,color:"secondary"},n))}}]),t}(r.a.Component),re=n(85),se=n.n(re),ae=function(){return r.a.createElement("div",null,"Loading...",r.a.createElement(se.a,{size:20}))},fe=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).state={tokenModel:null,isNotFound:!1},n.salesFormatter=new Intl.NumberFormat("us-EN",{style:"currency",currency:"USD"}),n.funFormatter=new Intl.NumberFormat("us-EN"),n.actFormat=function(e){if(e<30){var t=1===e?"day":"days";return"".concat(e," ").concat(t)}if(e<360){var n=Math.floor(e/30),i=1===n?"month":"months",r=e%30;return 0===r?"".concat(n," ").concat(i):1===r?"".concat(n," ").concat(i,", 1 day"):"".concat(n," ").concat(i,", ").concat(r," days")}var s=Math.floor(e/30),a=Math.floor(s/12),f=1===a?"year":"years",o=s%12;return 0===o?"".concat(a," ").concat(f):1===o?"".concat(a," ").concat(f,", 1 month"):"".concat(a," ").concat(f,", ").concat(o," months")},n.web3HttpUrl=function(e){switch(e){case"kovan":return"https://kovan.infura.io/ipN7Rvj4j0lzprCXMbql";case"rinkeby":return"https://rinkeby.infura.io/ipN7Rvj4j0lzprCXMbql";case"ropsten":return"https://ropsten.infura.io/ipN7Rvj4j0lzprCXMbql";case"local":return"http://localhost:7545";default:return null}},n.handleOtherDappsClick=function(){window.open("https://drip-samples.github.io/llllll-sample-bandstar".concat(n.props.history.location.pathname),"_blank")},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){var e,t,i=this,r=this.props.match.params,s=r.tokenId,a=r.networkName,f=L[a],o=n(80),d=new o(new o.providers.HttpProvider(this.web3HttpUrl(a))),p=S.SixPillars,l=new d.eth.Contract(p.abi,p.addresses[f]);Number.isNaN(parseInt(s,16))?this.setState({isNotFound:!0}):l.methods.ownerOf(s).call().then(function(t){return e=t,l.methods.creator(s).call()}).then(function(e){return t=e,l.methods.inscription(s).call()}).then(function(n){var r=("0000000000000000000000000000000000000000000000000000000000000000"+new d.utils.BN(n).toString(16)).slice(-64),a=R.decode(s,e,t,r,f);null!=a?i.setState({tokenModel:a}):i.setState({isNotFound:!0})})}},{key:"render",value:function(){var e=this.state,t=e.tokenModel,n=e.isNotFound;return r.a.createElement("div",null,r.a.createElement("h1",null,"Token Detail"),r.a.createElement("div",null,this.props.match.params.tokenId),!0===n?r.a.createElement("div",null,"token not found"):null!==t?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement(ee,{tokenModel:t,style:{height:"200px"}})),t.isAlreadyMixed&&r.a.createElement("div",{style:{color:"#ff0000"}},"token is already used."),r.a.createElement("div",null,r.a.createElement(ie,{tokenModel:t})),t.tokenType===P.redJewel?r.a.createElement("div",null,"Power : ",t.power):t.tokenType===P.blueJewel?r.a.createElement("div",null,"Speed : ",t.speed):t.tokenType===P.greenJewel?r.a.createElement("div",null,"Vitality : ",t.vitality):t.tokenType===P.yellowJewel?r.a.createElement("div",null,"Intellect : ",t.intellect):r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,"FullLength : ",t.fullLength/1e3," m"),r.a.createElement("div",null,"BodyWeight : ",t.bodyWeight/1e3," t"),r.a.createElement("div",null,"Power : ",t.power),r.a.createElement("div",null,"Speed : ",t.speed),r.a.createElement("div",null,"Vitality : ",t.vitality),r.a.createElement("div",null,"Intellect : ",t.intellect)),r.a.createElement("div",{style:{marginTop:"30px"}},r.a.createElement(E.a,{variant:"outlined",onClick:this.handleOtherDappsClick},"BandStar"))):r.a.createElement(ae,null))}}]),t}(r.a.Component),oe=n(34),de=n.n(oe),pe=n(47),le=n.n(pe),ye=n(86),ue=n.n(ye),ce={3:"Ropsten",4:"Rinkeby",42:"Kovan",5777:"Local"},me=function(){return r.a.createElement("div",null,r.a.createElement("div",null,"Metamask is connected disable network."),r.a.createElement("div",null,"enabled is"),r.a.createElement("ul",null,Object.keys(ce).filter(function(e){return"5777"!==e}).map(function(e){return r.a.createElement("li",null,ce[e])})))},_e=function(){return r.a.createElement("div",null,"Metamask Not Found")},ge=function(e){return function(t){function n(){return Object(f.a)(this,n),Object(d.a)(this,Object(p.a)(n).apply(this,arguments))}return Object(l.a)(n,t),Object(o.a)(n,[{key:"render",value:function(){var t=this;return r.a.createElement(g.Consumer,null,function(n){switch(n.web3Status){case T.failed.notfound:return r.a.createElement(_e,null);case T.failed.network:return r.a.createElement(me,null);case T.success:var i=Object(V.a)({},t.props,n);return r.a.createElement(e,i);default:return r.a.createElement(ae,null)}})}}]),n}(r.a.Component)},Te=n(118),De=n.n(Te),be=n(209),Ie=n.n(be),Se=n(210),xe=n.n(Se),Ve=n(208),ve=n.n(Ve),$e=n(61),ke=n.n($e),Ce=n(84),Ee=n.n(Ce),Le=function(){return r.a.createElement(ne.a,{label:"New!",style:{color:Ee.a[500],backgroundColor:Ee.a[50]}})},Pe=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).handleClick=function(){var e=n.props,t=e.tokenModel;(0,e.onClick)(t)},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){var e=this.props,t=e.tokenModel,n=e.isMixedMode,i=e.isSelected,s={width:"100%"};return t&&t.isAlreadyMixed?s.backgroundColor=ke.a[500]:n&&i&&(s.backgroundColor=ve.a[100]),r.a.createElement(le.a,{onClick:this.handleClick},r.a.createElement(ue.a,{style:s},null==t?r.a.createElement(De.a,null,r.a.createElement("div",{style:{float:"left",height:"106px",marginBottom:"16px"}},r.a.createElement(ae,null))):r.a.createElement(De.a,null,r.a.createElement("div",{style:{float:"left",width:"106px",height:"106px",marginBottom:"16px"}},r.a.createElement(ee,{tokenModel:t,style:{width:"auto",height:"auto",maxWidth:"100%",maxHeight:"100%"}})),r.a.createElement("div",{style:{float:"left"}},r.a.createElement("ul",{style:{listStyle:"none"}},r.a.createElement("li",null,!t.isAlreadyDisplay&&r.a.createElement(Le,null),r.a.createElement(ie,{tokenModel:t})),t.tokenType===P.redJewel?r.a.createElement("li",null,"Power : ",t.power):t.tokenType===P.blueJewel?r.a.createElement("li",null,"Speed : ",t.speed):t.tokenType===P.greenJewel?r.a.createElement("li",null,"Vitality : ",t.vitality):t.tokenType===P.yellowJewel?r.a.createElement("li",null,"Intellect : ",t.intellect):r.a.createElement(r.a.Fragment,null,r.a.createElement("li",null,"Power : ",t.power),r.a.createElement("li",null,"Speed : ",t.speed),r.a.createElement("li",null,"Vitality : ",t.vitality),r.a.createElement("li",null,"Intellect : ",t.intellect)))),n&&!t.isAlreadyMixed&&r.a.createElement("div",{style:{float:"right"}},i?r.a.createElement(Ie.a,null):r.a.createElement(xe.a,null)))))}}]),t}(r.a.Component),Re=8,Ne=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).state={tokenBalance:null,isLoadingNextToken:!1,isCanMore:!1,tokenModels:[],isMixedMode:!1,selectedTokenIds:[],isCanSubmitMixed:!1},n.updateTokenId=function(e,t){if(e<0)return n.setState({isLoadingNextToken:!1}),null;if(t<=0)return n.setState({isLoadingNextToken:!1,isCanMore:!0}),null;var i,r,s=n.props,a=s.networkId,f=s.currentAddress,o=S.SixPillars,d=new n.props.web3.eth.Contract(o.abi,o.addresses[a]);d.methods.tokenOfOwnerByIndex(f,e).call({from:f}).then(function(e){var t=new n.props.web3.utils.BN(e);return i=("0000000000000000000000000000000000000000000000000000000000000000"+t.toString(16)).slice(-64),d.methods.creator("0x".concat(i)).call({from:f})}).then(function(e){return r=e,d.methods.inscription("0x".concat(i)).call({from:f})}).then(function(s){var o=("0000000000000000000000000000000000000000000000000000000000000000"+new n.props.web3.utils.BN(s).toString(16)).slice(-64),d=R.decode(i,f,r,o,a);return n.setState({tokenModels:n.state.tokenModels.concat(d)}),n.updateTokenId(e-1,t-1)}).catch(function(i){n.updateTokenId(e-1,t)})},n.handleMintClick=function(){var e=R.mint().encode();n.props.mintToken&&n.props.mintToken(e)},n.handleTokenClick=function(e){var t=n.state,i=t.tokenModels,r=t.isMixedMode,s=t.selectedTokenIds;if(r)if(0<=s.indexOf(e.id))n.setState({selectedTokenIds:s.filter(function(t){return t!==e.id})});else{var a=s.concat(e.id),f=i.filter(function(e){return 0<=a.indexOf(e.id)}).filter(function(e){return e.isDragon()});n.setState({selectedTokenIds:a,isCanSubmitMixed:2<=a.length&&0<f.length})}else n.props.history.push("/".concat(ce[e.networkId].toLowerCase(),"/tokens/").concat(e.id))},n.handleMoreClick=function(){var e=n.state,t=e.tokenBalance,i=e.tokenModels;n.setState({isLoadingNextToken:!0,isCanMore:!1}),n.updateTokenId(t-i.length-1,Re)},n.handleEditMixedClick=function(){n.setState({isMixedMode:!n.state.isMixedMode,selectedTokenIds:[],isCanSubmitMixed:!1})},n.handleSubmitMixedClick=function(){var e=n.state,t=e.tokenModels,i=e.selectedTokenIds,r=t.filter(function(e){return 0<=i.indexOf(e.id)}),s=R.mixedMint(r).encode();n.props.mintToken&&n.props.mintToken(s,function(){r.forEach(function(e){e.alreadyMixed()})})},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props,n=t.networkId,i=t.currentAddress,r=S.SixPillars;new this.props.web3.eth.Contract(r.abi,r.addresses[n]).methods.balanceOf(i).call({from:i}).then(function(t){var n=parseInt(t);e.setState({tokenBalance:n,isLoadingNextToken:!0}),e.updateTokenId(n-1,Re)})}},{key:"render",value:function(){var e=this,t=this.state,n=t.tokenBalance,i=t.isLoadingNextToken,s=t.isCanMore,a=t.tokenModels,f=t.isMixedMode,o=t.selectedTokenIds,d=t.isCanSubmitMixed,p=i?a.length+1:a.length;return r.a.createElement("div",null,r.a.createElement("h1",null,"My Page"),r.a.createElement(de.a,{container:!0},r.a.createElement(de.a,{item:!0,xs:12,md:4,lg:3,key:"mint"},r.a.createElement(E.a,{variant:"outlined",onClick:this.handleMintClick},"Create Dragon Token")),r.a.createElement(de.a,{item:!0,xs:12,md:4,lg:3,key:"editmixed"},r.a.createElement(E.a,{variant:"outlined",color:"primary",onClick:this.handleEditMixedClick},f?"Cancel Dragon Mix":"Start Dragon Mix")),f&&d&&r.a.createElement(de.a,{item:!0,xs:12,md:4,lg:3,key:"submitmixed"},r.a.createElement(E.a,{variant:"outlined",color:"secondary",onClick:this.handleSubmitMixedClick},"Submit Dragon Mix"))),null==n?r.a.createElement(ae,null):0<p?r.a.createElement(de.a,{container:!0},Array(p).fill(0).map(function(t,n){return n<a.length?r.a.createElement(de.a,{item:!0,xs:12,md:6,lg:4,key:n},r.a.createElement(Pe,{tokenModel:a[n],isMixedMode:f,isSelected:0<=o.indexOf(a[n].id),onClick:e.handleTokenClick})):r.a.createElement(de.a,{item:!0,xs:12,md:6,lg:4,key:n},r.a.createElement(Pe,null))}),s&&r.a.createElement(de.a,{item:!0,xs:12,md:6,lg:4,key:p},r.a.createElement(le.a,{onClick:this.handleMoreClick},r.a.createElement(ue.a,{style:{width:"100%"}},r.a.createElement(le.a,null,r.a.createElement("div",{style:{height:"106px",padding:"16px"}},"More...")))))):r.a.createElement("p",null,"you don't have token."))}}]),t}(r.a.Component),qe=Object(v.a)(ge(Ne)),he=function(e){function t(){return Object(f.a)(this,t),Object(d.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){return r.a.createElement("div",null,r.a.createElement("h1",null,"How to Play"),r.a.createElement("hr",null),r.a.createElement("p",null,r.a.createElement("h2",null,"Let's create a Almighty Dragon!"),"This sample works with browsers with Ethereum Wallet functions.",r.a.createElement("br",null),"and, it is necessary to be connected to one of the following any TestNet.",r.a.createElement("ul",null,Object.keys(ce).filter(function(e){return"5777"!==e}).map(function(e){return r.a.createElement("li",null,ce[e])}))),r.a.createElement("p",null,r.a.createElement("h3",null,"Step1"),"Click ",r.a.createElement(E.a,{variant:"outlined"},"Create Dragon Token")," to create a Dragon token.",r.a.createElement("br",null),"You can create as many Dragon tokens as you like.",r.a.createElement("br",null),"(Transaction fee is required for creation.)"),r.a.createElement("p",null,r.a.createElement("h3",null,"Step2"),"Click ",r.a.createElement(E.a,{variant:"outlined",color:"primary"},"Start Dragon Mix")," to select multiple Dragon tokens required for mixing the dragons.",r.a.createElement("br",null),"You can also use Jewel for mixing.",r.a.createElement("br",null),"You can't select Dragon tokens that you used once, and not possible to synthesize only Jewel."),r.a.createElement("p",null,r.a.createElement("h3",null,"Step3"),"Click ",r.a.createElement(E.a,{variant:"outlined",color:"secondary"},"Submit Dragon Mix")," to mixing the dragons.",r.a.createElement("br",null),"The mixing dragon is created as a new Dragon token.",r.a.createElement("br",null),"(Transaction fee is required to mix the dragons.)"),r.a.createElement("p",null,r.a.createElement("h3",null,"Step4"),"Share your dragon URL and be proud of about your dragon!"),r.a.createElement("p",null,r.a.createElement("h3",null,"Step5"),"The Dragon token is available for ",r.a.createElement("a",{href:"https://6-pillars.ooo/",alt:"|||||| 6 pillars",target:"_blank",rel:"noopener noreferrer"},"|||||| - 6 pillars")," compliant DApps.",r.a.createElement("br",null),"Click ",r.a.createElement(E.a,{variant:"outlined"},"BandStar")," to see what your Dragon token is in other DApps!"))}}]),t}(r.a.Component),we=n(211),Ae=n.n(we),Me=n(212),Fe=n.n(Me),Be=n(87),Oe=n.n(Be),He=n(215),je=n.n(He),Ue=n(213),ze=n.n(Ue),We=n(214),Je=n.n(We),Ge=function(e){return function(t){function n(){return Object(f.a)(this,n),Object(d.a)(this,Object(p.a)(n).apply(this,arguments))}return Object(l.a)(n,t),Object(o.a)(n,[{key:"render",value:function(){var t=this;return r.a.createElement(g.Consumer,null,function(n){var i=Object(V.a)({},t.props,n);return r.a.createElement(e,i)})}}]),n}(r.a.Component)},Ke=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).state={isProgress:!1,isOpen:!1,snackMessage:null},n.handleSnackClose=function(){n.setState({isOpen:!1})},n.handleLogoClick=function(){n.props.history.push("/")},n.handleHelpClick=function(){n.props.history.push("/howto")},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.web3Transaction;if(n!==e.web3Transaction)switch(n){case D.pending:this.setState({isProgress:!0,isOpen:!1});break;case D.success:this.setState({isProgress:!1,isOpen:!0,snackMessage:"success!"}),setTimeout(function(){window.location.reload()},1500);break;case D.cancel:this.setState({isProgress:!1,isOpen:!0,snackMessage:"cancel transaction."});break;default:this.setState({isProgress:!1,isOpen:!1})}}},{key:"render",value:function(){var e=this.props.networkId,t=this.state,n=t.isProgress,i=t.isOpen,s=t.snackMessage;return r.a.createElement(Ae.a,{position:"static",color:"secondary"},r.a.createElement(Fe.a,null,r.a.createElement(Oe.a,{variant:"h4",color:"inherit",style:{cursor:"pointer"},onClick:this.handleLogoClick},"Dragon"),r.a.createElement("span",{style:{flexGrow:1}}),n&&r.a.createElement(se.a,{color:"primary",size:30}),e&&ce[e]&&r.a.createElement(Oe.a,{variant:"h6",color:"inherit"},ce[e]),r.a.createElement(ze.a,{color:"inherit",onClick:this.handleHelpClick,style:{marginLeft:"16px"}},r.a.createElement(Je.a,null))),r.a.createElement(je.a,{anchorOrigin:{vertical:"top",horizontal:"center"},open:i,autoHideDuration:3e3,onClose:this.handleSnackClose,message:s}))}}]),t}(r.a.Component),Xe=Object(v.a)(Ge(Ke)),Ye=n(216),Ze=n.n(Ye),Qe=80,et=function(e){function t(){var e,n;Object(f.a)(this,t);for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(n=Object(d.a)(this,(e=Object(p.a)(t)).call.apply(e,[this].concat(r)))).state={value:0},n.handleChange=function(e,t){n.setState({value:t})},n.rootStyle={width:"100%",height:"".concat(Qe,"px"),position:"absolute",bottom:"0px",backgroundColor:ke.a[100],display:"flex",justifyContent:"center",alignItems:"center"},n}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){return r.a.createElement("div",{style:this.rootStyle},r.a.createElement("div",{style:{padding:"10px",textAlign:"center"}},r.a.createElement("div",null,r.a.createElement("a",{href:"https://6-pillars.ooo/",alt:"|||||| 6 pillars",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("img",{src:Ze.a,alt:"powered by |||||| 6 pillars",style:{height:"24px",marginBottom:"4px"}}))),r.a.createElement("div",null,r.a.createElement("a",{href:"https://github.com/drip-samples/llllll-sample-dragons",alt:"sample codes",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("i",{className:"fab fa-github fa-lg",style:{color:"#000000"}})))))}}],[{key:"height",value:function(){return Qe}}]),t}(r.a.Component),tt=Object(v.a)(et),nt=function(){return r.a.createElement("div",null,"404 Not Found")},it=function(e){function t(){return Object(f.a)(this,t),Object(d.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(l.a)(t,e),Object(o.a)(t,[{key:"render",value:function(){return r.a.createElement(x,null,r.a.createElement(y.a,{basename:"/llllll-sample-dragons"},r.a.createElement(k,null,r.a.createElement(r.a.Fragment,null,r.a.createElement(Xe,null),r.a.createElement("div",{style:{paddingBottom:"".concat(tt.height(),"px")}},r.a.createElement(u.a,null,r.a.createElement(c.a,{exact:!0,path:"/:networkName/tokens/:tokenId",component:fe}),r.a.createElement(c.a,{exact:!0,path:"/howto",component:he}),r.a.createElement(c.a,{exact:!0,path:"/",component:qe}),r.a.createElement(c.a,{component:nt}))),r.a.createElement(tt,null)))))}}]),t}(i.Component);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));a.a.render(r.a.createElement(it,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(e){e.unregister()})}},[[217,2,1]]]);
  //# sourceMappingURL=main.f1020b23.chunk.js.map