[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "BlacklistedOperator", "type": "error" }, { "inputs": [], "name": "EmptyReceiverNonEmptyRoyalty", "type": "error" }, { "inputs": [], "name": "EmptyRoyaltyNonEmptyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ExistingId", "type": "error" }, { "inputs": [], "name": "LengthMismatch", "type": "error" }, { "inputs": [], "name": "NotAMinter", "type": "error" }, { "inputs": [], "name": "NotATokenOwnerOrApproved", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "NotEnoughTokens", "type": "error" }, { "inputs": [], "name": "RoyaltyTooLarge", "type": "error" }, { "inputs": [], "name": "TransferNotAuthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "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": "amounts", "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": "amount", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "amounts", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableAutoApprove", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableAutoApprove", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "", "type": "address" } ], "name": "isOperatorBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketplace", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "buyer", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "editions", "type": "uint256" }, { "internalType": "string", "name": "meta", "type": "string" }, { "internalType": "address", "name": "royaltyReceiver", "type": "address" }, { "internalType": "uint96", "name": "royalty", "type": "uint96" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "noAutoApprove", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "operator", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setBlacklistedOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_marketplace", "type": "address" } ], "name": "setMarketplace", "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": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "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": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c0604052600c60809081526b125b9d195c9b985b0813919560a21b60a0526003906200002d908262000151565b503480156200003b57600080fd5b5062000047336200005a565b6002805460ff60a01b191690556200021d565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000d757607f821691505b602082108103620000f857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200014c57600081815260208120601f850160051c81016020861015620001275750805b601f850160051c820191505b81811015620001485782815560010162000133565b5050505b505050565b81516001600160401b038111156200016d576200016d620000ac565b62000185816200017e8454620000c2565b84620000fe565b602080601f831160018114620001bd5760008415620001a45750858301515b600019600386901b1c1916600185901b17855562000148565b600085815260208120601f198616915b82811015620001ee57888601518255948401946001909101908401620001cd565b50858210156200020d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612079806200022d6000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c8063715018a6116100f9578063bd85b03911610097578063f2fde38b11610071578063f2fde38b14610430578063f5298aca14610443578063f9b13ab214610456578063fd8bf5961461047257600080fd5b8063bd85b039146103ea578063e985e9c51461040a578063f242432a1461041d57600080fd5b80638da5cb5b116100d35780638da5cb5b1461037c578063a22cb465146103a1578063abc8c7af146103b4578063b9b6be97146103c757600080fd5b8063715018a61461035957806373ad6c2d146103615780638456cb591461037457600080fd5b80633a065b59116101665780634f558e79116101405780634f558e79146102ff5780635c975abb146103215780636b20c454146103335780636cbba4ff1461034657600080fd5b80633a065b59146102b85780633f4ba83a146102d75780634e1273f4146102df57600080fd5b80630e89341c116101a25780630e89341c1461023b5780632a55205a1461024e5780632d15acd0146102805780632eb2c2d6146102a357600080fd5b8062fdd58e146101c857806301ffc9a71461020357806306fdde0314610226575b600080fd5b6101f06101d63660046116c4565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b610216610211366004611704565b610485565b60405190151581526020016101fa565b61022e6104b1565b6040516101fa9190611767565b61022e61024936600461177a565b61053f565b61026161025c366004611793565b6105e1565b604080516001600160a01b0390931683526020830191909152016101fa565b61021661028e3660046117b5565b60096020526000908152604090205460ff1681565b6102b66102b1366004611857565b610650565b005b6102b6336000908152600960205260409020805460ff19166001179055565b6102b661089e565b6102f26102ed366004611912565b6108b0565b6040516101fa91906119b9565b61021661030d36600461177a565b600090815260066020526040902054151590565b600254600160a01b900460ff16610216565b6102b6610341366004611a7d565b6109c7565b6102b6610354366004611af1565b610c12565b6102b6610c45565b6102b661036f3660046117b5565b610c57565b6102b6610c81565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016101fa565b6102b66103af366004611af1565b610c91565b600854610389906001600160a01b031681565b6102166103d53660046117b5565b60076020526000908152604090205460ff1681565b6101f06103f836600461177a565b60009081526006602052604090205490565b610216610418366004611b2d565b610cf2565b6102b661042b366004611b60565b610d8c565b6102b661043e3660046117b5565b610f4f565b6102b6610451366004611bd8565b610fc8565b6102b6336000908152600960205260409020805460ff19169055565b6102b6610480366004611c0b565b6110c3565b60006104908261126a565b806104ab57506001600160e01b0319821663152a902d60e11b145b92915050565b600380546104be90611ca4565b80601f01602080910402602001604051908101604052809291908181526020018280546104ea90611ca4565b80156105375780601f1061050c57610100808354040283529160200191610537565b820191906000526020600020905b81548152906001019060200180831161051a57829003601f168201915b505050505081565b600081815260046020526040902080546060919061055c90611ca4565b80601f016020809104026020016040519081016040528092919081815260200182805461058890611ca4565b80156105d55780601f106105aa576101008083540402835291602001916105d5565b820191906000526020600020905b8154815290600101906020018083116105b857829003601f168201915b50505050509050919050565b600082815260056020526040812080548291906001600160a01b031661060e576000809250925050610649565b80546001600160a01b038116906127109061063990600160a01b90046001600160601b031687611cf4565b6106439190611d0b565b92509250505b9250929050565b848314610673576040516001621398b960e31b0319815260040160405180910390fd5b336001600160a01b0389161480159061069357506106918833610cf2565b155b156106b157604051631f8e654960e11b815260040160405180910390fd5b60008060005b8781101561076c578888828181106106d1576106d1611d2d565b9050602002013592508686828181106106ec576106ec611d2d565b6001600160a01b038e1660009081526020818152604080832089845282528220805493909102949094013595508593925090610729908490611d43565b90915550506001600160a01b038a166000908152602081815260408083208684529091528120805484929061075f908490611d56565b90915550506001016106b7565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516107c09493929190611d9b565b60405180910390a46001600160a01b0389163b156108685760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906108149033908f908e908e908e908e908e908e90600401611deb565b6020604051808303816000875af1158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190611e4f565b6001600160e01b0319161415610874565b6001600160a01b038916155b1561089257604051633da6393160e01b815260040160405180910390fd5b50505050505050505050565b6108a66112b8565b6108ae611312565b565b60608382146108d5576040516001621398b960e31b0319815260040160405180910390fd5b8367ffffffffffffffff8111156108ee576108ee6119cc565b604051908082528060200260200182016040528015610917578160200160208202803683370190505b50905060005b848110156109be5760008087878481811061093a5761093a611d2d565b905060200201602081019061094f91906117b5565b6001600160a01b03166001600160a01b03168152602001908152602001600020600085858481811061098357610983611d2d565b905060200201358152602001908152602001600020548282815181106109ab576109ab611d2d565b602090810291909101015260010161091d565b50949350505050565b336001600160a01b038416148015906109e757506109e58333610cf2565b155b15610a055760405163a565d3dd60e01b815260040160405180910390fd5b815181518114610a2b576040516001621398b960e31b0319815260040160405180910390fd5b60005b81811015610bb357828181518110610a4857610a48611d2d565b6020026020010151600080876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610a8857610a88611d2d565b60200260200101518152602001908152602001600020541015610ae457838181518110610ab757610ab7611d2d565b602002602001015160405163730c8f8360e11b8152600401610adb91815260200190565b60405180910390fd5b828181518110610af657610af6611d2d565b602002602001015160066000868481518110610b1457610b14611d2d565b6020026020010151815260200190815260200160002060008282540392505081905550828181518110610b4957610b49611d2d565b6020026020010151600080876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610b8957610b89611d2d565b60209081029190910181015182528101919091526040016000208054919091039055600101610a2e565b5060006001600160a01b0316846001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610c04929190611e6c565b60405180910390a450505050565b610c1a6112b8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610c4d6112b8565b6108ae6000611367565b610c5f6112b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610c896112b8565b6108ae6113b9565b6001600160a01b03821660009081526007602052604090205460ff168015610cbb57506001811515145b15610ce4576040516305fa595760e11b81526001600160a01b0383166004820152602401610adb565b610cee82826113fc565b5050565b6001600160a01b03811660009081526007602052604081205460ff1615610d1b575060006104ab565b6008546001600160a01b031633148015610d4e57506001600160a01b03831660009081526009602052604090205460ff16155b15610d5b575060016104ab565b6001600160a01b0380841660009081526001602090815260408083209386168352929052205460ff165b9392505050565b336001600160a01b03871614801590610dac5750610daa8633610cf2565b155b15610dca57604051631f8e654960e11b815260040160405180910390fd5b6001600160a01b03861660009081526020818152604080832087845290915281208054859290610dfb908490611d43565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290610e31908490611d56565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b15610f1d5760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190610ec99033908b908a908a908a908a90600401611e9a565b6020604051808303816000875af1158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190611e4f565b6001600160e01b0319161415610f29565b6001600160a01b038516155b15610f4757604051633da6393160e01b815260040160405180910390fd5b505050505050565b610f576112b8565b6001600160a01b038116610fbc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610adb565b610fc581611367565b50565b336001600160a01b03841614801590610fe85750610fe68333610cf2565b155b156110065760405163a565d3dd60e01b815260040160405180910390fd5b6001600160a01b03831660009081526020818152604080832085845290915290205481111561104b5760405163730c8f8360e11b815260048101839052602401610adb565b6000828152600660209081526040808320805485900390556001600160a01b03861680845283835281842086855283528184208054869003905581518681529283018590529133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6008546001600160a01b031633148015906110e957506002546001600160a01b03163314155b156111075760405163120892f760e31b815260040160405180910390fd5b81816001600160a01b03821615801561112857506001600160601b03811615155b156111465760405163a4319a3960e01b815260040160405180910390fd5b6001600160601b03811615801561116557506001600160a01b03821615155b1561118357604051637ebf3a1d60e11b815260040160405180910390fd5b6127106001600160601b03821611156111af5760405163c0cb3c0560e01b815260040160405180910390fd5b6111b7611468565b600088815260066020526040902054156111e75760405163ea76f1ed60e01b815260048101899052602401610adb565b6040805180820182526001600160a01b0380871682526001600160601b03808716602080850191825260008e81526005825286812095519251909316600160a01b02919093161790925560069052208790556112448887876114b5565b61125f8989896040518060200160405280600081525061150e565b505050505050505050565b60006301ffc9a760e01b6001600160e01b03198316148061129b5750636cdb3d1360e11b6001600160e01b03198316145b806104ab5750506001600160e01b0319166303a24d0760e21b1490565b6002546001600160a01b031633146108ae5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610adb565b61131a611658565b6002805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6113c1611468565b6002805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861134a3390565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600254600160a01b900460ff16156108ae5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610adb565b60008381526004602052604090206114ce828483611f2c565b50827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8383604051611501929190611fed565b60405180910390a2505050565b6001600160a01b0384166000908152602081815260408083208684529091528120805484929061153f908490611d56565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156116285760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906115d4903390600090899089908990600401612009565b6020604051808303816000875af11580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116179190611e4f565b6001600160e01b0319161415611634565b6001600160a01b038416155b1561165257604051633da6393160e01b815260040160405180910390fd5b50505050565b600254600160a01b900460ff166108ae5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610adb565b80356001600160a01b03811681146116bf57600080fd5b919050565b600080604083850312156116d757600080fd5b6116e0836116a8565b946020939093013593505050565b6001600160e01b031981168114610fc557600080fd5b60006020828403121561171657600080fd5b8135610d85816116ee565b6000815180845260005b818110156117475760208185018101518683018201520161172b565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d856020830184611721565b60006020828403121561178c57600080fd5b5035919050565b600080604083850312156117a657600080fd5b50508035926020909101359150565b6000602082840312156117c757600080fd5b610d85826116a8565b60008083601f8401126117e257600080fd5b50813567ffffffffffffffff8111156117fa57600080fd5b6020830191508360208260051b850101111561064957600080fd5b60008083601f84011261182757600080fd5b50813567ffffffffffffffff81111561183f57600080fd5b60208301915083602082850101111561064957600080fd5b60008060008060008060008060a0898b03121561187357600080fd5b61187c896116a8565b975061188a60208a016116a8565b9650604089013567ffffffffffffffff808211156118a757600080fd5b6118b38c838d016117d0565b909850965060608b01359150808211156118cc57600080fd5b6118d88c838d016117d0565b909650945060808b01359150808211156118f157600080fd5b506118fe8b828c01611815565b999c989b5096995094979396929594505050565b6000806000806040858703121561192857600080fd5b843567ffffffffffffffff8082111561194057600080fd5b61194c888389016117d0565b9096509450602087013591508082111561196557600080fd5b50611972878288016117d0565b95989497509550505050565b600081518084526020808501945080840160005b838110156119ae57815187529582019590820190600101611992565b509495945050505050565b602081526000610d85602083018461197e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126119f357600080fd5b8135602067ffffffffffffffff80831115611a1057611a106119cc565b8260051b604051601f19603f83011681018181108482111715611a3557611a356119cc565b604052938452858101830193838101925087851115611a5357600080fd5b83870191505b84821015611a7257813583529183019190830190611a59565b979650505050505050565b600080600060608486031215611a9257600080fd5b611a9b846116a8565b9250602084013567ffffffffffffffff80821115611ab857600080fd5b611ac4878388016119e2565b93506040860135915080821115611ada57600080fd5b50611ae7868287016119e2565b9150509250925092565b60008060408385031215611b0457600080fd5b611b0d836116a8565b915060208301358015158114611b2257600080fd5b809150509250929050565b60008060408385031215611b4057600080fd5b611b49836116a8565b9150611b57602084016116a8565b90509250929050565b60008060008060008060a08789031215611b7957600080fd5b611b82876116a8565b9550611b90602088016116a8565b94506040870135935060608701359250608087013567ffffffffffffffff811115611bba57600080fd5b611bc689828a01611815565b979a9699509497509295939492505050565b600080600060608486031215611bed57600080fd5b611bf6846116a8565b95602085013595506040909401359392505050565b600080600080600080600060c0888a031215611c2657600080fd5b611c2f886116a8565b96506020880135955060408801359450606088013567ffffffffffffffff811115611c5957600080fd5b611c658a828b01611815565b9095509350611c789050608089016116a8565b915060a08801356001600160601b0381168114611c9457600080fd5b8091505092959891949750929550565b600181811c90821680611cb857607f821691505b602082108103611cd857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104ab576104ab611cde565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b818103818111156104ab576104ab611cde565b808201808211156104ab576104ab611cde565b81835260006001600160fb1b03831115611d8257600080fd5b8260051b80836020870137939093016020019392505050565b604081526000611daf604083018688611d69565b8281036020840152611a72818587611d69565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a060408201819052600090611e18908301888a611d69565b8281036060840152611e2b818789611d69565b90508281036080840152611e40818587611dc2565b9b9a5050505050505050505050565b600060208284031215611e6157600080fd5b8151610d85816116ee565b604081526000611e7f604083018561197e565b8281036020840152611e91818561197e565b95945050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090611ed59083018486611dc2565b98975050505050505050565b601f821115611f2757600081815260208120601f850160051c81016020861015611f085750805b601f850160051c820191505b81811015610f4757828155600101611f14565b505050565b67ffffffffffffffff831115611f4457611f446119cc565b611f5883611f528354611ca4565b83611ee1565b6000601f841160018114611f8c5760008515611f745750838201355b600019600387901b1c1916600186901b178355611fe6565b600083815260209020601f19861690835b82811015611fbd5786850135825560209485019460019092019101611f9d565b5086821015611fda5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b602081526000612001602083018486611dc2565b949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611a729083018461172156fea26469706673582212209d0e3912d2695f0a121c61315ec47e84fbf05afbe86785bb52f303f153f2cb0364736f6c63430008110033