[ { "inputs": [ { "internalType": "string", "name": "_baseUri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "_tokenIdCounter", "outputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "accessTokenTrustedSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "accessTokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" } ], "name": "airdropMint", "outputs": [ { "internalType": "uint256", "name": "_NFTsMinted", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "accessToken", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "safeMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "trustedSigner", "type": "address" } ], "name": "setTrustedSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "string", "name": "message", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "verifyMessage", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620048f3380380620048f3833981810160405281019062000037919062000401565b6040518060400160405280601881526020017f44656c7461205072696d65204561726c792041636365737300000000000000008152506040518060400160405280600581526020017f44502d45410000000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb929190620002df565b508060019080519060200190620000d4929190620002df565b5050506000600660006101000a81548160ff02191690831515021790555062000112620001066200014260201b60201c565b6200014a60201b60201c565b620001226200021060201b60201c565b80600990805190602001906200013a929190620002df565b50506200069b565b600033905090565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000220620002c860201b60201c565b1562000263576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025a906200049b565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620002af6200014260201b60201c565b604051620002be91906200047e565b60405180910390a1565b6000600660009054906101000a900460ff16905090565b828054620002ed9062000597565b90600052602060002090601f0160209004810192826200031157600085556200035d565b82601f106200032c57805160ff19168380011785556200035d565b828001600101855582156200035d579182015b828111156200035c5782518255916020019190600101906200033f565b5b5090506200036c919062000370565b5090565b5b808211156200038b57600081600090555060010162000371565b5090565b6000620003a6620003a084620004e6565b620004bd565b905082815260208101848484011115620003bf57600080fd5b620003cc84828562000561565b509392505050565b600082601f830112620003e657600080fd5b8151620003f88482602086016200038f565b91505092915050565b6000602082840312156200041457600080fd5b600082015167ffffffffffffffff8111156200042f57600080fd5b6200043d84828501620003d4565b91505092915050565b62000451816200052d565b82525050565b6000620004666010836200051c565b9150620004738262000672565b602082019050919050565b600060208201905062000495600083018462000446565b92915050565b60006020820190508181036000830152620004b68162000457565b9050919050565b6000620004c9620004dc565b9050620004d78282620005cd565b919050565b6000604051905090565b600067ffffffffffffffff82111562000504576200050362000632565b5b6200050f8262000661565b9050602081019050919050565b600082825260208201905092915050565b60006200053a8262000541565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200058157808201518184015260208101905062000564565b8381111562000591576000848401525b50505050565b60006002820490506001821680620005b057607f821691505b60208210811415620005c757620005c662000603565b5b50919050565b620005d88262000661565b810181811067ffffffffffffffff82111715620005fa57620005f962000632565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b61424880620006ab6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063b88d4fde11610097578063c87b56dd11610071578063c87b56dd14610496578063dbb31645146104c6578063e985e9c5146104f6578063f2fde38b14610526576101a9565b8063b88d4fde1461042c578063baa9b90414610448578063c2656e5614610466576101a9565b806384c4bd4b116100d357806384c4bd4b146103b65780638da5cb5b146103d457806395d89b41146103f2578063a22cb46514610410576101a9565b8063715018a61461037257806371da6a461461037c5780638456cb59146103ac576101a9565b806342842e0e116101665780635c975abb116101405780635c975abb146102d65780636352211e146102f45780636c0360eb1461032457806370a0823114610342576101a9565b806342842e0e1461026e57806346d362111461028a57806356a1c701146102ba576101a9565b806301ffc9a7146101ae57806306fdde03146101de578063081812fc146101fc578063095ea7b31461022c57806323b872dd146102485780633f4ba83a14610264575b600080fd5b6101c860048036038101906101c39190612cdd565b610542565b6040516101d5919061335f565b60405180910390f35b6101e6610624565b6040516101f391906133bf565b60405180910390f35b61021660048036038101906102119190612ddc565b6106b6565b60405161022391906132f8565b60405180910390f35b61024660048036038101906102419190612c60565b61073b565b005b610262600480360381019061025d9190612adb565b610853565b005b61026c6108b3565b005b61028860048036038101906102839190612adb565b610939565b005b6102a4600480360381019061029f9190612c9c565b610959565b6040516102b19190613721565b60405180910390f35b6102d460048036038101906102cf9190612a76565b610ac8565b005b6102de610bf8565b6040516102eb919061335f565b60405180910390f35b61030e60048036038101906103099190612ddc565b610c0f565b60405161031b91906132f8565b60405180910390f35b61032c610cc1565b60405161033991906133bf565b60405180910390f35b61035c60048036038101906103579190612a76565b610d4f565b6040516103699190613721565b60405180910390f35b61037a610e07565b005b61039660048036038101906103919190612be1565b610e8f565b6040516103a3919061335f565b60405180910390f35b6103b4610ef5565b005b6103be610f7b565b6040516103cb9190613721565b60405180910390f35b6103dc610f87565b6040516103e991906132f8565b60405180910390f35b6103fa610fb1565b60405161040791906133bf565b60405180910390f35b61042a60048036038101906104259190612ba5565b611043565b005b61044660048036038101906104419190612b2a565b611059565b005b6104506110bb565b60405161045d91906132f8565b60405180910390f35b610480600480360381019061047b9190612d2f565b6110e1565b60405161048d91906132f8565b60405180910390f35b6104b060048036038101906104ab9190612ddc565b61112a565b6040516104bd91906133bf565b60405180910390f35b6104e060048036038101906104db9190612d70565b611206565b6040516104ed9190613721565b60405180910390f35b610510600480360381019061050b9190612a9f565b61140a565b60405161051d919061335f565b60405180910390f35b610540600480360381019061053b9190612a76565b61149e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061060d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061061d575061061c82611596565b5b9050919050565b60606000805461063390613989565b80601f016020809104026020016040519081016040528092919081815260200182805461065f90613989565b80156106ac5780601f10610681576101008083540402835291602001916106ac565b820191906000526020600020905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b60006106c182611600565b610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790613681565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061074682610c0f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae906136e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107d661166c565b73ffffffffffffffffffffffffffffffffffffffff1614806108055750610804816107ff61166c565b61140a565b5b610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083b906135a1565b60405180910390fd5b61084e8383611674565b505050565b61086461085e61166c565b8261172d565b6108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90613701565b60405180910390fd5b6108ae83838361180b565b505050565b6108bb61166c565b73ffffffffffffffffffffffffffffffffffffffff166108d9610f87565b73ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610926906136a1565b60405180910390fd5b610937611a72565b565b61095483838360405180602001604052806000815250611059565b505050565b600061096361166c565b73ffffffffffffffffffffffffffffffffffffffff16610981610f87565b73ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906136a1565b60405180910390fd5b600080915060005b8351811015610ac1576000610a33858381518110610a26577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610d4f565b1115610a3e57610aae565b610a486007611b14565b9150610a546007611b22565b610a9e848281518110610a90577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015183611b38565b600183610aab9190613832565b92505b8080610ab9906139ec565b9150506109df565b5050919050565b610ad061166c565b73ffffffffffffffffffffffffffffffffffffffff16610aee610f87565b73ffffffffffffffffffffffffffffffffffffffff1614610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b906136a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab90613641565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900460ff16905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906135e1565b60405180910390fd5b80915050919050565b60098054610cce90613989565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfa90613989565b8015610d475780601f10610d1c57610100808354040283529160200191610d47565b820191906000526020600020905b815481529060010190602001808311610d2a57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906135c1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e0f61166c565b73ffffffffffffffffffffffffffffffffffffffff16610e2d610f87565b73ffffffffffffffffffffffffffffffffffffffff1614610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a906136a1565b60405180910390fd5b610e8d6000611b56565b565b600080838051906020012090506000610eb984610eab84611c1c565b611c4c90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614925050509392505050565b610efd61166c565b73ffffffffffffffffffffffffffffffffffffffff16610f1b610f87565b73ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f68906136a1565b60405180910390fd5b610f79611c73565b565b60078060000154905081565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610fc090613989565b80601f0160208091040260200160405190810160405280929190818152602001828054610fec90613989565b80156110395780601f1061100e57610100808354040283529160200191611039565b820191906000526020600020905b81548152906001019060200180831161101c57829003601f168201915b5050505050905090565b61105561104e61166c565b8383611d16565b5050565b61106a61106461166c565b8361172d565b6110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613701565b60405180910390fd5b6110b584848484611e83565b50505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061113582611600565b611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b906136c1565b60405180910390fd5b6009805461118190613989565b80601f01602080910402602001604051908101604052809291908181526020018280546111ad90613989565b80156111fa5780601f106111cf576101008083540402835291602001916111fa565b820191906000526020600020905b8154815290600101906020018083116111dd57829003601f168201915b50505050509050919050565b6000611235600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484610e8f565b611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b906134c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660088460405161129c91906132bb565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613661565b60405180910390fd5b600061133361132e61166c565b610d4f565b14611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a90613541565b60405180910390fd5b600061137f6007611b14565b905061138b6007611b22565b61139361166c565b6008856040516113a391906132bb565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114006113fa61166c565b82611b38565b8091505092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6114a661166c565b73ffffffffffffffffffffffffffffffffffffffff166114c4610f87565b73ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906136a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561158a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158190613461565b60405180910390fd5b61159381611b56565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166116e783610c0f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061173882611600565b611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90613561565b60405180910390fd5b600061178283610c0f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806117f157508373ffffffffffffffffffffffffffffffffffffffff166117d9846106b6565b73ffffffffffffffffffffffffffffffffffffffff16145b806118025750611801818561140a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661182b82610c0f565b73ffffffffffffffffffffffffffffffffffffffff1614611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890613481565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906134e1565b60405180910390fd5b6118fc838383611edf565b611907600082611674565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119579190613888565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ae9190613832565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a6d838383611f6e565b505050565b611a7a610bf8565b611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090613401565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611afd61166c565b604051611b0a91906132f8565b60405180910390a1565b600081600001549050919050565b6001816000016000828254019250508190555050565b611b52828260405180602001604052806000815250611f73565b5050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081604051602001611c2f91906132d2565b604051602081830303815290604052805190602001209050919050565b6000806000611c5b8585611fce565b91509150611c6881612051565b819250505092915050565b611c7b610bf8565b15611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb290613581565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611cff61166c565b604051611d0c91906132f8565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c90613501565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e76919061335f565b60405180910390a3505050565b611e8e84848461180b565b611e9a848484846123a2565b611ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed090613441565b60405180910390fd5b50505050565b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f5d57611f1c610bf8565b15611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5390613581565b60405180910390fd5b5b611f68848484612539565b50505050565b505050565b611f7d838361253e565b611f8a60008484846123a2565b611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc090613441565b60405180910390fd5b505050565b6000806041835114156120105760008060006020860151925060408601519150606086015160001a905061200487828585612718565b9450945050505061204a565b604083511415612041576000806020850151915060408501519050612036868383612825565b93509350505061204a565b60006002915091505b9250929050565b6000600481111561208b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156120c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156120cf5761239f565b60016004811115612109577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612142577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a906133e1565b60405180910390fd5b600260048111156121bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156121f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e90613421565b60405180910390fd5b60036004811115612271577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156122aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290613521565b60405180910390fd5b600480811115612324577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600481111561235d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613601565b60405180910390fd5b5b50565b60006123c38473ffffffffffffffffffffffffffffffffffffffff16612884565b1561252c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026123ec61166c565b8786866040518563ffffffff1660e01b815260040161240e9493929190613313565b602060405180830381600087803b15801561242857600080fd5b505af192505050801561245957506040513d601f19601f820116820180604052508101906124569190612d06565b60015b6124dc573d8060008114612489576040519150601f19603f3d011682016040523d82523d6000602084013e61248e565b606091505b506000815114156124d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cb90613441565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612531565b600190505b949350505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a590613621565b60405180910390fd5b6125b781611600565b156125f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ee906134a1565b60405180910390fd5b61260360008383611edf565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126539190613832565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461271460008383611f6e565b5050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561275357600060039150915061281c565b601b8560ff161415801561276b5750601c8560ff1614155b1561277d57600060049150915061281c565b6000600187878787604051600081526020016040526040516127a2949392919061337a565b6020604051602081039080840390855afa1580156127c4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128135760006001925092505061281c565b80600092509250505b94509492505050565b60008060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b841690506000601b60ff8660001c901c6128689190613832565b905061287687828885612718565b935093505050935093915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60006128ba6128b584613761565b61373c565b905080838252602082019050828560208602820111156128d957600080fd5b60005b8581101561290957816128ef888261298f565b8452602084019350602083019250506001810190506128dc565b5050509392505050565b60006129266129218461378d565b61373c565b90508281526020810184848401111561293e57600080fd5b612949848285613947565b509392505050565b600061296461295f846137be565b61373c565b90508281526020810184848401111561297c57600080fd5b612987848285613947565b509392505050565b60008135905061299e816141b6565b92915050565b600082601f8301126129b557600080fd5b81356129c58482602086016128a7565b91505092915050565b6000813590506129dd816141cd565b92915050565b6000813590506129f2816141e4565b92915050565b600081519050612a07816141e4565b92915050565b600082601f830112612a1e57600080fd5b8135612a2e848260208601612913565b91505092915050565b600082601f830112612a4857600080fd5b8135612a58848260208601612951565b91505092915050565b600081359050612a70816141fb565b92915050565b600060208284031215612a8857600080fd5b6000612a968482850161298f565b91505092915050565b60008060408385031215612ab257600080fd5b6000612ac08582860161298f565b9250506020612ad18582860161298f565b9150509250929050565b600080600060608486031215612af057600080fd5b6000612afe8682870161298f565b9350506020612b0f8682870161298f565b9250506040612b2086828701612a61565b9150509250925092565b60008060008060808587031215612b4057600080fd5b6000612b4e8782880161298f565b9450506020612b5f8782880161298f565b9350506040612b7087828801612a61565b925050606085013567ffffffffffffffff811115612b8d57600080fd5b612b9987828801612a0d565b91505092959194509250565b60008060408385031215612bb857600080fd5b6000612bc68582860161298f565b9250506020612bd7858286016129ce565b9150509250929050565b600080600060608486031215612bf657600080fd5b6000612c048682870161298f565b935050602084013567ffffffffffffffff811115612c2157600080fd5b612c2d86828701612a37565b925050604084013567ffffffffffffffff811115612c4a57600080fd5b612c5686828701612a0d565b9150509250925092565b60008060408385031215612c7357600080fd5b6000612c818582860161298f565b9250506020612c9285828601612a61565b9150509250929050565b600060208284031215612cae57600080fd5b600082013567ffffffffffffffff811115612cc857600080fd5b612cd4848285016129a4565b91505092915050565b600060208284031215612cef57600080fd5b6000612cfd848285016129e3565b91505092915050565b600060208284031215612d1857600080fd5b6000612d26848285016129f8565b91505092915050565b600060208284031215612d4157600080fd5b600082013567ffffffffffffffff811115612d5b57600080fd5b612d6784828501612a37565b91505092915050565b60008060408385031215612d8357600080fd5b600083013567ffffffffffffffff811115612d9d57600080fd5b612da985828601612a37565b925050602083013567ffffffffffffffff811115612dc657600080fd5b612dd285828601612a0d565b9150509250929050565b600060208284031215612dee57600080fd5b6000612dfc84828501612a61565b91505092915050565b612e0e816138bc565b82525050565b612e1d816138ce565b82525050565b612e2c816138da565b82525050565b612e43612e3e826138da565b613a35565b82525050565b6000612e54826137ef565b612e5e8185613805565b9350612e6e818560208601613956565b612e7781613acc565b840191505092915050565b6000612e8d826137fa565b612e978185613816565b9350612ea7818560208601613956565b612eb081613acc565b840191505092915050565b6000612ec6826137fa565b612ed08185613827565b9350612ee0818560208601613956565b80840191505092915050565b6000612ef9601883613816565b9150612f0482613add565b602082019050919050565b6000612f1c601483613816565b9150612f2782613b06565b602082019050919050565b6000612f3f601f83613816565b9150612f4a82613b2f565b602082019050919050565b6000612f62601c83613827565b9150612f6d82613b58565b601c82019050919050565b6000612f85603283613816565b9150612f9082613b81565b604082019050919050565b6000612fa8602683613816565b9150612fb382613bd0565b604082019050919050565b6000612fcb602583613816565b9150612fd682613c1f565b604082019050919050565b6000612fee601c83613816565b9150612ff982613c6e565b602082019050919050565b6000613011601583613816565b915061301c82613c97565b602082019050919050565b6000613034602483613816565b915061303f82613cc0565b604082019050919050565b6000613057601983613816565b915061306282613d0f565b602082019050919050565b600061307a602283613816565b915061308582613d38565b604082019050919050565b600061309d602683613816565b91506130a882613d87565b604082019050919050565b60006130c0602c83613816565b91506130cb82613dd6565b604082019050919050565b60006130e3601083613816565b91506130ee82613e25565b602082019050919050565b6000613106603883613816565b915061311182613e4e565b604082019050919050565b6000613129602a83613816565b915061313482613e9d565b604082019050919050565b600061314c602983613816565b915061315782613eec565b604082019050919050565b600061316f602283613816565b915061317a82613f3b565b604082019050919050565b6000613192602083613816565b915061319d82613f8a565b602082019050919050565b60006131b5602783613816565b91506131c082613fb3565b604082019050919050565b60006131d8602483613816565b91506131e382614002565b604082019050919050565b60006131fb602c83613816565b915061320682614051565b604082019050919050565b600061321e602083613816565b9150613229826140a0565b602082019050919050565b6000613241602f83613816565b915061324c826140c9565b604082019050919050565b6000613264602183613816565b915061326f82614118565b604082019050919050565b6000613287603183613816565b915061329282614167565b604082019050919050565b6132a681613930565b82525050565b6132b58161393a565b82525050565b60006132c78284612ebb565b915081905092915050565b60006132dd82612f55565b91506132e98284612e32565b60208201915081905092915050565b600060208201905061330d6000830184612e05565b92915050565b60006080820190506133286000830187612e05565b6133356020830186612e05565b613342604083018561329d565b81810360608301526133548184612e49565b905095945050505050565b60006020820190506133746000830184612e14565b92915050565b600060808201905061338f6000830187612e23565b61339c60208301866132ac565b6133a96040830185612e23565b6133b66060830184612e23565b95945050505050565b600060208201905081810360008301526133d98184612e82565b905092915050565b600060208201905081810360008301526133fa81612eec565b9050919050565b6000602082019050818103600083015261341a81612f0f565b9050919050565b6000602082019050818103600083015261343a81612f32565b9050919050565b6000602082019050818103600083015261345a81612f78565b9050919050565b6000602082019050818103600083015261347a81612f9b565b9050919050565b6000602082019050818103600083015261349a81612fbe565b9050919050565b600060208201905081810360008301526134ba81612fe1565b9050919050565b600060208201905081810360008301526134da81613004565b9050919050565b600060208201905081810360008301526134fa81613027565b9050919050565b6000602082019050818103600083015261351a8161304a565b9050919050565b6000602082019050818103600083015261353a8161306d565b9050919050565b6000602082019050818103600083015261355a81613090565b9050919050565b6000602082019050818103600083015261357a816130b3565b9050919050565b6000602082019050818103600083015261359a816130d6565b9050919050565b600060208201905081810360008301526135ba816130f9565b9050919050565b600060208201905081810360008301526135da8161311c565b9050919050565b600060208201905081810360008301526135fa8161313f565b9050919050565b6000602082019050818103600083015261361a81613162565b9050919050565b6000602082019050818103600083015261363a81613185565b9050919050565b6000602082019050818103600083015261365a816131a8565b9050919050565b6000602082019050818103600083015261367a816131cb565b9050919050565b6000602082019050818103600083015261369a816131ee565b9050919050565b600060208201905081810360008301526136ba81613211565b9050919050565b600060208201905081810360008301526136da81613234565b9050919050565b600060208201905081810360008301526136fa81613257565b9050919050565b6000602082019050818103600083015261371a8161327a565b9050919050565b6000602082019050613736600083018461329d565b92915050565b6000613746613757565b905061375282826139bb565b919050565b6000604051905090565b600067ffffffffffffffff82111561377c5761377b613a9d565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156137a8576137a7613a9d565b5b6137b182613acc565b9050602081019050919050565b600067ffffffffffffffff8211156137d9576137d8613a9d565b5b6137e282613acc565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061383d82613930565b915061384883613930565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561387d5761387c613a3f565b5b828201905092915050565b600061389382613930565b915061389e83613930565b9250828210156138b1576138b0613a3f565b5b828203905092915050565b60006138c782613910565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613974578082015181840152602081019050613959565b83811115613983576000848401525b50505050565b600060028204905060018216806139a157607f821691505b602082108114156139b5576139b4613a6e565b5b50919050565b6139c482613acc565b810181811067ffffffffffffffff821117156139e3576139e2613a9d565b5b80604052505050565b60006139f782613930565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613a2a57613a29613a3f565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f5369676e6572206e6f7420617574686f72697a65640000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f6e65204e465420706572206f6e652077616c6c6574206973206160008201527f6c6c6f7765640000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f54727573746564207369676e65722063616e6e6f742062652061207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f6e65204e465420706572206f6e65207573657220697320616c6c60008201527f6f77656400000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6141bf816138bc565b81146141ca57600080fd5b50565b6141d6816138ce565b81146141e157600080fd5b50565b6141ed816138e4565b81146141f857600080fd5b50565b61420481613930565b811461420f57600080fd5b5056fea26469706673582212203a1a9ce3617d6d5d8ddf47c0b0bd1974ccb8c958198dab61f57dda84f045065f64736f6c634300080400330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003f68747470733a2f2f617277656176652e6e65742f59694c78596d45694736487333464e7a3749687167737173633767305941742d616a37413957512d6a753000