0 txs
1 call
constructor
constructor()
functions
DIVISOR
viewfunction DIVISOR() view returns (uint256)
feePercentage
viewfunction feePercentage() view returns (uint256)
getActiveOrders
viewfunction getActiveOrders(address token, uint8 orderType) view returns (uint256[])
getOrder
viewfunction getOrder(uint256 orderId) view returns (tuple)
getRemainingAmount
viewfunction getRemainingAmount(uint256 orderId) view returns (uint256)
isOrderExpired
viewfunction isOrderExpired(uint256 orderId) view returns (bool)
MAX_FEE_PERCENTAGE
viewfunction MAX_FEE_PERCENTAGE() view returns (uint256)
maxOrderSize
viewfunction maxOrderSize() view returns (uint256)
maxOrderTtl
viewfunction maxOrderTtl() view returns (uint256)
minOrderSize
viewfunction minOrderSize() view returns (uint256)
orders
viewfunction orders(uint256) view returns (uint256 orderId, address owner, uint8 orderType, address token, uint256 amount, uint256 price, uint256 filledAmount, uint256 expirationTime, uint8 status)
owner
viewfunction owner() view returns (address)
totalFeesCollected
viewfunction totalFeesCollected() view returns (uint256)
whitelistedFulfillers
viewfunction whitelistedFulfillers(address) view returns (bool)
cancelOrder
nonpayablefunction cancelOrder(uint256 orderId)
cleanupExpiredOrder
nonpayablefunction cleanupExpiredOrder(uint256 orderId)
createOrder
payablefunction createOrder(uint8 orderType, address token, uint256 amount, uint256 price, uint256 ttl) payable returns (uint256)
fulfillMatchedOrders
nonpayablefunction fulfillMatchedOrders(tuple[] matches)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeePercentage
nonpayablefunction setFeePercentage(uint256 newFeePercentage)
setFulfillerStatus
nonpayablefunction setFulfillerStatus(address fulfiller, bool status)
setMaxOrderTtl
nonpayablefunction setMaxOrderTtl(uint256 _maxOrderTtl)
setOrderSizeLimits
nonpayablefunction setOrderSizeLimits(uint256 _minOrderSize, uint256 _maxOrderSize)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawFees
nonpayablefunction withdrawFees(address recipient)
events
FeePercentageUpdated
event FeePercentageUpdated(uint256 oldFeePercentage, uint256 newFeePercentage)
FeesWithdrawn
event FeesWithdrawn(address indexed recipient, uint256 amount)
FulfillerWhitelisted
event FulfillerWhitelisted(address indexed fulfiller, bool status)
MaxTTLUpdated
event MaxTTLUpdated(uint256 newMaxTTL)
OrderCancelled
event OrderCancelled(uint256 indexed orderId)
OrderCreated
event OrderCreated(uint256 indexed orderId, address indexed owner, uint8 orderType, address token, uint256 amount, uint256 price, uint256 expirationTime)
OrderExpired
event OrderExpired(uint256 indexed orderId)
OrderFulfilled
event OrderFulfilled(uint256 indexed orderId, uint256 amount)
OrderPartiallyFulfilled
event OrderPartiallyFulfilled(uint256 indexed orderId, uint256 amount, uint256 remaining)
OrderSizeLimitsUpdated
event OrderSizeLimitsUpdated(uint256 minSize, uint256 maxSize)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RateLimitUpdated
event RateLimitUpdated(uint256 newInterval)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x6080604052348015600f57600080fd5b503380603557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b603c816080565b506001808055336000908152600760205260409020805460ff191690911790556032600355620f4240600855683635c9adc5dea0000060095562278d00600a5560d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6128d3806100df6000396000f3fe60806040526004361061015b5760003560e01c806366961d44116100c8578063a85c38ef11610084578063d09ef24111610061578063d09ef24114610468578063f1a82c7e14610495578063f2fde38b146104ab578063f6252ff2146104cb57005b8063a85c38ef14610388578063ae06c1b714610418578063c452427e1461043857005b806366961d44146102e9578063715018a6146102ff578063727d2114146103145780638da5cb5b14610334578063a001ecdd1461035c578063a674537f1461037257005b8063514fcac711610117578063514fcac714610220578063552093c814610240578063558e44d31461026d578063568c82061461028357806359c69313146102a357806360c6d8ae146102d357005b806313b64e2414610164578063164e68de146101845780632fd51adf146101a45780633410fe6e146101c4578063421303c5146101ed5780634223607a1461020d57005b3661016257005b005b34801561017057600080fd5b5061016261017f3660046123ab565b6104eb565b34801561019057600080fd5b5061016261019f3660046123e2565b61053b565b3480156101b057600080fd5b506101626101bf366004612406565b6106bd565b3480156101d057600080fd5b506101da61271081565b6040519081526020015b60405180910390f35b3480156101f957600080fd5b50610162610208366004612444565b610724565b6101da61021b3660046124cf565b610829565b34801561022c57600080fd5b5061016261023b36600461251e565b610e4c565b34801561024c57600080fd5b5061026061025b366004612537565b6111f7565b6040516101e4919061256c565b34801561027957600080fd5b506101da6101f481565b34801561028f57600080fd5b5061016261029e36600461251e565b6113ee565b3480156102af57600080fd5b506102c36102be36600461251e565b611759565b60405190151581526020016101e4565b3480156102df57600080fd5b506101da60045481565b3480156102f557600080fd5b506101da600a5481565b34801561030b57600080fd5b506101626117ab565b34801561032057600080fd5b5061016261032f36600461251e565b6117bf565b34801561034057600080fd5b506000546040516001600160a01b0390911681526020016101e4565b34801561036857600080fd5b506101da60035481565b34801561037e57600080fd5b506101da60085481565b34801561039457600080fd5b506104036103a336600461251e565b60056020819052600091825260409091208054600182015460028301546003840154600485015495850154600686015460079096015494966001600160a01b038086169760ff600160a01b90970487169795909116959394919390911689565b6040516101e4999897969594939291906125e9565b34801561042457600080fd5b5061016261043336600461251e565b611802565b34801561044457600080fd5b506102c36104533660046123e2565b60076020526000908152604090205460ff1681565b34801561047457600080fd5b5061048861048336600461251e565b61189a565b6040516101e4919061264f565b3480156104a157600080fd5b506101da60095481565b3480156104b757600080fd5b506101626104c63660046123e2565b6119bb565b3480156104d757600080fd5b506101da6104e636600461251e565b6119f6565b6104f3611a5b565b6008829055600981905560408051838152602081018390527f34a3b94861a601870265c6c4d74c28d1a09f6c803ce42b95e749f46127c8f17091015b60405180910390a15050565b610543611a5b565b6001600160a01b0381166105925760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b60448201526064015b60405180910390fd5b600454806105d85760405162461bcd60e51b81526020600482015260136024820152724e6f206665657320746f20776974686472617760681b6044820152606401610589565b600060048190556040516001600160a01b0384169083908381818185875af1925050503d8060008114610627576040519150601f19603f3d011682016040523d82523d6000602084013e61062c565b606091505b50509050806106755760405162461bcd60e51b8152602060048201526015602482015274119959481dda5d1a191c985dd85b0819985a5b1959605a1b6044820152606401610589565b826001600160a01b03167fc0819c13be868895eb93e40eaceb96de976442fa1d404e5c55f14bb65a8c489a836040516106b091815260200190565b60405180910390a2505050565b6106c5611a5b565b6001600160a01b038216600081815260076020908152604091829020805460ff191685151590811790915591519182527f5b91a6535b81256fc66d813b8f8b5776b43f069bd85240fb8e65fae1767a79d7910160405180910390a25050565b61072c611a88565b3360009081526007602052604090205460ff1661078b5760405162461bcd60e51b815260206004820152601960248201527f43616c6c6572206973206e6f742077686974656c6973746564000000000000006044820152606401610589565b806107d85760405162461bcd60e51b815260206004820152601b60248201527f4e6f206f72646572206d61746368657320746f2066756c66696c6c00000000006044820152606401610589565b60005b8181101561081b576108138383838181106107f8576107f86126d4565b90506060020180360381019061080e9190612700565b611ab2565b6001016107db565b5061082560018055565b5050565b6000846001600160a01b0381166108725760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610589565b6000816001600160a01b03163b116108bd5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184818dbdb9d1c9858dd60921b6044820152606401610589565b6108c5611a88565b600085116109155760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610589565b6000841161095b5760405162461bcd60e51b8152602060048201526013602482015272496e76616c69642070726963652072616e676560681b6044820152606401610589565b600083116109ab5760405162461bcd60e51b815260206004820152601a60248201527f54544c206d7573742062652067726561746572207468616e20300000000000006044820152606401610589565b600a548311156109ec5760405162461bcd60e51b815260206004820152600c60248201526b54544c20746f6f206c6f6e6760a01b6044820152606401610589565b6000670de0b6b3a7640000610a018688612782565b610a0b9190612799565b9050600061271060035483610a209190612782565b610a2a9190612799565b9050600854821015610a705760405162461bcd60e51b815260206004820152600f60248201526e13dc99195c881d1bdbc81cdb585b1b608a1b6044820152606401610589565b600954821115610ab45760405162461bcd60e51b815260206004820152600f60248201526e4f7264657220746f6f206c6172676560881b6044820152606401610589565b6000896001811115610ac857610ac86125af565b03610b3b57610ad781836127bb565b341015610b1e5760405162461bcd60e51b8152602060048201526015602482015274125b9cdd59999a58da595b9d08115512081cd95b9d605a1b6044820152606401610589565b8060046000828254610b3091906127bb565b90915550610b509050565b610b506001600160a01b03891633308a612171565b600280549081906000610b62836127ce565b9091555050604080516101208101825282815233602082015260009181018c6001811115610b9257610b926125af565b81526020018b6001600160a01b031681526020018a8152602001898152602001600081526020018842610bc591906127bb565b8152602001600090526000838152600560209081526040918290208351815590830151600180830180546001600160a01b039093166001600160a01b0319841681178255948601519596508695939490926001600160a81b0319161790600160a01b908490811115610c3957610c396125af565b021790555060608201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816003015560a0820151816004015560c0820151816005015560e082015181600601556101008201518160070160006101000a81548160ff02191690836003811115610cbe57610cbe6125af565b02179055509050506000610cd28b8d6121de565b905060066000828152602001908152602001600020839080600181540180825580915050600190039060005260206000200160009091909190915055336001600160a01b0316837ff8999ab5e7ac3e22a5a6cd69428d0c1f9df77a3faef675c521f8829186b2c2fe8e8e8e8e8860e00151604051610d549594939291906127e7565b60405180910390a360008c6001811115610d7057610d706125af565b148015610d855750610d8284866127bb565b34115b15610e32576000610d9685876127bb565b610da09034612821565b604051909150600090339083908381818185875af1925050503d8060008114610de5576040519150601f19603f3d011682016040523d82523d6000602084013e610dea565b606091505b5050905080610e2f5760405162461bcd60e51b8152602060048201526011602482015270115512081c995d1d5c9b8819985a5b1959607a1b6044820152606401610589565b50505b50909450505050610e4260018055565b5095945050505050565b610e54611a88565b60008181526005602052604090206001015481906001600160a01b0316610e8d5760405162461bcd60e51b815260040161058990612834565b60008281526005602052604090206001015482906001600160a01b03163314610eea5760405162461bcd60e51b815260206004820152600f60248201526e2737ba1037b93232b91037bbb732b960891b6044820152606401610589565b600083815260056020526040812090600782015460ff166003811115610f1257610f126125af565b14610f525760405162461bcd60e51b815260206004820152601060248201526f4f72646572206e6f742061637469766560801b6044820152606401610589565b610f5b84611759565b15610f985760405162461bcd60e51b815260206004820152600d60248201526c13dc99195c88195e1c1a5c9959609a1b6044820152606401610589565b600781018054600260ff19909116179055600180820154600091600160a01b90910460ff1690811115610fcd57610fcd6125af565b0361117c57600081600501548260030154610fe89190612821565b90508015611176576000670de0b6b3a764000083600401548361100b9190612782565b6110159190612799565b905060006127106003548361102a9190612782565b6110349190612799565b9050600061104282846127bb565b9050600060045483116110555782611059565b6004545b9050806004600082825461106d9190612821565b9091555050828110156110875761108481856127bb565b91505b814710156110d75760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e20636f6e7472616374000000006044820152606401610589565b60018601546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611126576040519150601f19603f3d011682016040523d82523d6000602084013e61112b565b606091505b50509050806111705760405162461bcd60e51b8152602060048201526011602482015270115512081c99599d5b990819985a5b1959607a1b6044820152606401610589565b50505050505b506111bd565b6000816005015482600301546111929190612821565b905080156111bb57600182015460028301546111bb916001600160a01b03918216911683612211565b505b60405184907f61b9399f2f0f32ca39ce8d7be32caed5ec22fe07a6daba3a467ed479ec60658290600090a25050506111f460018055565b50565b6060600061120584846121de565b6000818152600660205260408120919250805b82548110156112b657600060056000858481548110611239576112396126d4565b6000918252602080832090910154835282019290925260400190206007015460ff16600381111561126c5761126c6125af565b14801561129b5750611299838281548110611289576112896126d4565b9060005260206000200154611759565b155b156112ae57816112aa816127ce565b9250505b600101611218565b5060008167ffffffffffffffff8111156112d2576112d26126ea565b6040519080825280602002602001820160405280156112fb578160200160208202803683370190505b5090506000805b84548110801561131157508382105b156113df5760006005600087848154811061132e5761132e6126d4565b6000918252602080832090910154835282019290925260400190206007015460ff166003811115611361576113616125af565b148015611380575061137e858281548110611289576112896126d4565b155b156113cd57848181548110611397576113976126d4565b90600052602060002001548383815181106113b4576113b46126d4565b6020908102919091010152816113c9816127ce565b9250505b806113d7816127ce565b915050611302565b50909450505050505b92915050565b6113f6611a88565b60008181526005602052604090206001015481906001600160a01b031661142f5760405162461bcd60e51b815260040161058990612834565b600082815260056020526040812090600782015460ff166003811115611457576114576125af565b146114975760405162461bcd60e51b815260206004820152601060248201526f4f72646572206e6f742061637469766560801b6044820152606401610589565b6114a083611759565b6114e05760405162461bcd60e51b815260206004820152601160248201527013dc99195c881b9bdd08195e1c1a5c9959607a1b6044820152606401610589565b60078101805460ff1916600317905560018082015460ff600160a01b9091041681811115611510576115106125af565b036115565760008160050154826003015461152b9190612821565b905080156115545760018201546002830154611554916001600160a01b03918216911683612211565b505b6000600182810154600160a01b900460ff1690811115611578576115786125af565b03611723576000816005015482600301546115939190612821565b90508015611721576000670de0b6b3a76400008360040154836115b69190612782565b6115c09190612799565b90506000612710600354836115d59190612782565b6115df9190612799565b905060006115ed82846127bb565b9050600060045483116116005782611604565b6004545b905080600460008282546116189190612821565b9091555050828110156116325761162f81856127bb565b91505b814710156116825760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e20636f6e7472616374000000006044820152606401610589565b60018601546040516000916001600160a01b03169084908381818185875af1925050503d80600081146116d1576040519150601f19603f3d011682016040523d82523d6000602084013e6116d6565b606091505b505090508061171b5760405162461bcd60e51b8152602060048201526011602482015270115512081c99599d5b990819985a5b1959607a1b6044820152606401610589565b50505050505b505b60405183907f1ad308dc7017610c82d08084545f7176df5e2f08f078c3c8f8926cd7e555551490600090a250506111f460018055565b60008181526005602052604081206001015482906001600160a01b03166117925760405162461bcd60e51b815260040161058990612834565b5050600090815260056020526040902060060154421190565b6117b3611a5b565b6117bd6000612247565b565b6117c7611a5b565b600a8190556040518181527f5829309fa85e85a75b744b2b1ae6b2913b3d2a9c94df75a5b61de31f962256be9060200160405180910390a150565b61180a611a5b565b6101f481111561185c5760405162461bcd60e51b815260206004820152601760248201527f4665652070657263656e7461676520746f6f20686967680000000000000000006044820152606401610589565b600380549082905560408051828152602081018490527fb27c12a91635e11c22bffa7bd8e0a8735da52b94aaefd7f249776c7590ba7894910161052f565b6118a2612346565b60008281526005602052604090206001015482906001600160a01b03166118db5760405162461bcd60e51b815260040161058990612834565b600083815260056020908152604091829020825161012081018452815481526001808301546001600160a01b038116948301949094529093919291840191600160a01b900460ff1690811115611933576119336125af565b6001811115611944576119446125af565b815260028201546001600160a01b0316602082015260038083015460408301526004830154606083015260058301546080830152600683015460a0830152600783015460c09092019160ff16908111156119a0576119a06125af565b60038111156119b1576119b16125af565b9052509392505050565b6119c3611a5b565b6001600160a01b0381166119ed57604051631e4fbdf760e01b815260006004820152602401610589565b6111f481612247565b60008181526005602052604081206001015482906001600160a01b0316611a2f5760405162461bcd60e51b815260040161058990612834565b6000838152600560208190526040909120908101546003820154611a539190612821565b949350505050565b6000546001600160a01b031633146117bd5760405163118cdaa760e01b8152336004820152602401610589565b600260015403611aab57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b8051600090815260056020908152604080832091840151835282209091600783015460ff166003811115611ae857611ae86125af565b148015611b0d57506000600782015460ff166003811115611b0b57611b0b6125af565b145b611b515760405162461bcd60e51b81526020600482015260156024820152744f7264657273206d7573742062652061637469766560581b6044820152606401610589565b8251611b5c90611759565b158015611b735750611b718360200151611759565b155b611bb05760405162461bcd60e51b815260206004820152600e60248201526d13dc99195c9cc8195e1c1a5c995960921b6044820152606401610589565b6000600183810154600160a01b900460ff1690811115611bd257611bd26125af565b148015611bfd575060018082810154600160a01b900460ff1690811115611bfb57611bfb6125af565b145b611c3f5760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964206f7264657220747970657360681b6044820152606401610589565b600280820154908301546001600160a01b03908116911614611c945760405162461bcd60e51b815260206004820152600e60248201526d0a8ded6cadc40dad2e6dac2e8c6d60931b6044820152606401610589565b806004015482600401541015611cdd5760405162461bcd60e51b815260206004820152600e60248201526d0a0e4d2c6ca40dad2e6dac2e8c6d60931b6044820152606401610589565b600082600501548360030154611cf39190612821565b9050600082600501548360030154611d0b9190612821565b90506000856040015111611d575760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a5908199a5b1b08185b5bdd5b9d606a1b6044820152606401610589565b81856040015111158015611d6f575080856040015111155b611dbb5760405162461bcd60e51b815260206004820152601d60248201527f46696c6c20616d6f756e74206578636565647320617661696c61626c650000006044820152606401610589565b60408501516004840154600090670de0b6b3a764000090611ddc9084612782565b611de69190612799565b90506000611df382612297565b90506000611e018284612821565b60018801546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114611e55576040519150601f19603f3d011682016040523d82523d6000602084013e611e5a565b606091505b5050905080611eab5760405162461bcd60e51b815260206004820152601d60248201527f455448207472616e7366657220746f2073656c6c6572206661696c65640000006044820152606401610589565b60018901546002890154611ecc916001600160a01b03918216911687612211565b8960400151896005016000828254611ee491906127bb565b909155505060408a0151600589018054600090611f029084906127bb565b9091555050600480890154908a01541115611ff9576000670de0b6b3a764000089600401548b60040154611f369190612821565b8c60400151611f459190612782565b611f4f9190612799565b60018b01546040519192506001600160a01b0316908290600081818185875af1925050503d8060008114611f9f576040519150601f19603f3d011682016040523d82523d6000602084013e611fa4565b606091505b50508092505081611ff75760405162461bcd60e51b815260206004820152601960248201527f45544820736176696e67732072657475726e206661696c6564000000000000006044820152606401610589565b505b88600301548960050154036120565760078901805460ff1916600117905589516040808c015190519081527feb3b41be12efa25c0c65725eeff2e2ad0250e2e5de2aa939e18f36aa656e98809060200160405180910390a26120ac565b895160408b015160058b015460038c01547f8f9f7f58643161141dd2b5b862b54ab647f74549d3b06fd4430272bcc411678c929161209391612821565b6040805192835260208301919091520160405180910390a25b876003015488600501540361210d5760078801805460ff191660011790556020808b01516040808d0151905190815290917feb3b41be12efa25c0c65725eeff2e2ad0250e2e5de2aa939e18f36aa656e9880910160405180910390a2612165565b89602001517f8f9f7f58643161141dd2b5b862b54ab647f74549d3b06fd4430272bcc411678c8b604001518a600501548b6003015461214c9190612821565b6040805192835260208301919091520160405180910390a25b50505050505050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526121d89186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506122d5565b50505050565b600082826040516020016121f3929190612862565b60405160208183030381529060405280519060200120905092915050565b6040516001600160a01b0383811660248301526044820183905261224291859182169063a9059cbb906064016121a6565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080612710600354846122ab9190612782565b6122b59190612799565b905080600460008282546122c991906127bb565b90915550909392505050565b600080602060008451602086016000885af1806122f8576040513d6000823e3d81fd5b50506000513d9150811561231057806001141561231d565b6001600160a01b0384163b155b156121d857604051635274afe760e01b81526001600160a01b0385166004820152602401610589565b60408051610120810182526000808252602082018190529091820190815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060038111156123a6576123a66125af565b905290565b600080604083850312156123be57600080fd5b50508035926020909101359150565b6001600160a01b03811681146111f457600080fd5b6000602082840312156123f457600080fd5b81356123ff816123cd565b9392505050565b6000806040838503121561241957600080fd5b8235612424816123cd565b91506020830135801515811461243957600080fd5b809150509250929050565b6000806020838503121561245757600080fd5b823567ffffffffffffffff81111561246e57600080fd5b8301601f8101851361247f57600080fd5b803567ffffffffffffffff81111561249657600080fd5b8560206060830284010111156124ab57600080fd5b6020919091019590945092505050565b8035600281106124ca57600080fd5b919050565b600080600080600060a086880312156124e757600080fd5b6124f0866124bb565b94506020860135612500816123cd565b94979496505050506040830135926060810135926080909101359150565b60006020828403121561253057600080fd5b5035919050565b6000806040838503121561254a57600080fd5b8235612555816123cd565b9150612563602084016124bb565b90509250929050565b602080825282518282018190526000918401906040840190835b818110156125a4578351835260209384019390920191600101612586565b509095945050505050565b634e487b7160e01b600052602160045260246000fd5b600281106125d5576125d56125af565b9052565b600481106125d5576125d56125af565b8981526001600160a01b0389166020820152610120810161260d604083018a6125c5565b60018060a01b03881660608301528660808301528560a08301528460c08301528360e08301526126416101008301846125d9565b9a9950505050505050505050565b815181526020808301516001600160a01b03169082015260408083015161012083019161267e908401826125c5565b5060018060a01b0360608401511660608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008301516126cd6101008401826125d9565b5092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6000606082840312801561271357600080fd5b600090506040516060810181811067ffffffffffffffff8211171561274657634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176113e8576113e861276c565b6000826127b657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156113e8576113e861276c565b6000600182016127e0576127e061276c565b5060010190565b60a081016127f582886125c5565b6001600160a01b0395909516602082015260408101939093526060830191909152608090910152919050565b818103818111156113e8576113e861276c565b60208082526014908201527313dc99195c88191bd95cc81b9bdd08195e1a5cdd60621b604082015260600190565b6bffffffffffffffffffffffff198360601b168152600060028310612889576128896125af565b5060f89190911b601482015260150191905056fea2646970667358221220f0d616fefb2702efd6071d670807a8dd0ffbc87a3c8bab6c95b1c3d4070f9f1f64736f6c634300081a0033