Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FileAlreadyRegistered","type":"error"},{"inputs":[],"name":"FileNotRegistered","type":"error"},{"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":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","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":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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_baseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_payloads","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileName","type":"string"},{"internalType":"address[]","name":"fileStorageAddresses","type":"address[]"}],"name":"addFile","outputs":[],"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":[],"name":"artistName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileName","type":"string"}],"name":"fileContents","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileName","type":"string"}],"name":"fileStorage","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"files","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gatewayManager","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"uint256","name":"tokenId","type":"uint256"}],"name":"getPayload","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"},{"internalType":"address","name":"minter_","type":"address"},{"internalType":"address","name":"gatewayManager_","type":"address"},{"internalType":"string","name":"contractName_","type":"string"},{"internalType":"uint256","name":"royaltyValue_","type":"uint256"},{"internalType":"address","name":"owner_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","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":"license","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"string[]","name":"payloads","type":"string[]"}],"name":"mintBatchWithPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"payload","type":"string"}],"name":"mintWithPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingManager","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"projectDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileName","type":"string"}],"name":"removeFile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","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":"string","name":"artistName_","type":"string"}],"name":"setArtistName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"setCollectionName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"description_","type":"string"}],"name":"setDescription","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"gatewayManager_","type":"address"}],"name":"setGatewayManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"license_","type":"string"}],"name":"setLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMintingManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"payload","type":"string"}],"name":"setPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"royaltyRecipient","type":"address"},{"internalType":"uint256","name":"royaltyValue","type":"uint256"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newuri","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"year_","type":"string"}],"name":"setYear","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":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"year","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b50604051806020016040528060008152506040518060400160405280600581526020017f564552534500000000000000000000000000000000000000000000000000000081525060405180602001604052806000815250826000908051906020019062000080929190620001aa565b50816001908051906020019062000099929190620001aa565b508060069080519060200190620000b2929190620001aa565b50505050620000d6620000ca620000dc60201b60201c565b620000e460201b60201c565b620002be565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b89062000289565b90600052602060002090601f016020900481019282620001dc576000855562000228565b82601f10620001f757805160ff191683800117855562000228565b8280016001018555821562000228579182015b82811115620002275782518255916020019190600101906200020a565b5b5090506200023791906200023b565b5090565b5b80821115620002565760008160009055506001016200023c565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002a257607f821691505b602082108103620002b857620002b76200025a565b5b50919050565b615b7f80620002ce6000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c80636ebcf6071161019d578063a22cb465116100e9578063d28d8852116100a2578063ea888a881161007c578063ea888a8814610913578063f1afe04d14610943578063f2fde38b1461095f578063f32697161461097b576102f1565b8063d28d8852146108a9578063da990d4c146108c7578063e985e9c5146108e3576102f1565b8063a22cb465146107eb578063b4837d9e14610807578063b88d4fde14610823578063c21a8f671461083f578063c87b56dd1461085b578063d0414c9d1461088b576102f1565b80638278cb661161015657806390c3f38f1161013057806390c3f38f1461076557806395d89b4114610781578063992924a61461079f5780639c5643e7146107cf576102f1565b80638278cb661461070f5780638c7ea24b1461072b5780638da5cb5b14610747576102f1565b80636ebcf6071461064d57806370a082311461067d578063715018a6146106ad578063755f047b146106b75780637c39601d146106d55780637c88e3d9146106f3576102f1565b80633113cca01161025c57806342b611b7116102155780635b2f515b116101ef5780635b2f515b146105c55780636352211e146105e35780636b87d24c146106135780636c52c3fb14610631576102f1565b806342b611b71461056f578063588844321461058b5780635a3c7d26146105a9576102f1565b80633113cca0146104c5578063378dfba4146104e15780633a330022146104fd5780633e63eb2a1461051957806340c10f191461053757806342842e0e14610553576102f1565b8063095ea7b3116102ae578063095ea7b3146103de57806318160ddd146103fa5780631d2db6c81461041857806323b872dd146104485780632a55205a146104645780632b566c2a14610495576102f1565b806301ffc9a7146102f657806302d05d3f1461032657806302ee12111461034457806302fe53051461037457806306fdde0314610390578063081812fc146103ae575b600080fd5b610310600480360381019061030b9190613f02565b610999565b60405161031d9190613f4a565b60405180910390f35b61032e6109ab565b60405161033b9190613fa6565b60405180910390f35b61035e60048036038101906103599190614026565b6109d1565b60405161036b9190614131565b60405180910390f35b61038e60048036038101906103899190614294565b610b04565b005b610398610ba0565b6040516103a59190614365565b60405180910390f35b6103c860048036038101906103c391906143bd565b610c32565b6040516103d59190613fa6565b60405180910390f35b6103f860048036038101906103f39190614416565b610c78565b005b610402610d8f565b60405161040f9190614465565b60405180910390f35b610432600480360381019061042d91906143bd565b610d95565b60405161043f9190614365565b60405180910390f35b610462600480360381019061045d9190614480565b610e3a565b005b61047e600480360381019061047991906144d3565b610e9a565b60405161048c929190614513565b60405180910390f35b6104af60048036038101906104aa9190614026565b610f5a565b6040516104bc9190614591565b60405180910390f35b6104df60048036038101906104da9190614609565b611153565b005b6104fb60048036038101906104f6919061468a565b61124f565b005b6105176004803603810190610512919061474f565b6113ab565b005b6105216113f7565b60405161052e9190614365565b60405180910390f35b610551600480360381019061054c9190614416565b611485565b005b61056d60048036038101906105689190614480565b61178f565b005b6105896004803603810190610584919061477c565b6117af565b005b610593611ae2565b6040516105a09190613fa6565b60405180910390f35b6105c360048036038101906105be9190614294565b611b08565b005b6105cd611b2a565b6040516105da9190614365565b60405180910390f35b6105fd60048036038101906105f891906143bd565b611bb8565b60405161060a9190613fa6565b60405180910390f35b61061b611c3e565b6040516106289190614365565b60405180910390f35b61064b6004803603810190610646919061474f565b611ccc565b005b6106676004803603810190610662919061474f565b611d18565b6040516106749190614465565b60405180910390f35b6106976004803603810190610692919061474f565b611d30565b6040516106a49190614465565b60405180910390f35b6106b5611de7565b005b6106bf611dfb565b6040516106cc9190614365565b60405180910390f35b6106dd611e89565b6040516106ea91906148f7565b60405180910390f35b61070d60048036038101906107089190614a9f565b612015565b005b61072960048036038101906107249190614294565b61214b565b005b61074560048036038101906107409190614416565b61216d565b005b61074f612183565b60405161075c9190613fa6565b60405180910390f35b61077f600480360381019061077a9190614294565b6121ad565b005b6107896121cf565b6040516107969190614365565b60405180910390f35b6107b960048036038101906107b491906143bd565b612261565b6040516107c69190613fa6565b60405180910390f35b6107e960048036038101906107e49190614bf8565b612294565b005b61080560048036038101906108009190614ccb565b6123e6565b005b610821600480360381019061081c9190614294565b6123fc565b005b61083d60048036038101906108389190614dac565b61241e565b005b61085960048036038101906108549190614294565b612480565b005b610875600480360381019061087091906143bd565b6124a2565b6040516108829190614365565b60405180910390f35b6108936124b4565b6040516108a09190613fa6565b60405180910390f35b6108b16124da565b6040516108be9190614365565b60405180910390f35b6108e160048036038101906108dc9190614e2f565b612568565b005b6108fd60048036038101906108f89190614e8b565b61259c565b60405161090a9190613f4a565b60405180910390f35b61092d600480360381019061092891906143bd565b612630565b60405161093a9190614365565b60405180910390f35b61095d60048036038101906109589190614026565b6126d0565b005b6109796004803603810190610974919061474f565b61297d565b005b610983612a00565b6040516109909190614365565b60405180910390f35b60006109a482612a8e565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000600982604051610a2e9190614f07565b90815260200160405180910390208054905003610a5657610a5563263d05cc60e01b612b08565b5b60098484604051610a68929190614f43565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020018280548015610af657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610aac575b505050505091505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90614fa8565b60405180910390fd5b610b9d81612b12565b50565b606060008054610baf90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610bdb90614ff7565b8015610c285780601f10610bfd57610100808354040283529160200191610c28565b820191906000526020600020905b815481529060010190602001808311610c0b57829003601f168201915b5050505050905090565b6000610c3d82612b83565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c8382611bb8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061509a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d12612bce565b73ffffffffffffffffffffffffffffffffffffffff161480610d415750610d4081610d3b612bce565b61259c565b5b610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d779061512c565b60405180910390fd5b610d8a8383612bd6565b505050565b600b5481565b6060600f60008381526020019081526020016000208054610db590614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610de190614ff7565b8015610e2e5780601f10610e0357610100808354040283529160200191610e2e565b820191906000526020600020905b815481529060010190602001808311610e1157829003601f168201915b50505050509050919050565b610e4b610e45612bce565b82612c8f565b610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e81906151be565b60405180910390fd5b610e95838383612d24565b505050565b600080600060086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff1685610f46919061520d565b610f509190615296565b9150509250929050565b6060600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000600982604051610fb79190614f07565b90815260200160405180910390208054905003610fdf57610fde63263d05cc60e01b612b08565b5b600060098585604051610ff3929190614f43565b908152602001604051809103902080548060200260200160405190810160405280929190818152602001828054801561108157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611037575b50505050509050600081519050600060405180602001604052806000815250905060005b8281101561114557816111108583815181106110c4576110c36152c7565b5b60200260200101516001808886815181106110e2576110e16152c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163b61110b91906152f6565b61301d565b604051602001611121929190615366565b6040516020818303038152906040529150808061113d9061538a565b9150506110a5565b508094505050505092915050565b61115b613046565b600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006009826040516111b69190614f07565b908152602001604051809103902080549050146111de576111dd63aa2fa7cb60e01b612b08565b5b600a81908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190611219929190613be8565b50828260098360405161122c9190614f07565b90815260200160405180910390209190611247929190613c6e565b505050505050565b600080805461125d90614ff7565b90501461129f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112969061541e565b60405180910390fd5b82600090805190602001906112b5929190613d0e565b5085600690805190602001906112cc929190613d0e565b5084600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061135981836130c4565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113a3816131ae565b505050505050565b6113b3613046565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006805461140490614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461143090614ff7565b801561147d5780601f106114525761010080835404028352916020019161147d565b820191906000526020600020905b81548152906001019060200180831161146057829003601f168201915b505050505081565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90614fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061548a565b60405180910390fd5b61158d81613274565b156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c4906154f6565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461161d9190615516565b925050819055506001600b60008282546116379190615516565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6117aa8383836040518060200160405280600081525061241e565b505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690614fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a59061548a565b60405180910390fd5b6118b782613274565b156118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee906154f6565b60405180910390fd5b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119479190615516565b925050819055506001600b60008282546119619190615516565b92505081905550826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f600084815260200190815260200160002090805190602001906119e1929190613d0e565b5081600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b10613046565b8060139080519060200190611b26929190613d0e565b5050565b60108054611b3790614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6390614ff7565b8015611bb05780601f10611b8557610100808354040283529160200191611bb0565b820191906000526020600020905b815481529060010190602001808311611b9357829003601f168201915b505050505081565b600080611bc4836132b5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c906155b8565b60405180910390fd5b80915050919050565b60138054611c4b90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7790614ff7565b8015611cc45780601f10611c9957610100808354040283529160200191611cc4565b820191906000526020600020905b815481529060010190602001808311611ca757829003601f168201915b505050505081565b611cd4613046565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d979061564a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611def613046565b611df960006131ae565b565b60118054611e0890614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3490614ff7565b8015611e815780601f10611e5657610100808354040283529160200191611e81565b820191906000526020600020905b815481529060010190602001808311611e6457829003601f168201915b505050505081565b60606000600a805480602002602001604051908101604052809291908181526020016000905b82821015611f5b578382906000526020600020018054611ece90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611efa90614ff7565b8015611f475780601f10611f1c57610100808354040283529160200191611f47565b820191906000526020600020905b815481529060010190602001808311611f2a57829003601f168201915b505050505081526020019060010190611eaf565b5050505090506000815167ffffffffffffffff811115611f7e57611f7d614169565b5b604051908082528060200260200182016040528015611fb157816020015b6060815260200190600190039081611f9c5790505b50905060005b825181101561200c57828181518110611fd357611fd26152c7565b5b6020026020010151828281518110611fee57611fed6152c7565b5b602002602001018190525080806120049061538a565b915050611fb7565b50809250505090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90614fa8565b60405180910390fd5b81518151146120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e0906156b6565b60405180910390fd5b60005b81518110156121465761213383828151811061210b5761210a6152c7565b5b6020026020010151838381518110612126576121256152c7565b5b6020026020010151611485565b808061213e9061538a565b9150506120ec565b505050565b612153613046565b8060009080519060200190612169929190613d0e565b5050565b612175613046565b61217f82826130c4565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121b5613046565b80601190805190602001906121cb929190613d0e565b5050565b6060600180546121de90614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614ff7565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b5050505050905090565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b90614fa8565b60405180910390fd5b8251825114612368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235f906156b6565b60405180910390fd5b60005b82518110156123e0576123cd84828151811061238a576123896152c7565b5b60200260200101518483815181106123a5576123a46152c7565b5b60200260200101518484815181106123c0576123bf6152c7565b5b60200260200101516117af565b80806123d89061538a565b91505061236b565b50505050565b6123f86123f1612bce565b83836132f2565b5050565b612404613046565b806010908051906020019061241a929190613d0e565b5050565b61242f612429612bce565b83612c8f565b61246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906151be565b60405180910390fd5b61247a8484848461345e565b50505050565b612488613046565b806012908051906020019061249e929190613d0e565b5050565b60606124ad826134ba565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080546124e790614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461251390614ff7565b80156125605780601f1061253557610100808354040283529160200191612560565b820191906000526020600020905b81548152906001019060200180831161254357829003601f168201915b505050505081565b612570613046565b80600f60008481526020019081526020016000209080519060200190612597929190613d0e565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600f602052806000526040600020600091509050805461264f90614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461267b90614ff7565b80156126c85780601f1061269d576101008083540402835291602001916126c8565b820191906000526020600020905b8154815290600101906020018083116126ab57829003601f168201915b505050505081565b6126d8613046565b600082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006009826040516127339190614f07565b9081526020016040518091039020805490500361275b5761275a63263d05cc60e01b612b08565b5b6000600a805480602002602001604051908101604052809291908181526020016000905b8282101561282b57838290600052602060002001805461279e90614ff7565b80601f01602080910402602001604051908101604052809291908181526020018280546127ca90614ff7565b80156128175780601f106127ec57610100808354040283529160200191612817565b820191906000526020600020905b8154815290600101906020018083116127fa57829003601f168201915b50505050508152602001906001019061277f565b50505050905060006001825161284191906152f6565b67ffffffffffffffff81111561285a57612859614169565b5b60405190808252806020026020018201604052801561288d57816020015b60608152602001906001900390816128785790505b5090506000808351905060005b818110156129325785805190602001208582815181106128bd576128bc6152c7565b5b602002602001015180519060200120036128da576001925061291f565b8481815181106128ed576128ec6152c7565b5b602002602001015184848361290291906152f6565b81518110612913576129126152c7565b5b60200260200101819052505b808061292a9061538a565b91505061289a565b5082600a9080519060200190612949929190613d94565b5060098560405161295a9190614f07565b908152602001604051809103902060006129749190613df4565b50505050505050565b612985613046565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129eb90615748565b60405180910390fd5b6129fd816131ae565b50565b60128054612a0d90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054612a3990614ff7565b8015612a865780601f10612a5b57610100808354040283529160200191612a86565b820191906000526020600020905b815481529060010190602001808311612a6957829003601f168201915b505050505081565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b015750612b00826135a5565b5b9050919050565b8060005260046000fd5b8060069080519060200190612b28929190613d0e565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612b789190614465565b60405180910390a150565b612b8c81613274565b612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc2906155b8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612c4983611bb8565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612c9b83611bb8565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612cdd5750612cdc818561259c565b5b80612d1b57508373ffffffffffffffffffffffffffffffffffffffff16612d0384610c32565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612d4482611bb8565b73ffffffffffffffffffffffffffffffffffffffff1614612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d91906157da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e009061586c565b60405180910390fd5b612e168383836001613687565b8273ffffffffffffffffffffffffffffffffffffffff16612e3682611bb8565b73ffffffffffffffffffffffffffffffffffffffff1614612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e83906157da565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461301883838360016137ad565b505050565b60606040519050601f19601f6020840101168101604052818152818360208301863c9392505050565b61304e612bce565b73ffffffffffffffffffffffffffffffffffffffff1661306c612183565b73ffffffffffffffffffffffffffffffffffffffff16146130c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b9906158d8565b60405180910390fd5b565b612710811115613109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310090615944565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16613296836132b5565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613357906159b0565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516134519190613f4a565b60405180910390a3505050565b613469848484612d24565b613475848484846137b3565b6134b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ab90615a42565b60405180910390fd5b50505050565b60606134c582612b83565b6000600680546134d490614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461350090614ff7565b801561354d5780601f106135225761010080835404028352916020019161354d565b820191906000526020600020905b81548152906001019060200180831161353057829003601f168201915b505050505090506000815111613572576040518060200160405280600081525061359d565b8061357c8461393a565b60405160200161358d929190615a88565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061367057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613680575061367f82613a08565b5b9050919050565b60018111156137a757600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461371b5780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461371391906152f6565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146137a65780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461379e9190615516565b925050819055505b5b50505050565b50505050565b60006137d48473ffffffffffffffffffffffffffffffffffffffff16613a72565b1561392d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026137fd612bce565b8786866040518563ffffffff1660e01b815260040161381f9493929190615abb565b6020604051808303816000875af192505050801561385b57506040513d601f19601f820116820180604052508101906138589190615b1c565b60015b6138dd573d806000811461388b576040519150601f19603f3d011682016040523d82523d6000602084013e613890565b606091505b5060008151036138d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138cc90615a42565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613932565b600190505b949350505050565b60606000600161394984613a95565b01905060008167ffffffffffffffff81111561396857613967614169565b5b6040519080825280601f01601f19166020018201604052801561399a5781602001600182028036833780820191505090505b509050600082602001820190505b6001156139fd578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816139f1576139f0615267565b5b049450600085036139a8575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613af3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613ae957613ae8615267565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613b30576d04ee2d6d415b85acef81000000008381613b2657613b25615267565b5b0492506020810190505b662386f26fc100008310613b5f57662386f26fc100008381613b5557613b54615267565b5b0492506010810190505b6305f5e1008310613b88576305f5e1008381613b7e57613b7d615267565b5b0492506008810190505b6127108310613bad576127108381613ba357613ba2615267565b5b0492506004810190505b60648310613bd05760648381613bc657613bc5615267565b5b0492506002810190505b600a8310613bdf576001810190505b80915050919050565b828054613bf490614ff7565b90600052602060002090601f016020900481019282613c165760008555613c5d565b82601f10613c2f57805160ff1916838001178555613c5d565b82800160010185558215613c5d579182015b82811115613c5c578251825591602001919060010190613c41565b5b509050613c6a9190613e15565b5090565b828054828255906000526020600020908101928215613cfd579160200282015b82811115613cfc57823573ffffffffffffffffffffffffffffffffffffffff168260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c8e565b5b509050613d0a9190613e15565b5090565b828054613d1a90614ff7565b90600052602060002090601f016020900481019282613d3c5760008555613d83565b82601f10613d5557805160ff1916838001178555613d83565b82800160010185558215613d83579182015b82811115613d82578251825591602001919060010190613d67565b5b509050613d909190613e15565b5090565b828054828255906000526020600020908101928215613de3579160200282015b82811115613de2578251829080519060200190613dd2929190613be8565b5091602001919060010190613db4565b5b509050613df09190613e32565b5090565b5080546000825590600052602060002090810190613e129190613e15565b50565b5b80821115613e2e576000816000905550600101613e16565b5090565b5b80821115613e525760008181613e499190613e56565b50600101613e33565b5090565b508054613e6290614ff7565b6000825580601f10613e745750613e93565b601f016020900490600052602060002090810190613e929190613e15565b5b50565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613edf81613eaa565b8114613eea57600080fd5b50565b600081359050613efc81613ed6565b92915050565b600060208284031215613f1857613f17613ea0565b5b6000613f2684828501613eed565b91505092915050565b60008115159050919050565b613f4481613f2f565b82525050565b6000602082019050613f5f6000830184613f3b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f9082613f65565b9050919050565b613fa081613f85565b82525050565b6000602082019050613fbb6000830184613f97565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613fe657613fe5613fc1565b5b8235905067ffffffffffffffff81111561400357614002613fc6565b5b60208301915083600182028301111561401f5761401e613fcb565b5b9250929050565b6000806020838503121561403d5761403c613ea0565b5b600083013567ffffffffffffffff81111561405b5761405a613ea5565b5b61406785828601613fd0565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140a881613f85565b82525050565b60006140ba838361409f565b60208301905092915050565b6000602082019050919050565b60006140de82614073565b6140e8818561407e565b93506140f38361408f565b8060005b8381101561412457815161410b88826140ae565b9750614116836140c6565b9250506001810190506140f7565b5085935050505092915050565b6000602082019050818103600083015261414b81846140d3565b905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141a182614158565b810181811067ffffffffffffffff821117156141c0576141bf614169565b5b80604052505050565b60006141d3613e96565b90506141df8282614198565b919050565b600067ffffffffffffffff8211156141ff576141fe614169565b5b61420882614158565b9050602081019050919050565b82818337600083830152505050565b6000614237614232846141e4565b6141c9565b90508281526020810184848401111561425357614252614153565b5b61425e848285614215565b509392505050565b600082601f83011261427b5761427a613fc1565b5b813561428b848260208601614224565b91505092915050565b6000602082840312156142aa576142a9613ea0565b5b600082013567ffffffffffffffff8111156142c8576142c7613ea5565b5b6142d484828501614266565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156143175780820151818401526020810190506142fc565b83811115614326576000848401525b50505050565b6000614337826142dd565b61434181856142e8565b93506143518185602086016142f9565b61435a81614158565b840191505092915050565b6000602082019050818103600083015261437f818461432c565b905092915050565b6000819050919050565b61439a81614387565b81146143a557600080fd5b50565b6000813590506143b781614391565b92915050565b6000602082840312156143d3576143d2613ea0565b5b60006143e1848285016143a8565b91505092915050565b6143f381613f85565b81146143fe57600080fd5b50565b600081359050614410816143ea565b92915050565b6000806040838503121561442d5761442c613ea0565b5b600061443b85828601614401565b925050602061444c858286016143a8565b9150509250929050565b61445f81614387565b82525050565b600060208201905061447a6000830184614456565b92915050565b60008060006060848603121561449957614498613ea0565b5b60006144a786828701614401565b93505060206144b886828701614401565b92505060406144c9868287016143a8565b9150509250925092565b600080604083850312156144ea576144e9613ea0565b5b60006144f8858286016143a8565b9250506020614509858286016143a8565b9150509250929050565b60006040820190506145286000830185613f97565b6145356020830184614456565b9392505050565b600081519050919050565b600082825260208201905092915050565b60006145638261453c565b61456d8185614547565b935061457d8185602086016142f9565b61458681614158565b840191505092915050565b600060208201905081810360008301526145ab8184614558565b905092915050565b60008083601f8401126145c9576145c8613fc1565b5b8235905067ffffffffffffffff8111156145e6576145e5613fc6565b5b60208301915083602082028301111561460257614601613fcb565b5b9250929050565b6000806000806040858703121561462357614622613ea0565b5b600085013567ffffffffffffffff81111561464157614640613ea5565b5b61464d87828801613fd0565b9450945050602085013567ffffffffffffffff8111156146705761466f613ea5565b5b61467c878288016145b3565b925092505092959194509250565b60008060008060008060c087890312156146a7576146a6613ea0565b5b600087013567ffffffffffffffff8111156146c5576146c4613ea5565b5b6146d189828a01614266565b96505060206146e289828a01614401565b95505060406146f389828a01614401565b945050606087013567ffffffffffffffff81111561471457614713613ea5565b5b61472089828a01614266565b935050608061473189828a016143a8565b92505060a061474289828a01614401565b9150509295509295509295565b60006020828403121561476557614764613ea0565b5b600061477384828501614401565b91505092915050565b60008060006060848603121561479557614794613ea0565b5b60006147a386828701614401565b93505060206147b4868287016143a8565b925050604084013567ffffffffffffffff8111156147d5576147d4613ea5565b5b6147e186828701614266565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000614833826142dd565b61483d8185614817565b935061484d8185602086016142f9565b61485681614158565b840191505092915050565b600061486d8383614828565b905092915050565b6000602082019050919050565b600061488d826147eb565b61489781856147f6565b9350836020820285016148a985614807565b8060005b858110156148e557848403895281516148c68582614861565b94506148d183614875565b925060208a019950506001810190506148ad565b50829750879550505050505092915050565b600060208201905081810360008301526149118184614882565b905092915050565b600067ffffffffffffffff82111561493457614933614169565b5b602082029050602081019050919050565b600061495861495384614919565b6141c9565b9050808382526020820190506020840283018581111561497b5761497a613fcb565b5b835b818110156149a457806149908882614401565b84526020840193505060208101905061497d565b5050509392505050565b600082601f8301126149c3576149c2613fc1565b5b81356149d3848260208601614945565b91505092915050565b600067ffffffffffffffff8211156149f7576149f6614169565b5b602082029050602081019050919050565b6000614a1b614a16846149dc565b6141c9565b90508083825260208201905060208402830185811115614a3e57614a3d613fcb565b5b835b81811015614a675780614a5388826143a8565b845260208401935050602081019050614a40565b5050509392505050565b600082601f830112614a8657614a85613fc1565b5b8135614a96848260208601614a08565b91505092915050565b60008060408385031215614ab657614ab5613ea0565b5b600083013567ffffffffffffffff811115614ad457614ad3613ea5565b5b614ae0858286016149ae565b925050602083013567ffffffffffffffff811115614b0157614b00613ea5565b5b614b0d85828601614a71565b9150509250929050565b600067ffffffffffffffff821115614b3257614b31614169565b5b602082029050602081019050919050565b6000614b56614b5184614b17565b6141c9565b90508083825260208201905060208402830185811115614b7957614b78613fcb565b5b835b81811015614bc057803567ffffffffffffffff811115614b9e57614b9d613fc1565b5b808601614bab8982614266565b85526020850194505050602081019050614b7b565b5050509392505050565b600082601f830112614bdf57614bde613fc1565b5b8135614bef848260208601614b43565b91505092915050565b600080600060608486031215614c1157614c10613ea0565b5b600084013567ffffffffffffffff811115614c2f57614c2e613ea5565b5b614c3b868287016149ae565b935050602084013567ffffffffffffffff811115614c5c57614c5b613ea5565b5b614c6886828701614a71565b925050604084013567ffffffffffffffff811115614c8957614c88613ea5565b5b614c9586828701614bca565b9150509250925092565b614ca881613f2f565b8114614cb357600080fd5b50565b600081359050614cc581614c9f565b92915050565b60008060408385031215614ce257614ce1613ea0565b5b6000614cf085828601614401565b9250506020614d0185828601614cb6565b9150509250929050565b600067ffffffffffffffff821115614d2657614d25614169565b5b614d2f82614158565b9050602081019050919050565b6000614d4f614d4a84614d0b565b6141c9565b905082815260208101848484011115614d6b57614d6a614153565b5b614d76848285614215565b509392505050565b600082601f830112614d9357614d92613fc1565b5b8135614da3848260208601614d3c565b91505092915050565b60008060008060808587031215614dc657614dc5613ea0565b5b6000614dd487828801614401565b9450506020614de587828801614401565b9350506040614df6878288016143a8565b925050606085013567ffffffffffffffff811115614e1757614e16613ea5565b5b614e2387828801614d7e565b91505092959194509250565b60008060408385031215614e4657614e45613ea0565b5b6000614e54858286016143a8565b925050602083013567ffffffffffffffff811115614e7557614e74613ea5565b5b614e8185828601614266565b9150509250929050565b60008060408385031215614ea257614ea1613ea0565b5b6000614eb085828601614401565b9250506020614ec185828601614401565b9150509250929050565b600081905092915050565b6000614ee18261453c565b614eeb8185614ecb565b9350614efb8185602086016142f9565b80840191505092915050565b6000614f138284614ed6565b915081905092915050565b6000614f2a8385614ecb565b9350614f37838584614215565b82840190509392505050565b6000614f50828486614f1e565b91508190509392505050565b7f5065726d697373696f6e2064656e696564000000000000000000000000000000600082015250565b6000614f926011836142e8565b9150614f9d82614f5c565b602082019050919050565b60006020820190508181036000830152614fc181614f85565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061500f57607f821691505b60208210810361502257615021614fc8565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006150846021836142e8565b915061508f82615028565b604082019050919050565b600060208201905081810360008301526150b381615077565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000615116603d836142e8565b9150615121826150ba565b604082019050919050565b6000602082019050818103600083015261514581615109565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006151a8602d836142e8565b91506151b38261514c565b604082019050919050565b600060208201905081810360008301526151d78161519b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061521882614387565b915061522383614387565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561525c5761525b6151de565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006152a182614387565b91506152ac83614387565b9250826152bc576152bb615267565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061530182614387565b915061530c83614387565b92508282101561531f5761531e6151de565b5b828203905092915050565b600081905092915050565b6000615340826142dd565b61534a818561532a565b935061535a8185602086016142f9565b80840191505092915050565b60006153728285614ed6565b915061537e8284615335565b91508190509392505050565b600061539582614387565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153c7576153c66151de565b5b600182019050919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b60006154086013836142e8565b9150615413826153d2565b602082019050919050565b60006020820190508181036000830152615437816153fb565b9050919050565b7f6d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b60006154746018836142e8565b915061547f8261543e565b602082019050919050565b600060208201905081810360008301526154a381615467565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006154e0601c836142e8565b91506154eb826154aa565b602082019050919050565b6000602082019050818103600083015261550f816154d3565b9050919050565b600061552182614387565b915061552c83614387565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615561576155606151de565b5b828201905092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006155a26018836142e8565b91506155ad8261556c565b602082019050919050565b600060208201905081810360008301526155d181615595565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006156346029836142e8565b915061563f826155d8565b604082019050919050565b6000602082019050818103600083015261566381615627565b9050919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006156a06016836142e8565b91506156ab8261566a565b602082019050919050565b600060208201905081810360008301526156cf81615693565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006157326026836142e8565b915061573d826156d6565b604082019050919050565b6000602082019050818103600083015261576181615725565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006157c46025836142e8565b91506157cf82615768565b604082019050919050565b600060208201905081810360008301526157f3816157b7565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006158566024836142e8565b9150615861826157fa565b604082019050919050565b6000602082019050818103600083015261588581615849565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006158c26020836142e8565b91506158cd8261588c565b602082019050919050565b600060208201905081810360008301526158f1816158b5565b9050919050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b600061592e601a836142e8565b9150615939826158f8565b602082019050919050565b6000602082019050818103600083015261595d81615921565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061599a6019836142e8565b91506159a582615964565b602082019050919050565b600060208201905081810360008301526159c98161598d565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615a2c6032836142e8565b9150615a37826159d0565b604082019050919050565b60006020820190508181036000830152615a5b81615a1f565b9050919050565b7f2f00000000000000000000000000000000000000000000000000000000000000815250565b6000615a948285615335565b9150615a9f82615a62565b600182019150615aaf8284615335565b91508190509392505050565b6000608082019050615ad06000830187613f97565b615add6020830186613f97565b615aea6040830185614456565b8181036060830152615afc8184614558565b905095945050505050565b600081519050615b1681613ed6565b92915050565b600060208284031215615b3257615b31613ea0565b5b6000615b4084828501615b07565b9150509291505056fea2646970667358221220981fd8f70a284ee0024e32c71d3471b0d5aa56be45dc3583a7393f47519fe74f64736f6c634300080d0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102f15760003560e01c80636ebcf6071161019d578063a22cb465116100e9578063d28d8852116100a2578063ea888a881161007c578063ea888a8814610913578063f1afe04d14610943578063f2fde38b1461095f578063f32697161461097b576102f1565b8063d28d8852146108a9578063da990d4c146108c7578063e985e9c5146108e3576102f1565b8063a22cb465146107eb578063b4837d9e14610807578063b88d4fde14610823578063c21a8f671461083f578063c87b56dd1461085b578063d0414c9d1461088b576102f1565b80638278cb661161015657806390c3f38f1161013057806390c3f38f1461076557806395d89b4114610781578063992924a61461079f5780639c5643e7146107cf576102f1565b80638278cb661461070f5780638c7ea24b1461072b5780638da5cb5b14610747576102f1565b80636ebcf6071461064d57806370a082311461067d578063715018a6146106ad578063755f047b146106b75780637c39601d146106d55780637c88e3d9146106f3576102f1565b80633113cca01161025c57806342b611b7116102155780635b2f515b116101ef5780635b2f515b146105c55780636352211e146105e35780636b87d24c146106135780636c52c3fb14610631576102f1565b806342b611b71461056f578063588844321461058b5780635a3c7d26146105a9576102f1565b80633113cca0146104c5578063378dfba4146104e15780633a330022146104fd5780633e63eb2a1461051957806340c10f191461053757806342842e0e14610553576102f1565b8063095ea7b3116102ae578063095ea7b3146103de57806318160ddd146103fa5780631d2db6c81461041857806323b872dd146104485780632a55205a146104645780632b566c2a14610495576102f1565b806301ffc9a7146102f657806302d05d3f1461032657806302ee12111461034457806302fe53051461037457806306fdde0314610390578063081812fc146103ae575b600080fd5b610310600480360381019061030b9190613f02565b610999565b60405161031d9190613f4a565b60405180910390f35b61032e6109ab565b60405161033b9190613fa6565b60405180910390f35b61035e60048036038101906103599190614026565b6109d1565b60405161036b9190614131565b60405180910390f35b61038e60048036038101906103899190614294565b610b04565b005b610398610ba0565b6040516103a59190614365565b60405180910390f35b6103c860048036038101906103c391906143bd565b610c32565b6040516103d59190613fa6565b60405180910390f35b6103f860048036038101906103f39190614416565b610c78565b005b610402610d8f565b60405161040f9190614465565b60405180910390f35b610432600480360381019061042d91906143bd565b610d95565b60405161043f9190614365565b60405180910390f35b610462600480360381019061045d9190614480565b610e3a565b005b61047e600480360381019061047991906144d3565b610e9a565b60405161048c929190614513565b60405180910390f35b6104af60048036038101906104aa9190614026565b610f5a565b6040516104bc9190614591565b60405180910390f35b6104df60048036038101906104da9190614609565b611153565b005b6104fb60048036038101906104f6919061468a565b61124f565b005b6105176004803603810190610512919061474f565b6113ab565b005b6105216113f7565b60405161052e9190614365565b60405180910390f35b610551600480360381019061054c9190614416565b611485565b005b61056d60048036038101906105689190614480565b61178f565b005b6105896004803603810190610584919061477c565b6117af565b005b610593611ae2565b6040516105a09190613fa6565b60405180910390f35b6105c360048036038101906105be9190614294565b611b08565b005b6105cd611b2a565b6040516105da9190614365565b60405180910390f35b6105fd60048036038101906105f891906143bd565b611bb8565b60405161060a9190613fa6565b60405180910390f35b61061b611c3e565b6040516106289190614365565b60405180910390f35b61064b6004803603810190610646919061474f565b611ccc565b005b6106676004803603810190610662919061474f565b611d18565b6040516106749190614465565b60405180910390f35b6106976004803603810190610692919061474f565b611d30565b6040516106a49190614465565b60405180910390f35b6106b5611de7565b005b6106bf611dfb565b6040516106cc9190614365565b60405180910390f35b6106dd611e89565b6040516106ea91906148f7565b60405180910390f35b61070d60048036038101906107089190614a9f565b612015565b005b61072960048036038101906107249190614294565b61214b565b005b61074560048036038101906107409190614416565b61216d565b005b61074f612183565b60405161075c9190613fa6565b60405180910390f35b61077f600480360381019061077a9190614294565b6121ad565b005b6107896121cf565b6040516107969190614365565b60405180910390f35b6107b960048036038101906107b491906143bd565b612261565b6040516107c69190613fa6565b60405180910390f35b6107e960048036038101906107e49190614bf8565b612294565b005b61080560048036038101906108009190614ccb565b6123e6565b005b610821600480360381019061081c9190614294565b6123fc565b005b61083d60048036038101906108389190614dac565b61241e565b005b61085960048036038101906108549190614294565b612480565b005b610875600480360381019061087091906143bd565b6124a2565b6040516108829190614365565b60405180910390f35b6108936124b4565b6040516108a09190613fa6565b60405180910390f35b6108b16124da565b6040516108be9190614365565b60405180910390f35b6108e160048036038101906108dc9190614e2f565b612568565b005b6108fd60048036038101906108f89190614e8b565b61259c565b60405161090a9190613f4a565b60405180910390f35b61092d600480360381019061092891906143bd565b612630565b60405161093a9190614365565b60405180910390f35b61095d60048036038101906109589190614026565b6126d0565b005b6109796004803603810190610974919061474f565b61297d565b005b610983612a00565b6040516109909190614365565b60405180910390f35b60006109a482612a8e565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000600982604051610a2e9190614f07565b90815260200160405180910390208054905003610a5657610a5563263d05cc60e01b612b08565b5b60098484604051610a68929190614f43565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020018280548015610af657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610aac575b505050505091505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90614fa8565b60405180910390fd5b610b9d81612b12565b50565b606060008054610baf90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610bdb90614ff7565b8015610c285780601f10610bfd57610100808354040283529160200191610c28565b820191906000526020600020905b815481529060010190602001808311610c0b57829003601f168201915b5050505050905090565b6000610c3d82612b83565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c8382611bb8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061509a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d12612bce565b73ffffffffffffffffffffffffffffffffffffffff161480610d415750610d4081610d3b612bce565b61259c565b5b610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d779061512c565b60405180910390fd5b610d8a8383612bd6565b505050565b600b5481565b6060600f60008381526020019081526020016000208054610db590614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610de190614ff7565b8015610e2e5780601f10610e0357610100808354040283529160200191610e2e565b820191906000526020600020905b815481529060010190602001808311610e1157829003601f168201915b50505050509050919050565b610e4b610e45612bce565b82612c8f565b610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e81906151be565b60405180910390fd5b610e95838383612d24565b505050565b600080600060086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff1685610f46919061520d565b610f509190615296565b9150509250929050565b6060600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000600982604051610fb79190614f07565b90815260200160405180910390208054905003610fdf57610fde63263d05cc60e01b612b08565b5b600060098585604051610ff3929190614f43565b908152602001604051809103902080548060200260200160405190810160405280929190818152602001828054801561108157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611037575b50505050509050600081519050600060405180602001604052806000815250905060005b8281101561114557816111108583815181106110c4576110c36152c7565b5b60200260200101516001808886815181106110e2576110e16152c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163b61110b91906152f6565b61301d565b604051602001611121929190615366565b6040516020818303038152906040529150808061113d9061538a565b9150506110a5565b508094505050505092915050565b61115b613046565b600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006009826040516111b69190614f07565b908152602001604051809103902080549050146111de576111dd63aa2fa7cb60e01b612b08565b5b600a81908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190611219929190613be8565b50828260098360405161122c9190614f07565b90815260200160405180910390209190611247929190613c6e565b505050505050565b600080805461125d90614ff7565b90501461129f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112969061541e565b60405180910390fd5b82600090805190602001906112b5929190613d0e565b5085600690805190602001906112cc929190613d0e565b5084600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061135981836130c4565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113a3816131ae565b505050505050565b6113b3613046565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006805461140490614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461143090614ff7565b801561147d5780601f106114525761010080835404028352916020019161147d565b820191906000526020600020905b81548152906001019060200180831161146057829003601f168201915b505050505081565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90614fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061548a565b60405180910390fd5b61158d81613274565b156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c4906154f6565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461161d9190615516565b925050819055506001600b60008282546116379190615516565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6117aa8383836040518060200160405280600081525061241e565b505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690614fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a59061548a565b60405180910390fd5b6118b782613274565b156118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee906154f6565b60405180910390fd5b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119479190615516565b925050819055506001600b60008282546119619190615516565b92505081905550826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f600084815260200190815260200160002090805190602001906119e1929190613d0e565b5081600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b10613046565b8060139080519060200190611b26929190613d0e565b5050565b60108054611b3790614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6390614ff7565b8015611bb05780601f10611b8557610100808354040283529160200191611bb0565b820191906000526020600020905b815481529060010190602001808311611b9357829003601f168201915b505050505081565b600080611bc4836132b5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c906155b8565b60405180910390fd5b80915050919050565b60138054611c4b90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7790614ff7565b8015611cc45780601f10611c9957610100808354040283529160200191611cc4565b820191906000526020600020905b815481529060010190602001808311611ca757829003601f168201915b505050505081565b611cd4613046565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d979061564a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611def613046565b611df960006131ae565b565b60118054611e0890614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3490614ff7565b8015611e815780601f10611e5657610100808354040283529160200191611e81565b820191906000526020600020905b815481529060010190602001808311611e6457829003601f168201915b505050505081565b60606000600a805480602002602001604051908101604052809291908181526020016000905b82821015611f5b578382906000526020600020018054611ece90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054611efa90614ff7565b8015611f475780601f10611f1c57610100808354040283529160200191611f47565b820191906000526020600020905b815481529060010190602001808311611f2a57829003601f168201915b505050505081526020019060010190611eaf565b5050505090506000815167ffffffffffffffff811115611f7e57611f7d614169565b5b604051908082528060200260200182016040528015611fb157816020015b6060815260200190600190039081611f9c5790505b50905060005b825181101561200c57828181518110611fd357611fd26152c7565b5b6020026020010151828281518110611fee57611fed6152c7565b5b602002602001018190525080806120049061538a565b915050611fb7565b50809250505090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90614fa8565b60405180910390fd5b81518151146120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e0906156b6565b60405180910390fd5b60005b81518110156121465761213383828151811061210b5761210a6152c7565b5b6020026020010151838381518110612126576121256152c7565b5b6020026020010151611485565b808061213e9061538a565b9150506120ec565b505050565b612153613046565b8060009080519060200190612169929190613d0e565b5050565b612175613046565b61217f82826130c4565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121b5613046565b80601190805190602001906121cb929190613d0e565b5050565b6060600180546121de90614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614ff7565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b5050505050905090565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b90614fa8565b60405180910390fd5b8251825114612368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235f906156b6565b60405180910390fd5b60005b82518110156123e0576123cd84828151811061238a576123896152c7565b5b60200260200101518483815181106123a5576123a46152c7565b5b60200260200101518484815181106123c0576123bf6152c7565b5b60200260200101516117af565b80806123d89061538a565b91505061236b565b50505050565b6123f86123f1612bce565b83836132f2565b5050565b612404613046565b806010908051906020019061241a929190613d0e565b5050565b61242f612429612bce565b83612c8f565b61246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906151be565b60405180910390fd5b61247a8484848461345e565b50505050565b612488613046565b806012908051906020019061249e929190613d0e565b5050565b60606124ad826134ba565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080546124e790614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461251390614ff7565b80156125605780601f1061253557610100808354040283529160200191612560565b820191906000526020600020905b81548152906001019060200180831161254357829003601f168201915b505050505081565b612570613046565b80600f60008481526020019081526020016000209080519060200190612597929190613d0e565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600f602052806000526040600020600091509050805461264f90614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461267b90614ff7565b80156126c85780601f1061269d576101008083540402835291602001916126c8565b820191906000526020600020905b8154815290600101906020018083116126ab57829003601f168201915b505050505081565b6126d8613046565b600082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006009826040516127339190614f07565b9081526020016040518091039020805490500361275b5761275a63263d05cc60e01b612b08565b5b6000600a805480602002602001604051908101604052809291908181526020016000905b8282101561282b57838290600052602060002001805461279e90614ff7565b80601f01602080910402602001604051908101604052809291908181526020018280546127ca90614ff7565b80156128175780601f106127ec57610100808354040283529160200191612817565b820191906000526020600020905b8154815290600101906020018083116127fa57829003601f168201915b50505050508152602001906001019061277f565b50505050905060006001825161284191906152f6565b67ffffffffffffffff81111561285a57612859614169565b5b60405190808252806020026020018201604052801561288d57816020015b60608152602001906001900390816128785790505b5090506000808351905060005b818110156129325785805190602001208582815181106128bd576128bc6152c7565b5b602002602001015180519060200120036128da576001925061291f565b8481815181106128ed576128ec6152c7565b5b602002602001015184848361290291906152f6565b81518110612913576129126152c7565b5b60200260200101819052505b808061292a9061538a565b91505061289a565b5082600a9080519060200190612949929190613d94565b5060098560405161295a9190614f07565b908152602001604051809103902060006129749190613df4565b50505050505050565b612985613046565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129eb90615748565b60405180910390fd5b6129fd816131ae565b50565b60128054612a0d90614ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054612a3990614ff7565b8015612a865780601f10612a5b57610100808354040283529160200191612a86565b820191906000526020600020905b815481529060010190602001808311612a6957829003601f168201915b505050505081565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b015750612b00826135a5565b5b9050919050565b8060005260046000fd5b8060069080519060200190612b28929190613d0e565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612b789190614465565b60405180910390a150565b612b8c81613274565b612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc2906155b8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612c4983611bb8565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612c9b83611bb8565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612cdd5750612cdc818561259c565b5b80612d1b57508373ffffffffffffffffffffffffffffffffffffffff16612d0384610c32565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612d4482611bb8565b73ffffffffffffffffffffffffffffffffffffffff1614612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d91906157da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e009061586c565b60405180910390fd5b612e168383836001613687565b8273ffffffffffffffffffffffffffffffffffffffff16612e3682611bb8565b73ffffffffffffffffffffffffffffffffffffffff1614612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e83906157da565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461301883838360016137ad565b505050565b60606040519050601f19601f6020840101168101604052818152818360208301863c9392505050565b61304e612bce565b73ffffffffffffffffffffffffffffffffffffffff1661306c612183565b73ffffffffffffffffffffffffffffffffffffffff16146130c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b9906158d8565b60405180910390fd5b565b612710811115613109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310090615944565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16613296836132b5565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613357906159b0565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516134519190613f4a565b60405180910390a3505050565b613469848484612d24565b613475848484846137b3565b6134b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ab90615a42565b60405180910390fd5b50505050565b60606134c582612b83565b6000600680546134d490614ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461350090614ff7565b801561354d5780601f106135225761010080835404028352916020019161354d565b820191906000526020600020905b81548152906001019060200180831161353057829003601f168201915b505050505090506000815111613572576040518060200160405280600081525061359d565b8061357c8461393a565b60405160200161358d929190615a88565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061367057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613680575061367f82613a08565b5b9050919050565b60018111156137a757600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461371b5780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461371391906152f6565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146137a65780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461379e9190615516565b925050819055505b5b50505050565b50505050565b60006137d48473ffffffffffffffffffffffffffffffffffffffff16613a72565b1561392d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026137fd612bce565b8786866040518563ffffffff1660e01b815260040161381f9493929190615abb565b6020604051808303816000875af192505050801561385b57506040513d601f19601f820116820180604052508101906138589190615b1c565b60015b6138dd573d806000811461388b576040519150601f19603f3d011682016040523d82523d6000602084013e613890565b606091505b5060008151036138d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138cc90615a42565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613932565b600190505b949350505050565b60606000600161394984613a95565b01905060008167ffffffffffffffff81111561396857613967614169565b5b6040519080825280601f01601f19166020018201604052801561399a5781602001600182028036833780820191505090505b509050600082602001820190505b6001156139fd578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816139f1576139f0615267565b5b049450600085036139a8575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613af3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613ae957613ae8615267565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613b30576d04ee2d6d415b85acef81000000008381613b2657613b25615267565b5b0492506020810190505b662386f26fc100008310613b5f57662386f26fc100008381613b5557613b54615267565b5b0492506010810190505b6305f5e1008310613b88576305f5e1008381613b7e57613b7d615267565b5b0492506008810190505b6127108310613bad576127108381613ba357613ba2615267565b5b0492506004810190505b60648310613bd05760648381613bc657613bc5615267565b5b0492506002810190505b600a8310613bdf576001810190505b80915050919050565b828054613bf490614ff7565b90600052602060002090601f016020900481019282613c165760008555613c5d565b82601f10613c2f57805160ff1916838001178555613c5d565b82800160010185558215613c5d579182015b82811115613c5c578251825591602001919060010190613c41565b5b509050613c6a9190613e15565b5090565b828054828255906000526020600020908101928215613cfd579160200282015b82811115613cfc57823573ffffffffffffffffffffffffffffffffffffffff168260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c8e565b5b509050613d0a9190613e15565b5090565b828054613d1a90614ff7565b90600052602060002090601f016020900481019282613d3c5760008555613d83565b82601f10613d5557805160ff1916838001178555613d83565b82800160010185558215613d83579182015b82811115613d82578251825591602001919060010190613d67565b5b509050613d909190613e15565b5090565b828054828255906000526020600020908101928215613de3579160200282015b82811115613de2578251829080519060200190613dd2929190613be8565b5091602001919060010190613db4565b5b509050613df09190613e32565b5090565b5080546000825590600052602060002090810190613e129190613e15565b50565b5b80821115613e2e576000816000905550600101613e16565b5090565b5b80821115613e525760008181613e499190613e56565b50600101613e33565b5090565b508054613e6290614ff7565b6000825580601f10613e745750613e93565b601f016020900490600052602060002090810190613e929190613e15565b5b50565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613edf81613eaa565b8114613eea57600080fd5b50565b600081359050613efc81613ed6565b92915050565b600060208284031215613f1857613f17613ea0565b5b6000613f2684828501613eed565b91505092915050565b60008115159050919050565b613f4481613f2f565b82525050565b6000602082019050613f5f6000830184613f3b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f9082613f65565b9050919050565b613fa081613f85565b82525050565b6000602082019050613fbb6000830184613f97565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613fe657613fe5613fc1565b5b8235905067ffffffffffffffff81111561400357614002613fc6565b5b60208301915083600182028301111561401f5761401e613fcb565b5b9250929050565b6000806020838503121561403d5761403c613ea0565b5b600083013567ffffffffffffffff81111561405b5761405a613ea5565b5b61406785828601613fd0565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140a881613f85565b82525050565b60006140ba838361409f565b60208301905092915050565b6000602082019050919050565b60006140de82614073565b6140e8818561407e565b93506140f38361408f565b8060005b8381101561412457815161410b88826140ae565b9750614116836140c6565b9250506001810190506140f7565b5085935050505092915050565b6000602082019050818103600083015261414b81846140d3565b905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6141a182614158565b810181811067ffffffffffffffff821117156141c0576141bf614169565b5b80604052505050565b60006141d3613e96565b90506141df8282614198565b919050565b600067ffffffffffffffff8211156141ff576141fe614169565b5b61420882614158565b9050602081019050919050565b82818337600083830152505050565b6000614237614232846141e4565b6141c9565b90508281526020810184848401111561425357614252614153565b5b61425e848285614215565b509392505050565b600082601f83011261427b5761427a613fc1565b5b813561428b848260208601614224565b91505092915050565b6000602082840312156142aa576142a9613ea0565b5b600082013567ffffffffffffffff8111156142c8576142c7613ea5565b5b6142d484828501614266565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156143175780820151818401526020810190506142fc565b83811115614326576000848401525b50505050565b6000614337826142dd565b61434181856142e8565b93506143518185602086016142f9565b61435a81614158565b840191505092915050565b6000602082019050818103600083015261437f818461432c565b905092915050565b6000819050919050565b61439a81614387565b81146143a557600080fd5b50565b6000813590506143b781614391565b92915050565b6000602082840312156143d3576143d2613ea0565b5b60006143e1848285016143a8565b91505092915050565b6143f381613f85565b81146143fe57600080fd5b50565b600081359050614410816143ea565b92915050565b6000806040838503121561442d5761442c613ea0565b5b600061443b85828601614401565b925050602061444c858286016143a8565b9150509250929050565b61445f81614387565b82525050565b600060208201905061447a6000830184614456565b92915050565b60008060006060848603121561449957614498613ea0565b5b60006144a786828701614401565b93505060206144b886828701614401565b92505060406144c9868287016143a8565b9150509250925092565b600080604083850312156144ea576144e9613ea0565b5b60006144f8858286016143a8565b9250506020614509858286016143a8565b9150509250929050565b60006040820190506145286000830185613f97565b6145356020830184614456565b9392505050565b600081519050919050565b600082825260208201905092915050565b60006145638261453c565b61456d8185614547565b935061457d8185602086016142f9565b61458681614158565b840191505092915050565b600060208201905081810360008301526145ab8184614558565b905092915050565b60008083601f8401126145c9576145c8613fc1565b5b8235905067ffffffffffffffff8111156145e6576145e5613fc6565b5b60208301915083602082028301111561460257614601613fcb565b5b9250929050565b6000806000806040858703121561462357614622613ea0565b5b600085013567ffffffffffffffff81111561464157614640613ea5565b5b61464d87828801613fd0565b9450945050602085013567ffffffffffffffff8111156146705761466f613ea5565b5b61467c878288016145b3565b925092505092959194509250565b60008060008060008060c087890312156146a7576146a6613ea0565b5b600087013567ffffffffffffffff8111156146c5576146c4613ea5565b5b6146d189828a01614266565b96505060206146e289828a01614401565b95505060406146f389828a01614401565b945050606087013567ffffffffffffffff81111561471457614713613ea5565b5b61472089828a01614266565b935050608061473189828a016143a8565b92505060a061474289828a01614401565b9150509295509295509295565b60006020828403121561476557614764613ea0565b5b600061477384828501614401565b91505092915050565b60008060006060848603121561479557614794613ea0565b5b60006147a386828701614401565b93505060206147b4868287016143a8565b925050604084013567ffffffffffffffff8111156147d5576147d4613ea5565b5b6147e186828701614266565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000614833826142dd565b61483d8185614817565b935061484d8185602086016142f9565b61485681614158565b840191505092915050565b600061486d8383614828565b905092915050565b6000602082019050919050565b600061488d826147eb565b61489781856147f6565b9350836020820285016148a985614807565b8060005b858110156148e557848403895281516148c68582614861565b94506148d183614875565b925060208a019950506001810190506148ad565b50829750879550505050505092915050565b600060208201905081810360008301526149118184614882565b905092915050565b600067ffffffffffffffff82111561493457614933614169565b5b602082029050602081019050919050565b600061495861495384614919565b6141c9565b9050808382526020820190506020840283018581111561497b5761497a613fcb565b5b835b818110156149a457806149908882614401565b84526020840193505060208101905061497d565b5050509392505050565b600082601f8301126149c3576149c2613fc1565b5b81356149d3848260208601614945565b91505092915050565b600067ffffffffffffffff8211156149f7576149f6614169565b5b602082029050602081019050919050565b6000614a1b614a16846149dc565b6141c9565b90508083825260208201905060208402830185811115614a3e57614a3d613fcb565b5b835b81811015614a675780614a5388826143a8565b845260208401935050602081019050614a40565b5050509392505050565b600082601f830112614a8657614a85613fc1565b5b8135614a96848260208601614a08565b91505092915050565b60008060408385031215614ab657614ab5613ea0565b5b600083013567ffffffffffffffff811115614ad457614ad3613ea5565b5b614ae0858286016149ae565b925050602083013567ffffffffffffffff811115614b0157614b00613ea5565b5b614b0d85828601614a71565b9150509250929050565b600067ffffffffffffffff821115614b3257614b31614169565b5b602082029050602081019050919050565b6000614b56614b5184614b17565b6141c9565b90508083825260208201905060208402830185811115614b7957614b78613fcb565b5b835b81811015614bc057803567ffffffffffffffff811115614b9e57614b9d613fc1565b5b808601614bab8982614266565b85526020850194505050602081019050614b7b565b5050509392505050565b600082601f830112614bdf57614bde613fc1565b5b8135614bef848260208601614b43565b91505092915050565b600080600060608486031215614c1157614c10613ea0565b5b600084013567ffffffffffffffff811115614c2f57614c2e613ea5565b5b614c3b868287016149ae565b935050602084013567ffffffffffffffff811115614c5c57614c5b613ea5565b5b614c6886828701614a71565b925050604084013567ffffffffffffffff811115614c8957614c88613ea5565b5b614c9586828701614bca565b9150509250925092565b614ca881613f2f565b8114614cb357600080fd5b50565b600081359050614cc581614c9f565b92915050565b60008060408385031215614ce257614ce1613ea0565b5b6000614cf085828601614401565b9250506020614d0185828601614cb6565b9150509250929050565b600067ffffffffffffffff821115614d2657614d25614169565b5b614d2f82614158565b9050602081019050919050565b6000614d4f614d4a84614d0b565b6141c9565b905082815260208101848484011115614d6b57614d6a614153565b5b614d76848285614215565b509392505050565b600082601f830112614d9357614d92613fc1565b5b8135614da3848260208601614d3c565b91505092915050565b60008060008060808587031215614dc657614dc5613ea0565b5b6000614dd487828801614401565b9450506020614de587828801614401565b9350506040614df6878288016143a8565b925050606085013567ffffffffffffffff811115614e1757614e16613ea5565b5b614e2387828801614d7e565b91505092959194509250565b60008060408385031215614e4657614e45613ea0565b5b6000614e54858286016143a8565b925050602083013567ffffffffffffffff811115614e7557614e74613ea5565b5b614e8185828601614266565b9150509250929050565b60008060408385031215614ea257614ea1613ea0565b5b6000614eb085828601614401565b9250506020614ec185828601614401565b9150509250929050565b600081905092915050565b6000614ee18261453c565b614eeb8185614ecb565b9350614efb8185602086016142f9565b80840191505092915050565b6000614f138284614ed6565b915081905092915050565b6000614f2a8385614ecb565b9350614f37838584614215565b82840190509392505050565b6000614f50828486614f1e565b91508190509392505050565b7f5065726d697373696f6e2064656e696564000000000000000000000000000000600082015250565b6000614f926011836142e8565b9150614f9d82614f5c565b602082019050919050565b60006020820190508181036000830152614fc181614f85565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061500f57607f821691505b60208210810361502257615021614fc8565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006150846021836142e8565b915061508f82615028565b604082019050919050565b600060208201905081810360008301526150b381615077565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000615116603d836142e8565b9150615121826150ba565b604082019050919050565b6000602082019050818103600083015261514581615109565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006151a8602d836142e8565b91506151b38261514c565b604082019050919050565b600060208201905081810360008301526151d78161519b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061521882614387565b915061522383614387565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561525c5761525b6151de565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006152a182614387565b91506152ac83614387565b9250826152bc576152bb615267565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061530182614387565b915061530c83614387565b92508282101561531f5761531e6151de565b5b828203905092915050565b600081905092915050565b6000615340826142dd565b61534a818561532a565b935061535a8185602086016142f9565b80840191505092915050565b60006153728285614ed6565b915061537e8284615335565b91508190509392505050565b600061539582614387565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153c7576153c66151de565b5b600182019050919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b60006154086013836142e8565b9150615413826153d2565b602082019050919050565b60006020820190508181036000830152615437816153fb565b9050919050565b7f6d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b60006154746018836142e8565b915061547f8261543e565b602082019050919050565b600060208201905081810360008301526154a381615467565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006154e0601c836142e8565b91506154eb826154aa565b602082019050919050565b6000602082019050818103600083015261550f816154d3565b9050919050565b600061552182614387565b915061552c83614387565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615561576155606151de565b5b828201905092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006155a26018836142e8565b91506155ad8261556c565b602082019050919050565b600060208201905081810360008301526155d181615595565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006156346029836142e8565b915061563f826155d8565b604082019050919050565b6000602082019050818103600083015261566381615627565b9050919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006156a06016836142e8565b91506156ab8261566a565b602082019050919050565b600060208201905081810360008301526156cf81615693565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006157326026836142e8565b915061573d826156d6565b604082019050919050565b6000602082019050818103600083015261576181615725565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006157c46025836142e8565b91506157cf82615768565b604082019050919050565b600060208201905081810360008301526157f3816157b7565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006158566024836142e8565b9150615861826157fa565b604082019050919050565b6000602082019050818103600083015261588581615849565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006158c26020836142e8565b91506158cd8261588c565b602082019050919050565b600060208201905081810360008301526158f1816158b5565b9050919050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b600061592e601a836142e8565b9150615939826158f8565b602082019050919050565b6000602082019050818103600083015261595d81615921565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061599a6019836142e8565b91506159a582615964565b602082019050919050565b600060208201905081810360008301526159c98161598d565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615a2c6032836142e8565b9150615a37826159d0565b604082019050919050565b60006020820190508181036000830152615a5b81615a1f565b9050919050565b7f2f00000000000000000000000000000000000000000000000000000000000000815250565b6000615a948285615335565b9150615a9f82615a62565b600182019150615aaf8284615335565b91508190509392505050565b6000608082019050615ad06000830187613f97565b615add6020830186613f97565b615aea6040830185614456565b8181036060830152615afc8184614558565b905095945050505050565b600081519050615b1681613ed6565b92915050565b600060208284031215615b3257615b31613ea0565b5b6000615b4084828501615b07565b9150509291505056fea2646970667358221220981fd8f70a284ee0024e32c71d3471b0d5aa56be45dc3583a7393f47519fe74f64736f6c634300080d0033
🤖 Code Reader Beta
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.


