[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": 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": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "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": "address", "name": "artist_", "type": "address" } ], "name": "setArtist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "op_", "type": "address" }, { "internalType": "bool", "name": "b_", "type": "bool" } ], "name": "setB", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "royaltyAmount_", "type": "uint256" } ], "name": "setRoyaltyAmount", "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" } ]
60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f5069742044656d6f6e73000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f50495444454d4f4e53000000000000000000000000000000000000000000000081525081600090805190602001906200009692919062000843565b508060019080519060200190620000af92919062000843565b505050620000d2620000c66200036e60201b60201c565b6200037660201b60201c565b604051806060016040528060248152602001620042d960249139600990805190602001906200010392919062000843565b506101f4600a819055506064600b8190555073a0bc0dfd012d80d9daa0da0694b2511b475a2ea1600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200019d600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b620001d0600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000203600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000236600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000269600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b6200029c600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b620002cf600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000302600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000335600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000368600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200043c60201b60201c565b62000b55565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004536008620004e260201b6200129f1760201c565b600b546200046d6008620004f860201b620012b51760201c565b1115620004b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004a890620009ac565b60405180910390fd5b6000620004ca6008620004f860201b620012b51760201c565b9050620004de82826200050660201b60201c565b5050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000570906200098a565b60405180910390fd5b6200058a816200070060201b60201c565b15620005cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c49062000968565b60405180910390fd5b620005e1600083836200076c60201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620006339190620009df565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4620006fc600083836200083960201b60201c565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620007c457600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200081c57600080fd5b620008348383836200083e60201b620012c31760201c565b505050565b505050565b505050565b828054620008519062000a46565b90600052602060002090601f016020900481019282620008755760008555620008c1565b82601f106200089057805160ff1916838001178555620008c1565b82800160010185558215620008c1579182015b82811115620008c0578251825591602001919060010190620008a3565b5b509050620008d09190620008d4565b5090565b5b80821115620008ef576000816000905550600101620008d5565b5090565b600062000902601c83620009ce565b91506200090f8262000ada565b602082019050919050565b600062000929602083620009ce565b9150620009368262000b03565b602082019050919050565b600062000950601c83620009ce565b91506200095d8262000b2c565b602082019050919050565b600060208201905081810360008301526200098381620008f3565b9050919050565b60006020820190508181036000830152620009a5816200091a565b9050919050565b60006020820190508181036000830152620009c78162000941565b9050919050565b600082825260208201905092915050565b6000620009ec8262000a3c565b9150620009f98362000a3c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a315762000a3062000a7c565b5b828201905092915050565b6000819050919050565b6000600282049050600182168062000a5f57607f821691505b6020821081141562000a765762000a7562000aab565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b6137748062000b656000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636ecf11d7116100c3578063b88d4fde1161007c578063b88d4fde14610377578063c87b56dd14610393578063d4c97533146103c3578063e985e9c5146103df578063f2fde38b1461040f578063feff84a81461042b5761014d565b80636ecf11d7146102db57806370a08231146102e5578063715018a6146103155780638da5cb5b1461031f57806395d89b411461033d578063a22cb4651461035b5761014d565b806323b872dd1161011557806323b872dd1461020a5780632a55205a1461022657806342842e0e146102575780634f07de091461027357806355f804b31461028f5780636352211e146102ab5761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806318160ddd146101ec575b600080fd5b61016c60048036038101906101679190612649565b610447565b6040516101799190612b3b565b60405180910390f35b61018a6104b0565b6040516101979190612b56565b60405180910390f35b6101ba60048036038101906101b591906126dc565b610542565b6040516101c79190612aab565b60405180910390f35b6101ea60048036038101906101e5919061260d565b6105c7565b005b6101f46106df565b6040516102019190612db8565b60405180910390f35b610224600480360381019061021f9190612507565b6106f0565b005b610240600480360381019061023b9190612705565b610750565b60405161024e929190612b12565b60405180910390f35b610271600480360381019061026c9190612507565b61079c565b005b61028d600480360381019061028891906126dc565b6107bc565b005b6102a960048036038101906102a4919061269b565b610842565b005b6102c560048036038101906102c091906126dc565b6108d8565b6040516102d29190612aab565b60405180910390f35b6102e361098a565b005b6102ff60048036038101906102fa91906124a2565b610bb6565b60405161030c9190612db8565b60405180910390f35b61031d610c6e565b005b610327610cf6565b6040516103349190612aab565b60405180910390f35b610345610d20565b6040516103529190612b56565b60405180910390f35b610375600480360381019061037091906125d1565b610db2565b005b610391600480360381019061038c9190612556565b610dc8565b005b6103ad60048036038101906103a891906126dc565b610e2a565b6040516103ba9190612b56565b60405180910390f35b6103dd60048036038101906103d891906124a2565b610f7c565b005b6103f960048036038101906103f491906124cb565b61103c565b6040516104069190612b3b565b60405180910390f35b610429600480360381019061042491906124a2565b6110d0565b005b610445600480360381019061044091906125d1565b6111c8565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561049f57600190506104ab565b6104a8826112c8565b90505b919050565b6060600080546104bf90613068565b80601f01602080910402602001604051908101604052809291908181526020018280546104eb90613068565b80156105385780601f1061050d57610100808354040283529160200191610538565b820191906000526020600020905b81548152906001019060200180831161051b57829003601f168201915b5050505050905090565b600061054d826113aa565b61058c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058390612d18565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105d2826108d8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a90612d78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610662611416565b73ffffffffffffffffffffffffffffffffffffffff16148061069157506106908161068b611416565b61103c565b5b6106d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c790612c58565b60405180910390fd5b6106da838361141e565b505050565b60006106eb60086112b5565b905090565b6107016106fb611416565b826114d7565b610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612d98565b60405180910390fd5b61074b8383836115b5565b505050565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600a54856107879190612f24565b6107919190612ef3565b915091509250929050565b6107b783838360405180602001604052806000815250610dc8565b505050565b6107c4611416565b73ffffffffffffffffffffffffffffffffffffffff166107e2610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90612d38565b60405180910390fd5b80600a8190555050565b61084a611416565b73ffffffffffffffffffffffffffffffffffffffff16610868610cf6565b73ffffffffffffffffffffffffffffffffffffffff16146108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590612d38565b60405180910390fd5b80600990805190602001906108d49291906122c6565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890612c98565b60405180910390fd5b80915050919050565b610992611416565b73ffffffffffffffffffffffffffffffffffffffff166109b0610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd90612d38565b60405180910390fd5b610a31600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610a5c600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610a87600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610ab2600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610add600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610b08600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610b33600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610b5e600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610b89600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b610bb4600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661181c565b565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e90612c78565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c76611416565b73ffffffffffffffffffffffffffffffffffffffff16610c94610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190612d38565b60405180910390fd5b610cf46000611890565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d2f90613068565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5b90613068565b8015610da85780601f10610d7d57610100808354040283529160200191610da8565b820191906000526020600020905b815481529060010190602001808311610d8b57829003601f168201915b5050505050905090565b610dc4610dbd611416565b8383611956565b5050565b610dd9610dd3611416565b836114d7565b610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90612d98565b60405180910390fd5b610e2484848484611ac3565b50505050565b6060610e35826113aa565b610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90612cd8565b60405180910390fd5b6000600660008481526020019081526020016000208054610e9490613068565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec090613068565b8015610f0d5780601f10610ee257610100808354040283529160200191610f0d565b820191906000526020600020905b815481529060010190602001808311610ef057829003601f168201915b505050505090506000610f1e611b1f565b9050600081511415610f34578192505050610f77565b600082511115610f69578082604051602001610f51929190612a87565b60405160208183030381529060405292505050610f77565b610f7284611bb1565b925050505b919050565b610f84611416565b73ffffffffffffffffffffffffffffffffffffffff16610fa2610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef90612d38565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6110d8611416565b73ffffffffffffffffffffffffffffffffffffffff166110f6610cf6565b73ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612d38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612b98565b60405180910390fd5b6111c581611890565b50565b6111d0611416565b73ffffffffffffffffffffffffffffffffffffffff166111ee610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612d38565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001816000016000828254019250508190555050565b600081600001549050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061139357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806113a357506113a282611c58565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611491836108d8565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006114e2826113aa565b611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612c38565b60405180910390fd5b600061152c836108d8565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061159b57508373ffffffffffffffffffffffffffffffffffffffff1661158384610542565b73ffffffffffffffffffffffffffffffffffffffff16145b806115ac57506115ab818561103c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115d5826108d8565b73ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612bf8565b60405180910390fd5b6116a6838383611cc2565b6116b160008261141e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117019190612f7e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117589190612e9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611817838383611d80565b505050565b611826600861129f565b600b5461183360086112b5565b1115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90612cf8565b60405180910390fd5b600061188060086112b5565b905061188c8282611d85565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc90612c18565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ab69190612b3b565b60405180910390a3505050565b611ace8484846115b5565b611ada84848484611f5f565b611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1090612b78565b60405180910390fd5b50505050565b606060098054611b2e90613068565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5a90613068565b8015611ba75780601f10611b7c57610100808354040283529160200191611ba7565b820191906000526020600020905b815481529060010190602001808311611b8a57829003601f168201915b5050505050905090565b6060611bbc826113aa565b611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290612d58565b60405180910390fd5b6000611c05611b1f565b90506000815111611c255760405180602001604052806000815250611c50565b80611c2f846120f6565b604051602001611c40929190612a87565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d1957600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7057600080fd5b611d7b8383836112c3565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90612cb8565b60405180910390fd5b611dfe816113aa565b15611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590612bd8565b60405180910390fd5b611e4a60008383611cc2565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e9a9190612e9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f5b60008383611d80565b5050565b6000611f808473ffffffffffffffffffffffffffffffffffffffff166122a3565b156120e9578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611fa9611416565b8786866040518563ffffffff1660e01b8152600401611fcb9493929190612ac6565b602060405180830381600087803b158015611fe557600080fd5b505af192505050801561201657506040513d601f19601f820116820180604052508101906120139190612672565b60015b612099573d8060008114612046576040519150601f19603f3d011682016040523d82523d6000602084013e61204b565b606091505b50600081511415612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208890612b78565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506120ee565b600190505b949350505050565b6060600082141561213e576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061229e565b600082905060005b60008214612170578080612159906130cb565b915050600a826121699190612ef3565b9150612146565b60008167ffffffffffffffff8111156121b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121e45781602001600182028036833780820191505090505b5090505b60008514612297576001826121fd9190612f7e565b9150600a8561220c9190613114565b60306122189190612e9d565b60f81b818381518110612254577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856122909190612ef3565b94506121e8565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546122d290613068565b90600052602060002090601f0160209004810192826122f4576000855561233b565b82601f1061230d57805160ff191683800117855561233b565b8280016001018555821561233b579182015b8281111561233a57825182559160200191906001019061231f565b5b509050612348919061234c565b5090565b5b8082111561236557600081600090555060010161234d565b5090565b600061237c61237784612df8565b612dd3565b90508281526020810184848401111561239457600080fd5b61239f848285613026565b509392505050565b60006123ba6123b584612e29565b612dd3565b9050828152602081018484840111156123d257600080fd5b6123dd848285613026565b509392505050565b6000813590506123f4816136e2565b92915050565b600081359050612409816136f9565b92915050565b60008135905061241e81613710565b92915050565b60008151905061243381613710565b92915050565b600082601f83011261244a57600080fd5b813561245a848260208601612369565b91505092915050565b600082601f83011261247457600080fd5b81356124848482602086016123a7565b91505092915050565b60008135905061249c81613727565b92915050565b6000602082840312156124b457600080fd5b60006124c2848285016123e5565b91505092915050565b600080604083850312156124de57600080fd5b60006124ec858286016123e5565b92505060206124fd858286016123e5565b9150509250929050565b60008060006060848603121561251c57600080fd5b600061252a868287016123e5565b935050602061253b868287016123e5565b925050604061254c8682870161248d565b9150509250925092565b6000806000806080858703121561256c57600080fd5b600061257a878288016123e5565b945050602061258b878288016123e5565b935050604061259c8782880161248d565b925050606085013567ffffffffffffffff8111156125b957600080fd5b6125c587828801612439565b91505092959194509250565b600080604083850312156125e457600080fd5b60006125f2858286016123e5565b9250506020612603858286016123fa565b9150509250929050565b6000806040838503121561262057600080fd5b600061262e858286016123e5565b925050602061263f8582860161248d565b9150509250929050565b60006020828403121561265b57600080fd5b60006126698482850161240f565b91505092915050565b60006020828403121561268457600080fd5b600061269284828501612424565b91505092915050565b6000602082840312156126ad57600080fd5b600082013567ffffffffffffffff8111156126c757600080fd5b6126d384828501612463565b91505092915050565b6000602082840312156126ee57600080fd5b60006126fc8482850161248d565b91505092915050565b6000806040838503121561271857600080fd5b60006127268582860161248d565b92505060206127378582860161248d565b9150509250929050565b61274a81612fb2565b82525050565b61275981612fc4565b82525050565b600061276a82612e5a565b6127748185612e70565b9350612784818560208601613035565b61278d81613201565b840191505092915050565b60006127a382612e65565b6127ad8185612e81565b93506127bd818560208601613035565b6127c681613201565b840191505092915050565b60006127dc82612e65565b6127e68185612e92565b93506127f6818560208601613035565b80840191505092915050565b600061280f603283612e81565b915061281a82613212565b604082019050919050565b6000612832602683612e81565b915061283d82613261565b604082019050919050565b6000612855602583612e81565b9150612860826132b0565b604082019050919050565b6000612878601c83612e81565b9150612883826132ff565b602082019050919050565b600061289b602483612e81565b91506128a682613328565b604082019050919050565b60006128be601983612e81565b91506128c982613377565b602082019050919050565b60006128e1602c83612e81565b91506128ec826133a0565b604082019050919050565b6000612904603883612e81565b915061290f826133ef565b604082019050919050565b6000612927602a83612e81565b91506129328261343e565b604082019050919050565b600061294a602983612e81565b91506129558261348d565b604082019050919050565b600061296d602083612e81565b9150612978826134dc565b602082019050919050565b6000612990603183612e81565b915061299b82613505565b604082019050919050565b60006129b3601c83612e81565b91506129be82613554565b602082019050919050565b60006129d6602c83612e81565b91506129e18261357d565b604082019050919050565b60006129f9602083612e81565b9150612a04826135cc565b602082019050919050565b6000612a1c602f83612e81565b9150612a27826135f5565b604082019050919050565b6000612a3f602183612e81565b9150612a4a82613644565b604082019050919050565b6000612a62603183612e81565b9150612a6d82613693565b604082019050919050565b612a818161301c565b82525050565b6000612a9382856127d1565b9150612a9f82846127d1565b91508190509392505050565b6000602082019050612ac06000830184612741565b92915050565b6000608082019050612adb6000830187612741565b612ae86020830186612741565b612af56040830185612a78565b8181036060830152612b07818461275f565b905095945050505050565b6000604082019050612b276000830185612741565b612b346020830184612a78565b9392505050565b6000602082019050612b506000830184612750565b92915050565b60006020820190508181036000830152612b708184612798565b905092915050565b60006020820190508181036000830152612b9181612802565b9050919050565b60006020820190508181036000830152612bb181612825565b9050919050565b60006020820190508181036000830152612bd181612848565b9050919050565b60006020820190508181036000830152612bf18161286b565b9050919050565b60006020820190508181036000830152612c118161288e565b9050919050565b60006020820190508181036000830152612c31816128b1565b9050919050565b60006020820190508181036000830152612c51816128d4565b9050919050565b60006020820190508181036000830152612c71816128f7565b9050919050565b60006020820190508181036000830152612c918161291a565b9050919050565b60006020820190508181036000830152612cb18161293d565b9050919050565b60006020820190508181036000830152612cd181612960565b9050919050565b60006020820190508181036000830152612cf181612983565b9050919050565b60006020820190508181036000830152612d11816129a6565b9050919050565b60006020820190508181036000830152612d31816129c9565b9050919050565b60006020820190508181036000830152612d51816129ec565b9050919050565b60006020820190508181036000830152612d7181612a0f565b9050919050565b60006020820190508181036000830152612d9181612a32565b9050919050565b60006020820190508181036000830152612db181612a55565b9050919050565b6000602082019050612dcd6000830184612a78565b92915050565b6000612ddd612dee565b9050612de9828261309a565b919050565b6000604051905090565b600067ffffffffffffffff821115612e1357612e126131d2565b5b612e1c82613201565b9050602081019050919050565b600067ffffffffffffffff821115612e4457612e436131d2565b5b612e4d82613201565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612ea88261301c565b9150612eb38361301c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ee857612ee7613145565b5b828201905092915050565b6000612efe8261301c565b9150612f098361301c565b925082612f1957612f18613174565b5b828204905092915050565b6000612f2f8261301c565b9150612f3a8361301c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7357612f72613145565b5b828202905092915050565b6000612f898261301c565b9150612f948361301c565b925082821015612fa757612fa6613145565b5b828203905092915050565b6000612fbd82612ffc565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613053578082015181840152602081019050613038565b83811115613062576000848401525b50505050565b6000600282049050600182168061308057607f821691505b60208210811415613094576130936131a3565b5b50919050565b6130a382613201565b810181811067ffffffffffffffff821117156130c2576130c16131d2565b5b80604052505050565b60006130d68261301c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561310957613108613145565b5b600182019050919050565b600061311f8261301c565b915061312a8361301c565b92508261313a57613139613174565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6136eb81612fb2565b81146136f657600080fd5b50565b61370281612fc4565b811461370d57600080fd5b50565b61371981612fd0565b811461372457600080fd5b50565b6137308161301c565b811461373b57600080fd5b5056fea26469706673582212203a4722f16645865010d3d7575b1be02914903aa18e8b3f33414dda67bc3ee4d364736f6c6343000801003368747470733a2f2f6e6674732e6270692e6e6574776f726b2f7069745f64656d6f6e732f