[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_baseUri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amount", "type": "uint256[]" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltiesAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRecipient", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setRoyalties", "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": [], "name": "tokenCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620040c9380380620040c9833981810160405281019062000037919062000350565b8062000049816200010e60201b60201c565b506200006a6200005e6200012a60201b60201c565b6200013260201b60201c565b82600490805190602001906200008292919062000222565b5081600590805190602001906200009b92919062000222565b508060089080519060200190620000b492919062000222565b50620000c5620001f860201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200058d565b80600290805190602001906200012692919062000222565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000230906200049e565b90600052602060002090601f016020900481019282620002545760008555620002a0565b82601f106200026f57805160ff1916838001178555620002a0565b82800160010185558215620002a0579182015b828111156200029f57825182559160200191906001019062000282565b5b509050620002af9190620002b3565b5090565b5b80821115620002ce576000816000905550600101620002b4565b5090565b6000620002e9620002e38462000432565b62000409565b9050828152602081018484840111156200030857620003076200056d565b5b6200031584828562000468565b509392505050565b600082601f83011262000335576200033462000568565b5b815162000347848260208601620002d2565b91505092915050565b6000806000606084860312156200036c576200036b62000577565b5b600084015167ffffffffffffffff8111156200038d576200038c62000572565b5b6200039b868287016200031d565b935050602084015167ffffffffffffffff811115620003bf57620003be62000572565b5b620003cd868287016200031d565b925050604084015167ffffffffffffffff811115620003f157620003f062000572565b5b620003ff868287016200031d565b9150509250925092565b60006200041562000428565b9050620004238282620004d4565b919050565b6000604051905090565b600067ffffffffffffffff82111562000450576200044f62000539565b5b6200045b826200057c565b9050602081019050919050565b60005b83811015620004885780820151818401526020810190506200046b565b8381111562000498576000848401525b50505050565b60006002820490506001821680620004b757607f821691505b60208210811415620004ce57620004cd6200050a565b5b50919050565b620004df826200057c565b810181811067ffffffffffffffff8211171562000501576200050062000539565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b613b2c806200059d6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638da5cb5b116100b8578063a22cb4651161007c578063a22cb4651461033e578063d351cfdc1461035a578063e985e9c514610376578063f1082910146103a6578063f242432a146103c4578063f2fde38b146103e057610136565b80638da5cb5b146102aa57806395d89b41146102c85780639abc8320146102e65780639f181b5e14610304578063a0712d681461032257610136565b80632eb2c2d6116100ff5780632eb2c2d61461021a57806332cb6b0c146102365780634e1273f414610254578063715018a6146102845780638c7ea24b1461028e57610136565b8062fdd58e1461013b57806301ffc9a71461016b57806306fdde031461019b5780630e89341c146101b95780632a55205a146101e9575b600080fd5b610155600480360381019061015091906125ca565b6103fc565b6040516101629190612fc8565b60405180910390f35b610185600480360381019061018091906126fa565b6104c5565b6040516101929190612d6b565b60405180910390f35b6101a361053f565b6040516101b09190612d86565b60405180910390f35b6101d360048036038101906101ce9190612754565b6105cd565b6040516101e09190612d86565b60405180910390f35b61020360048036038101906101fe9190612781565b610601565b604051610211929190612ce9565b60405180910390f35b610234600480360381019061022f9190612424565b61064d565b005b61023e6106ee565b60405161024b9190612fc8565b60405180910390f35b61026e6004803603810190610269919061260a565b6106f4565b60405161027b9190612d12565b60405180910390f35b61028c61080d565b005b6102a860048036038101906102a391906125ca565b610895565b005b6102b2610a33565b6040516102bf9190612c0c565b60405180910390f35b6102d0610a5d565b6040516102dd9190612d86565b60405180910390f35b6102ee610aeb565b6040516102fb9190612d86565b60405180910390f35b61030c610b79565b6040516103199190612fc8565b60405180910390f35b61033c60048036038101906103379190612754565b610b7f565b005b6103586004803603810190610353919061258a565b610bff565b005b610374600480360381019061036f9190612682565b610c15565b005b610390600480360381019061038b91906123e4565b610cda565b60405161039d9190612d6b565b60405180910390f35b6103ae610d6e565b6040516103bb9190612fc8565b60405180910390f35b6103de60048036038101906103d991906124f3565b610d74565b005b6103fa60048036038101906103f591906123b7565b610e15565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561046d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046490612e08565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610538575061053782610f0d565b5b9050919050565b6004805461054c90613316565b80601f016020809104026020016040519081016040528092919081815260200182805461057890613316565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b606060086105da83610fef565b6040516020016105eb929190612be8565b6040516020818303038152906040529050919050565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506127106006548461063a91906131d2565b61064491906131a1565b90509250929050565b610655611150565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061069b575061069a85610695611150565b610cda565b5b6106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612ea8565b60405180910390fd5b6106e78585858585611158565b5050505050565b61012c81565b6060815183511461073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190612f68565b60405180910390fd5b6000835167ffffffffffffffff811115610757576107566134af565b5b6040519080825280602002602001820160405280156107855781602001602082028036833780820191505090505b50905060005b8451811015610802576107d28582815181106107aa576107a9613480565b5b60200260200101518583815181106107c5576107c4613480565b5b60200260200101516103fc565b8282815181106107e5576107e4613480565b5b602002602001018181525050806107fb90613379565b905061078b565b508091505092915050565b610815611150565b73ffffffffffffffffffffffffffffffffffffffff16610833610a33565b73ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090612ee8565b60405180910390fd5b610893600061146c565b565b61089d611150565b73ffffffffffffffffffffffffffffffffffffffff166108bb610a33565b73ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090890612ee8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a90612f28565b60405180910390fd5b61271081106109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612de8565b60405180910390fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806006819055505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60058054610a6a90613316565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9690613316565b8015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b505050505081565b60088054610af890613316565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2490613316565b8015610b715780601f10610b4657610100808354040283529160200191610b71565b820191906000526020600020905b815481529060010190602001808311610b5457829003601f168201915b505050505081565b60075481565b61012c60075410610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc90612e68565b60405180910390fd5b610be2336007548360405180602001604052806000815250611532565b600160076000828254610bf5919061314b565b9250508190555050565b610c11610c0a611150565b83836116c8565b5050565b6000805b8351811015610c755781848281518110610c3657610c35613480565b5b60200260200101511115610c6257838181518110610c5757610c56613480565b5b602002602001015191505b8080610c6d90613379565b915050610c19565b6007548210610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb090612f08565b60405180910390fd5b610cd433858560405180602001604052806000815250611835565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60065481565b610d7c611150565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610dc25750610dc185610dbc611150565b610cda565b5b610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890612e48565b60405180910390fd5b610e0e8585858585611a53565b5050505050565b610e1d611150565b73ffffffffffffffffffffffffffffffffffffffff16610e3b610a33565b73ffffffffffffffffffffffffffffffffffffffff1614610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8890612ee8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef890612e28565b60405180910390fd5b610f0a8161146c565b50565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fd857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610fe85750610fe782611cd5565b5b9050919050565b60606000821415611037576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061114b565b600082905060005b6000821461106957808061105290613379565b915050600a8261106291906131a1565b915061103f565b60008167ffffffffffffffff811115611085576110846134af565b5b6040519080825280601f01601f1916602001820160405280156110b75781602001600182028036833780820191505090505b5090505b60008514611144576001826110d0919061322c565b9150600a856110df91906133c2565b60306110eb919061314b565b60f81b81838151811061110157611100613480565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561113d91906131a1565b94506110bb565b8093505050505b919050565b600033905090565b815183511461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612f88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390612e88565b60405180910390fd5b6000611216611150565b9050611226818787878787611d3f565b60005b84518110156113d757600085828151811061124757611246613480565b5b60200260200101519050600085838151811061126657611265613480565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612ec8565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113bc919061314b565b92505081905550505050806113d090613379565b9050611229565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161144e929190612d34565b60405180910390a4611464818787878787611d47565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990612fa8565b60405180910390fd5b60006115ac611150565b90506115cd816000876115be88611f2e565b6115c788611f2e565b87611d3f565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461162c919061314b565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516116aa929190612fe3565b60405180910390a46116c181600087878787611fa8565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90612f48565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118289190612d6b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612fa8565b60405180910390fd5b81518351146118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090612f88565b60405180910390fd5b60006118f3611150565b905061190481600087878787611d3f565b60005b84518110156119bd5783818151811061192357611922613480565b5b602002602001015160008087848151811061194157611940613480565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119a3919061314b565b9250508190555080806119b590613379565b915050611907565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611a35929190612d34565b60405180910390a4611a4c81600087878787611d47565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba90612e88565b60405180910390fd5b6000611acd611150565b9050611aed818787611ade88611f2e565b611ae788611f2e565b87611d3f565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b90612ec8565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c39919061314b565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611cb6929190612fe3565b60405180910390a4611ccc828888888888611fa8565b50505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050505050565b611d668473ffffffffffffffffffffffffffffffffffffffff1661218f565b15611f26578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611dac959493929190612c27565b602060405180830381600087803b158015611dc657600080fd5b505af1925050508015611df757506040513d601f19601f82011682018060405250810190611df49190612727565b60015b611e9d57611e036134de565b806308c379a01415611e605750611e18613a04565b80611e235750611e62565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e579190612d86565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612da8565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90612dc8565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115611f4d57611f4c6134af565b5b604051908082528060200260200182016040528015611f7b5781602001602082028036833780820191505090505b5090508281600081518110611f9357611f92613480565b5b60200260200101818152505080915050919050565b611fc78473ffffffffffffffffffffffffffffffffffffffff1661218f565b15612187578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161200d959493929190612c8f565b602060405180830381600087803b15801561202757600080fd5b505af192505050801561205857506040513d601f19601f820116820180604052508101906120559190612727565b60015b6120fe576120646134de565b806308c379a014156120c15750612079613a04565b8061208457506120c3565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89190612d86565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f590612da8565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217c90612dc8565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b60006121b56121b084613031565b61300c565b905080838252602082019050828560208602820111156121d8576121d7613505565b5b60005b8581101561220857816121ee88826122c4565b8452602084019350602083019250506001810190506121db565b5050509392505050565b60006122256122208461305d565b61300c565b9050808382526020820190508285602086028201111561224857612247613505565b5b60005b85811015612278578161225e88826123a2565b84526020840193506020830192505060018101905061224b565b5050509392505050565b600061229561229084613089565b61300c565b9050828152602081018484840111156122b1576122b061350a565b5b6122bc8482856132d4565b509392505050565b6000813590506122d381613a9a565b92915050565b600082601f8301126122ee576122ed613500565b5b81356122fe8482602086016121a2565b91505092915050565b600082601f83011261231c5761231b613500565b5b813561232c848260208601612212565b91505092915050565b60008135905061234481613ab1565b92915050565b60008135905061235981613ac8565b92915050565b60008151905061236e81613ac8565b92915050565b600082601f83011261238957612388613500565b5b8135612399848260208601612282565b91505092915050565b6000813590506123b181613adf565b92915050565b6000602082840312156123cd576123cc613514565b5b60006123db848285016122c4565b91505092915050565b600080604083850312156123fb576123fa613514565b5b6000612409858286016122c4565b925050602061241a858286016122c4565b9150509250929050565b600080600080600060a086880312156124405761243f613514565b5b600061244e888289016122c4565b955050602061245f888289016122c4565b945050604086013567ffffffffffffffff8111156124805761247f61350f565b5b61248c88828901612307565b935050606086013567ffffffffffffffff8111156124ad576124ac61350f565b5b6124b988828901612307565b925050608086013567ffffffffffffffff8111156124da576124d961350f565b5b6124e688828901612374565b9150509295509295909350565b600080600080600060a0868803121561250f5761250e613514565b5b600061251d888289016122c4565b955050602061252e888289016122c4565b945050604061253f888289016123a2565b9350506060612550888289016123a2565b925050608086013567ffffffffffffffff8111156125715761257061350f565b5b61257d88828901612374565b9150509295509295909350565b600080604083850312156125a1576125a0613514565b5b60006125af858286016122c4565b92505060206125c085828601612335565b9150509250929050565b600080604083850312156125e1576125e0613514565b5b60006125ef858286016122c4565b9250506020612600858286016123a2565b9150509250929050565b6000806040838503121561262157612620613514565b5b600083013567ffffffffffffffff81111561263f5761263e61350f565b5b61264b858286016122d9565b925050602083013567ffffffffffffffff81111561266c5761266b61350f565b5b61267885828601612307565b9150509250929050565b6000806040838503121561269957612698613514565b5b600083013567ffffffffffffffff8111156126b7576126b661350f565b5b6126c385828601612307565b925050602083013567ffffffffffffffff8111156126e4576126e361350f565b5b6126f085828601612307565b9150509250929050565b6000602082840312156127105761270f613514565b5b600061271e8482850161234a565b91505092915050565b60006020828403121561273d5761273c613514565b5b600061274b8482850161235f565b91505092915050565b60006020828403121561276a57612769613514565b5b6000612778848285016123a2565b91505092915050565b6000806040838503121561279857612797613514565b5b60006127a6858286016123a2565b92505060206127b7858286016123a2565b9150509250929050565b60006127cd8383612bca565b60208301905092915050565b6127e281613260565b82525050565b60006127f3826130df565b6127fd818561310d565b9350612808836130ba565b8060005b8381101561283957815161282088826127c1565b975061282b83613100565b92505060018101905061280c565b5085935050505092915050565b61284f81613272565b82525050565b6000612860826130ea565b61286a818561311e565b935061287a8185602086016132e3565b61288381613519565b840191505092915050565b6000612899826130f5565b6128a3818561312f565b93506128b38185602086016132e3565b6128bc81613519565b840191505092915050565b60006128d2826130f5565b6128dc8185613140565b93506128ec8185602086016132e3565b80840191505092915050565b6000815461290581613316565b61290f8186613140565b9450600182166000811461292a576001811461293b5761296e565b60ff1983168652818601935061296e565b612944856130ca565b60005b8381101561296657815481890152600182019150602081019050612947565b838801955050505b50505092915050565b600061298460348361312f565b915061298f82613537565b604082019050919050565b60006129a760288361312f565b91506129b282613586565b604082019050919050565b60006129ca60218361312f565b91506129d5826135d5565b604082019050919050565b60006129ed602b8361312f565b91506129f882613624565b604082019050919050565b6000612a1060268361312f565b9150612a1b82613673565b604082019050919050565b6000612a3360298361312f565b9150612a3e826136c2565b604082019050919050565b6000612a5660158361312f565b9150612a6182613711565b602082019050919050565b6000612a7960258361312f565b9150612a848261373a565b604082019050919050565b6000612a9c60328361312f565b9150612aa782613789565b604082019050919050565b6000612abf602a8361312f565b9150612aca826137d8565b604082019050919050565b6000612ae260208361312f565b9150612aed82613827565b602082019050919050565b6000612b0560128361312f565b9150612b1082613850565b602082019050919050565b6000612b28602c8361312f565b9150612b3382613879565b604082019050919050565b6000612b4b60298361312f565b9150612b56826138c8565b604082019050919050565b6000612b6e60298361312f565b9150612b7982613917565b604082019050919050565b6000612b9160288361312f565b9150612b9c82613966565b604082019050919050565b6000612bb460218361312f565b9150612bbf826139b5565b604082019050919050565b612bd3816132ca565b82525050565b612be2816132ca565b82525050565b6000612bf482856128f8565b9150612c0082846128c7565b91508190509392505050565b6000602082019050612c2160008301846127d9565b92915050565b600060a082019050612c3c60008301886127d9565b612c4960208301876127d9565b8181036040830152612c5b81866127e8565b90508181036060830152612c6f81856127e8565b90508181036080830152612c838184612855565b90509695505050505050565b600060a082019050612ca460008301886127d9565b612cb160208301876127d9565b612cbe6040830186612bd9565b612ccb6060830185612bd9565b8181036080830152612cdd8184612855565b90509695505050505050565b6000604082019050612cfe60008301856127d9565b612d0b6020830184612bd9565b9392505050565b60006020820190508181036000830152612d2c81846127e8565b905092915050565b60006040820190508181036000830152612d4e81856127e8565b90508181036020830152612d6281846127e8565b90509392505050565b6000602082019050612d806000830184612846565b92915050565b60006020820190508181036000830152612da0818461288e565b905092915050565b60006020820190508181036000830152612dc181612977565b9050919050565b60006020820190508181036000830152612de18161299a565b9050919050565b60006020820190508181036000830152612e01816129bd565b9050919050565b60006020820190508181036000830152612e21816129e0565b9050919050565b60006020820190508181036000830152612e4181612a03565b9050919050565b60006020820190508181036000830152612e6181612a26565b9050919050565b60006020820190508181036000830152612e8181612a49565b9050919050565b60006020820190508181036000830152612ea181612a6c565b9050919050565b60006020820190508181036000830152612ec181612a8f565b9050919050565b60006020820190508181036000830152612ee181612ab2565b9050919050565b60006020820190508181036000830152612f0181612ad5565b9050919050565b60006020820190508181036000830152612f2181612af8565b9050919050565b60006020820190508181036000830152612f4181612b1b565b9050919050565b60006020820190508181036000830152612f6181612b3e565b9050919050565b60006020820190508181036000830152612f8181612b61565b9050919050565b60006020820190508181036000830152612fa181612b84565b9050919050565b60006020820190508181036000830152612fc181612ba7565b9050919050565b6000602082019050612fdd6000830184612bd9565b92915050565b6000604082019050612ff86000830185612bd9565b6130056020830184612bd9565b9392505050565b6000613016613027565b90506130228282613348565b919050565b6000604051905090565b600067ffffffffffffffff82111561304c5761304b6134af565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613078576130776134af565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156130a4576130a36134af565b5b6130ad82613519565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613156826132ca565b9150613161836132ca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613196576131956133f3565b5b828201905092915050565b60006131ac826132ca565b91506131b7836132ca565b9250826131c7576131c6613422565b5b828204905092915050565b60006131dd826132ca565b91506131e8836132ca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613221576132206133f3565b5b828202905092915050565b6000613237826132ca565b9150613242836132ca565b925082821015613255576132546133f3565b5b828203905092915050565b600061326b826132aa565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156133015780820151818401526020810190506132e6565b83811115613310576000848401525b50505050565b6000600282049050600182168061332e57607f821691505b6020821081141561334257613341613451565b5b50919050565b61335182613519565b810181811067ffffffffffffffff821117156133705761336f6134af565b5b80604052505050565b6000613384826132ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133b7576133b66133f3565b5b600182019050919050565b60006133cd826132ca565b91506133d8836132ca565b9250826133e8576133e7613422565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156134fd5760046000803e6134fa60005161352a565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f56616c7565206d757374206265206265747765656e203020616e64203130303060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f756768204e465473206c656674210000000000000000000000600082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6e6674206e6f7420796574206d696e7465640000000000000000000000000000600082015250565b7f526f79616c746965733a206e657720726563697069656e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d1015613a1457613a97565b613a1c613027565b60043d036004823e80513d602482011167ffffffffffffffff82111715613a44575050613a97565b808201805167ffffffffffffffff811115613a625750505050613a97565b80602083010160043d038501811115613a7f575050505050613a97565b613a8e82602001850186613348565b82955050505050505b90565b613aa381613260565b8114613aae57600080fd5b50565b613aba81613272565b8114613ac557600080fd5b50565b613ad18161327e565b8114613adc57600080fd5b50565b613ae8816132ca565b8114613af357600080fd5b5056fea26469706673582212200915c1aa8db44110440412f8f25b462fe42af4e458ef2bcd3f42cb1e2854822c64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000008534147453131353500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045341474e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d646a455853435257613553724475466d7432574b3652536d53416759366f644b4a756a32786f4656656e59572f00000000000000000000