[
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"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": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
60c060405260016080908152602f60f81b60a052600b9061002090826101e1565b50604080518082019091526005815264173539b7b760d91b6020820152600c9061004a90826101e1565b50348015610056575f80fd5b50336040518060400160405280600781526020016614d51050d2d25160ca1b8152506040518060400160405280600381526020016214d51160ea1b81525081600290816100a391906101e1565b5060036100b082826101e1565b5060015f5550506001600160a01b0381166100e457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100ed816100f8565b506001600a5561029b565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061017157607f821691505b60208210810361018f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101dc57805f5260205f20601f840160051c810160208510156101ba5750805b601f840160051c820191505b818110156101d9575f81556001016101c6565b50505b505050565b81516001600160401b038111156101fa576101fa610149565b61020e81610208845461015d565b84610195565b6020601f821160018114610240575f83156102295750848201515b5f19600385901b1c1916600184901b1784556101d9565b5f84815260208120601f198516915b8281101561026f578785015182556020948501946001909201910161024f565b508482101561028c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b611a44806102a85f395ff3fe608060405260043610610195575f3560e01c806370a08231116100e7578063a22cb46511610087578063c23dc68f11610062578063c23dc68f1461044e578063c87b56dd1461047a578063e985e9c514610499578063f2fde38b146104e0575f80fd5b8063a22cb465146103fd578063b88d4fde1461041c578063bc63f02e1461042f575f80fd5b80638462151c116100c25780638462151c146103815780638da5cb5b146103ad57806395d89b41146103ca57806399a2557a146103de575f80fd5b806370a082311461032f578063715018a61461034e5780637ec4a65914610362575f80fd5b806323b872dd116101525780635503a0e81161012d5780635503a0e8146102bc5780635bbb2177146102d057806362b99ad4146102fc5780636352211e14610310575f80fd5b806323b872dd146102825780633ccfd60b1461029557806342842e0e146102a9575f80fd5b806301ffc9a71461019957806306fdde03146101cd578063081812fc146101ee578063095ea7b31461022557806316ba10e01461023a57806318160ddd14610259575b5f80fd5b3480156101a4575f80fd5b506101b86101b336600461137c565b6104ff565b60405190151581526020015b60405180910390f35b3480156101d8575f80fd5b506101e1610550565b6040516101c491906113c5565b3480156101f9575f80fd5b5061020d6102083660046113d7565b6105e0565b6040516001600160a01b0390911681526020016101c4565b610238610233366004611404565b610619565b005b348015610245575f80fd5b506102386102543660046114b7565b610629565b348015610264575f80fd5b506102746001545f54035f190190565b6040519081526020016101c4565b6102386102903660046114fc565b61063d565b3480156102a0575f80fd5b50610238610797565b6102386102b73660046114fc565b610820565b3480156102c7575f80fd5b506101e161083f565b3480156102db575f80fd5b506102ef6102ea366004611536565b6108cb565b6040516101c491906115e4565b348015610307575f80fd5b506101e1610916565b34801561031b575f80fd5b5061020d61032a3660046113d7565b610923565b34801561033a575f80fd5b50610274610349366004611631565b61092d565b348015610359575f80fd5b50610238610971565b34801561036d575f80fd5b5061023861037c3660046114b7565b610982565b34801561038c575f80fd5b506103a061039b366004611631565b610996565b6040516101c4919061164a565b3480156103b8575f80fd5b506009546001600160a01b031661020d565b3480156103d5575f80fd5b506101e16109bc565b3480156103e9575f80fd5b506103a06103f8366004611681565b6109cb565b348015610408575f80fd5b506102386104173660046116b1565b6109d8565b61023861042a3660046116ea565b610a43565b34801561043a575f80fd5b50610238610449366004611761565b610a84565b348015610459575f80fd5b5061046d6104683660046113d7565b610a96565b6040516101c4919061178b565b348015610485575f80fd5b506101e16104943660046113d7565b610af6565b3480156104a4575f80fd5b506101b86104b3366004611799565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205460ff1690565b3480156104eb575f80fd5b506102386104fa366004611631565b610bc6565b5f6301ffc9a760e01b6001600160e01b03198316148061052f57506380ac58cd60e01b6001600160e01b03198316145b8061054a5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606002805461055f906117c1565b80601f016020809104026020016040519081016040528092919081815260200182805461058b906117c1565b80156105d65780601f106105ad576101008083540402835291602001916105d6565b820191905f5260205f20905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b5f6105ea82610c03565b6105fe576105fe6333d1c03960e21b610c4b565b505f908152600660205260409020546001600160a01b031690565b61062582826001610c53565b5050565b610631610cf4565b600c610625828261183d565b5f61064782610d21565b6001600160a01b03948516949091508116841461066d5761066d62a1148160e81b610c4b565b5f8281526006602052604090208054338082146001600160a01b038816909114176106b05761069c86336104b3565b6106b0576106b0632ce44b5f60e11b610c4b565b80156106ba575f82555b6001600160a01b038681165f9081526005602052604080822080545f19019055918716808252919020805460010190554260a01b17600160e11b175f85815260046020526040812091909155600160e11b8416900361074657600184015f818152600460205260408120549003610744575f548114610744575f8181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f0361078e5761078e633a954ecd60e21b610c4b565b50505050505050565b61079f610cf4565b6107a7610dba565b5f6107ba6009546001600160a01b031690565b6001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610801576040519150601f19603f3d011682016040523d82523d5f602084013e610806565b606091505b5050905080610813575f80fd5b5061081e6001600a55565b565b61083a83838360405180602001604052805f815250610a43565b505050565b600c805461084c906117c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610878906117c1565b80156108c35780601f1061089a576101008083540402835291602001916108c3565b820191905f5260205f20905b8154815290600101906020018083116108a657829003601f168201915b505050505081565b60408051828152600583901b8082016020019092526060915b801561090e57601f1980820191860101355f6108ff82610a96565b84840160200152506108e49050565b509392505050565b600b805461084c906117c1565b5f61054a82610d21565b5f6001600160a01b03821661094c5761094c6323d3ad8160e21b610c4b565b506001600160a01b03165f9081526005602052604090205467ffffffffffffffff1690565b610979610cf4565b61081e5f610e13565b61098a610cf4565b600b610625828261183d565b5f54606090600190828282146109b4576109b1858484610e64565b90505b949350505050565b60606003805461055f906117c1565b60606109b4848484610e64565b335f8181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610a4e84848461063d565b6001600160a01b0383163b15610a7e57610a6a84848484610f63565b610a7e57610a7e6368d2bf6b60e11b610c4b565b50505050565b610a8c610cf4565b6106258183611041565b604080516080810182525f80825260208201819052918101829052606081019190915260018210610af1575f54821015610af1575b5f82815260046020526040902054610ae8575f1990910190610acb565b61054a8261105a565b919050565b6060610b0182610c03565b610b6a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084015b60405180910390fd5b5f610b736110d7565b90505f815111610b915760405180602001604052805f815250610bbf565b80610b9b846110e6565b600c604051602001610baf9392919061190f565b6040516020818303038152906040525b9392505050565b610bce610cf4565b6001600160a01b038116610bf757604051631e4fbdf760e01b81525f6004820152602401610b61565b610c0081610e13565b50565b5f81600111610af1575f54821015610af1575f5b505f8281526004602052604081205490819003610c3e57610c3783611996565b9250610c17565b600160e01b161592915050565b805f5260045ffd5b5f610c5d83610923565b9050818015610c755750336001600160a01b03821614155b15610c9857610c8481336104b3565b610c9857610c986367d9dca160e11b610c4b565b5f8381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b6009546001600160a01b0316331461081e5760405163118cdaa760e01b8152336004820152602401610b61565b5f81600111610daa57505f81815260046020526040902054805f03610d98575f548210610d5857610d58636f96cda160e11b610c4b565b5b505f19015f818152600460205260409020548015610d5957600160e01b81165f03610d8357919050565b610d93636f96cda160e11b610c4b565b610d59565b600160e01b81165f03610daa57919050565b610af1636f96cda160e11b610c4b565b6002600a5403610e0c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b61565b6002600a55565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6060818310610e7d57610e7d631960ccad60e11b610c4b565b6001831015610e8b57600192505b5f5480808410610e99578093505b5f610ea38761092d565b9050848610610eaf57505f5b8015610f59578086860311610ec357508484035b604080516001830160051b81019182905294505f610ee088610a96565b90505f8160400151610ef0575080515b5f5b610efb8a61105a565b925060408301515f8114610f11575f9250610f36565b835115610f1d57835192505b8b831860601b610f36576001820191508a8260051b8a01525b5060018a01995083604052888a1480610f4e57508481145b15610ef25787525050505b5050509392505050565b604051630a85bd0160e11b81525f906001600160a01b0385169063150b7a0290610f979033908990889088906004016119b7565b6020604051808303815f875af1925050508015610fd1575060408051601f3d908101601f19168201909252610fce918101906119f3565b60015b611024573d808015610ffe576040519150601f19603f3d011682016040523d82523d5f602084013e611003565b606091505b5080515f0361101c5761101c6368d2bf6b60e11b610c4b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b610625828260405180602001604052805f815250611176565b604080516080810182525f8082526020820181905291810182905260608101919091525f8281526004602052604090205461054a90604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b6060600b805461055f906117c1565b60605f6110f2836111d6565b60010190505f8167ffffffffffffffff8111156111115761111161142c565b6040519080825280601f01601f19166020018201604052801561113b576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461114557509392505050565b61118083836112ad565b6001600160a01b0383163b1561083a575f548281035b6111a85f868380600101945086610f63565b6111bc576111bc6368d2bf6b60e11b610c4b565b81811061119657815f54146111cf575f80fd5b5050505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106112145772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611240576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061125e57662386f26fc10000830492506010015b6305f5e1008310611276576305f5e100830492506008015b612710831061128a57612710830492506004015b6064831061129c576064830492506002015b600a831061054a5760010192915050565b5f8054908290036112c8576112c863b562e8dd60e01b610c4b565b5f8181526004602090815260408083206001600160a01b0387164260a01b6001881460e11b1781179091558084526005909252822080546801000000000000000186020190559081900361132557611325622e076360e81b610c4b565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a481816001019150810361132a57505f5550505050565b6001600160e01b031981168114610c00575f80fd5b5f6020828403121561138c575f80fd5b8135610bbf81611367565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610bbf6020830184611397565b5f602082840312156113e7575f80fd5b5035919050565b80356001600160a01b0381168114610af1575f80fd5b5f8060408385031215611415575f80fd5b61141e836113ee565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f8067ffffffffffffffff84111561145a5761145a61142c565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156114895761148961142c565b6040528381529050808284018510156114a0575f80fd5b838360208301375f60208583010152509392505050565b5f602082840312156114c7575f80fd5b813567ffffffffffffffff8111156114dd575f80fd5b8201601f810184136114ed575f80fd5b6109b484823560208401611440565b5f805f6060848603121561150e575f80fd5b611517846113ee565b9250611525602085016113ee565b929592945050506040919091013590565b5f8060208385031215611547575f80fd5b823567ffffffffffffffff81111561155d575f80fd5b8301601f8101851361156d575f80fd5b803567ffffffffffffffff811115611583575f80fd5b8560208260051b8401011115611597575f80fd5b6020919091019590945092505050565b80516001600160a01b0316825260208082015167ffffffffffffffff169083015260408082015115159083015260609081015162ffffff16910152565b602080825282518282018190525f918401906040840190835b81811015611626576116108385516115a7565b60209390930192608092909201916001016115fd565b509095945050505050565b5f60208284031215611641575f80fd5b610bbf826113ee565b602080825282518282018190525f918401906040840190835b81811015611626578351835260209384019390920191600101611663565b5f805f60608486031215611693575f80fd5b61169c846113ee565b95602085013595506040909401359392505050565b5f80604083850312156116c2575f80fd5b6116cb836113ee565b9150602083013580151581146116df575f80fd5b809150509250929050565b5f805f80608085870312156116fd575f80fd5b611706856113ee565b9350611714602086016113ee565b925060408501359150606085013567ffffffffffffffff811115611736575f80fd5b8501601f81018713611746575f80fd5b61175587823560208401611440565b91505092959194509250565b5f8060408385031215611772575f80fd5b82359150611782602084016113ee565b90509250929050565b6080810161054a82846115a7565b5f80604083850312156117aa575f80fd5b6117b3836113ee565b9150611782602084016113ee565b600181811c908216806117d557607f821691505b6020821081036117f357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561083a57805f5260205f20601f840160051c8101602085101561181e5750805b601f840160051c820191505b818110156111cf575f815560010161182a565b815167ffffffffffffffff8111156118575761185761142c565b61186b8161186584546117c1565b846117f9565b6020601f82116001811461189d575f83156118865750848201515b5f19600385901b1c1916600184901b1784556111cf565b5f84815260208120601f198516915b828110156118cc57878501518255602094850194600190920191016118ac565b50848210156118e957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b5f61192361191d83876118f8565b856118f8565b5f845461192f816117c1565b600182168015611946576001811461195b57611988565b60ff1983168552811515820285019350611988565b875f5260205f205f5b8381101561198057815487820152600190910190602001611964565b505081850193505b509198975050505050505050565b5f816119b057634e487b7160e01b5f52601160045260245ffd5b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906119e990830184611397565b9695505050505050565b5f60208284031215611a03575f80fd5b8151610bbf8161136756fea26469706673582212206117cce0704391f487d07d719d4b69ee6e91334e19d37b36600f7bd36faf6d7064736f6c634300081a0033