0 txs
0 calls
constructor
constructor(address _sequencer, address _treasury, address _settleSequencer, address _sealedPool)
functions
accountCounter
viewfunction accountCounter(address) view returns (uint256)
auctionState
viewfunction auctionState(bytes32) view returns (uint8)
calculateAuctionHash
purefunction calculateAuctionHash(address owner, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve) pure returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
feeMultiplier
viewfunction feeMultiplier() view returns (uint256)
forcedWithdrawDelay
viewfunction forcedWithdrawDelay() view returns (uint256)
guardians
viewfunction guardians(address) view returns (bool)
orderNonces
viewfunction orderNonces(address account, uint256 nonce) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingAuctionCancels
viewfunction pendingAuctionCancels(bytes32) view returns (uint256)
royaltyEngine
viewfunction royaltyEngine() view returns (address)
sealedPool
viewfunction sealedPool() view returns (address)
sequencer
viewfunction sequencer() view returns (address)
settleSequencer
viewfunction settleSequencer() view returns (address)
treasury
viewfunction treasury() view returns (address)
cancelAuction
nonpayablefunction cancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, tuple cancelAuctionPacket)
cancelOffer
nonpayablefunction cancelOffer(uint256 nonce)
changeAuction
nonpayablefunction changeAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, uint256 newAuctionDuration, bytes32 newAuctionType, uint256 newReserve, tuple cancelAuctionPacket)
changeFee
nonpayablefunction changeFee(uint256 newFeeMultiplier)
changeForcedWithdrawDelay
nonpayablefunction changeForcedWithdrawDelay(uint256 newDelay)
changeSequencer
nonpayablefunction changeSequencer(address newSequencer, address newSettleSequencer)
changeTreasury
nonpayablefunction changeTreasury(address newTreasury)
createAuction
nonpayablefunction createAuction(address nftContract, uint256 auctionDuration, bytes32 auctionType, uint256 nftId, uint256 reserve)
emergencyDisableSequencer
nonpayablefunction emergencyDisableSequencer()
executeCancelAuction
nonpayablefunction executeCancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
increaseCounter
nonpayablefunction increaseCounter(uint256 newCounter)
matchOrders
nonpayablefunction matchOrders(tuple sellerOffer, tuple buyerOffer, tuple sequencerStamp, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
renounceOwnership
nonpayablefunction renounceOwnership()
setGuardian
nonpayablefunction setGuardian(address guardian, bool value)
settleAuction
payablefunction settleAuction(address caller, address buyer, uint256 sequencerRank, uint256, uint256, uint256, tuple bid, uint256, tuple sequencerStamp) payable
startCancelAuction
nonpayablefunction startCancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AuctionCancelled
event AuctionCancelled(bytes32 auctionId)
AuctionCreated
event AuctionCreated(address owner, address nftContract, uint256 auctionDuration, bytes32 auctionType, uint256 nftId, uint256 reserve)
AuctionSettled
event AuctionSettled(bytes32 auctionId, address nftContract, uint256 tokenId, address seller, address buyer, uint256 price)
CounterIncreased
event CounterIncreased(address account, uint256 newCounter)
ExecuteDelayedAuctionCancel
event ExecuteDelayedAuctionCancel(bytes32 auctionId)
FeeChanged
event FeeChanged(uint256 newFeeMultiplier)
ForcedWithdrawDelayChanged
event ForcedWithdrawDelayChanged(uint256 newDelay)
GuardianSet
event GuardianSet(address guardian, bool value)
OfferCancelled
event OfferCancelled(address account, uint256 nonce)
OrdersMatched
event OrdersMatched(bytes32 auctionId, address nftContract, uint256 tokenId, address seller, address buyer, uint256 price, uint256 sellerNonce, uint256 buyerNonce)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SequencerChanged
event SequencerChanged(address newSequencer, address newSettleSequencer)
SequencerDisabled
event SequencerDisabled(address guardian)
StartDelayedAuctionCancel
event StartDelayedAuctionCancel(bytes32 auctionId)
TreasuryChanged
event TreasuryChanged(address newTreasury)
errors
No errors.
creation bytecode
0x60e0346200024857601f620034ad38819003918201601f1916830192916001600160401b03918285118486101762000232578160809285926040978852833981010312620002485762000052826200024d565b60208301516001600160a01b039390848116908190036200024857620000886060620000808885016200024d565b93016200024d565b9346608052865190602082017f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f2aea0414eb9e6a9b2592f3f7f217c1e8a7593abc3be962bf885d94bc05072dd5898401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301918383109083111762000232578189528251902060a052866000549560018060a01b0319963388821617600055823391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36202a30060055516918215158062000226575b15620001e257505090859291846001541617600155836003541617600355169060025416176002551660c0525161324a90816200026382396080518161313c015260a05181613162015260c051818181610666015281816111ec0152612f7f0152f35b62461bcd60e51b8252602060c4820152601960e48201527f3078302073657175656e636572206e6f7420616c6c6f7765640000000000000061010490910152606490fd5b5087851615156200017f565b634e487b7160e01b600052604160045260246000fd5b600080fd5b51906001600160a01b0382168203620002485756fe60806040908082526004918236101561001757600080fd5b60009160e08335811c9182630633b14a14612591575081630be650b21461253e57816325d864561461245457816327a9b06d146121b55781632b8a1c5a146120ea5781632e8f3cb814611e675781633644e51514611e2c57816337a61d7214611de55781633c5e3f46146114c8575080634576d9211461113d5780634b3c8643146110df5780634c94c90c146110935780635c1bba381461104157806361d027b314610fef57806364750c0014610f6f5780636a1db1bf14610e97578063715018a614610dfa5780637522a68914610dbe5780638da5cb5b14610d6e5780639e80c07414610c805780639fef662214610bda578063a03fd9c214610ad3578063b14f2a3914610a23578063b85613e214610710578063ba7df63d1461068a578063ba93dfbb1461061c578063c16973c614610546578063cc8887f1146104e5578063e5a70ef7146104a9578063ef706adf14610408578063f2fde38b146102ca5763fbde05111461018757600080fd5b346102c657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576101bd6125f6565b926101c6612619565b6101ce612695565b73ffffffffffffffffffffffffffffffffffffffff80951691821515806102bb575b1561025e57507f6ec88bae255aa7e73521c3beb17e9bc7940169e669440c5531733c0d2e91110d93947fffffffffffffffffffffffff00000000000000000000000000000000000000009183836001541617600155168091600254161760025582519182526020820152a180f35b60649060208551917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601960248201527f3078302073657175656e636572206e6f7420616c6c6f776564000000000000006044820152fd5b5085821615156101f0565b5080fd5b5082346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610404576103036125f6565b9061030c612695565b73ffffffffffffffffffffffffffffffffffffffff809216928315610381575050600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b5082346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610404577f899cab278284ae4a91172caa0943607a0bcb19766254c3ebe1139be00650b102916104a3913590338552600960205261048d828287208160081c600052602052600160ff604060002092161b8154179055565b5133815260208101919091529081906040820190565b0390a180f35b50823461040457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104045760209250549051908152f35b50346102c65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6578060209273ffffffffffffffffffffffffffffffffffffffff6105366125f6565b168152600a845220549051908152f35b508290346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040457813591610583612695565b620d2f008310156105c05750816020917f3e0bee5a358b79753e71a357821c8a897cff484fccfa2509d98c25942652cd8e9360055551908152a180f35b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f3c313020646179730000000000000000000000000000000000000000000000006044820152fd5b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102c657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65761070760209273ffffffffffffffffffffffffffffffffffffffff6106dc6125f6565b1681526009845282602435912060019160ff918160081c600052602052161b60406000205416151590565b90519015158152f35b5091346102c6576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65761074a6125f6565b926044359160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c360112610a1f5761010435948542116109c25760e435958351907f2f569cb45ea15c1cad156c0991f7dfe0af8cb31fefdeb52b6d363915f6ed3a56602083015287858301526060820152606081526107c981612757565b60843560ff811681036109bd576107e79160c4359160a435916130a5565b9061080f73ffffffffffffffffffffffffffffffffffffffff9283806001541691161461298a565b6108206064358660243584336127ed565b9687600052600660205260ff856000205416600381101561098f5760010361093257602088610872899a7fd88fab4b08bf76f15cf2d6e03e382acf1edd6790ab82967e406abac37db2028894146129ef565b80600052600682528660002060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790558651908152a11692833b1561092e5782517f23b872dd00000000000000000000000000000000000000000000000000000000815230928101928352336020840152604083019190915292849184919082908490829060600103925af190811561092557506109125750f35b61091b90612714565b6109225780f35b80fd5b513d84823e3d90fd5b8480fd5b60648460208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600960248201527f62616420737461746500000000000000000000000000000000000000000000006044820152fd5b6021857f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b600080fd5b50602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f646561646c696e650000000000000000000000000000000000000000000000006044820152fd5b8380fd5b5082346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040457359073ffffffffffffffffffffffffffffffffffffffff8216809203610404577fc714d22a2f08b695f81e7c707058db484aa5b4d6b4c9fd64beb10fe85832f60891602091610aa1612695565b817fffffffffffffffffffffffff0000000000000000000000000000000000000000600354161760035551908152a180f35b50823461040457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610404573383526008602052600160ff8385205416151503610b7e575060207f4848f4074ec7d0f96ffbb9c01b6907e9feafb4c0efaf3ba96a4cd5ed75ea09359161dead7fffffffffffffffffffffffff000000000000000000000000000000000000000081816001541617600155600254161760025551338152a180f35b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600c60248201527f6e6f7420677561726469616e00000000000000000000000000000000000000006044820152fd5b50346102c657610bf6610bec3661263c565b92919091336127ed565b90818352600660205260ff81842054166003811015610c545791602091610c4060017f8f11c790b515664c3e09e327db270b39ee57438bbdd0cb9f57d608fb3848d4a59514612a54565b81855260078352428186205551908152a180f35b6024846021877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b508290346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040457813591338452600a60205281842054831115610d12575033808452600a60209081528285208490559151908152908101919091527f3a5e248acc8913ccb0680211c01d6d63a570cf10cc8e5b88555b96c292b1a6cd9080604081016104a3565b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600760248201527f746f6f206c6f77000000000000000000000000000000000000000000000000006044820152fd5b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576020906005549051908152f35b823461092257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261092257610e31612695565b600073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b508290346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040457813591610ed4612695565b67016345785d8a00008311610f135791602091817f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c3945551908152a180f35b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600c60248201527f66656520746f6f206869676800000000000000000000000000000000000000006044820152fd5b50346102c65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65782358252600660205260ff81832054169051916003821015610fc357602083838152f35b806021857f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65760209073ffffffffffffffffffffffffffffffffffffffff600354169051908152f35b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b50346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576020905173bc40d21999b4bf120d330ee3a2de415287f626c98152f35b50346102c65760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65760209061113661111d6125f6565b611125612619565b6084359160643591604435916127ed565b9051908152f35b5082906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610404576111736125f6565b5061117c612619565b91602092837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261092e5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc36011261092e5773ffffffffffffffffffffffffffffffffffffffff91827f0000000000000000000000000000000000000000000000000000000000000000163314806114bc575b1561146057611221612af5565b9361122a612ba8565b9161124761016435938461018435988992896101443592166127ed565b958689526006885260ff838a205416600381101561143457600161126b9114612a54565b8689526006885282892060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790556112ab8760c435146129ef565b34106113d9578790856112bc612ba8565b16803b156104045783517f23b872dd0000000000000000000000000000000000000000000000000000000081523092810192835273ffffffffffffffffffffffffffffffffffffffff8716602084015260408301869052918391839182908490829060600103925af180156113cf576113ad575b50937f3160ffbf619ab6e1abf66dfcd36900aed1826ebdf65caffd8b013d5c843daa6893818860c0958995611377611366612ba8565b61136e612af5565b90843491612c27565b61137f612ba8565b9284611389612af5565b948351998a5216908801528601521660608401521660808201523460a0820152a180f35b6113bb909695949396612714565b6113cb5786889592939495611330565b8680fd5b83513d84823e3d90fd5b8660649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f3c726573657276650000000000000000000000000000000000000000000000006044820152fd5b60248a6021857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606490858551917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600560248201527f21617574680000000000000000000000000000000000000000000000000000006044820152fd5b50600160443514611214565b90508334610a1f577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016103c0811261092e5761012080911261092e577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc360112610a1f5761010091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbc36011261092e57610344359173ffffffffffffffffffffffffffffffffffffffff808416918285036109bd57610324359261038435611594428611613040565b8361159d612b19565b163303611c3a575b836115ae612b61565b1633036119df575b6115d06103a43582610364358a6115cb612b61565b6127ed565b96878b526020936006855260ff8b8d20541660038110156119b357600114806119a7575b6115fd90612a54565b888c52600685528a8c2060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790556102c4359660a43588148061199b575b1561193f578661164e612b85565b1685148061192d575b156118d1576084358414806118c5575b1561186957908b9187611678612b19565b81611681612b61565b918651967f5b04f53d4a6314f3487293714df115ceea564ec981a66b83d0353f46b603a2478c8901526102a435908801528c60608801521660808601521660a084015260c083015260c0825288820182811067ffffffffffffffff82111761183b578c526102443560ff811681036109bd5761170b611719918f94610284359161026435916130a5565b88806001541691161461298a565b611721612b19565b90853b15610404578c517f23b872dd0000000000000000000000000000000000000000000000000000000081523091810191825273ffffffffffffffffffffffffffffffffffffffff909216602082015260408101859052829082908190606001038183895af1801561183157611813575b5050907f7e41ba51e45fc08e6d9be77929b60e60e8a24f50295e67b8f37745064f39288c996117d08694938884876117c9612b61565b1692612c27565b6117d8612b61565b926117e1612b19565b9582519a8b528a015288015216606086015216608084015260a08301526101043560c08301526102243590820152a180f35b6118209094939294612714565b61182d5790918a8c611793565b8a80fd5b8c513d84823e3d90fd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b606482878e51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600660248201527f216e6674496400000000000000000000000000000000000000000000000000006044820152fd5b506101a4358414611667565b606482878e51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600c60248201527f216e6674436f6e747261637400000000000000000000000000000000000000006044820152fd5b5086611937612b3d565b168514611657565b606482878e51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600760248201527f21616d6f756e74000000000000000000000000000000000000000000000000006044820152fd5b506101c4358814611640565b506102a43589146115f4565b60248d6021847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b886119e8612b61565b60c435906119f7428311613040565b8661010435911680600052611a2e826020956009875260002060019160ff918160081c600052602052161b60406000205416151590565b611bde57611a5f828e33600052600987526000208160081c600052602052600160ff604060002092161b8154179055565b60e43590600052600a84528c60002054811115611b8257611a7e612b85565b928d898151957ff776e24d515f23bab237cdb9dd891d82e2492aea54fe72cdfcb80ee25826f06b888801521690850152608435606085015260a435608085015260a084015260c083015288820152878152611ad88161278f565b843560ff811681036109bd57611af59160443591602435916130a5565b8580611aff612b61565b1691161480611b70575b15611b1457506115b6565b836064918b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600760248201527f2173656c6c6572000000000000000000000000000000000000000000000000006044820152fd5b5084611b7a612b61565b161515611b09565b606487858f51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f21636f756e7465720000000000000000000000000000000000000000000000006044820152fd5b606487858f51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600b60248201527f216f726465724e6f6e63650000000000000000000000000000000000000000006044820152fd5b88611c43612b19565b6101e43590611c53428311613040565b8661022435911680600052611c8a826020956009875260002060019160ff918160081c600052602052161b60406000205416151590565b611bde57611cbb828e33600052600987526000208160081c600052602052600160ff604060002092161b8154179055565b6102043590600052600a84528c60002054811115611b8257611cdb612b3d565b928d898151957fbd0fdaf172daee893a4c200efd8c7fbcb1bb560cb6526afa5075a17583427f7f8888015216908501526101a43560608501526101c435608085015260a084015260c083015288820152878152611d378161278f565b6101243560ff811681036109bd57611d5891610164359161014435916130a5565b8580611d62612b19565b1691161480611dd3575b15611d7757506115a5565b836064918b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600660248201527f21627579657200000000000000000000000000000000000000000000000000006044820152fd5b5084611ddd612b19565b161515611d6c565b505082346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104045760209282913581526007845220549051908152f35b5050346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c657602090611136613139565b5050823461040457611e8890611e7c3661263c565b908395928194336127ed565b91828652602093600785528587205480151590816120d4575b5015612078578387526006855260ff8688205416600381101561204c57600103611ff0579073ffffffffffffffffffffffffffffffffffffffff8793928585526006875287852060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790558585526007875284888120557fd88fab4b08bf76f15cf2d6e03e382acf1edd6790ab82967e406abac37db20288878951888152a11691823b15610a1f5786517f23b872dd00000000000000000000000000000000000000000000000000000000815230928101928352336020840152604083019190915291839183919082908490829060600103925af18015611fe657611fd2575b50507f0dec9dd9ec09eb629e1af32788486e1b19b9b997c96f44ebf030db5e473fb4549251908152a180f35b611fdb90612714565b610a1f578385611fa6565b85513d84823e3d90fd5b606482868851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f6e6f74206f70656e0000000000000000000000000000000000000000000000006044820152fd5b6024886021857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606482868851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f746f6f20736f6f6e0000000000000000000000000000000000000000000000006044820152fd5b6120e2915060055490612ab9565b421188611ea1565b5050346102c657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576121226125f6565b90602435801515809103610a1f5773ffffffffffffffffffffffffffffffffffffffff7fc4459d655e1efe034a75446f1f4db087f75d23bdfabccffafa6384cdb23a15449361216f612695565b169081855260086020528285207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831617905582519182526020820152a180f35b505091346102c6576101807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c6576121f06125f6565b906044359060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1c360112610a1f57610164358042116123f75761014435908651907f2f569cb45ea15c1cad156c0991f7dfe0af8cb31fefdeb52b6d363915f6ed3a566020830152828883015260608201526060815261226f81612757565b60e4359060ff821682036109bd576122b69161229491610124359161010435916130a5565b73ffffffffffffffffffffffffffffffffffffffff806001541691161461298a565b6122c76064358460243587336127ed565b9182600052600660205260ff87600020541660038110156123c95760010361236c575081612369959661231e7fd88fab4b08bf76f15cf2d6e03e382acf1edd6790ab82967e406abac37db2028894602094146129ef565b81600052600683528060002060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905551908152a160c4359160a435906084359061283c565b80f35b60649060208851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600960248201527f62616420737461746500000000000000000000000000000000000000000000006044820152fd5b6021827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b60648260208851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600860248201527f646561646c696e650000000000000000000000000000000000000000000000006044820152fd5b5050346102c65760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65761248d6125f6565b906064359373ffffffffffffffffffffffffffffffffffffffff831690813b1561092e5782517f23b872dd00000000000000000000000000000000000000000000000000000000815233918101918252306020830152604082018790529291859184919082908490829060600103925af19081156125355750612522575b50612369919260843591604435906024359061283c565b9161252f61236993612714565b9161250b565b513d85823e3d90fd5b5050346102c657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c65760209073ffffffffffffffffffffffffffffffffffffffff600254169051908152f35b849084346104045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104045760ff9060209373ffffffffffffffffffffffffffffffffffffffff6125e66125f6565b1681526008855220541615158152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036109bd57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036109bd57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60809101126109bd5760043573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790602435906044359060643590565b73ffffffffffffffffffffffffffffffffffffffff6000541633036126b657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff811161272857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761272857604052565b60c0810190811067ffffffffffffffff82111761272857604052565b610100810190811067ffffffffffffffff82111761272857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761272857604052565b9290939160405193602085019573ffffffffffffffffffffffffffffffffffffffff80921687521660408501526060840152608083015260a082015260a0815261283681612773565b51902090565b9193909261284d82828786336127ed565b94600094868652600660205260ff604087205416600381101561295d576128ff576040867f8d23a5dfd11a91f2265cffdb358ef2106e197d9f5168852ec99ba53fb90526409860c0985260066020522060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff6040519533875216602086015260408501526060840152608083015260a0820152a1565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f72657065617465642061756374696f6e206964000000000000000000000000006044820152fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b1561299157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2173657175656e636572000000000000000000000000000000000000000000006044820152fd5b156129f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2161756374696f6e4964000000000000000000000000000000000000000000006044820152fd5b15612a5b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6261642061756374696f6e2073746174650000000000000000000000000000006044820152fd5b91908201809211612ac657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6101043573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b6102e43573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b6101843573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b6103043573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b60643573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b6101243573ffffffffffffffffffffffffffffffffffffffff811681036109bd5790565b67ffffffffffffffff81116127285760051b60200190565b8051821015612bf85760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091604051907ff533b80200000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8093166004830152602482015283604482015282816064818373bc40d21999b4bf120d330ee3a2de415287f626c96207a120f18084928592612de2575b50612cf4575b505060045491828402928484041484151715612ac657612cdb670de0b6b3a7640000612ce09404809360035416612ef5565b612ab9565b8103908111612ac657612cf291612ef5565b565b6005918051838110612dda575b508151838110612dd2575b50919084925b828410612d8c5750505050600383048211612d2e573880612ca9565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f526f79616c747920746f6f2068696768000000000000000000000000000000006044820152fd5b90919294612dc8600191612db787612da48a87612be4565b5116612db08a88612be4565b5190612ef5565b612dc18886612be4565b5190612ab9565b9501929190612d12565b925038612d0c565b925038612d01565b925090503d8085843e612df581846127ac565b82019160408184031261092e5780519067ffffffffffffffff918281116113cb5781019184601f840112156113cb57825191612e3083612bcc565b93612e3e60405195866127ac565b838552602093848087019160051b8301019188831161182d578501905b828210612ed95750505082810151918211612ed557019380601f860112156113cb578451612e8881612bcc565b95612e9660405197886127ac565b818752838088019260051b820101928311612ed1578301905b828210612ec25750505050919038612ca3565b81518152908301908301612eaf565b8880fd5b8780fd5b81518a81168103612ef1578152908501908501612e5b565b8b80fd5b73ffffffffffffffffffffffffffffffffffffffff809116600091828080808786620493e0f13d1561303b573d67ffffffffffffffff811161300e5760405190612f6760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836127ac565b81528460203d92013e5b15612f7d575b50505050565b7f00000000000000000000000000000000000000000000000000000000000000001690813b1561040457906024839260405195869384927ff340fa0100000000000000000000000000000000000000000000000000000000845260048401525af19081156130025750612ff3575b808080612f77565b612ffc90612714565b38612feb565b604051903d90823e3d90fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b612f71565b1561304757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21646561646c696e6500000000000000000000000000000000000000000000006044820152fd5b9060209360009360ff6080946130b9613139565b9088815191012060405190898201927f19010000000000000000000000000000000000000000000000000000000000008452602283015260428201526042815261310281612757565b5190209360405194855216868401526040830152606082015282805260015afa1561312d5760005190565b6040513d6000823e3d90fd5b467f000000000000000000000000000000000000000000000000000000000000000003613184577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f2aea0414eb9e6a9b2592f3f7f217c1e8a7593abc3be962bf885d94bc05072dd560408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526128368161277356fea2646970667358221220936407bdcbff397cb3418b285b083deb79b021bd02ec365f8b281e082b6e931264736f6c63430008120033000000000000000000000000ca2a693a03b49bbc3a25ae7ccc3c36335235eeac000000000000000000000000e4fa009d01b2cd9c9b0f81fd3e45095ef0f1005c000000000000000000000000ca2a693a03b49bbc3a25ae7ccc3c36335235eeac0000000000000000000000003e52548147775b3e765a1da2e915cc7f37ced586