[ { "inputs": [], "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": false, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "MintedBatch", "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": [ { "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "mintBatch", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "minter", "type": "address" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "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": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060600160405280602a815260200162004134602a91396200003d816200006460201b60201c565b506200005e620000526200008060201b60201c565b6200008860201b60201c565b62000263565b80600390805190602001906200007c9291906200014e565b5050565b600033905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200015c90620001fe565b90600052602060002090601f016020900481019282620001805760008555620001cc565b82601f106200019b57805160ff1916838001178555620001cc565b82800160010185558215620001cc579182015b82811115620001cb578251825591602001919060010190620001ae565b5b509050620001db9190620001df565b5090565b5b80821115620001fa576000816000905550600101620001e0565b5090565b600060028204905060018216806200021757607f821691505b602082108114156200022e576200022d62000234565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613ec180620002736000396000f3fe6080604052600436106101085760003560e01c8063715018a611610095578063e985e9c511610064578063e985e9c51461034a578063f242432a14610387578063f2fde38b146103b0578063f5298aca146103d9578063fca3b5aa1461040257610108565b8063715018a6146102c35780638da5cb5b146102da578063a22cb46514610305578063d81d0a151461032e57610108565b806312065fe0116100dc57806312065fe0146101ed578063156e29f6146102185780632eb2c2d6146102345780634e1273f41461025d5780636b20c4541461029a57610108565b8062fdd58e1461010d57806301ffc9a71461014a57806302fe5305146101875780630e89341c146101b0575b600080fd5b34801561011957600080fd5b50610134600480360381019061012f9190612ad2565b61042b565b604051610141919061346b565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c9190612bdd565b6104f5565b60405161017e919061320e565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190612c37565b6105d7565b005b3480156101bc57600080fd5b506101d760048036038101906101d29190612c80565b61065f565b6040516101e49190613229565b60405180910390f35b3480156101f957600080fd5b506102026106f3565b60405161020f919061346b565b60405180910390f35b610232600480360381019061022d9190612b12565b6106fb565b005b34801561024057600080fd5b5061025b600480360381019061025691906128a1565b6107ea565b005b34801561026957600080fd5b50610284600480360381019061027f9190612b65565b61088b565b60405161029191906131b5565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190612a07565b6109a4565b005b3480156102cf57600080fd5b506102d8610a41565b005b3480156102e657600080fd5b506102ef610ac9565b6040516102fc9190613024565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190612a92565b610af3565b005b61034860048036038101906103439190612a07565b610b09565b005b34801561035657600080fd5b50610371600480360381019061036c9190612861565b610c3c565b60405161037e919061320e565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612970565b610cd0565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612834565b610d71565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612b12565b610e69565b005b34801561040e57600080fd5b5061042960048036038101906104249190612834565b610f06565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561049c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104939061328b565b60405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105d057506105cf82610fc6565b5b9050919050565b6105df611030565b73ffffffffffffffffffffffffffffffffffffffff166105fd610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a906133cb565b60405180910390fd5b61065c81611038565b50565b60606003805461066e9061370b565b80601f016020809104026020016040519081016040528092919081815260200182805461069a9061370b565b80156106e75780601f106106bc576101008083540402835291602001916106e7565b820191906000526020600020905b8154815290600101906020018083116106ca57829003601f168201915b50505050509050919050565b600047905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107829061334b565b60405180910390fd5b6107a683838360405180602001604052806000815250611052565b7f68c721f9a38584842eb66945b43c95066397ce5f2576fcc0588471c85d209d0c33843485856040516107dd959493929190613162565b60405180910390a1505050565b6107f2611030565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610838575061083785610832611030565b610c3c565b5b610877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086e9061332b565b60405180910390fd5b61088485858585856111e9565b5050505050565b606081518351146108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c89061340b565b60405180910390fd5b6000835167ffffffffffffffff8111156108ee576108ed613844565b5b60405190808252806020026020018201604052801561091c5781602001602082028036833780820191505090505b50905060005b84518110156109995761096985828151811061094157610940613815565b5b602002602001015185838151811061095c5761095b613815565b5b602002602001015161042b565b82828151811061097c5761097b613815565b5b602002602001018181525050806109929061376e565b9050610922565b508091505092915050565b6109ac611030565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109f257506109f1836109ec611030565b610c3c565b5b610a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a28906132eb565b60405180910390fd5b610a3c838383611500565b505050565b610a49611030565b73ffffffffffffffffffffffffffffffffffffffff16610a67610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab4906133cb565b60405180910390fd5b610ac760006117b3565b565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b05610afe611030565b8383611879565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061334b565b60405180910390fd5b8051825114610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd49061336b565b60405180910390fd5b610bf8838383604051806020016040528060008152506119e6565b7f2d6612205f7aa4762c8a9baab07a14a06ebeda7b9eb1fc69ba9790514e8c56db3384348585604051610c2f9594939291906130a7565b60405180910390a1505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610cd8611030565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610d1e5750610d1d85610d18611030565b610c3c565b5b610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d54906132eb565b60405180910390fd5b610d6a8585858585611c05565b5050505050565b610d79611030565b73ffffffffffffffffffffffffffffffffffffffff16610d97610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de4906133cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906132ab565b60405180910390fd5b610e66816117b3565b50565b610e71611030565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610eb75750610eb683610eb1611030565b610c3c565b5b610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed906132eb565b60405180910390fd5b610f01838383611e8a565b505050565b610f0e611030565b73ffffffffffffffffffffffffffffffffffffffff16610f2c610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906133cb565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b806003908051906020019061104e92919061250c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061344b565b60405180910390fd5b60006110cc611030565b90506110ed816000876110de886120a9565b6110e7886120a9565b87612123565b826001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461114d91906135ff565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516111cb929190613486565b60405180910390a46111e28160008787878761212b565b5050505050565b815183511461122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112249061342b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561129d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112949061330b565b60405180910390fd5b60006112a7611030565b90506112b7818787878787612123565b60005b845181101561146b5760008582815181106112d8576112d7613815565b5b6020026020010151905060008583815181106112f7576112f6613815565b5b6020026020010151905060006001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906133ab565b60405180910390fd5b8181036001600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461145091906135ff565b92505081905550505050806114649061376e565b90506112ba565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516114e29291906131d7565b60405180910390a46114f8818787878787612312565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115679061338b565b60405180910390fd5b80518251146115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab9061342b565b60405180910390fd5b60006115be611030565b90506115de81856000868660405180602001604052806000815250612123565b60005b835181101561172d5760008482815181106115ff576115fe613815565b5b60200260200101519050600084838151811061161e5761161d613815565b5b6020026020010151905060006001600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b7906132cb565b60405180910390fd5b8181036001600085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505080806117259061376e565b9150506115e1565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516117a59291906131d7565b60405180910390a450505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118df906133eb565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119d9919061320e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d9061344b565b60405180910390fd5b8151835114611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a919061342b565b60405180910390fd5b6000611aa4611030565b9050611ab581600087878787612123565b60005b8451811015611b6f57838181518110611ad457611ad3613815565b5b602002602001015160016000878481518110611af357611af2613815565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b5591906135ff565b925050819055508080611b679061376e565b915050611ab8565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611be79291906131d7565b60405180910390a4611bfe81600087878787612312565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c9061330b565b60405180910390fd5b6000611c7f611030565b9050611c9f818787611c90886120a9565b611c99886120a9565b87612123565b60006001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e906133ab565b60405180910390fd5b8381036001600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dee91906135ff565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611e6b929190613486565b60405180910390a4611e8182888888888861212b565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef19061338b565b60405180910390fd5b6000611f04611030565b9050611f3481856000611f16876120a9565b611f1f876120a9565b60405180602001604052806000815250612123565b60006001600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc3906132cb565b60405180910390fd5b8281036001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161209a929190613486565b60405180910390a45050505050565b60606000600167ffffffffffffffff8111156120c8576120c7613844565b5b6040519080825280602002602001820160405280156120f65781602001602082028036833780820191505090505b509050828160008151811061210e5761210d613815565b5b60200260200101818152505080915050919050565b505050505050565b61214a8473ffffffffffffffffffffffffffffffffffffffff166124f9565b1561230a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612190959493929190613108565b602060405180830381600087803b1580156121aa57600080fd5b505af19250505080156121db57506040513d601f19601f820116820180604052508101906121d89190612c0a565b60015b612281576121e7613873565b806308c379a0141561224457506121fc613d99565b806122075750612246565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b9190613229565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122789061324b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ff9061326b565b60405180910390fd5b505b505050505050565b6123318473ffffffffffffffffffffffffffffffffffffffff166124f9565b156124f1578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161237795949392919061303f565b602060405180830381600087803b15801561239157600080fd5b505af19250505080156123c257506040513d601f19601f820116820180604052508101906123bf9190612c0a565b60015b612468576123ce613873565b806308c379a0141561242b57506123e3613d99565b806123ee575061242d565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124229190613229565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245f9061324b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e69061326b565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b8280546125189061370b565b90600052602060002090601f01602090048101928261253a5760008555612581565b82601f1061255357805160ff1916838001178555612581565b82800160010185558215612581579182015b82811115612580578251825591602001919060010190612565565b5b50905061258e9190612592565b5090565b5b808211156125ab576000816000905550600101612593565b5090565b60006125c26125bd846134d4565b6134af565b905080838252602082019050828560208602820111156125e5576125e461389a565b5b60005b8581101561261557816125fb8882612713565b8452602084019350602083019250506001810190506125e8565b5050509392505050565b600061263261262d84613500565b6134af565b905080838252602082019050828560208602820111156126555761265461389a565b5b60005b85811015612685578161266b888261281f565b845260208401935060208301925050600181019050612658565b5050509392505050565b60006126a261269d8461352c565b6134af565b9050828152602081018484840111156126be576126bd61389f565b5b6126c98482856136c9565b509392505050565b60006126e46126df8461355d565b6134af565b905082815260208101848484011115612700576126ff61389f565b5b61270b8482856136c9565b509392505050565b60008135905061272281613e2f565b92915050565b600082601f83011261273d5761273c613895565b5b813561274d8482602086016125af565b91505092915050565b600082601f83011261276b5761276a613895565b5b813561277b84826020860161261f565b91505092915050565b60008135905061279381613e46565b92915050565b6000813590506127a881613e5d565b92915050565b6000815190506127bd81613e5d565b92915050565b600082601f8301126127d8576127d7613895565b5b81356127e884826020860161268f565b91505092915050565b600082601f83011261280657612805613895565b5b81356128168482602086016126d1565b91505092915050565b60008135905061282e81613e74565b92915050565b60006020828403121561284a576128496138a9565b5b600061285884828501612713565b91505092915050565b60008060408385031215612878576128776138a9565b5b600061288685828601612713565b925050602061289785828601612713565b9150509250929050565b600080600080600060a086880312156128bd576128bc6138a9565b5b60006128cb88828901612713565b95505060206128dc88828901612713565b945050604086013567ffffffffffffffff8111156128fd576128fc6138a4565b5b61290988828901612756565b935050606086013567ffffffffffffffff81111561292a576129296138a4565b5b61293688828901612756565b925050608086013567ffffffffffffffff811115612957576129566138a4565b5b612963888289016127c3565b9150509295509295909350565b600080600080600060a0868803121561298c5761298b6138a9565b5b600061299a88828901612713565b95505060206129ab88828901612713565b94505060406129bc8882890161281f565b93505060606129cd8882890161281f565b925050608086013567ffffffffffffffff8111156129ee576129ed6138a4565b5b6129fa888289016127c3565b9150509295509295909350565b600080600060608486031215612a2057612a1f6138a9565b5b6000612a2e86828701612713565b935050602084013567ffffffffffffffff811115612a4f57612a4e6138a4565b5b612a5b86828701612756565b925050604084013567ffffffffffffffff811115612a7c57612a7b6138a4565b5b612a8886828701612756565b9150509250925092565b60008060408385031215612aa957612aa86138a9565b5b6000612ab785828601612713565b9250506020612ac885828601612784565b9150509250929050565b60008060408385031215612ae957612ae86138a9565b5b6000612af785828601612713565b9250506020612b088582860161281f565b9150509250929050565b600080600060608486031215612b2b57612b2a6138a9565b5b6000612b3986828701612713565b9350506020612b4a8682870161281f565b9250506040612b5b8682870161281f565b9150509250925092565b60008060408385031215612b7c57612b7b6138a9565b5b600083013567ffffffffffffffff811115612b9a57612b996138a4565b5b612ba685828601612728565b925050602083013567ffffffffffffffff811115612bc757612bc66138a4565b5b612bd385828601612756565b9150509250929050565b600060208284031215612bf357612bf26138a9565b5b6000612c0184828501612799565b91505092915050565b600060208284031215612c2057612c1f6138a9565b5b6000612c2e848285016127ae565b91505092915050565b600060208284031215612c4d57612c4c6138a9565b5b600082013567ffffffffffffffff811115612c6b57612c6a6138a4565b5b612c77848285016127f1565b91505092915050565b600060208284031215612c9657612c956138a9565b5b6000612ca48482850161281f565b91505092915050565b6000612cb98383613006565b60208301905092915050565b612cce81613655565b82525050565b6000612cdf8261359e565b612ce981856135cc565b9350612cf48361358e565b8060005b83811015612d25578151612d0c8882612cad565b9750612d17836135bf565b925050600181019050612cf8565b5085935050505092915050565b612d3b81613667565b82525050565b6000612d4c826135a9565b612d5681856135dd565b9350612d668185602086016136d8565b612d6f816138ae565b840191505092915050565b6000612d85826135b4565b612d8f81856135ee565b9350612d9f8185602086016136d8565b612da8816138ae565b840191505092915050565b6000612dc06034836135ee565b9150612dcb826138cc565b604082019050919050565b6000612de36028836135ee565b9150612dee8261391b565b604082019050919050565b6000612e06602b836135ee565b9150612e118261396a565b604082019050919050565b6000612e296026836135ee565b9150612e34826139b9565b604082019050919050565b6000612e4c6024836135ee565b9150612e5782613a08565b604082019050919050565b6000612e6f6029836135ee565b9150612e7a82613a57565b604082019050919050565b6000612e926025836135ee565b9150612e9d82613aa6565b604082019050919050565b6000612eb56032836135ee565b9150612ec082613af5565b604082019050919050565b6000612ed86018836135ee565b9150612ee382613b44565b602082019050919050565b6000612efb601c836135ee565b9150612f0682613b6d565b602082019050919050565b6000612f1e6023836135ee565b9150612f2982613b96565b604082019050919050565b6000612f41602a836135ee565b9150612f4c82613be5565b604082019050919050565b6000612f646020836135ee565b9150612f6f82613c34565b602082019050919050565b6000612f876029836135ee565b9150612f9282613c5d565b604082019050919050565b6000612faa6029836135ee565b9150612fb582613cac565b604082019050919050565b6000612fcd6028836135ee565b9150612fd882613cfb565b604082019050919050565b6000612ff06021836135ee565b9150612ffb82613d4a565b604082019050919050565b61300f816136bf565b82525050565b61301e816136bf565b82525050565b60006020820190506130396000830184612cc5565b92915050565b600060a0820190506130546000830188612cc5565b6130616020830187612cc5565b81810360408301526130738186612cd4565b905081810360608301526130878185612cd4565b9050818103608083015261309b8184612d41565b90509695505050505050565b600060a0820190506130bc6000830188612cc5565b6130c96020830187612cc5565b6130d66040830186613015565b81810360608301526130e88185612cd4565b905081810360808301526130fc8184612cd4565b90509695505050505050565b600060a08201905061311d6000830188612cc5565b61312a6020830187612cc5565b6131376040830186613015565b6131446060830185613015565b81810360808301526131568184612d41565b90509695505050505050565b600060a0820190506131776000830188612cc5565b6131846020830187612cc5565b6131916040830186613015565b61319e6060830185613015565b6131ab6080830184613015565b9695505050505050565b600060208201905081810360008301526131cf8184612cd4565b905092915050565b600060408201905081810360008301526131f18185612cd4565b905081810360208301526132058184612cd4565b90509392505050565b60006020820190506132236000830184612d32565b92915050565b600060208201905081810360008301526132438184612d7a565b905092915050565b6000602082019050818103600083015261326481612db3565b9050919050565b6000602082019050818103600083015261328481612dd6565b9050919050565b600060208201905081810360008301526132a481612df9565b9050919050565b600060208201905081810360008301526132c481612e1c565b9050919050565b600060208201905081810360008301526132e481612e3f565b9050919050565b6000602082019050818103600083015261330481612e62565b9050919050565b6000602082019050818103600083015261332481612e85565b9050919050565b6000602082019050818103600083015261334481612ea8565b9050919050565b6000602082019050818103600083015261336481612ecb565b9050919050565b6000602082019050818103600083015261338481612eee565b9050919050565b600060208201905081810360008301526133a481612f11565b9050919050565b600060208201905081810360008301526133c481612f34565b9050919050565b600060208201905081810360008301526133e481612f57565b9050919050565b6000602082019050818103600083015261340481612f7a565b9050919050565b6000602082019050818103600083015261342481612f9d565b9050919050565b6000602082019050818103600083015261344481612fc0565b9050919050565b6000602082019050818103600083015261346481612fe3565b9050919050565b60006020820190506134806000830184613015565b92915050565b600060408201905061349b6000830185613015565b6134a86020830184613015565b9392505050565b60006134b96134ca565b90506134c5828261373d565b919050565b6000604051905090565b600067ffffffffffffffff8211156134ef576134ee613844565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561351b5761351a613844565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561354757613546613844565b5b613550826138ae565b9050602081019050919050565b600067ffffffffffffffff82111561357857613577613844565b5b613581826138ae565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061360a826136bf565b9150613615836136bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561364a576136496137b7565b5b828201905092915050565b60006136608261369f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156136f65780820151818401526020810190506136db565b83811115613705576000848401525b50505050565b6000600282049050600182168061372357607f821691505b60208210811415613737576137366137e6565b5b50919050565b613746826138ae565b810181811067ffffffffffffffff8211171561376557613764613844565b5b80604052505050565b6000613779826136bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137ac576137ab6137b7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156138925760046000803e61388f6000516138bf565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4d696e746572206d75737420626520746865206f776e65720000000000000000600082015250565b7f4964277320616e6420616d6f756e7473206d757374206d617463682100000000600082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d1015613da957613e2c565b613db16134ca565b60043d036004823e80513d602482011167ffffffffffffffff82111715613dd9575050613e2c565b808201805167ffffffffffffffff811115613df75750505050613e2c565b80602083010160043d038501811115613e14575050505050613e2c565b613e238260200185018661373d565b82955050505050505b90565b613e3881613655565b8114613e4357600080fd5b50565b613e4f81613667565b8114613e5a57600080fd5b50565b613e6681613673565b8114613e7157600080fd5b50565b613e7d816136bf565b8114613e8857600080fd5b5056fea2646970667358221220ca5d51e26d3ba1c3023531f198d61c3515409430c2eaa55ef55c6550c40fdb0164736f6c6343000807003368747470733a2f2f7777772e63616e6479737761702e636f6d2f6170692f70726f6a6563742f7b69647d