@zoralabs/limit-orders 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.abi-stability +70 -0
- package/.turbo/turbo-build$colon$js.log +40 -40
- package/CHANGELOG.md +23 -0
- package/cache/solidity-files-cache.json +1 -1
- package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -1
- package/out/CoinConstants.sol/CoinConstants.json +1 -1
- package/out/DopplerMath.sol/DopplerMath.json +1 -1
- package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +1 -1
- package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -1
- package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
- package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
- package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
- package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -1
- package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
- package/out/PermittedCallers.sol/PermittedCallers.json +1 -1
- package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -1
- package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
- package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -1
- package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -1
- package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
- package/out/build-info/{37e0124d88d60569.json → 68b2e124c4a02a45.json} +1 -1
- package/package.json +4 -2
- package/src/access/PermittedCallers.sol +5 -1
- package/src/libs/LimitOrderBitmap.sol +0 -1
- package/src/libs/LimitOrderCommon.sol +14 -0
- package/src/libs/LimitOrderCreate.sol +6 -0
- package/src/libs/LimitOrderFill.sol +3 -20
- package/src/libs/LimitOrderLiquidity.sol +61 -38
- package/src/libs/LimitOrderWithdraw.sol +2 -6
- package/src/libs/SwapLimitOrders.sol +13 -7
- package/src/router/SwapWithLimitOrders.sol +1 -0
- package/test/LimitOrderLiquidityPayouts.t.sol +14 -14
- package/test/SwapWithLimitOrdersRouter.t.sol +4 -0
- package/test/unit/LimitOrderCreateUnit.t.sol +17 -17
- package/test/unit/SwapLimitOrdersUnit.t.sol +47 -86
- package/test/unit/SwapLimitOrdersValidation.t.sol +3 -11
- package/test/utils/BaseTest.sol +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"address"},{"name":"zoraCoinVersionLookup_","type":"address","internalType":"address"},{"name":"zoraHookRegistry_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"},{"name":"weth_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"maker","type":"address","internalType":"address"},{"name":"coin","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderSizes","type":"uint256[]","internalType":"uint256[]"},{"name":"orderTicks","type":"int24[]","internalType":"int24[]"},{"name":"maker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"fill","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"maxFillCount","type":"uint256","internalType":"uint256"},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"batches","type":"tuple[]","internalType":"struct IZoraLimitOrderBook.OrderBatch[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMaxFillCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxFillCount","inputs":[{"name":"maxFillCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPermittedCallers","inputs":[{"name":"callers","type":"address[]","internalType":"address[]"},{"name":"permitted","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"coin","type":"address","internalType":"address"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"zoraCoinVersionLookup","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDeployedCoinVersionLookup"}],"stateMutability":"view"},{"type":"function","name":"zoraHookRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraHookRegistry"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderCreated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"currentTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderFilled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coinIn","type":"address","indexed":true,"internalType":"address"},{"name":"coinOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amountOut","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"fillReferral","type":"address","indexed":false,"internalType":"address"},{"name":"fillReferralAmount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCancelled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"MakerBalanceUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PermittedCallerUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"permitted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"AddressZero","inputs":[]},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"CallerNotPermitted","inputs":[]},{"type":"error","name":"CoinMismatch","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"expectedCoin","type":"address","internalType":"address"},{"name":"actualCoin","type":"address","internalType":"address"}]},{"type":"error","name":"InsufficientForwardedFunds","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidFillWindow","inputs":[{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"isCurrency0","type":"bool","internalType":"bool"}]},{"type":"error","name":"InvalidOrder","inputs":[]},{"type":"error","name":"InvalidPoolKey","inputs":[]},{"type":"error","name":"MaxFillCountCannotBeZero","inputs":[]},{"type":"error","name":"MinAmountNotReached","inputs":[{"name":"withdrawn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NativeValueMismatch","inputs":[]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"OnlyZoraHook","inputs":[]},{"type":"error","name":"OrderClosed","inputs":[]},{"type":"error","name":"OrderFillable","inputs":[]},{"type":"error","name":"OrderNotMaker","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PathMustHaveAtLeastOneStep","inputs":[]},{"type":"error","name":"PermittedCallersLengthMismatch","inputs":[]},{"type":"error","name":"RouterMsgSenderInvalid","inputs":[]},{"type":"error","name":"UnknownCallback","inputs":[]},{"type":"error","name":"UnlockedFillNotAllowed","inputs":[]},{"type":"error","name":"WethTransferFailed","inputs":[]},{"type":"error","name":"ZeroMaker","inputs":[]},{"type":"error","name":"ZeroOrderSize","inputs":[]},{"type":"error","name":"ZeroRealizedOrder","inputs":[]}],"bytecode":{"object":"0x6101003461029957601f615e0338819003918201601f19168301916001600160401b0383118484101761029d5780849260a09460405283398101031261029957610048816102b1565b90610055602082016102b1565b610061604083016102b1565b6100796080610072606086016102b1565b94016102b1565b6001600160a01b0390931693841561028657600180546001600160a01b03199081169091555f80549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a35f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b805460ff191660011790556001600160a01b0316918215610277576001600160a01b0316908115610277576001600160a01b0316918215610277576001600160a01b038416156102775760805260a05260c05260e052615b3d90816102c68239608051818181601c0152818161038b015281816104330152818161060901528181610fa801528181611312015281816116a9015281816117b30152818161192f015281816119b101528181611c0901528181611e7a01528181611f2801528181611f640152818161239d015281816123e001528181612444015281816124c00152818161250501528181612588015281816125d60152818161264601528181612689015281816126ea0152818161274c01528181612790015281816128090152818161285701528181612b6f0152612f2a015260a051818181610b740152612b94015260c0518181816107aa01526111c2015260e051818181610bb5015281816118fe015281816119800152612bbc0152f35b639fabe1c160e01b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102995756fe60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081633fc8cef314610ba3575080635ef3e95514610b5f5780635f8fbad614610afe578063715018a614610a9b57806379ba509714610a165780637a9cf2731461089e5780637fcc389f146108715780638da5cb5b1461084a57806391dd7346146107d9578063a6de70b414610795578063aa24fafc1461067b578063c2ec68ea146104b8578063c96d060b1461048b578063d8c3177214610462578063dc4c90d31461041e578063e30c3978146103f6578063eb07ed2414610208578063f2fde38b146101985763f7888aec14610138575f61000f565b3461019457604036600319011261019457610151610c17565b610159610c01565b6001600160a01b039182165f9081525f516020615b1d5f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b34610194576020366003190112610194576101b1610c17565b6101b9612f77565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b366003190161012081126101945760a0136101945760405161022981610c95565b6004356001600160a01b03811681036101945781526024356001600160a01b038116810361019457602082015260443562ffffff811681036101945760408201526064358060020b81036101945760608201526084356001600160a01b038116810361019457608082015261029c610be4565b9060c4356001600160401b0381116101945736602382011215610194578060040135906102c882610d6c565b916102d66040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103e65750505060e4356001600160401b03811161019457366023820112156101945780600401359061032882610d6c565b916103366040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103ce575050610104359290506001600160a01b03831683036101945761037c33612f8a565b156103bf576103bb946103af947f000000000000000000000000000000000000000000000000000000000000000061303e565b60405191829182610d83565b0390f35b638078f92160e01b5f5260045ffd5b602080916103db84610bf3565b815201910190610353565b81358152602091820191016102f3565b34610194575f366003190112610194576001546040516001600160a01b039091168152602090f35b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f3660031901126101945760205f516020615afd5f395f51905f5254604051908152f35b34610194576020366003190112610194576104a4612f77565b6004355f516020615afd5f395f51905f5255005b34610194576080366003190112610194576004356001600160401b038111610194576104e8903690600401610c41565b906104f1610c01565b6064356001600160a01b038116939190849003610194576105266105ac936040519361051c85610c95565b338552369161128e565b9360208301948552604083019160018060a01b031682526060830160443581526080840191825261057d60405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610ed9565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610d4b565b60405190816105e2816105d45f94600260206106049801526040808401526060830190610c71565b03601f198101835282610d4b565b604051809381926348c8949160e01b8352602060048401526024830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761063f57005b61065a903d805f833e6106528183610d4b565b810190612ed8565b005b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b34610194576040366003190112610194576004356001600160401b038111610194576106ab903690600401610c41565b6024356001600160401b038111610194576106ca903690600401610c41565b926106d3612f77565b838303610786575f5b8381106106e557005b806106fb6106f66001938887612a82565b6112da565b828060a01b0361071461070f848988612a82565b612aa6565b165f52600260205260405f209060ff80198354169115151617905561073d61070f828786612a82565b7f34f71eeeadf8791995a3f273a2e80649f38e3c90b95e1850d3ffcfbc1e970c3c602061076e6106f6858b8a612a82565b926040519315158452858060a01b031692a2016106dc565b63b85b903160e01b5f5260045ffd5b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194576020366003190112610194576004356001600160401b0381116101945736602382011215610194578060040135906001600160401b038211610194573660248383010111610194576103bb916024610836920161130c565b604051918291602083526020830190610c71565b34610194575f366003190112610194575f546040516001600160a01b039091168152602090f35b3461019457602036600319011261019457602061089461088f610c17565b612f8a565b6040519015158152f35b34610194576040366003190112610194576004356001600160401b038111610194576108ce903690600401610c41565b6108d6610c01565b913681900360de1901905f5b8381101561065a578060051b820135838112156101945782019060c0820161090a8184611259565b905061091c575b5060019150016108e2565b6109296109309184611259565b369161128e565b9161093d60a082016112da565b9083519360a0823603126101945760405161095781610c95565b61096083610c2d565b815261096e60208401610c2d565b602082015260408301359162ffffff8316830361019457600196610a10956109b560806105d497610a0b9760408801526109aa60608201610bf3565b606088015201610c2d565b6080850152604051936109c785610cdf565b6109cf612be3565b508452151560208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610f0c565b612efd565b86610911565b34610194575f36600319011261019457600154336001600160a01b0390911603610a8857600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610194575f36600319011261019457610ab3612f77565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457366003190161014081126101945760a01361019457610b20610be4565b60c435908160020b82036101945760e435908160020b82036101945761012435916001600160a01b03831683036101945761065a936101043592610f81565b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f366003190112610194577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361019457565b35908160020b820361019457565b602435906001600160a01b038216820361019457565b600435906001600160a01b038216820361019457565b35906001600160a01b038216820361019457565b9181601f84011215610194578235916001600160401b038311610194576020808501948460051b01011161019457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610cb057604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610cb057604052565b60e081019081106001600160401b03821117610cb057604052565b606081019081106001600160401b03821117610cb057604052565b60c081019081106001600160401b03821117610cb057604052565b604081019081106001600160401b03821117610cb057604052565b90601f801991011681019081106001600160401b03821117610cb057604052565b6001600160401b038111610cb05760051b60200190565b60206040818301928281528451809452019201905f5b818110610da65750505090565b8251845260209384019390920191600101610d99565b5190811515820361019457565b51906001600160a01b038216820361019457565b519062ffffff8216820361019457565b51908160020b820361019457565b91908260a091031261019457604051610e1381610c95565b6080610e5f818395610e2481610dc9565b8552610e3260208201610dc9565b6020860152610e4360408201610ddd565b6040860152610e5460608201610ded565b606086015201610dc9565b910152565b90610e6e82610d6c565b610e7b6040519182610d4b565b8281528092610e8c601f1991610d6c565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610ef65750505090565b8251845260209384019390920191600101610ee9565b61018060c0610f7e9360208452610f27602085018251610e96565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610ed9565b90565b939291925f516020615afd5f395f51905f525483158015611250575b611248575b50610fcc7f0000000000000000000000000000000000000000000000000000000000000000612ac9565b92836111a7575b610fdb612b58565b9460018060a01b038651169660405197633fe552eb60e01b89525f516020615afd5f395f51905f5260048a0152602489015260043560018060a01b0381168091036101945760448901526024356001600160a01b0381169081900361019457606489015260443562ffffff81168091036101945760848901526064358060020b8091036101945760a48901526084356001600160a01b038116908190036101945760c48901521515938460e489015260020b61010488015260020b61012487015260e0866101448173__$b37d8808673a650b3481d88bc26a627692$__5af4801561065c575f965f905f92611151575b50604051946110db602087610d4b565b5f86525f368137604051986110ef8a610cdf565b6110f7612be3565b5089526020890152600290810b60408901520b606087015260808601526001600160a01b031660a085015260c084015261114757506105d4610a0b6111459260405192839160208301610f0c565b565b9061114591612c3c565b9750505060e03d60e0116111a0575b61116a8188610d4b565b860160e087820312610194576111809087610dfb565b61119860c061119160a08a01610ded565b9801610ded565b90965f6110cb565b503d611160565b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561065c575f9161120e575b50610fd3576344863e8560e11b5f5260045ffd5b90506020813d602011611240575b8161122960209383610d4b565b810103126101945761123a90610dbc565b5f6111fa565b3d915061121c565b92505f610fa2565b50808411610f9d565b903590601e198136030182121561019457018035906001600160401b03821161019457602001918160051b3603831361019457565b92919061129a81610d6c565b936112a86040519586610d4b565b602085838152019160051b810192831161019457905b8282106112ca57505050565b81358152602091820191016112be565b3580151581036101945790565b6001600160401b038111610cb057601f01601f191660200190565b6003111561066757565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610194578035906003821015610194576020810135906001600160401b03821161019457019183601f84011215610194578235611385816112e7565b936113936040519586610d4b565b81855260208501956020838301011161019457815f9260208093018837850101526113bd82611302565b8115611a7f57506113cd81611302565b600181036114c25750906113df612b58565b825183019260208401926020828603126101945751906001600160401b0382116101945701926101609084900312610194576040519161141e83610cdf565b61142b8160208601610dfb565b835261143960c08501610dbc565b602084015261144a60e08501610ded565b604084015261145c6101008501610ded565b606084015261012084015160808401526114796101408501610dc9565b60a0840152610160840151906001600160401b0382116101945760206114a4926114ae960101612fe1565b60c0830152612c3c565b6040516114bc602082610d4b565b5f815290565b6002906114ce81611302565b03611a705780518101916020828403126101945751906001600160401b03821161019457019060a082820312610194576040519061150b82610c95565b61151760208401610dc9565b825260408301516001600160401b0381116101945760208061153d930191850101612fe1565b80602083015261154f60608401610dc9565b9182604082015261156d60a060808601519586606085015201610dc9565b6080820181905290516001600160a01b0390811690821615611a61578251918215611a34579392905f945f94871515935b8587106115d0575b505050505050508181106115bb5750506114ae565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966115e18883612c28565b51805f525f516020615abd5f395f51905f5260205260405f206004810154918260601c8015611a34578803611a5257600160ff8460501c1661162281611302565b03611a4357600382015492600283015492835f525f516020615add5f395f51905f5260205260405f206040519061165882610c95565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b6060850181905292015416608083015215611a34576116cd60a082207f0000000000000000000000000000000000000000000000000000000000000000613a3d565b5050905060ff8460581c165f14611a25578360181c60020b9060020b12155b611a16576117ae946116fd836135a9565b9061170e60ff8660581c168461354e565b905f525f516020615a9d5f395f51905f5260205260405f2060018060a01b0382165f5260205260405f208260020b5f5260205261175d8460405f2060ff60501b19881660048301558386613bcb565b50604061176c8960801c613af6565b81519061177882610cc4565b8760020b82528760181c60020b602083015282820152876060820152815180998192632d35e7ed60e11b83528760048401613b1c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760028e957f73544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde958f9560c09660ff9c5f926119e5575b508160801d5f81600f0b1361196b575b505f82600f0b136118e6575b50505001549160018060a01b031697889660405193845260581c161515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b03861682036118c4575061189b926001600160801b03909216919050613a30565b9685806118ba575b6118b55760010195949392919061159e565b6115a6565b50888810156118a3565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b6020909201516001600160801b0390911691611953917f00000000000000000000000000000000000000000000000000000000000000009184916001600160a01b0391821691167f000000000000000000000000000000000000000000000000000000000000000061442e565b8a8960581c1615611966575b8f80611835565b61195f565b83516001600160801b0391909116906119d5907f00000000000000000000000000000000000000000000000000000000000000009083906001600160a01b0386811691167f000000000000000000000000000000000000000000000000000000000000000061442e565b8d8c60581c161561182957611829565b611a0791925060403d8111611a0f575b6119ff8183610d4b565b810190613b06565b50905f611819565b503d6119f5565b6374169b5760e11b5f5260045ffd5b8360020b9060020b13156116ec565b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b91809391505183019260208401916020828603126101945751906001600160401b03821161019457019261012090849003126101945760405192611ac284610c95565b611acf8260208301610dfb565b8452611add60c08201610dbc565b916020850192835260e08201516001600160401b0381116101945760209083010181601f8201121561019457805190611b1582610d6c565b91611b236040519384610d4b565b80835260208084019160051b8301019184831161019457602001905b828210612a725750505060408601526101008201516001600160401b038111610194576020908301019080601f83011215610194578151611b7f81610d6c565b92611b8d6040519485610d4b565b81845260208085019260051b82010192831161019457602001905b828210612a5a5750505084840152611bc39061012001610dc9565b9160808401928352835192611bd784613056565b92835f525f516020615add5f395f51905f52602052600160405f20015460b81c60020b156129b9575b611c2d60a086207f0000000000000000000000000000000000000000000000000000000000000000613a3d565b5050929050611c3f825115158761354e565b855f525f516020615a7d5f395f51905f5260205260405f20549160018060a01b03905116925115159360405196611c7588610d15565b875260020b602087015260018060a01b0316604086015283850152608084015260a0830152611ca8604085015151610e64565b915f5b604086015190815181101561299c5760208488015192818360051b80920101519301015160a084015115158588015160020b905f1461298c578160020b01627fffff198112627fffff821317612978575b60a08501511580159061297157815b60405191632939447b60e11b835260048301528560248301528360020b60448301528060020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f9261292e575b506001600160801b038216156128cf57611e75604060a08951600180831b03838c015116600180841b0360808d015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052845f2091611dc68354612c0d565b8093558551938452602084015288858401528d83015260808201522095815198611def8a610d15565b8d8a52600282810b60208c015285900b838b01526001600160801b038681168d8c01521660808a015260a0808a018890528a01518251901515955f959192909190611e3984610cc4565b600290810b84520b60208301526001600160801b0316828201528a81018790528151632d35e7ed60e11b81529283918291908f60048401613b1c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561065c575f9161290f575b508060801d90600f0b835f146128e557505f81600f0b125f146128de57611ed8906143ed565b6001600160801b03165b915b6001600160801b038316156128cf57608087015183906001600160801b0390811690821681116128bc575b505086518051909190611f4c906001600160a01b0316307f000000000000000000000000000000000000000000000000000000000000000061493b565b6020830151909190611f88906001600160a01b0316307f000000000000000000000000000000000000000000000000000000000000000061493b565b9181156128b5575f915b156128ae5730915b5f82138061289c575b6127f9575b505f811261262d575b505f82138061261b575b612575575b505f811261237e575b5060019660a0929091506001600160801b03811661235b575b50818101515f525f516020615abd5f395f51905f52602052600260405f2061202d600382018a8060801b0387168b8060801b03198254161781558a8060801b038d8601511690613ba8565b602083015160048201908c6001600160581b038d845490604089015160181b65ffffff00000063ffffffff60301b8684015160301b169260ff60581b8d820151151560581b169660806001600160601b0319920151901b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff1916171691161717171617179055895191829101555f525f516020615a9d5f395f51905f5260205260405f208780841b0360408a0151168880851b03165f5260205260405f208460020b5f5260205260405f20600281019061211361210d86845460801c61463c565b83613ba8565b89515f525f516020615a5d5f395f51905f5260205260405f208980861b0360408c0151168a80871b03165f5260205260405f208b8451015160020b8a8060801b0384541615612329575b50508383015190898101908282549182155f1461230857555b825f525f516020615abd5f395f51905f526020528a60405f20015555878060801b03888060801b0389808060801b03845416011616888060801b03198254161790550151858060a01b036080880151165f525f516020615b1d5f395f51905f5260205260405f20868060a01b03604089015116878060a01b03165f526020527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c061222e60405f20898060801b0386169054613a30565b94888060a01b0360808b0151165f525f516020615b1d5f395f51905f5260205260405f20898060a01b0360408c0151168a8060a01b03165f526020528560405f2055888060a01b0360808b01511693898060a01b0360408c015116958b805193602060a0830151151592015160020b91604051958652602086015260020b60408501528d8401528a8060801b0316608083015260a0820152a3838060a01b036080860151165f516020615a3d5f395f51905f526020868060a01b0360408901511693604051908152a36123018287612c28565b5201611cab565b5050805f525f516020615abd5f395f51905f526020528260405f2055612176565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff60405f2092161b81541790555f8061215d565b612378908251848b015115158a80871b0360808d015116916145ff565b5f611fe2565b61238790613af6565b60208201519091906001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612565575b50602001516001600160a01b0316806124b95750604051630476982d60e21b81529690602090889060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a09361248b575b505b91819750611fc9565b6124ab9060203d81116124b2575b6124a38183610d4b565b810190612aba565b505f612480565b503d612499565b6124ee91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906147f8565b604051630476982d60e21b8152956020876004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a093612547575b50612482565b61255e9060203d81116124b2576124a38183610d4b565b505f612541565b5f61256f91610d4b565b5f612415565b60208301516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916125d1918791600485016149b7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611fc0575f61261591610d4b565b5f611fc0565b506001600160a01b0381161515611fbb565b61263690613af6565b83516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576127e9575b5083516001600160a01b0316806127455750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612727575b505b5f611fb1565b61273e9060203d81116124b2576124a38183610d4b565b505f61271f565b61277a91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906147f8565b604051630476982d60e21b81526020816004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576127cb575b50612721565b6127e29060203d81116124b2576124a38183610d4b565b505f6127c5565b5f6127f391610d4b565b5f6126be565b84516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f9183918291612852918791600485016149b7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611fa8575f61289691610d4b565b5f611fa8565b506001600160a01b0381161515611fa3565b5f91611f9a565b3091611f92565b6128c7929350613b8f565b90825f611f0f565b63f8db18c360e01b5f5260045ffd5b505f611ee2565b90505f811215612908576128f8906143ed565b6001600160801b03165b91611ee4565b505f612902565b612927915060403d8111611a0f576119ff8183610d4b565b505f611eb2565b9091506020813d8211612969575b8161294960209383610d4b565b8101031261019457516001600160801b038116810361019457905f611d61565b3d915061293c565b8291611d0b565b634e487b7160e01b5f52601160045260245ffd5b6129969082613097565b90611cfc565b505050506105d49250610f7e915060405192839160208301610d83565b5f8481525f516020615add5f395f51905f526020908152604091829020875181546001600160a01b039182166001600160a01b031991821617835592890151600183018054958b0151898c015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608088015160029091018054919093169116179055611c00565b60208091612a6784610ded565b815201910190611ba8565b8151815260209182019101611b3f565b9190811015612a925760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101945790565b90816020910312610194575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561065c575f91612b26575b50151590565b90506020813d602011612b50575b81612b4160209383610d4b565b8101031261019457515f612b20565b3d9150612b34565b60405190612b6582610cfa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000811660208401527f0000000000000000000000000000000000000000000000000000000000000000166040830152565b60405190612bf082610c95565b5f6080838281528260208201528260408201528260608201520152565b5f1981146129785760010190565b805115612a925760200190565b8051821015612a925760209160051b010190565b612c468251613056565b91825f525f516020615a7d5f395f51905f5260205260405f2092612c6a8454612c0d565b809455805f525f516020615add5f395f51905f5260205260405f2093604051612c9281610c95565b85546001600160a01b0390811682526001870154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529701541660808201529415612e72575b60c083019384515115612e55576020840151151590835f525f516020615a9d5f395f51905f5260205260405f20612d13838961354e565b60018060a01b03165f5260205260405f209460a0600180821b039101511693865151965f5b888110612d4b5750505050505050505050565b612d56818351612c28565b51805f525f516020615abd5f395f51905f5260205260405f20600481015488600160ff8360501c16612d8781611302565b149182612e47575b82612e34575b82612e21575b5050612daf575b5050600101975b97612d38565b855160a08d208d91612dd791612dcd916001600160a01b0316613a3d565b505090508361357d565b15612e185760019392828b92612def612e11956135a9565b60020b5f528d60205260405f20905f516020615afd5f395f51905f528b6135c9565b905f612da2565b50505097612da9565b60301c63ffffffff16109050885f612d9b565b91508860ff8360581c1615151491612d95565b600284015488149250612d8f565b929350505061114592505f516020615afd5f395f51905f526130b4565b9350815193606085015160020b612cdc5763c256622b60e01b5f5260045ffd5b81601f8201121561019457805190612ea9826112e7565b92612eb76040519485610d4b565b8284526020838301011161019457815f9260208093018386015e8301015290565b906020828203126101945781516001600160401b03811161019457610f7e9201612e92565b60405190816105e2816105d45f9460016020612f259801526040808401526060830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612f615750565b612f74903d805f833e6106528183610d4b565b50565b5f546001600160a01b03163303610a8857565b5f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5460ff16908115612fc2575090565b6001600160a01b03165f9081526002602052604090205460ff16919050565b9080601f83011215610194578151612ff881610d6c565b926130066040519485610d4b565b81845260208085019260051b82010192831161019457602001905b82821061302e5750505090565b8151815260209182019101613021565b9061305095949392915f60a0526149d9565b60a05190565b604051613067602082018093610e96565b60a0815261307660c082610d4b565b51902090565b60020b5f190190627fffff198212627fffff83131761297857565b600291820b910b0390627fffff198212627fffff83131761297857565b906080830191825115613548576130cb8451613056565b602085015115908115613534578551602001519092906001600160a01b03165b60018060a01b031695835f526005820160205260405f2060018060a01b0388165f5260205260405f2096845f526006830160205260405f209060018060a01b03165f5260205260405f209160018101945f526004810160205260405f2054965f905195604084015160020b91606085015160020b9560608651015160020b935b898310613182575b50505050505050505050505050565b5f9d95969798999a9b9c9d50895f1461352857888160020b13155b6135205760020b845f8183071291050393895f14613426578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159784895f146134115750610194578392817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8a1561340657898660020b13155b6133fd57156133e157845f528160205260405f2098895480156133c25793909192935b801515806133b9575b156133a65790818f959493925f528660205260405f208054966004820154600160ff8260501c166132e581611302565b0361339b5760301c63ffffffff1614613367578f518c5160a090206133219161331791906001600160a01b0316613a3d565b505090508261357d565b15613353578f60019392613346928f8f8f81519160a08a80821b0391015116956135c9565b0193925b939091926132ac565b505050505050505050975050505050505050565b50509c9b9a9950949091939796959d92505b8815613396576133889061307c565b9b9a919b969290939661316b565b613388565b50505050939261334a565b509b9a999850939c91929695949c613379565b508c82106132b5565b50949091939796959d929b9a999850885f14613396576133969061307c565b90929695949c919a99989793885f14613396576133969061307c565b50859d50613173565b898660020b13613289565b9391505060020b900360020b0260020b613279565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159784895f1461350657506101945783928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b9461327b565b93905060ff809250031660020b0160020b0260020b613500565b859d50613173565b888160020b121561319d565b8551519092906001600160a01b03166130eb565b50505050565b901561356b57516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b031661355f565b6004015460ff8160581c165f1461359d5760181c60020b9060020b121590565b60020b9060020b131590565b6004015460ff8160581c165f146135c35760181c60020b90565b60020b90565b60048501805460ff60501b1916600160511b179081905591969195605887901c60ff16959094939092906135fd878261354e565b9615613609908261354e565b83516020850151604090950151600387018054909b6001600160a01b039384169b94985f989095879590948116939116918d916136489060801c613af6565b6040519161365583610cc4565b8060020b835260181c60020b602083015260408201528c606082015260405180988192632d35e7ed60e11b8352600483019161369092613b1c565b03815a6040945f91f198891561065c576137398f9a8e938a88819b8b9689955f925f91613a0b575b50919261372d926001600160a01b0386166139f5578460801d945b6001600160a01b0387166139de57600f0b955b6001600160a01b03166139d4575f9f5b6001600160a01b03166139c8575060045f995b01549560ff8760581c165f146139b75760208201516001600160a01b031692613dab565b96879360601c90614160565b97909d5f82600f0b1380156139ab575b613991575b505050505060018060801b038b5416915f60028a019961377b613775868d5460801c613b8f565b8c613ba8565b60018a0186549060018801928354928315861461397f578082555b8015861461396c57506001915001555b8a546001600160801b031680613949575b50818655556137c5846135a9565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b0390541615613914575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612978576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f516020615a3d5f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613804565b8b546001600160801b03191683199091016001600160801b0316178b555f6137b7565b85525060205260408320600101556137a6565b83865282602052806040872055613796565b61399e959a508990614160565b9050945f8080808061374e565b505f83600f0b13613749565b81516001600160a01b031692613dab565b600490600f0b99613709565b8060801d9f6136f6565b6139ef9082600f0b90600f0b613b6a565b956136e6565b613a058160801d8660801d613b6a565b946136d3565b61372d9350613a29915060403d604011611a0f576119ff8183610d4b565b90926136b8565b9190820180921161297857565b91906020906040518281019182526006604082015260408152613a61606082610d4b565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561065c575f92613ac2575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011613aee575b81613ade60209383610d4b565b810103126101945751905f613a9a565b3d9150613ad1565b600160ff1b8114612978575f0390565b9190826040910312610194576020825192015190565b9061016092613b2d83606093610e96565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761297857565b6001600160801b03918216908216039190821161297857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f6002880197613bfc613bf6888b5460801c613b8f565b8a613ba8565b835490600185019182549182158514613d8c578181555b81158514613d6b576001915001555b88546001600160801b031680613d48575b5081845555613c41826135a9565b9660028301545f525f516020615a5d5f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615613d13575b5050015460601c90815f525f516020615b1d5f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116129785760205f516020615a3d5f395f51905f5291835f525f516020615b1d5f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613c89565b89546001600160801b03191683199091016001600160801b03161789555f613c33565b5083525f516020615abd5f395f51905f526020526001604084200155613c22565b8285525f516020615abd5f395f51905f52602052816040862055613c13565b9290939193604051613dbc81610d30565b606081525f6020820152936001600160a01b0381169182613ed9575b505084516001600160a01b0392831692169050818103613ed4575060208401516001600160a01b03165b6001600160a01b03166020840152604080519490613e208187610d4b565b60018652601f1981015f5b818110613ea05750508495612f7494955262ffffff818301511691606081015160020b90608060018060a01b039101511691805193613e6b602086610d4b565b5f8552815195613e7a87610c95565b8652602086015284015260608301526080820152835190613e9a82612c1b565b52612c1b565b6020908351613eae81610c95565b5f81525f838201525f858201525f60608201526060608082015282828b01015201613e2b565b613e02565b60405163442f7de960e11b8152600481018490526001600160a01b03919091169190602081602481865afa5f9181614122575b50613f18575b50613dd8565b60ff6004911610159081614112575b50613f34575b8080613f12565b5f91945060246040518096819363f3ffe14b60e01b835260048301525afa92831561065c575f93613fa9575b50828051805115159081613f82575b50613f7a5780613f2d565b925050915090565b6001600160a01b039150613f9590612c1b565b5151166001600160a01b038316145f613f6f565b9092503d805f833e613fbb8183610d4b565b810190602081830312610194578051906001600160401b03821161019457016040818303126101945760405191613ff183610d30565b81516001600160401b0381116101945782019080601f830112156101945781519161401b83610d6c565b926140296040519485610d4b565b80845260208085019160051b830101918383116101945760208101915b83831061406d57505050505061406191602091845201610dc9565b6020820152915f613f60565b82516001600160401b0381116101945782019060a0828703601f190112610194576040519061409b82610c95565b6140a760208401610dc9565b82526140b560408401610ddd565b60208301526140c660608401610ded565b60408301526140d760808401610dc9565b606083015260a0830151916001600160401b0383116101945761410288602080969581960101612e92565b6080820152815201920191614046565b61411c915061436f565b5f613f27565b9091506020813d602011614158575b8161413e60209383610d4b565b81010312610194575160ff8116810361019457905f613f0c565b3d9150614131565b9591939092935f81600f0b135f14614367576001600160801b0316935b5f81600f0b135f14614360576001600160801b03165b60208201519151805190926001600160a01b03169015614351576141c0906141ba84612c1b565b51614655565b90811561434b5786925b821561433a5760208201516001600160a01b0316975b83156143325750925b6001600160801b0316806142e6575050509594919293955b95926001926020945b835185101561428e57879861425a61423f989961422d6001946141ba8a8a612c28565b9a9093858060801b0316600f0b6143ed565b600f0b8a84604051936142528d86610d4b565b5f85526146dd565b828060801b0316975f146142805786828060a01b03910151165b9401939796959761420a565b818060a01b03905116614274565b979691959094508793509150856001600160801b0381166142b1575b5050505050565b6142bd9284869361442e565b6001600160a01b0316156142d5575b808080806142aa565b6001600160a01b031692505f6142cc565b91614318916142fb6143279594600f0b6143ed565b916040519261430b602085610d4b565b5f8452600f0b918c6146dd565b6001600160801b03169061463c565b959491929395614201565b9050926141e9565b81516001600160a01b0316976141e0565b826141ca565b6319dcad4d60e31b5f5260045ffd5b505f614193565b505f9361417d565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f91816143b1575b50610f7e57505f90565b9091506020813d6020116143e5575b816143cd60209383610d4b565b81010312610194576143de90610dbc565b905f6143a7565b3d91506143c0565b600f0b60016001607f1b03198114612978575f0390565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b5f9491906001600160a01b0382166145a9576001600160a01b031690813b156145a5578461447792879283604051809681958294630b0d9c0960e01b8452309060048501614404565b03925af1801561458557908591614590575b50506001600160a01b0316916001600160801b031690823b1561458157604051630d0e30db60e41b8152848160048186885af180156145855790859161456c575b5060405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925291602091839160449183915af1908115614561578291614523575b50156145145750565b6332067e4160e01b8152600490fd5b90506020813d602011614559575b8161453e60209383610d4b565b810103126145555761454f90610dbc565b5f61450b565b5080fd5b3d9150614531565b6040513d84823e3d90fd5b8161457691610d4b565b61458157835f6144ca565b8380fd5b6040513d87823e3d90fd5b8161459a91610d4b565b61458157835f614489565b8580fd5b92945092916001600160a01b03169050803b15610194576145e4935f809460405196879586948593630b0d9c0960e01b855260048501614404565b03925af1801561065c576145f55750565b5f61114591610d4b565b90926001600160801b03169190821561354857611145931561462a57516001600160a01b03166147f8565b602001516001600160a01b03166147f8565b6001600160801b03918216908216019190821161297857565b9061465e612be3565b5081516001600160a01b0382811692911690818310156146d5575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b039101511692604051946146b386610c95565b85526001600160a01b0316602085015260408401526060830152608082015291565b508190614679565b9093929160209181156147d9576147455f6401000276a4975b6147766040519561470687610cfa565b15158087528787018981526001600160a01b03909b16604080890191825251633cf3645360e21b81529b919a8c98899788969294926004880190610e96565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610c71565b03926001600160a01b03165af192831561065c575f936147a5575b505f130361479f57600f0b90565b60801d90565b9092506020813d6020116147d1575b816147c160209383610d4b565b810103126101945751915f614791565b3d91506147b4565b6147455f73fffd8963efd1fc6a506488495d951d5263988d25976146f6565b9091906001600160a01b03811690816148865750505f80808093855af11561481d5750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156148d75750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561065c575f91614988575090565b90506020813d6020116149af575b816149a360209383610d4b565b81010312610194575190565b3d9150614996565b6001600160a01b03918216815291166020820152604081019190915260600190565b606060a05291959491936001600160a01b0390921691908215615a2d575f6080604051614a0581610c95565b614a0d612be3565b815282602082015260a051604082015260a05160a05182015201525f90845183518103615a1e575f905b8082106159e7575050614a8260405195614a5087610c95565b82875298151560208701818152604088019a909a5260a0518701948552608087019586526001600160a01b039261354e565b168061588857503403615879575b614a9984612ac9565b614c22576040805193602080860152610160850197614abb8387018351610e96565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110614c0c575050505194603f1983820301610120840152602080875192838152019601905f5b818110614bf357505050916105d4614b6083614b44614b84955f9899899860018060a01b0390511661014083015203601f198101835282610d4b565b6040519283918760208401526040808401526060830190610c71565b6040519485809481936348c8949160e01b8352602060048401526024830190610c71565b03926001600160a01b03165af190811561065c575f91614bd9575b508051810190602081830312610194576020810151916001600160401b03831161019457614bd4926020809201920101612fe1565b60a052565b614bed91503d805f833e6106528183610d4b565b5f614b9f565b825160020b885260209788019790920191600101614b08565b8251895260209889019890920191600101614ae0565b9193949290845193614c3385613056565b91825f525f516020615add5f395f51905f52602052600160405f20015460b81c60020b156157d7575b614c6960a0872085613a3d565b50509050614c7a835115158861354e565b90845f525f516020615a7d5f395f51905f5260205260405f20549260018060a01b039051169351151594604051608052614cb5608051610d15565b6080515260020b6020608051015260018060a01b03166040608051015260a051608051015260808051015260a06080510152614cf5604085015151610e64565b915f5b60408601519081518110156157cb576020835192818360051b80920101519301015160a06080510151151560a05188015160020b905f146157ba578160020b01627fffff198112627fffff82131761297857925b60805160a00151158015906157b35784915b60405191632939447b60e11b835260048301528060248301528360020b60448301528560020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f92615770575b506001600160801b038216156128cf5760808051805160408281015192909301516001600160a01b039081165f8181527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528590208054614eda969560a095949293921690614e2490612c0d565b809355855193845260208401528885840152835183015260808201522095815193614e4e85610d15565b8d85528160020b60208601528960020b8386015260018060801b03861660a05186015260018060801b031660808501528660a085015260a060805101511515945f99835192614e9c84610cc4565b600290810b84520b60208301526001600160801b03168282015260a05181018790528151632d35e7ed60e11b81529283918291908f60048401613b1c565b03815f6001600160a01b038e165af190811561065c575f91615751575b508060801d90600f0b835f1461572757505f81600f0b125f1461572057614f1d906143ed565b6001600160801b03165b915b6001600160801b038316156128cf5760808201516001600160801b03908116908416811161570c575b5081518051909190614f6e906001600160a01b0316308c61493b565b906020830192614f8960018060a01b038551168d309061493b565b928215615705575f925b156156fd578c30935b5f8313806156eb575b615681575b50505f8112615555575b50505f821380615543575b6154df575b505f811261538f575b506040966001969594939260a09250906001600160801b038116615369575b50818101515f525f516020615abd5f395f51905f526020526002885f20615037600382018a8060801b0387168b8060801b03198254161781558a8060801b0386518601511690613ba8565b6020830151600482019081546001600160581b038d87015160181b9163ffffffff60301b8951608051015160301b1660ff60581b8a6080510151151560581b169365ffffff0000006001600160601b03196080805101518d511b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff19161716911617171716171790556080515191829101555f525f516020615a9d5f395f51905f52602052875f208780841b03896080510151168880851b03165f52602052875f208460020b5f52602052875f20600281019061511a61210d86845460801c61463c565b608051515f525f516020615a5d5f395f51905f52602052895f208980861b038b6080510151168a80871b03165f52602052895f2084518451015160020b8a8060801b0384541615615338575b50508383015190898101908282549182155f1461531857555b5f8381525f516020615abd5f395f51905f5260209081528d82208d019290925592909155825460808b811b8c90038083168d018116811990931692909217909455939094015182519283015160a08b901b8b900390811683525f516020615b1d5f395f51905f5286528b8320938c01511682529190935291889020547f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a39160c09161522c91861690613a30565b94888060a01b0360808051015116898060a01b03165f525f516020615b1d5f395f51905f52602052895f20898060a01b038b6080510151168a8060a01b03165f52602052858a5f2055888060a01b036080805101511693898060a01b038b60805101511695608051519260a060805101511515906020608051015160020b918e51958652602086015260020b8d85015260a0518401528a8060801b0316608083015260a0820152a3838060a01b03608080510151165f516020615a3d5f395f51905f526020868060a01b0388608051015116938851908152a361530f8288612c28565b52019050614cf8565b5050805f525f516020615abd5f395f51905f52602052828c5f205561517f565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff8c5f2092161b81541790555f80615166565b61538990825184608051015115158a80871b0360808051015116916145ff565b5f614fec565b61539e90969594939296613af6565b81519091906001600160a01b03908116908b163b15610194575f8b602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c576154cf575b50516001600160a01b0316806154605750604051630476982d60e21b81529590602090879060049082906001600160a01b038e165af190811561065c5760409760019760a093615442575b505b97509192939495614fcd565b6154599060203d81116124b2576124a38183610d4b565b505f615434565b61547591906001600160a01b038b16906147f8565b604051630476982d60e21b8152946020866004815f6001600160a01b038e165af190811561065c5760409760019760a0936154b1575b50615436565b6154c89060203d81116124b2576124a38183610d4b565b505f6154ab565b5f6154d991610d4b565b5f6153e9565b82516001600160a01b03908116908c163b1561019457828c61551b935f809460405196879586948593630b0d9c0960e01b8552600485016149b7565b03926001600160a01b03165af1801561065c5715614fc4575f61553d91610d4b565b5f614fc4565b506001600160a01b0381161515614fbf565b61555e90613af6565b81519091906001600160a01b03908116908e163b15610194575f8e602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c57615671575b50516001600160a01b03168061560c575060208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c576155ee575b505b5f80614fb4565b6156059060203d81116124b2576124a38183610d4b565b505f6155e5565b61562191906001600160a01b038e16906147f8565b5f60208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c57615653575b506155e7565b61566a9060203d81116124b2576124a38183610d4b565b505f61564d565b5f61567b91610d4b565b5f6155a9565b83516001600160a01b0390811692163b1561019457828f5f92836156bc9560405196879586948593630b0d9c0960e01b8552600485016149b7565b03926001600160a01b03165af1801561065c576156db575b8d90614faa565b5f6156e591610d4b565b5f6156d4565b506001600160a01b0381161515614fa5565b8c5f93614f9c565b3092614f93565b6157199197508390613b8f565b955f614f52565b505f614f27565b90505f81121561574a5761573a906143ed565b6001600160801b03165b91614f29565b505f615744565b615769915060403d8111611a0f576119ff8183610d4b565b505f614ef7565b9091506020813d82116157ab575b8161578b60209383610d4b565b8101031261019457516001600160801b038116810361019457905f614db4565b3d915061577e565b8291614d5e565b6157c49082613097565b9092614d4c565b5050505091505060a052565b5f8381525f516020615add5f395f51905f526020908152604091829020885181546001600160a01b039182166001600160a01b0319918216178355928a0151600183018054958c015160a080518e015160b81b62ffffff60b81b1662ffffff60a01b9290911b919091169284166001600160d01b0319909716969096179190911794909417909355608089015160029091018054919093169116179055614c5c565b636d295d4f60e11b5f5260045ffd5b34615879576040516370a0823160e01b815230600482015291602083602481855afa92831561065c575f936159b3575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561065c575f91615979575b5015615934576020602492604051938480926370a0823160e01b82523060048301525afa91821561065c575f92615943575b5061592e9192613a30565b14614a90575b637627529f60e01b5f5260045ffd5b91506020823d602011615971575b8161595e60209383610d4b565b810103126101945761592e915191615923565b3d9150615951565b90506020813d6020116159ab575b8161599460209383610d4b565b81010312610194576159a590610dbc565b5f6158f1565b3d9150615987565b9092506020813d6020116159df575b816159cf60209383610d4b565b810103126101945751915f6158b8565b3d91506159c2565b90926159f38488612c28565b51908115615a0f57600191615a0791613a30565b930190614a37565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b633b77ab5760e11b5f5260045ffdfea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf098b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1507:7026:77:-:0;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;;;1273:26:0;;1269:95;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;3052:40:0;;-1:-1:-1;3052:40:0;-1:-1:-1;303:10:78;;600:17;1507:7026:77;303:10:78;;;;-1:-1:-1;;303:10:78;2093:20:1;303:10:78;;;-1:-1:-1;;;;;1507:7026:77;;1960:26;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2020:36;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2090:31;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2155:19;1507:7026;;;2201:40;1507:7026;2251:74;2335:55;;2400:12;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2335:55;1507:7026;;;;;;;;;;2400:12;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;1507:7026:77;;-1:-1:-1;1322:31:0;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o","linkReferences":{"src/libs/LimitOrderViews.sol":{"LimitOrderViews":[{"start":4971,"length":20},{"start":8196,"length":20},{"start":20567,"length":20}]}}},"deployedBytecode":{"object":"0x60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081633fc8cef314610ba3575080635ef3e95514610b5f5780635f8fbad614610afe578063715018a614610a9b57806379ba509714610a165780637a9cf2731461089e5780637fcc389f146108715780638da5cb5b1461084a57806391dd7346146107d9578063a6de70b414610795578063aa24fafc1461067b578063c2ec68ea146104b8578063c96d060b1461048b578063d8c3177214610462578063dc4c90d31461041e578063e30c3978146103f6578063eb07ed2414610208578063f2fde38b146101985763f7888aec14610138575f61000f565b3461019457604036600319011261019457610151610c17565b610159610c01565b6001600160a01b039182165f9081525f516020615b1d5f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b34610194576020366003190112610194576101b1610c17565b6101b9612f77565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b366003190161012081126101945760a0136101945760405161022981610c95565b6004356001600160a01b03811681036101945781526024356001600160a01b038116810361019457602082015260443562ffffff811681036101945760408201526064358060020b81036101945760608201526084356001600160a01b038116810361019457608082015261029c610be4565b9060c4356001600160401b0381116101945736602382011215610194578060040135906102c882610d6c565b916102d66040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103e65750505060e4356001600160401b03811161019457366023820112156101945780600401359061032882610d6c565b916103366040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103ce575050610104359290506001600160a01b03831683036101945761037c33612f8a565b156103bf576103bb946103af947f000000000000000000000000000000000000000000000000000000000000000061303e565b60405191829182610d83565b0390f35b638078f92160e01b5f5260045ffd5b602080916103db84610bf3565b815201910190610353565b81358152602091820191016102f3565b34610194575f366003190112610194576001546040516001600160a01b039091168152602090f35b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f3660031901126101945760205f516020615afd5f395f51905f5254604051908152f35b34610194576020366003190112610194576104a4612f77565b6004355f516020615afd5f395f51905f5255005b34610194576080366003190112610194576004356001600160401b038111610194576104e8903690600401610c41565b906104f1610c01565b6064356001600160a01b038116939190849003610194576105266105ac936040519361051c85610c95565b338552369161128e565b9360208301948552604083019160018060a01b031682526060830160443581526080840191825261057d60405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610ed9565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610d4b565b60405190816105e2816105d45f94600260206106049801526040808401526060830190610c71565b03601f198101835282610d4b565b604051809381926348c8949160e01b8352602060048401526024830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761063f57005b61065a903d805f833e6106528183610d4b565b810190612ed8565b005b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b34610194576040366003190112610194576004356001600160401b038111610194576106ab903690600401610c41565b6024356001600160401b038111610194576106ca903690600401610c41565b926106d3612f77565b838303610786575f5b8381106106e557005b806106fb6106f66001938887612a82565b6112da565b828060a01b0361071461070f848988612a82565b612aa6565b165f52600260205260405f209060ff80198354169115151617905561073d61070f828786612a82565b7f34f71eeeadf8791995a3f273a2e80649f38e3c90b95e1850d3ffcfbc1e970c3c602061076e6106f6858b8a612a82565b926040519315158452858060a01b031692a2016106dc565b63b85b903160e01b5f5260045ffd5b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194576020366003190112610194576004356001600160401b0381116101945736602382011215610194578060040135906001600160401b038211610194573660248383010111610194576103bb916024610836920161130c565b604051918291602083526020830190610c71565b34610194575f366003190112610194575f546040516001600160a01b039091168152602090f35b3461019457602036600319011261019457602061089461088f610c17565b612f8a565b6040519015158152f35b34610194576040366003190112610194576004356001600160401b038111610194576108ce903690600401610c41565b6108d6610c01565b913681900360de1901905f5b8381101561065a578060051b820135838112156101945782019060c0820161090a8184611259565b905061091c575b5060019150016108e2565b6109296109309184611259565b369161128e565b9161093d60a082016112da565b9083519360a0823603126101945760405161095781610c95565b61096083610c2d565b815261096e60208401610c2d565b602082015260408301359162ffffff8316830361019457600196610a10956109b560806105d497610a0b9760408801526109aa60608201610bf3565b606088015201610c2d565b6080850152604051936109c785610cdf565b6109cf612be3565b508452151560208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610f0c565b612efd565b86610911565b34610194575f36600319011261019457600154336001600160a01b0390911603610a8857600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610194575f36600319011261019457610ab3612f77565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457366003190161014081126101945760a01361019457610b20610be4565b60c435908160020b82036101945760e435908160020b82036101945761012435916001600160a01b03831683036101945761065a936101043592610f81565b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f366003190112610194577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361019457565b35908160020b820361019457565b602435906001600160a01b038216820361019457565b600435906001600160a01b038216820361019457565b35906001600160a01b038216820361019457565b9181601f84011215610194578235916001600160401b038311610194576020808501948460051b01011161019457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610cb057604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610cb057604052565b60e081019081106001600160401b03821117610cb057604052565b606081019081106001600160401b03821117610cb057604052565b60c081019081106001600160401b03821117610cb057604052565b604081019081106001600160401b03821117610cb057604052565b90601f801991011681019081106001600160401b03821117610cb057604052565b6001600160401b038111610cb05760051b60200190565b60206040818301928281528451809452019201905f5b818110610da65750505090565b8251845260209384019390920191600101610d99565b5190811515820361019457565b51906001600160a01b038216820361019457565b519062ffffff8216820361019457565b51908160020b820361019457565b91908260a091031261019457604051610e1381610c95565b6080610e5f818395610e2481610dc9565b8552610e3260208201610dc9565b6020860152610e4360408201610ddd565b6040860152610e5460608201610ded565b606086015201610dc9565b910152565b90610e6e82610d6c565b610e7b6040519182610d4b565b8281528092610e8c601f1991610d6c565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610ef65750505090565b8251845260209384019390920191600101610ee9565b61018060c0610f7e9360208452610f27602085018251610e96565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610ed9565b90565b939291925f516020615afd5f395f51905f525483158015611250575b611248575b50610fcc7f0000000000000000000000000000000000000000000000000000000000000000612ac9565b92836111a7575b610fdb612b58565b9460018060a01b038651169660405197633fe552eb60e01b89525f516020615afd5f395f51905f5260048a0152602489015260043560018060a01b0381168091036101945760448901526024356001600160a01b0381169081900361019457606489015260443562ffffff81168091036101945760848901526064358060020b8091036101945760a48901526084356001600160a01b038116908190036101945760c48901521515938460e489015260020b61010488015260020b61012487015260e0866101448173__$b37d8808673a650b3481d88bc26a627692$__5af4801561065c575f965f905f92611151575b50604051946110db602087610d4b565b5f86525f368137604051986110ef8a610cdf565b6110f7612be3565b5089526020890152600290810b60408901520b606087015260808601526001600160a01b031660a085015260c084015261114757506105d4610a0b6111459260405192839160208301610f0c565b565b9061114591612c3c565b9750505060e03d60e0116111a0575b61116a8188610d4b565b860160e087820312610194576111809087610dfb565b61119860c061119160a08a01610ded565b9801610ded565b90965f6110cb565b503d611160565b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561065c575f9161120e575b50610fd3576344863e8560e11b5f5260045ffd5b90506020813d602011611240575b8161122960209383610d4b565b810103126101945761123a90610dbc565b5f6111fa565b3d915061121c565b92505f610fa2565b50808411610f9d565b903590601e198136030182121561019457018035906001600160401b03821161019457602001918160051b3603831361019457565b92919061129a81610d6c565b936112a86040519586610d4b565b602085838152019160051b810192831161019457905b8282106112ca57505050565b81358152602091820191016112be565b3580151581036101945790565b6001600160401b038111610cb057601f01601f191660200190565b6003111561066757565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610194578035906003821015610194576020810135906001600160401b03821161019457019183601f84011215610194578235611385816112e7565b936113936040519586610d4b565b81855260208501956020838301011161019457815f9260208093018837850101526113bd82611302565b8115611a7f57506113cd81611302565b600181036114c25750906113df612b58565b825183019260208401926020828603126101945751906001600160401b0382116101945701926101609084900312610194576040519161141e83610cdf565b61142b8160208601610dfb565b835261143960c08501610dbc565b602084015261144a60e08501610ded565b604084015261145c6101008501610ded565b606084015261012084015160808401526114796101408501610dc9565b60a0840152610160840151906001600160401b0382116101945760206114a4926114ae960101612fe1565b60c0830152612c3c565b6040516114bc602082610d4b565b5f815290565b6002906114ce81611302565b03611a705780518101916020828403126101945751906001600160401b03821161019457019060a082820312610194576040519061150b82610c95565b61151760208401610dc9565b825260408301516001600160401b0381116101945760208061153d930191850101612fe1565b80602083015261154f60608401610dc9565b9182604082015261156d60a060808601519586606085015201610dc9565b6080820181905290516001600160a01b0390811690821615611a61578251918215611a34579392905f945f94871515935b8587106115d0575b505050505050508181106115bb5750506114ae565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966115e18883612c28565b51805f525f516020615abd5f395f51905f5260205260405f206004810154918260601c8015611a34578803611a5257600160ff8460501c1661162281611302565b03611a4357600382015492600283015492835f525f516020615add5f395f51905f5260205260405f206040519061165882610c95565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b6060850181905292015416608083015215611a34576116cd60a082207f0000000000000000000000000000000000000000000000000000000000000000613a3d565b5050905060ff8460581c165f14611a25578360181c60020b9060020b12155b611a16576117ae946116fd836135a9565b9061170e60ff8660581c168461354e565b905f525f516020615a9d5f395f51905f5260205260405f2060018060a01b0382165f5260205260405f208260020b5f5260205261175d8460405f2060ff60501b19881660048301558386613bcb565b50604061176c8960801c613af6565b81519061177882610cc4565b8760020b82528760181c60020b602083015282820152876060820152815180998192632d35e7ed60e11b83528760048401613b1c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760028e957f73544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde958f9560c09660ff9c5f926119e5575b508160801d5f81600f0b1361196b575b505f82600f0b136118e6575b50505001549160018060a01b031697889660405193845260581c161515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b03861682036118c4575061189b926001600160801b03909216919050613a30565b9685806118ba575b6118b55760010195949392919061159e565b6115a6565b50888810156118a3565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b6020909201516001600160801b0390911691611953917f00000000000000000000000000000000000000000000000000000000000000009184916001600160a01b0391821691167f000000000000000000000000000000000000000000000000000000000000000061442e565b8a8960581c1615611966575b8f80611835565b61195f565b83516001600160801b0391909116906119d5907f00000000000000000000000000000000000000000000000000000000000000009083906001600160a01b0386811691167f000000000000000000000000000000000000000000000000000000000000000061442e565b8d8c60581c161561182957611829565b611a0791925060403d8111611a0f575b6119ff8183610d4b565b810190613b06565b50905f611819565b503d6119f5565b6374169b5760e11b5f5260045ffd5b8360020b9060020b13156116ec565b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b91809391505183019260208401916020828603126101945751906001600160401b03821161019457019261012090849003126101945760405192611ac284610c95565b611acf8260208301610dfb565b8452611add60c08201610dbc565b916020850192835260e08201516001600160401b0381116101945760209083010181601f8201121561019457805190611b1582610d6c565b91611b236040519384610d4b565b80835260208084019160051b8301019184831161019457602001905b828210612a725750505060408601526101008201516001600160401b038111610194576020908301019080601f83011215610194578151611b7f81610d6c565b92611b8d6040519485610d4b565b81845260208085019260051b82010192831161019457602001905b828210612a5a5750505084840152611bc39061012001610dc9565b9160808401928352835192611bd784613056565b92835f525f516020615add5f395f51905f52602052600160405f20015460b81c60020b156129b9575b611c2d60a086207f0000000000000000000000000000000000000000000000000000000000000000613a3d565b5050929050611c3f825115158761354e565b855f525f516020615a7d5f395f51905f5260205260405f20549160018060a01b03905116925115159360405196611c7588610d15565b875260020b602087015260018060a01b0316604086015283850152608084015260a0830152611ca8604085015151610e64565b915f5b604086015190815181101561299c5760208488015192818360051b80920101519301015160a084015115158588015160020b905f1461298c578160020b01627fffff198112627fffff821317612978575b60a08501511580159061297157815b60405191632939447b60e11b835260048301528560248301528360020b60448301528060020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f9261292e575b506001600160801b038216156128cf57611e75604060a08951600180831b03838c015116600180841b0360808d015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052845f2091611dc68354612c0d565b8093558551938452602084015288858401528d83015260808201522095815198611def8a610d15565b8d8a52600282810b60208c015285900b838b01526001600160801b038681168d8c01521660808a015260a0808a018890528a01518251901515955f959192909190611e3984610cc4565b600290810b84520b60208301526001600160801b0316828201528a81018790528151632d35e7ed60e11b81529283918291908f60048401613b1c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561065c575f9161290f575b508060801d90600f0b835f146128e557505f81600f0b125f146128de57611ed8906143ed565b6001600160801b03165b915b6001600160801b038316156128cf57608087015183906001600160801b0390811690821681116128bc575b505086518051909190611f4c906001600160a01b0316307f000000000000000000000000000000000000000000000000000000000000000061493b565b6020830151909190611f88906001600160a01b0316307f000000000000000000000000000000000000000000000000000000000000000061493b565b9181156128b5575f915b156128ae5730915b5f82138061289c575b6127f9575b505f811261262d575b505f82138061261b575b612575575b505f811261237e575b5060019660a0929091506001600160801b03811661235b575b50818101515f525f516020615abd5f395f51905f52602052600260405f2061202d600382018a8060801b0387168b8060801b03198254161781558a8060801b038d8601511690613ba8565b602083015160048201908c6001600160581b038d845490604089015160181b65ffffff00000063ffffffff60301b8684015160301b169260ff60581b8d820151151560581b169660806001600160601b0319920151901b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff1916171691161717171617179055895191829101555f525f516020615a9d5f395f51905f5260205260405f208780841b0360408a0151168880851b03165f5260205260405f208460020b5f5260205260405f20600281019061211361210d86845460801c61463c565b83613ba8565b89515f525f516020615a5d5f395f51905f5260205260405f208980861b0360408c0151168a80871b03165f5260205260405f208b8451015160020b8a8060801b0384541615612329575b50508383015190898101908282549182155f1461230857555b825f525f516020615abd5f395f51905f526020528a60405f20015555878060801b03888060801b0389808060801b03845416011616888060801b03198254161790550151858060a01b036080880151165f525f516020615b1d5f395f51905f5260205260405f20868060a01b03604089015116878060a01b03165f526020527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c061222e60405f20898060801b0386169054613a30565b94888060a01b0360808b0151165f525f516020615b1d5f395f51905f5260205260405f20898060a01b0360408c0151168a8060a01b03165f526020528560405f2055888060a01b0360808b01511693898060a01b0360408c015116958b805193602060a0830151151592015160020b91604051958652602086015260020b60408501528d8401528a8060801b0316608083015260a0820152a3838060a01b036080860151165f516020615a3d5f395f51905f526020868060a01b0360408901511693604051908152a36123018287612c28565b5201611cab565b5050805f525f516020615abd5f395f51905f526020528260405f2055612176565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff60405f2092161b81541790555f8061215d565b612378908251848b015115158a80871b0360808d015116916145ff565b5f611fe2565b61238790613af6565b60208201519091906001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612565575b50602001516001600160a01b0316806124b95750604051630476982d60e21b81529690602090889060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a09361248b575b505b91819750611fc9565b6124ab9060203d81116124b2575b6124a38183610d4b565b810190612aba565b505f612480565b503d612499565b6124ee91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906147f8565b604051630476982d60e21b8152956020876004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a093612547575b50612482565b61255e9060203d81116124b2576124a38183610d4b565b505f612541565b5f61256f91610d4b565b5f612415565b60208301516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916125d1918791600485016149b7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611fc0575f61261591610d4b565b5f611fc0565b506001600160a01b0381161515611fbb565b61263690613af6565b83516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576127e9575b5083516001600160a01b0316806127455750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612727575b505b5f611fb1565b61273e9060203d81116124b2576124a38183610d4b565b505f61271f565b61277a91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906147f8565b604051630476982d60e21b81526020816004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576127cb575b50612721565b6127e29060203d81116124b2576124a38183610d4b565b505f6127c5565b5f6127f391610d4b565b5f6126be565b84516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f9183918291612852918791600485016149b7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611fa8575f61289691610d4b565b5f611fa8565b506001600160a01b0381161515611fa3565b5f91611f9a565b3091611f92565b6128c7929350613b8f565b90825f611f0f565b63f8db18c360e01b5f5260045ffd5b505f611ee2565b90505f811215612908576128f8906143ed565b6001600160801b03165b91611ee4565b505f612902565b612927915060403d8111611a0f576119ff8183610d4b565b505f611eb2565b9091506020813d8211612969575b8161294960209383610d4b565b8101031261019457516001600160801b038116810361019457905f611d61565b3d915061293c565b8291611d0b565b634e487b7160e01b5f52601160045260245ffd5b6129969082613097565b90611cfc565b505050506105d49250610f7e915060405192839160208301610d83565b5f8481525f516020615add5f395f51905f526020908152604091829020875181546001600160a01b039182166001600160a01b031991821617835592890151600183018054958b0151898c015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608088015160029091018054919093169116179055611c00565b60208091612a6784610ded565b815201910190611ba8565b8151815260209182019101611b3f565b9190811015612a925760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101945790565b90816020910312610194575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561065c575f91612b26575b50151590565b90506020813d602011612b50575b81612b4160209383610d4b565b8101031261019457515f612b20565b3d9150612b34565b60405190612b6582610cfa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000811660208401527f0000000000000000000000000000000000000000000000000000000000000000166040830152565b60405190612bf082610c95565b5f6080838281528260208201528260408201528260608201520152565b5f1981146129785760010190565b805115612a925760200190565b8051821015612a925760209160051b010190565b612c468251613056565b91825f525f516020615a7d5f395f51905f5260205260405f2092612c6a8454612c0d565b809455805f525f516020615add5f395f51905f5260205260405f2093604051612c9281610c95565b85546001600160a01b0390811682526001870154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529701541660808201529415612e72575b60c083019384515115612e55576020840151151590835f525f516020615a9d5f395f51905f5260205260405f20612d13838961354e565b60018060a01b03165f5260205260405f209460a0600180821b039101511693865151965f5b888110612d4b5750505050505050505050565b612d56818351612c28565b51805f525f516020615abd5f395f51905f5260205260405f20600481015488600160ff8360501c16612d8781611302565b149182612e47575b82612e34575b82612e21575b5050612daf575b5050600101975b97612d38565b855160a08d208d91612dd791612dcd916001600160a01b0316613a3d565b505090508361357d565b15612e185760019392828b92612def612e11956135a9565b60020b5f528d60205260405f20905f516020615afd5f395f51905f528b6135c9565b905f612da2565b50505097612da9565b60301c63ffffffff16109050885f612d9b565b91508860ff8360581c1615151491612d95565b600284015488149250612d8f565b929350505061114592505f516020615afd5f395f51905f526130b4565b9350815193606085015160020b612cdc5763c256622b60e01b5f5260045ffd5b81601f8201121561019457805190612ea9826112e7565b92612eb76040519485610d4b565b8284526020838301011161019457815f9260208093018386015e8301015290565b906020828203126101945781516001600160401b03811161019457610f7e9201612e92565b60405190816105e2816105d45f9460016020612f259801526040808401526060830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612f615750565b612f74903d805f833e6106528183610d4b565b50565b5f546001600160a01b03163303610a8857565b5f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5460ff16908115612fc2575090565b6001600160a01b03165f9081526002602052604090205460ff16919050565b9080601f83011215610194578151612ff881610d6c565b926130066040519485610d4b565b81845260208085019260051b82010192831161019457602001905b82821061302e5750505090565b8151815260209182019101613021565b9061305095949392915f60a0526149d9565b60a05190565b604051613067602082018093610e96565b60a0815261307660c082610d4b565b51902090565b60020b5f190190627fffff198212627fffff83131761297857565b600291820b910b0390627fffff198212627fffff83131761297857565b906080830191825115613548576130cb8451613056565b602085015115908115613534578551602001519092906001600160a01b03165b60018060a01b031695835f526005820160205260405f2060018060a01b0388165f5260205260405f2096845f526006830160205260405f209060018060a01b03165f5260205260405f209160018101945f526004810160205260405f2054965f905195604084015160020b91606085015160020b9560608651015160020b935b898310613182575b50505050505050505050505050565b5f9d95969798999a9b9c9d50895f1461352857888160020b13155b6135205760020b845f8183071291050393895f14613426578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159784895f146134115750610194578392817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8a1561340657898660020b13155b6133fd57156133e157845f528160205260405f2098895480156133c25793909192935b801515806133b9575b156133a65790818f959493925f528660205260405f208054966004820154600160ff8260501c166132e581611302565b0361339b5760301c63ffffffff1614613367578f518c5160a090206133219161331791906001600160a01b0316613a3d565b505090508261357d565b15613353578f60019392613346928f8f8f81519160a08a80821b0391015116956135c9565b0193925b939091926132ac565b505050505050505050975050505050505050565b50509c9b9a9950949091939796959d92505b8815613396576133889061307c565b9b9a919b969290939661316b565b613388565b50505050939261334a565b509b9a999850939c91929695949c613379565b508c82106132b5565b50949091939796959d929b9a999850885f14613396576133969061307c565b90929695949c919a99989793885f14613396576133969061307c565b50859d50613173565b898660020b13613289565b9391505060020b900360020b0260020b613279565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159784895f1461350657506101945783928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b9461327b565b93905060ff809250031660020b0160020b0260020b613500565b859d50613173565b888160020b121561319d565b8551519092906001600160a01b03166130eb565b50505050565b901561356b57516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b031661355f565b6004015460ff8160581c165f1461359d5760181c60020b9060020b121590565b60020b9060020b131590565b6004015460ff8160581c165f146135c35760181c60020b90565b60020b90565b60048501805460ff60501b1916600160511b179081905591969195605887901c60ff16959094939092906135fd878261354e565b9615613609908261354e565b83516020850151604090950151600387018054909b6001600160a01b039384169b94985f989095879590948116939116918d916136489060801c613af6565b6040519161365583610cc4565b8060020b835260181c60020b602083015260408201528c606082015260405180988192632d35e7ed60e11b8352600483019161369092613b1c565b03815a6040945f91f198891561065c576137398f9a8e938a88819b8b9689955f925f91613a0b575b50919261372d926001600160a01b0386166139f5578460801d945b6001600160a01b0387166139de57600f0b955b6001600160a01b03166139d4575f9f5b6001600160a01b03166139c8575060045f995b01549560ff8760581c165f146139b75760208201516001600160a01b031692613dab565b96879360601c90614160565b97909d5f82600f0b1380156139ab575b613991575b505050505060018060801b038b5416915f60028a019961377b613775868d5460801c613b8f565b8c613ba8565b60018a0186549060018801928354928315861461397f578082555b8015861461396c57506001915001555b8a546001600160801b031680613949575b50818655556137c5846135a9565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b0390541615613914575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612978576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f516020615a3d5f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613804565b8b546001600160801b03191683199091016001600160801b0316178b555f6137b7565b85525060205260408320600101556137a6565b83865282602052806040872055613796565b61399e959a508990614160565b9050945f8080808061374e565b505f83600f0b13613749565b81516001600160a01b031692613dab565b600490600f0b99613709565b8060801d9f6136f6565b6139ef9082600f0b90600f0b613b6a565b956136e6565b613a058160801d8660801d613b6a565b946136d3565b61372d9350613a29915060403d604011611a0f576119ff8183610d4b565b90926136b8565b9190820180921161297857565b91906020906040518281019182526006604082015260408152613a61606082610d4b565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561065c575f92613ac2575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011613aee575b81613ade60209383610d4b565b810103126101945751905f613a9a565b3d9150613ad1565b600160ff1b8114612978575f0390565b9190826040910312610194576020825192015190565b9061016092613b2d83606093610e96565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761297857565b6001600160801b03918216908216039190821161297857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f6002880197613bfc613bf6888b5460801c613b8f565b8a613ba8565b835490600185019182549182158514613d8c578181555b81158514613d6b576001915001555b88546001600160801b031680613d48575b5081845555613c41826135a9565b9660028301545f525f516020615a5d5f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615613d13575b5050015460601c90815f525f516020615b1d5f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116129785760205f516020615a3d5f395f51905f5291835f525f516020615b1d5f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613c89565b89546001600160801b03191683199091016001600160801b03161789555f613c33565b5083525f516020615abd5f395f51905f526020526001604084200155613c22565b8285525f516020615abd5f395f51905f52602052816040862055613c13565b9290939193604051613dbc81610d30565b606081525f6020820152936001600160a01b0381169182613ed9575b505084516001600160a01b0392831692169050818103613ed4575060208401516001600160a01b03165b6001600160a01b03166020840152604080519490613e208187610d4b565b60018652601f1981015f5b818110613ea05750508495612f7494955262ffffff818301511691606081015160020b90608060018060a01b039101511691805193613e6b602086610d4b565b5f8552815195613e7a87610c95565b8652602086015284015260608301526080820152835190613e9a82612c1b565b52612c1b565b6020908351613eae81610c95565b5f81525f838201525f858201525f60608201526060608082015282828b01015201613e2b565b613e02565b60405163442f7de960e11b8152600481018490526001600160a01b03919091169190602081602481865afa5f9181614122575b50613f18575b50613dd8565b60ff6004911610159081614112575b50613f34575b8080613f12565b5f91945060246040518096819363f3ffe14b60e01b835260048301525afa92831561065c575f93613fa9575b50828051805115159081613f82575b50613f7a5780613f2d565b925050915090565b6001600160a01b039150613f9590612c1b565b5151166001600160a01b038316145f613f6f565b9092503d805f833e613fbb8183610d4b565b810190602081830312610194578051906001600160401b03821161019457016040818303126101945760405191613ff183610d30565b81516001600160401b0381116101945782019080601f830112156101945781519161401b83610d6c565b926140296040519485610d4b565b80845260208085019160051b830101918383116101945760208101915b83831061406d57505050505061406191602091845201610dc9565b6020820152915f613f60565b82516001600160401b0381116101945782019060a0828703601f190112610194576040519061409b82610c95565b6140a760208401610dc9565b82526140b560408401610ddd565b60208301526140c660608401610ded565b60408301526140d760808401610dc9565b606083015260a0830151916001600160401b0383116101945761410288602080969581960101612e92565b6080820152815201920191614046565b61411c915061436f565b5f613f27565b9091506020813d602011614158575b8161413e60209383610d4b565b81010312610194575160ff8116810361019457905f613f0c565b3d9150614131565b9591939092935f81600f0b135f14614367576001600160801b0316935b5f81600f0b135f14614360576001600160801b03165b60208201519151805190926001600160a01b03169015614351576141c0906141ba84612c1b565b51614655565b90811561434b5786925b821561433a5760208201516001600160a01b0316975b83156143325750925b6001600160801b0316806142e6575050509594919293955b95926001926020945b835185101561428e57879861425a61423f989961422d6001946141ba8a8a612c28565b9a9093858060801b0316600f0b6143ed565b600f0b8a84604051936142528d86610d4b565b5f85526146dd565b828060801b0316975f146142805786828060a01b03910151165b9401939796959761420a565b818060a01b03905116614274565b979691959094508793509150856001600160801b0381166142b1575b5050505050565b6142bd9284869361442e565b6001600160a01b0316156142d5575b808080806142aa565b6001600160a01b031692505f6142cc565b91614318916142fb6143279594600f0b6143ed565b916040519261430b602085610d4b565b5f8452600f0b918c6146dd565b6001600160801b03169061463c565b959491929395614201565b9050926141e9565b81516001600160a01b0316976141e0565b826141ca565b6319dcad4d60e31b5f5260045ffd5b505f614193565b505f9361417d565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f91816143b1575b50610f7e57505f90565b9091506020813d6020116143e5575b816143cd60209383610d4b565b81010312610194576143de90610dbc565b905f6143a7565b3d91506143c0565b600f0b60016001607f1b03198114612978575f0390565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b5f9491906001600160a01b0382166145a9576001600160a01b031690813b156145a5578461447792879283604051809681958294630b0d9c0960e01b8452309060048501614404565b03925af1801561458557908591614590575b50506001600160a01b0316916001600160801b031690823b1561458157604051630d0e30db60e41b8152848160048186885af180156145855790859161456c575b5060405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925291602091839160449183915af1908115614561578291614523575b50156145145750565b6332067e4160e01b8152600490fd5b90506020813d602011614559575b8161453e60209383610d4b565b810103126145555761454f90610dbc565b5f61450b565b5080fd5b3d9150614531565b6040513d84823e3d90fd5b8161457691610d4b565b61458157835f6144ca565b8380fd5b6040513d87823e3d90fd5b8161459a91610d4b565b61458157835f614489565b8580fd5b92945092916001600160a01b03169050803b15610194576145e4935f809460405196879586948593630b0d9c0960e01b855260048501614404565b03925af1801561065c576145f55750565b5f61114591610d4b565b90926001600160801b03169190821561354857611145931561462a57516001600160a01b03166147f8565b602001516001600160a01b03166147f8565b6001600160801b03918216908216019190821161297857565b9061465e612be3565b5081516001600160a01b0382811692911690818310156146d5575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b039101511692604051946146b386610c95565b85526001600160a01b0316602085015260408401526060830152608082015291565b508190614679565b9093929160209181156147d9576147455f6401000276a4975b6147766040519561470687610cfa565b15158087528787018981526001600160a01b03909b16604080890191825251633cf3645360e21b81529b919a8c98899788969294926004880190610e96565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610c71565b03926001600160a01b03165af192831561065c575f936147a5575b505f130361479f57600f0b90565b60801d90565b9092506020813d6020116147d1575b816147c160209383610d4b565b810103126101945751915f614791565b3d91506147b4565b6147455f73fffd8963efd1fc6a506488495d951d5263988d25976146f6565b9091906001600160a01b03811690816148865750505f80808093855af11561481d5750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156148d75750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561065c575f91614988575090565b90506020813d6020116149af575b816149a360209383610d4b565b81010312610194575190565b3d9150614996565b6001600160a01b03918216815291166020820152604081019190915260600190565b606060a05291959491936001600160a01b0390921691908215615a2d575f6080604051614a0581610c95565b614a0d612be3565b815282602082015260a051604082015260a05160a05182015201525f90845183518103615a1e575f905b8082106159e7575050614a8260405195614a5087610c95565b82875298151560208701818152604088019a909a5260a0518701948552608087019586526001600160a01b039261354e565b168061588857503403615879575b614a9984612ac9565b614c22576040805193602080860152610160850197614abb8387018351610e96565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110614c0c575050505194603f1983820301610120840152602080875192838152019601905f5b818110614bf357505050916105d4614b6083614b44614b84955f9899899860018060a01b0390511661014083015203601f198101835282610d4b565b6040519283918760208401526040808401526060830190610c71565b6040519485809481936348c8949160e01b8352602060048401526024830190610c71565b03926001600160a01b03165af190811561065c575f91614bd9575b508051810190602081830312610194576020810151916001600160401b03831161019457614bd4926020809201920101612fe1565b60a052565b614bed91503d805f833e6106528183610d4b565b5f614b9f565b825160020b885260209788019790920191600101614b08565b8251895260209889019890920191600101614ae0565b9193949290845193614c3385613056565b91825f525f516020615add5f395f51905f52602052600160405f20015460b81c60020b156157d7575b614c6960a0872085613a3d565b50509050614c7a835115158861354e565b90845f525f516020615a7d5f395f51905f5260205260405f20549260018060a01b039051169351151594604051608052614cb5608051610d15565b6080515260020b6020608051015260018060a01b03166040608051015260a051608051015260808051015260a06080510152614cf5604085015151610e64565b915f5b60408601519081518110156157cb576020835192818360051b80920101519301015160a06080510151151560a05188015160020b905f146157ba578160020b01627fffff198112627fffff82131761297857925b60805160a00151158015906157b35784915b60405191632939447b60e11b835260048301528060248301528360020b60448301528560020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f92615770575b506001600160801b038216156128cf5760808051805160408281015192909301516001600160a01b039081165f8181527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528590208054614eda969560a095949293921690614e2490612c0d565b809355855193845260208401528885840152835183015260808201522095815193614e4e85610d15565b8d85528160020b60208601528960020b8386015260018060801b03861660a05186015260018060801b031660808501528660a085015260a060805101511515945f99835192614e9c84610cc4565b600290810b84520b60208301526001600160801b03168282015260a05181018790528151632d35e7ed60e11b81529283918291908f60048401613b1c565b03815f6001600160a01b038e165af190811561065c575f91615751575b508060801d90600f0b835f1461572757505f81600f0b125f1461572057614f1d906143ed565b6001600160801b03165b915b6001600160801b038316156128cf5760808201516001600160801b03908116908416811161570c575b5081518051909190614f6e906001600160a01b0316308c61493b565b906020830192614f8960018060a01b038551168d309061493b565b928215615705575f925b156156fd578c30935b5f8313806156eb575b615681575b50505f8112615555575b50505f821380615543575b6154df575b505f811261538f575b506040966001969594939260a09250906001600160801b038116615369575b50818101515f525f516020615abd5f395f51905f526020526002885f20615037600382018a8060801b0387168b8060801b03198254161781558a8060801b0386518601511690613ba8565b6020830151600482019081546001600160581b038d87015160181b9163ffffffff60301b8951608051015160301b1660ff60581b8a6080510151151560581b169365ffffff0000006001600160601b03196080805101518d511b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff19161716911617171716171790556080515191829101555f525f516020615a9d5f395f51905f52602052875f208780841b03896080510151168880851b03165f52602052875f208460020b5f52602052875f20600281019061511a61210d86845460801c61463c565b608051515f525f516020615a5d5f395f51905f52602052895f208980861b038b6080510151168a80871b03165f52602052895f2084518451015160020b8a8060801b0384541615615338575b50508383015190898101908282549182155f1461531857555b5f8381525f516020615abd5f395f51905f5260209081528d82208d019290925592909155825460808b811b8c90038083168d018116811990931692909217909455939094015182519283015160a08b901b8b900390811683525f516020615b1d5f395f51905f5286528b8320938c01511682529190935291889020547f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a39160c09161522c91861690613a30565b94888060a01b0360808051015116898060a01b03165f525f516020615b1d5f395f51905f52602052895f20898060a01b038b6080510151168a8060a01b03165f52602052858a5f2055888060a01b036080805101511693898060a01b038b60805101511695608051519260a060805101511515906020608051015160020b918e51958652602086015260020b8d85015260a0518401528a8060801b0316608083015260a0820152a3838060a01b03608080510151165f516020615a3d5f395f51905f526020868060a01b0388608051015116938851908152a361530f8288612c28565b52019050614cf8565b5050805f525f516020615abd5f395f51905f52602052828c5f205561517f565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff8c5f2092161b81541790555f80615166565b61538990825184608051015115158a80871b0360808051015116916145ff565b5f614fec565b61539e90969594939296613af6565b81519091906001600160a01b03908116908b163b15610194575f8b602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c576154cf575b50516001600160a01b0316806154605750604051630476982d60e21b81529590602090879060049082906001600160a01b038e165af190811561065c5760409760019760a093615442575b505b97509192939495614fcd565b6154599060203d81116124b2576124a38183610d4b565b505f615434565b61547591906001600160a01b038b16906147f8565b604051630476982d60e21b8152946020866004815f6001600160a01b038e165af190811561065c5760409760019760a0936154b1575b50615436565b6154c89060203d81116124b2576124a38183610d4b565b505f6154ab565b5f6154d991610d4b565b5f6153e9565b82516001600160a01b03908116908c163b1561019457828c61551b935f809460405196879586948593630b0d9c0960e01b8552600485016149b7565b03926001600160a01b03165af1801561065c5715614fc4575f61553d91610d4b565b5f614fc4565b506001600160a01b0381161515614fbf565b61555e90613af6565b81519091906001600160a01b03908116908e163b15610194575f8e602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c57615671575b50516001600160a01b03168061560c575060208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c576155ee575b505b5f80614fb4565b6156059060203d81116124b2576124a38183610d4b565b505f6155e5565b61562191906001600160a01b038e16906147f8565b5f60208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c57615653575b506155e7565b61566a9060203d81116124b2576124a38183610d4b565b505f61564d565b5f61567b91610d4b565b5f6155a9565b83516001600160a01b0390811692163b1561019457828f5f92836156bc9560405196879586948593630b0d9c0960e01b8552600485016149b7565b03926001600160a01b03165af1801561065c576156db575b8d90614faa565b5f6156e591610d4b565b5f6156d4565b506001600160a01b0381161515614fa5565b8c5f93614f9c565b3092614f93565b6157199197508390613b8f565b955f614f52565b505f614f27565b90505f81121561574a5761573a906143ed565b6001600160801b03165b91614f29565b505f615744565b615769915060403d8111611a0f576119ff8183610d4b565b505f614ef7565b9091506020813d82116157ab575b8161578b60209383610d4b565b8101031261019457516001600160801b038116810361019457905f614db4565b3d915061577e565b8291614d5e565b6157c49082613097565b9092614d4c565b5050505091505060a052565b5f8381525f516020615add5f395f51905f526020908152604091829020885181546001600160a01b039182166001600160a01b0319918216178355928a0151600183018054958c015160a080518e015160b81b62ffffff60b81b1662ffffff60a01b9290911b919091169284166001600160d01b0319909716969096179190911794909417909355608089015160029091018054919093169116179055614c5c565b636d295d4f60e11b5f5260045ffd5b34615879576040516370a0823160e01b815230600482015291602083602481855afa92831561065c575f936159b3575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561065c575f91615979575b5015615934576020602492604051938480926370a0823160e01b82523060048301525afa91821561065c575f92615943575b5061592e9192613a30565b14614a90575b637627529f60e01b5f5260045ffd5b91506020823d602011615971575b8161595e60209383610d4b565b810103126101945761592e915191615923565b3d9150615951565b90506020813d6020116159ab575b8161599460209383610d4b565b81010312610194576159a590610dbc565b5f6158f1565b3d9150615987565b9092506020813d6020116159df575b816159cf60209383610d4b565b810103126101945751915f6158b8565b3d91506159c2565b90926159f38488612c28565b51908115615a0f57600191615a0791613a30565b930190614a37565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b633b77ab5760e11b5f5260045ffdfea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf098b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1507:7026:77:-:0;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;7579:11;-1:-1:-1;;;;;1507:7026:77;7557:10;:34;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;1507:7026:77;;;-1:-1:-1;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;695:24:78;708:10;695:24;:::i;:::-;1507:7026:77;;;;3498:11;3446:113;3498:11;;3446:113;:::i;:::-;1507:7026;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1582:41;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;1500:62:0;;:::i;:::-;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;5975:141;1507:7026;;;;;;;:::i;:::-;6021:10;1507:7026;;;;;:::i;:::-;5986:129;1507:7026;5986:129;;1507:7026;;;;5986:129;;1507:7026;;;;;;;;;;5986:129;;1507:7026;;;;;5986:129;;1507:7026;;;;;;5975:141;;;1507:7026;5975:141;;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;5975:141;-1:-1:-1;;5975:141:77;;;;;;:::i;:::-;1507:7026;;;8492:31;;;1507:7026;;8492:31;5935:26;1507:7026;;8492:31;;1507:7026;;;;;;;;;;;:::i;:::-;8492:31;5591:98;;8492:31;;;;;;:::i;:::-;1507:7026;;;;;;;;;8473:51;;1507:7026;;8473:51;;1507:7026;;;;;;:::i;:::-;8473:51;1507:7026;;8473:11;-1:-1:-1;;;;;1507:7026:77;8473:51;;;;;;;;1507:7026;8473:51;;;;;1507:7026;8473:51;;;;;;:::i;:::-;;;;;:::i;:::-;1507:7026;8473:51;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;1500:62:0;;;:::i;:::-;1007:34:78;;;1507:7026:77;;;1106:18:78;;;;;;1507:7026:77;1126:3:78;1177:12;;;1507:7026:77;1177:12:78;;;;:::i;:::-;;:::i;:::-;1507:7026:77;;;;;1163:10:78;;;;;;:::i;:::-;;:::i;:::-;1507:7026:77;;;1145:17:78;1507:7026:77;;;;;;;;;;;;;;;;;;;1231:10:78;;;;;;:::i;:::-;1208:48;1507:7026:77;1243:12:78;;;;;;:::i;:::-;1507:7026:77;;;;;;;;;;;;;;1208:48:78;;1507:7026:77;1091:13:78;;1507:7026:77;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1700:51;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;853:20:78;1507:7026:77;;:::i;:::-;853:20:78;:::i;:::-;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;:::i;:::-;5296:13;1507:7026;;;;-1:-1:-1;;1507:7026:77;;;5323:3;5311:10;;;;;;1507:7026;;;;;;;;;;;;;;5399:14;;;;;;;;:::i;:::-;:26;;5395:327;;5323:3;;1507:7026;5323:3;;1507:7026;5296:13;;5395:327;5473:14;1507:7026;5473:14;;;:::i;:::-;1507:7026;;;:::i;:::-;5623:17;;;;;;:::i;:::-;1507:7026;;;;5623:17;1507:7026;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5591:98;1507:7026;;;5591:98;1507:7026;5591:98;1507:7026;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;8136:18;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;5623:17;1507:7026;;;5399:14;1507:7026;;8356:24;1507:7026;;5591:98;;;1507:7026;5591:98;;;:::i;:::-;;:::i;:::-;5395:327;;;1507:7026;;;;;;-1:-1:-1;;1507:7026:77;;;;;;735:10:7;-1:-1:-1;;;;;1507:7026:77;;;2339:24:1;2335:96;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;735:10:7;1507:7026:77;;;;;;;-1:-1:-1;;;;;1507:7026:77;;3052:40:0;;-1:-1:-1;3052:40:0;1507:7026:77;2335:96:1;2386:34;;;1507:7026:77;2386:34:1;735:10:7;1507:7026:77;;;;2386:34:1;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;1500:62:0;;:::i;:::-;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;;;-1:-1:-1;;;;;;1507:7026:77;3052:40:0;-1:-1:-1;;3052:40:0;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1629:65;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;1757:29;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;;1507:7026:77;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;5591:98;;1507:7026;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;5591:98;1507:7026;5591:98;;1507:7026;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;:::i;:::-;;:::o;3612:1537::-;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;3831:17;;:55;;;;3612:1537;3827:120;;3612:1537;4008:11;3975:45;4008:11;3975:45;:::i;:::-;4088:121;;;;3612:1537;4332:14;;:::i;:::-;1507:7026;;;;;;;;;;;;;;;;4429:177;;-1:-1:-1;;;;;;;;;;;1507:7026:77;4429:177;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:15;:177;:15;;:177;;;;;;-1:-1:-1;;;;;4429:177:77;;;3612:1537;1507:7026;;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;8136:18:77;;1507:7026;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;8356:24;4887:152;;1507:7026;5121:20;;;1507:7026;;;5121:20;;;1507:7026;5121:20;;;:::i;:::-;3612:1537::o;4887:152::-;4999:8;;;;:::i;4429:177::-;;;;;1507:7026;4429:177;1507:7026;4429:177;;;;;;;;:::i;:::-;;;1507:7026;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;4429:177;;;;;;;;;;4088:121;1507:7026;;-1:-1:-1;;;4126:45:77;;4160:10;1507:7026;4126:45;;1507:7026;;;4126:45;1507:7026;4126:16;-1:-1:-1;;;;;1507:7026:77;4126:45;;;;;;;-1:-1:-1;4126:45:77;;;4088:121;1507:7026;4088:121;1507:7026;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;4126:45;;;1507:7026;4126:45;;1507:7026;4126:45;;;;;;1507:7026;4126:45;;;:::i;:::-;;;1507:7026;;;;;;;:::i;:::-;4126:45;;;;;;-1:-1:-1;4126:45:77;;3827:120;3902:34;-1:-1:-1;3827:120:77;;;3831:55;3852:34;;;;3831:55;;1507:7026;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;:::o;:::-;;-1:-1:-1;1507:7026:77;;;:::o;6368:869::-;;1507:7026;;6485:11;-1:-1:-1;;;;;1507:7026:77;6463:10;:34;1507:7026;;6580:37;;1507:7026;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;:::i;:::-;6709:31;;6705:140;;1507:7026;;;;:::i;:::-;;6859:29;;1507:7026;;6945:14;;;;:::i;:::-;1507:7026;;1920:64:82;;;1507:7026:77;1920:64:82;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;2018:4:82;1507:7026:77;;;;:::i;:::-;;;;;2018:4:82;:::i;:::-;1507:7026:77;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;6368:869;:::o;6855:349::-;7009:26;1507:7026;;;;:::i;:::-;6995:40;7009:26;;1507:7026;;1418:69:88;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;1418:69:88;1507:7026:77;1418:69:88;;1507:7026:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;1922:23:88;1507:7026:77;;;;2045:15:88;;;1507:7026:77;;2108:22:88;;;-1:-1:-1;2146:9:88;-1:-1:-1;3073:16:88;;;;2141:1032;2157:14;;;;;;2141:1032;3234:30;;;;;;;;;;1507:7026:77;;6991:213;;6855:349;;1507:7026;;;;-1:-1:-1;1507:7026:77;2327:11:88;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2173:3:88;2210:11;;;;;;;;;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2327:11:88;;;1507:7026:77;;;;;2327:25:88;;1507:7026:77;;2411:20:88;;1507:7026:77;;;;;;;;;;;:::i;:::-;2491:48:88;1507:7026:77;;;2610:15:88;;1507:7026:77;3683:17:88;7009:26:77;3683:17:88;;1507:7026:77;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:26;1507:7026;;;;;;;;;;;;;;;;;3719:20:88;1507:7026:77;;3894:59:88;1507:7026:77;357:173:37;;6485:11:77;3894:59:88;:::i;:::-;3979:83;;;;1507:7026:77;;;;;3979:83:88;1507:7026:77;;;;;;7009:26;1507:7026;;7009:26;1507:7026;3999:30:88;;3979:83;1507:7026:77;;6850:208:83;4156:36:88;;;;:::i;:::-;1507:7026:77;4209:53:88;1507:7026:77;;;;;4209:53:88;;:::i;:::-;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;4721:64:88;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;2327:11:88;;;1507:7026:77;4721:64:88;;;:::i;:::-;;1507:7026:77;6991:27:83;1507:7026:77;;;6991:27:83;:::i;:::-;1507:7026:77;;;;;;:::i;:::-;;7009:26;1507:7026;;;;;;7009:26;1507:7026;;6908:124:83;;1507:7026:77;6908:124:83;;;1507:7026:77;6908:124:83;1507:7026:77;6908:124:83;;1507:7026:77;;;;;;;;;;6850:208:83;;;2327:11:88;6850:208:83;;;:::i;:::-;;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;6850:208:83;;;;;;;7009:26:77;6850:208:83;;4983:111:88;6850:208:83;;;1507:7026:77;6850:208:83;1507:7026:77;6850:208:83;-1:-1:-1;6850:208:83;;;3979:83:88;2052::34;;1507:7026:77;2052:83:34;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;4918:11:83;4914:248;;3979:83:88;2241:89:34;-1:-1:-1;2241:89:34;;;5175:11:83;5171:249;;3979:83:88;3683:17;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;7009:26;1507:7026;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;4983:111:88;-1:-1:-1;;;;;1507:7026:77;;2838:19:88;;2834:125;;-1:-1:-1;2973:27:88;;-1:-1:-1;;;;;1507:7026:77;;;;;-1:-1:-1;2973:27:88;:::i;:::-;3073:50;;;;;3979:83;3069:94;;1507:7026:77;;2146:9:88;;;;;;;;3069:94;3143:5;;3073:50;3093:30;;;;;3073:50;;2834:125;2884:60;;;;;-1:-1:-1;2884:60:88;2327:11;1507:7026:77;;;;;;;;;;;;-1:-1:-1;2884:60:88;5171:249:83;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;5318:4:83;;7119::77;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;;;;6485:11;5318:4:83;:::i;:::-;1507:7026:77;;;;;5341:12:83;5337:73;;5171:249;;;;;5337:73;;;4914:248;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;5061:4:83;;7119::77;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;;;;6485:11;5061:4:83;:::i;:::-;1507:7026:77;;;;;5080:72:83;4914:248;5080:72;4914:248;;6850:208;;;;;1507:7026:77;6850:208:83;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2327:11:88;-1:-1:-1;1507:7026:77;3979:83:88;1507:7026:77;7009:26;1507:7026;;7009:26;1507:7026;4032:30:88;;3979:83;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2327:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;2327:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;2327:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;6991:213;7176:17;;;-1:-1:-1;7176:17:77;;-1:-1:-1;7176:17:77;6705:140;1507:7026;;;;;;3348:61:81;;;1507:7026:77;3348:61:81;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;;;;;;;;;:::i;:::-;;;;;;;;5107:8:81;;5147:27;;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;5261:39:81;1507:7026:77;;;;;5261:44:81;5257:108;;1507:7026:77;9192:46:82;1507:7026:77;357:173:37;;6485:11:77;9192:46:82;:::i;:::-;1507:7026:77;;;;;5538:52:81;1507:7026:77;;;;5538:52:81;;:::i;:::-;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5402:323:81;;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;5402:323:81;;;1507:7026:77;;5402:323:81;;1507:7026:77;;5402:323:81;;1507:7026:77;5747:37:81;1507:7026:77;;;5761:15:81;1507:7026:77;5747:37:81;:::i;:::-;5800:9;-1:-1:-1;5800:9:81;1507:7026:77;;;5815:15:81;1507:7026:77;;;5811:26:81;;;;;1507:7026:77;;;;5935:15:81;6406:190;;;1507:7026:77;6406:190:81;;;;;;;;;;1507:7026:77;5402:323:81;;1507:7026:77;;;6691:15:81;;;1507:7026:77;;;6643:64:81;7635:205;;;;7666:21;1507:7026:77;;;;;;;;;;;;;7635:205:81;1507:7026:77;5402:323:81;;1507:7026:77;;;;;6789:39:81;;;;1507:7026:77;;;;;;6859:83:81;;5611:16;6859:83;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;6859:15:81;:83;:15;;:83;;;;;;;-1:-1:-1;6859:83:81;;;6789:39;-1:-1:-1;;;;;;1507:7026:77;;6960:14:81;1507:7026:77;;9099:323:81;1507:7026:77;;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;;;-1:-1:-1;1507:7026:77;7105:17:81;1507:7026:77;;;-1:-1:-1;1507:7026:77;;7103:30:81;1507:7026:77;;7103:30:81;:::i;:::-;1507:7026:77;;;8009:323:81;;;;;1507:7026:77;8009:323:81;;;;;;;;;;;;1507:7026:77;8009:323:81;;;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;7176:223:81;;1507:7026:77;;;;7176:223:81;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;7176:223:81;;;1507:7026:77;;;7176:223:81;;1507:7026:77;;7176:223:81;;;1507:7026:77;;;5402:323:81;;1507:7026:77;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;:::i;:::-;;;;;;;;;9164:232:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;9164:232:81;;;1507:7026:77;9164:232:81;;;1507:7026:77;;;;;-1:-1:-1;;;9099:323:81;;1507:7026:77;;;;;;;5611:16:81;9099:323;;;:::i;:::-;;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;9099:323:81;;;;;;;-1:-1:-1;9099:323:81;;;6789:39;2052:83:34;;1507:7026:77;2052:83:34;2241:89;;;9518:207:81;;;;;9564:52;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;9564:11:81;:52;-1:-1:-1;;;9601:8:81;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9564:52:81;9518:207;;-1:-1:-1;;;;;1507:7026:77;;9743:17:81;1507:7026:77;;;7176:223:81;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;9817:35:81;-1:-1:-1;9813:112:81;;9518:207;-1:-1:-1;;9986:10:81;;1507:7026:77;;9986:10:81;;1507:7026:77;2114:78:83;;-1:-1:-1;;;;;1507:7026:77;2171:4:83;6485:11:77;2114:78:83;:::i;:::-;1507:7026:77;2282:13:83;;1507:7026:77;;;;2218:78:83;;-1:-1:-1;;;;;1507:7026:77;2171:4:83;6485:11:77;2218:78:83;:::i;:::-;2325:40;;;;;-1:-1:-1;2325:40:83;;2393;;;2171:4;2393:40;;-1:-1:-1;5579:6:83;;:31;;;2393:40;5575:115;;2393:40;5703:6;-1:-1:-1;5703:6:83;;5699:365;;2393:40;6078:6;-1:-1:-1;6078:6:83;;:31;;;2393:40;6074:115;;2393:40;6202:6;-1:-1:-1;6202:6:83;;6198:365;;2393:40;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;;;;;;1507:7026:77;;8682:132:81;;2393:40:83;7176:223:81;;;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2408:38:80;1507:7026:77;2368:15:80;;1507:7026:77;;;;;;;;;;;;871:1:84;;;;;;;1507:7026:77;;;;;7176:223:81;;;1507:7026:77;;2408:38:80;;:::i;:::-;1507:7026:77;7176:223:81;;1507:7026:77;5611:16:81;2456:15:80;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;7176:223:81;1507:7026:77;7176:223:81;;1507:7026:77;;;;-1:-1:-1;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;5402:323:81;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2735:17:80;;;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;3143:17:80;;1507:7026:77;3143:33:80;;1507:7026:77;;;;;3143:33:80;:::i;:::-;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;3272:14:80;;;:26;1507:7026:77;;;;;;;;;;;864:15:79;860:218;;2393:40:83;7176:223:81;;;;;1507:7026:77;1107:6:84;;;;1507:7026:77;;;;1128:18:84;;;1124:235;1128:18;;;1507:7026:77;1124:235:84;3594:343;-1:-1:-1;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;1507:7026:77;-1:-1:-1;3594:343:84;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:1:84;;;;;;;7176:223:81;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;3818:143:80;1507:7026:77;3679:55:80;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;;;;;3679:55:80;:::i;:::-;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;;5402:323:81;;1507:7026:77;;;;;;5402:323:81;1507:7026:77;;5402:323:81;;1507:7026:77;;;5402:323:81;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3818:143:80;1507:7026:77;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;3976:77:80;5855:99:81;;;;:::i;:::-;1507:7026:77;;5800:9:81;;1124:235:84;3594:343;;;-1:-1:-1;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;1507:7026:77;-1:-1:-1;3594:343:84;;1124:235;;860:218:79;846:396:31;1507:7026:77;846:396:31;;-1:-1:-1;846:396:31;;;;;;;1039:11:79;1676:170:31;1507:7026:77;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;1676:170:31;1507:7026:77;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;;;1039:28:79;1507:7026:77;;860:218:79;;;;8682:132:81;8794:8;8750:14;;;5402:323;;;1507:7026:77;;;;;;;;;5402:323:81;;1507:7026:77;;8794:8:81;;:::i;:::-;8682:132;;;6198:365:83;6257:3;;;:::i;:::-;1507:7026:77;2282:13:83;;1507:7026:77;;;;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;6276:31:83;;;;1507:7026:77;;-1:-1:-1;;;6276:31:83;;5611:16:81;6276:31:83;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;6276:31:83;;;;;;;;6198:365;-1:-1:-1;1507:7026:77;2282:13:83;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;4998:58:36;6325:29:83;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;6374:35:83;;1507:7026:77;;;;;;5611:16:81;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;6374:35:83;;;;;;;1507:7026:77;6374:35:83;1507:7026:77;6374:35:83;;;6321:232;;;6198:365;;;;;;6374:35;;;1507:7026:77;6374:35:83;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6321:232;6493:6;;1507:7026:77;6485:11;-1:-1:-1;;;;;1507:7026:77;;6493:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;6518:20:83;;1507:7026:77;;;5611:16:81;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;6518:20:83;;;;;;;1507:7026:77;6518:20:83;1507:7026:77;6518:20:83;;;6321:232;;;;6518:20;;;1507:7026:77;6518:20:83;;;;;;;;;:::i;:::-;;;;;6276:31;-1:-1:-1;6276:31:83;;;:::i;:::-;;;;6074:115;1507:7026:77;2282:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;6125:53:83;;;;1507:7026:77;;-1:-1:-1;;;6125:53:83;;1507:7026:77;-1:-1:-1;;1507:7026:77;;;;6125:53:83;;1507:7026:77;;5611:16:81;6125:53:83;;;:::i;:::-;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;6125:53:83;;;;;;;6074:115;6125:53;-1:-1:-1;6125:53:83;;;:::i;:::-;;6074:115;;6078:31;-1:-1:-1;;;;;;1507:7026:77;;6088:21:83;;6078:31;;5699:365;5758:3;;;:::i;:::-;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;5777:31:83;;;;1507:7026:77;;-1:-1:-1;;;5777:31:83;;5611:16:81;5777:31:83;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;5777:31:83;;;;;;;;5699:365;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;4998:58:36;5826:29:83;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;5875:35:83;;1507:7026:77;;;;;5611:16:81;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;5875:35:83;;;;;;;;5822:232;;;5699:365;;;5875:35;;;1507:7026:77;5875:35:83;;;;;;;;;:::i;:::-;;;;;5822:232;5994:6;;1507:7026:77;6485:11;-1:-1:-1;;;;;1507:7026:77;;5994:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;6019:20:83;;1507:7026:77;;5611:16:81;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;6019:20:83;;;;;;;;5822:232;;;;6019:20;;;1507:7026:77;6019:20:83;;;;;;;;;:::i;:::-;;;;;5777:31;-1:-1:-1;5777:31:83;;;:::i;:::-;;;;5575:115;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;5626:53:83;;;;1507:7026:77;;-1:-1:-1;;;5626:53:83;;1507:7026:77;-1:-1:-1;;1507:7026:77;;;;5626:53:83;;1507:7026:77;;5611:16:81;5626:53:83;;;:::i;:::-;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;5626:53:83;;;;;;;5575:115;5626:53;-1:-1:-1;5626:53:83;;;:::i;:::-;;5575:115;;5579:31;-1:-1:-1;;;;;;1507:7026:77;;5589:21:83;;5579:31;;2393:40;-1:-1:-1;2393:40:83;;;2325;2171:4;2325:40;;;9813:112:81;9879:35;;;;;:::i;:::-;9813:112;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;5611:16:81;-1:-1:-1;1507:7026:77;9564:52:81;;-1:-1:-1;9564:52:81;;9518:207;9662:52;-1:-1:-1;;9662:11:81;;-1:-1:-1;;;9699:8:81;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9662:52:81;9518:207;;;9662:52;;-1:-1:-1;9662:52:81;;9099:323;;;;1507:7026:77;9099:323:81;;;;;;;;;:::i;:::-;;;;;6859:83;;;;1507:7026:77;6859:83:81;;;;;;;;;1507:7026:77;6859:83:81;;;:::i;:::-;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;6859:83:81;;;;;;;-1:-1:-1;6859:83:81;;6789:39;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;5611:16:81;1507:7026:77;;-1:-1:-1;1507:7026:77;7635:205:81;7775:19;;;;:::i;:::-;7808:21;7635:205;;5811:26;;;;;3499:20;5811:26;;3499:20;5811:26;;1507:7026:77;;3499:20:81;;;1507:7026:77;3499:20:81;;;:::i;5257:108::-;-1:-1:-1;1507:7026:77;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:108:81;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;417:66:26:-;;;;;;;;;;;:::o;2217:141:33:-;1507:7026:77;;-1:-1:-1;;;2305:39:33;;417:66:26;2305:39:33;;;1507:7026:77;;417:66:26;;1507:7026:77;;2305:39:33;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;2305:39:33;;;;;;;-1:-1:-1;2305:39:33;;;2217:141;2305:46;;;2217:141;:::o;2305:39::-;;;417:66:26;2305:39:33;;417:66:26;2305:39:33;;;;;;417:66:26;2305:39:33;;;:::i;:::-;;;417:66:26;;;;;2305:39:33;;;;;;-1:-1:-1;2305:39:33;;7623:203:77;1507:7026;;;;;;:::i;:::-;-1:-1:-1;;;;;7732:11:77;1507:7026;;;;7773:21;1507:7026;;;;;;7815:4;1507:7026;;;;;7623:203::o;1507:7026::-;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;2036:2046:82:-;2379:36;2402:12;;2379:36;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;2448:31:82;1507:7026:77;;2448:31:82;:::i;:::-;1507:7026:77;;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2552:20:82;2548:152;;2036:2046;2714:13;;;;;;1507:7026:77;2714:25:82;2710:110;;1507:7026:77;2849:16:82;;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2966:47:82;;;;:::i;:::-;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;3138:17:82;;1507:7026:77;;3183:13:82;;;1507:7026:77;3218:9:82;-1:-1:-1;3229:10:82;;;;;;2036:2046;;;;;;;;;;:::o;3218:9::-;3275:16;:13;;;:16;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2450:16:82;3399:12;;1507:7026:77;;;;;;;;;;;:::i;:::-;3399:48:82;:100;;;;3218:9;3399:152;;;3218:9;3399:205;;;3218:9;3378:628;;;;3218:9;1507:7026:77;;;;3218:9:82;;;;;3378:628;1507:7026:77;;;357:173:37;;1507:7026:77;;3642:58:82;;9192:46;;-1:-1:-1;;;;;1507:7026:77;9192:46:82;:::i;:::-;3642:58;;;;;;:::i;:::-;3641:59;3637:114;;1507:7026:77;3787:36:82;;;;;;3978:12;3787:36;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;3978:12:82;-1:-1:-1;;;;;;;;;;;3978:12:82;;:::i;:::-;3378:628;;;;3637:114;3724:8;;;;;;3399:205;1507:7026:77;;;;3571:33:82;;-1:-1:-1;3399:205:82;;;;:152;1507:7026:77;;;;;;;;;;3519:32:82;3399:152;;;:100;1507:7026:77;3467:17:82;;1507:7026:77;3467:32:82;;;-1:-1:-1;3399:100:82;;2710:110;2784:4;;;;;;;;-1:-1:-1;;;;;;;;;;;2784:4:82;:::i;2548:152::-;2594:12;;;;2624:15;1507:7026:77;2624:15:82;;1507:7026:77;;;2548:152:82;2620:69;2653:36;;;-1:-1:-1;2653:36:82;2450:16;-1:-1:-1;2653:36:82;1507:7026:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;:::i;8393:138::-;1507:7026;;;8492:31;;;1507:7026;-1:-1:-1;8492:31:77;1507:7026;8492:31;1507:7026;8492:31;;1507:7026;;;;;;;;;;;:::i;:::-;8473:51;1507:7026;;8473:11;-1:-1:-1;;;;;1507:7026:77;8473:51;;;;;;;;8393:138;:::o;8473:51::-;;;;;-1:-1:-1;8473:51:77;;;;;;:::i;:::-;;8393:138::o;1796:162:0:-;1710:6;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;735:10:7;1855:23:0;1851:101;;1796:162::o;1279:152:78:-;311:1;1507:7026:77;;1363:17:78;1507:7026:77;;;303:10:78;1507:7026:77;;;1363:61:78;;;;1356:68;1279:152;:::o;1363:61::-;-1:-1:-1;;;;;1507:7026:77;311:1:78;1507:7026:77;;;1363:17:78;1507:7026:77;;;;;303:10:78;1507:7026:77;;;1279:152:78;-1:-1:-1;1279:152:78:o;1507:7026:77:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;417:66:26;;1507:7026:77;;;;;;;;;;1958:1171:81;;;;;;;;;;;;:::i;:::-;;;;:::o;874:123:55:-;1507:7026:77;;;974:15:55;;;1507:7026:77;;;:::i;:::-;974:15:55;;;;;;;:::i;:::-;1507:7026:77;964:26:55;;874:123;:::o;1507:7026:77:-;;;-1:-1:-1;;1507:7026:77;;-1:-1:-1;;1507:7026:77;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;:::o;4088:3441:82:-;;4246:17;;;1507:7026:77;;;4246:22:82;4242:59;;4333:36;4356:12;;4333:36;:::i;:::-;4398:16;;;1507:7026:77;;;4455:60:82;;;;4468:12;;4398:16;4468:22;1507:7026:77;4455:60:82;;;-1:-1:-1;;;;;1507:7026:77;4455:60:82;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;4570:17:82;;;4398:16;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;1507:7026:77;4677:16:82;;;4398;1507:7026:77;;-1:-1:-1;1507:7026:77;4677:35:82;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;4786:17:82;;;;1507:7026:77;-1:-1:-1;1507:7026:77;4836:16:82;;;4398;1507:7026:77;;-1:-1:-1;1507:7026:77;;4988:17:82;-1:-1:-1;1507:7026:77;;5116:14:82;1507:7026:77;5116:14:82;;1507:7026:77;;;5155:12:82;;;;1507:7026:77;;;5197:12:82;5155;5197;;:24;1507:7026:77;;;5231:2292:82;5238:19;;;;;;5231:2292;4088:3441;;;;;;;;;;;;;:::o;5231:2292::-;-1:-1:-1;5277:51:82;;;;;;;;;;;;;;;;1507:7026:77;;;;5293:16:82;;5277:51;5273:95;;1507:7026:77;846:396:31;;-1:-1:-1;846:396:31;;;;;;;4565:1682;;;;;;1676:170;1507:7026:77;1676:170:31;;4839:13;1676:170;1507:7026:77;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;4839:20:31;5014:11;;;;;;5164:194;;;;;;;1507:7026:77;;;;;;759:552:20;;1507:7026:77;;;;;;;759:552:20;;;;;;-1:-1:-1;;;;;759:552:20;4677:16:82;759:552:20;;;;;1507:7026:77;759:552:20;4570:17:82;759:552:20;;;;;;;4836:16:82;759:552:20;;;;;;;1507:7026:77;759:552:20;;;;;;;;;;1507:7026:77;;;;;;;;;;;;5164:194:31;4565:1682;;5541:54:82;;;;1507:7026:77;;;;5557:18:82;;5541:54;5609:57;;5684:12;5680:125;;5898:265;-1:-1:-1;5898:265:82;;4398:16;5898:265;1507:7026:77;-1:-1:-1;5898:265:82;;;;6181:18;;6177:131;;6322:22;;;;;6358:1092;6365:21;;;:44;;;6358:1092;6365:44;;;6524:286;;;;;;;-1:-1:-1;6524:286:82;;4398:16;6524:286;1507:7026:77;-1:-1:-1;6524:286:82;;;6832:12;4836:16;6832:12;;1507:7026:77;4786:17:82;1507:7026:77;;;;;;;;:::i;:::-;6832:48:82;6828:146;;1507:7026:77;;;;6995:34:82;6991:86;;1507:7026:77;;7152:12:82;;357:173:37;;;7099:67:82;;9192:46;;357:173:37;-1:-1:-1;;;;;1507:7026:77;9192:46:82;:::i;:::-;7099:67;;;;;;:::i;:::-;7098:68;7094:121;;7256:12;4786:17;7256:12;;7297:17;7256:12;;;;;;1507:7026:77;357:173:37;1507:7026:77;;;;;7297:17:82;;1507:7026:77;;7297:17:82;;:::i;:::-;1507:7026:77;7414:21:82;6358:1092;;;;;;;;7094:121;7190:7;;;;;;;;;;;;;;;;;;:::o;6991:86::-;7053:5;;;;;;;;;;;;;;;;;6358:1092;7473:39;;;;7489:12;;;:::i;:::-;5231:2292;;;;;;;;;;;7473:39;;;6828:146;6904:21;;;;;6947:8;;;6365:44;;;;;;;;;;;;;;;;;;6390:19;;;;6365:44;;6177:131;6228:39;;;;;;;;;;;;;;;;;;;;6244:12;;;:::i;5680:125::-;5725:39;;;;;;;;;;;;;;;;;5741:12;;;:::i;5609:57::-;5646:5;;;;;;5541:54;1507:7026:77;;;;5578:17:82;5541:54;;5164:194:31;1507:7026:77;;;;;;;;;;;;;5164:194:31;;4565:1682;1507:7026:77;4786:17:82;1507:7026:77;;;;;;1676:170:31;;1507:7026:77;1676:170:31;5702:13;1676:170;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;4786:17:82;1507:7026:77;;;;;;;5647:20:31;1507:7026:77;;5702:20:31;5869:11;;;;;;6019:213;;;;;;;1507:7026:77;;;1766:834:20;;;1507:7026:77;1766:834:20;-1:-1:-1;1766:834:20;;;;;;;;;;;;;;;;;;;;;;;;;1507:7026:77;;;;;;;;;;6019:213:31;4565:1682;;;6019:213;1507:7026:77;;;;;;;;;;;;;;;;;6019:213:31;;5273:95:82;5348:5;;;;;5277:51;1507:7026:77;;;;5312:16:82;;5277:51;;4455:60;4493:12;;1507:7026:77;4455:60:82;;;-1:-1:-1;;;;;1507:7026:77;4455:60:82;;4242:59;4284:7;;;;:::o;1430:176:80:-;;1555:43;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1555:43:80;-1:-1:-1;;;;;1507:7026:77;;1430:176:80:o;1555:43::-;1585:13;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1555:43:80;;9331:217:82;9458:17;;1507:7026:77;;;;;;9458:83:82;1507:7026:77;;;;;;;;;;9478:30:82;;9331:217;:::o;9458:83::-;1507:7026:77;;;;;9511:30:82;;9331:217;:::o;1253:171:80:-;1364:17;;1507:7026:77;;;;;;1364:53:80;1507:7026:77;;;;;;;1253:171:80;:::o;1364:53::-;1507:7026:77;;1253:171:80;:::o;7535:1520:82:-;7837:12;;;1507:7026:77;;-1:-1:-1;;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;7535:1520:82;;1507:7026:77;;;;;;;;;7535:1520:82;;;;;;7962:53;1507:7026:77;7535:1520:82;7962:53;:::i;:::-;8078:18;;8043:54;;;;:::i;:::-;1507:7026:77;;8509:17:82;;;1507:7026:77;8540:8:82;;;;1507:7026:77;;3205:15:83;;1507:7026:77;;3205:15:83;;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;;;;;;;3189:33:83;;1507:7026:77;;3189:33:83;:::i;:::-;8540:8:82;1507:7026:77;;;;;:::i;:::-;;7852:34:82;1507:7026:77;;;;;7852:34:82;1507:7026:77;8509:17:82;3094:145:83;;1507:7026:77;8540:8:82;3094:145:83;;1507:7026:77;3094:145:83;;;;1507:7026:77;8540:8:82;1507:7026:77;;;;;;;;3036:229:83;;7837:12:82;3036:229:83;;;;;;:::i;:::-;;;;8540:8:82;3036:229:83;-1:-1:-1;3036:229:83;;;;;;;4134:104;3036:229;;;;;;;;;;;;-1:-1:-1;;;3036:229:83;;;7535:1520:82;-1:-1:-1;3509:66:83;;4031:59;;-1:-1:-1;;;;;1507:7026:77;;;;2052:83:34;1507:7026:77;2052:83:34;3509:66:83;;-1:-1:-1;;;;;1507:7026:77;;;;2241:89:34;;3615:66:83;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;3724:60:83;;-1:-1:-1;;;;;1507:7026:77;;;3827:60:83;7837:12:82;-1:-1:-1;3827:60:83;;7837:12:82;1507:7026:77;3924:49:83;1507:7026:77;;;;;3924:49:83;1507:7026:77;;;8509:17:82;3944:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;4031:59:83;:::i;:::-;1507:7026:77;;;3094:145:83;1507:7026:77;4134:104:83;;:::i;:::-;1507:7026:77;;;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;4253:27:83;:58;;;;3924:49;4249:224;;3924:49;8646:66:82;;;;;1507:7026:77;;;;;;;;4375:17:80;-1:-1:-1;7852:34:82;4375:17:80;;1507:7026:77;4375:25:80;;1507:7026:77;;;;;4375:25:80;:::i;:::-;;;:::i;:::-;1507:7026:77;4446:17:80;;2079:369:84;;;1507:7026:77;2079:369:84;;;;;2530:20;;;;;;;1507:7026:77;;;2526:145:84;2748:20;;;;;;2784:6;1507:7026:77;2784:6:84;;;1507:7026:77;2744:145:84;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;2899:95:84;;2744:145;3187:167;;;;;4538:19:80;;;:::i;:::-;4615:17;4597;7852:34:82;4615:17:80;;1507:7026:77;;;-1:-1:-1;1507:7026:77;4597:17:80;8509::82;1507:7026:77;8540:8:82;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;3094:145:83;1507:7026:77;-1:-1:-1;1507:7026:77;4652:15:80;;1507:7026:77;7852:34:82;1507:7026:77;;;;;;;;;;1219:14:79;1215:218;;2744:145:84;7837:12:82;;4760:19:80;7837:12:82;;;1507:7026:77;3094:145:83;1507:7026:77;4760:19:80;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4874:69:80;;7837:12:82;;1507:7026:77;;;;;8540:8:82;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;8509:17:82;1507:7026:77;;;;;;;;;;;;;;3094:145:83;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;7852:34:82;1507:7026:77;;;;;;;;;;;;;;;;;;;;8728:320:82;;1507:7026:77;;8728:320:82;7535:1520::o;1215:218:79:-;846:396:31;7852:34:82;846:396:31;;-1:-1:-1;846:396:31;;;;;;;1393:11:79;1676:170:31;7852:34:82;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;1408:14:79;1507:7026:77;;1393:29:79;1507:7026:77;;1215:218:79;;;;2899:95:84;871:1;;-1:-1:-1;;;;;;871:1:84;1507:7026:77;;871:1:84;;;-1:-1:-1;;;;;1507:7026:77;871:1:84;;;-1:-1:-1;2899:95:84;;2744:145;3594:343;;-1:-1:-1;8509:17:82;3594:343:84;8540:8:82;3594:343:84;;1507:7026:77;3594:343:84;;2744:145;;2526;3594:343;;;;8509:17:82;3594:343:84;;8540:8:82;3594:343:84;;;2526:145;;4249:224:83;4351:111;;;;;;;:::i;:::-;4327:135;;4249:224;;;;;;;;4253:58;1507:7026:77;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;4284:27:83;4253:58;;3924:49;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;4031:59:83;:::i;3827:60::-;7837:12:82;2241:89:34;;;3827:60:83;;;3724;2052:83:34;1507:7026:77;2052:83:34;3724:60:83;;;3615:66;3657:24;2241:89:34;;;;;;;3657:24:83;:::i;:::-;3615:66;;;3509;3551:24;2052:83:34;1507:7026:77;2052:83:34;;1507:7026:77;2052:83:34;3551:24:83;:::i;:::-;3509:66;;;3036:229;4031:59;3036:229;;;;;8540:8:82;3036:229:83;8540:8:82;3036:229:83;;;;;;;:::i;:::-;;;;;1507:7026:77;;;;;;;;;;:::o;1580:996:30:-;;;14953:51;1580:996;1507:7026:77;;14953:51:30;;;1507:7026:77;;;414:1:30;1507:7026:77;398:19:30;;1507:7026:77;;14953:51:30;;;;;;:::i;:::-;1507:7026:77;14943:62:30;;1507:7026:77;;-1:-1:-1;;;1892:27:30;;;;;1507:7026:77;;;;;;;1892:27:30;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;1507:7026:77;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;14953:51;1892:27;;14953:51;1892:27;;;;;;417:66:26;1892:27:30;;;:::i;:::-;;;417:66:26;;;;;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;:::o;4066:884:80:-;;;;4713:11;4066:884;1507:7026:77;;;;;4350:15:80;;;1507:7026:77;;4375:17:80;-1:-1:-1;4375:17:80;;;1507:7026:77;4375:25:80;;1507:7026:77;;;;;4375:25:80;:::i;:::-;;;:::i;:::-;2079:369:84;;;4446:17:80;2079:369:84;;;;;2530:20;;;;;;;1507:7026:77;;;2526:145:84;2748:20;;;;;;4446:17:80;2784:6:84;;;1507:7026:77;2744:145:84;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;2899:95:84;;2744:145;3187:167;;;;;4538:19:80;;;:::i;:::-;4615:17;4375;4615;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;4652:15:80;1507:7026:77;-1:-1:-1;1507:7026:77;4652:15:80;;1507:7026:77;4375:17:80;1507:7026:77;;;;;;;;;;1219:14:79;1215:218;;2744:145:84;4713:11:80;;;1507:7026:77;4652:15:80;1507:7026:77;4760:26:80;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4809:26:80;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;4874:69:80;;4066:884::o;1215:218:79:-;846:396:31;4375:17:80;846:396:31;;-1:-1:-1;846:396:31;;;;;;;1393:11:79;1676:170:31;4375:17:80;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;4446:17:80;1676:170:31;1507:7026:77;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;1408:14:79;1507:7026:77;;1393:29:79;1507:7026:77;;1215:218:79;;;;2899:95:84;871:1;;-1:-1:-1;;;;;;871:1:84;1507:7026:77;;871:1:84;;;-1:-1:-1;;;;;1507:7026:77;871:1:84;;;-1:-1:-1;2899:95:84;;2744:145;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:84;;4446:17:80;3594:343:84;;;;;2744:145;;2526;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:84;;;;;;;2526:145;;7141:1271:83;;;;;;1507:7026:77;;;;;:::i;:::-;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;7433:570:83;;7141:1271;-1:-1:-1;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;448:51:36;;;8091:63:83;;-1:-1:-1;1507:7026:77;8125:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;8091:63:83;-1:-1:-1;;;;;1507:7026:77;;8164:21:83;;1507:7026:77;;;;;;;;;;:::i;:::-;8242:1:83;1507:7026:77;;-1:-1:-1;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;8210:34:83;;;;8254:151;8210:34;;;1507:7026:77;8327:7:83;;;1507:7026:77;;8349:15:83;1507:7026:77;8349:15:83;;1507:7026:77;;;;;;;;;;8373:9:83;;1507:7026:77;;;;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;;;;;;;:::i;:::-;;;;8275:130:83;;1507:7026:77;8275:130:83;;1507:7026:77;;8275:130:83;;1507:7026:77;;8275:130:83;;1507:7026:77;8254:15:83;;:151;;;;:::i;:::-;;;:::i;1507:7026:77:-;;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;8091:63:83;;;7433:570;1507:7026:77;;-1:-1:-1;;;7477:44:83;;;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;7477:44:83;1507:7026:77;;7477:44:83;;-1:-1:-1;;7477:44:83;;;7433:570;7473:520;;;7433:570;;;;7473:520;1507:7026:77;7477:44:83;1507:7026:77;;7568:12:83;;:41;;;;7473:520;7564:406;;;7473:520;;;;;7564:406;-1:-1:-1;1507:7026:77;;;7477:44:83;1507:7026:77;;;;;;;;;7646:50:83;;7477:44;7646:50;;1507:7026:77;7646:50:83;;;;;;;-1:-1:-1;7646:50:83;;;7564:406;7633:63;;7797:15;;1507:7026:77;;7797:26:83;;:87;;;;7564:406;7793:159;;;7564:406;;;7793:159;7912:17;;;;;;:::o;7797:87::-;-1:-1:-1;;;;;1507:7026:77;-1:-1:-1;7827:18:83;;;:::i;:::-;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;448:51:36;7797:87:83;;;7646:50;;;;;;-1:-1:-1;7646:50:83;;;;;;:::i;:::-;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7646:50:83;;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7568:41:83;7584:25;;;;:::i;:::-;7568:41;;;7477:44;;;;1507:7026:77;7477:44:83;;1507:7026:77;7477:44:83;;;;;;1507:7026:77;7477:44:83;;;:::i;:::-;;;1507:7026:77;;;;;;;;;;;;7477:44:83;;;;;;;-1:-1:-1;7477:44:83;;9569:1149;;;;;;;9938:1;1507:7026:77;;;9928:11:83;:34;9938:1;;;-1:-1:-1;;;;;1507:7026:77;;9928:34:83;9938:1;1507:7026:77;;;9987:11:83;:34;9938:1;;;-1:-1:-1;;;;;1507:7026:77;9987:34:83;10390:21;;;1507:7026:77;10413:15:83;;1507:7026:77;;10413:15:83;;-1:-1:-1;;;;;1507:7026:77;;1868:15:59;1507:7026:77;;2929:39:59;2145:7;;;;:::i;:::-;;2929:39;:::i;:::-;3001:30;;;;;;;;3059:50;;;;10390:21:83;3072:17:59;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;3059:50:59;3152:30;;;;;;;-1:-1:-1;;;;;1507:7026:77;3283:16:59;1507:7026:77;;3315:36:59;;;3279:234;;;;;;;2064:119;2264:13;2276:1;1507:7026:77;;2259:355:59;2296:3;1507:7026:77;;2279:15:59;;;;;2384:7;;2450:73;2490:28;2384:7;;2359:47;2276:1;2384:7;;;;;:::i;2359:47::-;1507:7026:77;;;;;;;;;;;2490:28:59;:::i;:::-;1507:7026:77;;;;;;;;;;;:::i;:::-;9938:1:83;1507:7026:77;;2450:73:59;:::i;:::-;1507:7026:77;;;;;;2553:50:59;;;;;1507:7026:77;;;;;;2566:17:59;;1507:7026:77;;2553:50:59;2296:3;1507:7026:77;2264:13:59;;;;;;;2553:50;1507:7026:77;;;;;;;;2553:50:59;;2279:15;;10311:118:83;2279:15:59;;;;-1:-1:-1;2279:15:59;;-1:-1:-1;2279:15:59;-1:-1:-1;10311:118:83;-1:-1:-1;;;;;1507:7026:77;;10440:272:83;;2259:355:59;9569:1149:83;;;;;:::o;10440:272::-;10585:4;;;;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;4998:58:36;10604:98:83;;10440:272;;;;;;;10604:98;-1:-1:-1;;;;;1507:7026:77;;-1:-1:-1;10604:98:83;;;3279:234:59;1507:7026:77;3429:72:59;1507:7026:77;3469:20:59;3397:105;1507:7026:77;;;;3469:20:59;:::i;:::-;1507:7026:77;;;;;;;;:::i;:::-;9938:1:83;1507:7026:77;;;;3429:72:59;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;3397:105:59;:::i;:::-;3279:234;;;;;;;;3152:30;;;;;;3059:50;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;3059:50:59;;3001:30;;;;1507:7026:77;;;;9938:1:83;1507:7026:77;;9938:1:83;1507:7026:77;9987:34:83;;9938:1;9987:34;;9928;;9938:1;9928:34;;;8418:263;1507:7026:77;;-1:-1:-1;;;8501:63:83;;-1:-1:-1;;;8501:63:83;;;1507:7026:77;;;;;;8501:63:83;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;8501:63:83;;1507:7026:77;;8501:63:83;;;8418:263;-1:-1:-1;8497:178:83;;8652:12;1507:7026:77;8652:12:83;:::o;8501:63::-;;;;1507:7026:77;8501:63:83;;1507:7026:77;8501:63:83;;;;;;1507:7026:77;8501:63:83;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;8501:63:83;;;;;;;-1:-1:-1;8501:63:83;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;:::o;9088:475:83:-;-1:-1:-1;;9088:475:83;;-1:-1:-1;;;;;1507:7026:77;;9223:121:83;;-1:-1:-1;;;;;1507:7026:77;;9354:49:83;;;;;1507:7026:77;9354:49:83;1507:7026:77;;;;;;;;;;;;;;;9354:49:83;;9389:4;9354:49;;;;;:::i;:::-;;;;;;;;;;;;;;9088:475;-1:-1:-1;;;;;;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;9413:36:83;;;;;1507:7026:77;;-1:-1:-1;;;9413:36:83;;;1507:7026:77;9354:49:83;1507:7026:77;9413:36:83;;;;;;;;;;;;;9088:475;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;9464:39:83;;-1:-1:-1;;;;;1507:7026:77;;;9354:49:83;9464:39;;1507:7026:77;;;;;;;;;;;;;9464:39:83;;1507:7026:77;;9464:39:83;;;;;;;;;;;9088:475;9463:40;;9459:98;;9088:475;:::o;9459:98::-;-1:-1:-1;;;9526:20:83;;9354:49;;9526:20;9464:39;;;1507:7026:77;9464:39:83;;1507:7026:77;9464:39:83;;;;;;1507:7026:77;9464:39:83;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;9464:39:83;;;1507:7026:77;;;;9464:39:83;;;-1:-1:-1;9464:39:83;;;1507:7026:77;;;;;;;;;9413:36:83;;;;;:::i;:::-;1507:7026:77;;9413:36:83;;;;1507:7026:77;;;;9413:36:83;1507:7026:77;;;;;;;;;9354:49:83;;;;;:::i;:::-;1507:7026:77;;9354:49:83;;;;;1507:7026:77;;;9223:121:83;1507:7026:77;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;-1:-1:-1;9268:45:83;;;;;;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;9268:45:83;;;;;;:::i;:::-;;;;;;;;;;;9327:7;:::o;9268:45::-;-1:-1:-1;9268:45:83;;;:::i;1701:281::-;;;-1:-1:-1;;;;;1507:7026:77;;1701:281:83;1817:11;;1813:48;;1943:32;;1890:43;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1943:32:83;:::i;1890:43::-;1920:13;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1943:32:83;:::i;1507:7026:77:-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;:::o;4545:484:59:-;;1507:7026:77;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;;734:50:36;;;1507:7026:77;;;4800:80:59;1507:7026:77;;;;;;448:51:36;;;4977:10:59;1507:7026:77;4977:10:59;;;1507:7026:77;;4989:18:59;;;1507:7026:77;;;;5009:12:59;1507:7026:77;;;;;5009:12:59;;1507:7026:77;;;4989:18:59;1507:7026:77;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;4977:10:59;4947:75;;1507:7026:77;4989:18:59;4947:75;;1507:7026:77;5009:12:59;4947:75;;1507:7026:77;4947:75:59;;;1507:7026:77;;4545:484:59:o;4800:80::-;;;;;;3525:709;;;;;3961:111;;4001:70;;;;1862:10:32;-1:-1:-1;1862:10:32;4001:70:59;;1862:10:32;1507:7026:77;;;;;;:::i;:::-;;;;;;3961:111:59;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;3961:111:59;;;1507:7026:77;;;;-1:-1:-1;;;3902:210:59;;1507:7026:77;;;;;;;;;;;3961:111:59;3902:210;;;;1862:10:32;:::i;:::-;;1507:7026:77;;1862:10:32;;;1507:7026:77;1862:10:32;;;;1507:7026:77;1862:10:32;-1:-1:-1;;;;;1507:7026:77;1862:10:32;;;1507:7026:77;1862:10:32;;;;;;;;;;:::i;:::-;3902:210:59;;-1:-1:-1;;;;;1507:7026:77;3902:210:59;;;;;;;-1:-1:-1;3902:210:59;;;4001:70;-1:-1:-1;;;4147:33:59;-1:-1:-1;;2241:89:34;;3525:709:59;:::o;4146:71::-;2052:83:34;;3525:709:59;:::o;3902:210::-;;;;3961:111;3902:210;;3961:111;3902:210;;;;;;3961:111;3902:210;;;:::i;:::-;;;1862:10:32;;;;1507:7026:77;;-1:-1:-1;3902:210:59;;;;;-1:-1:-1;3902:210:59;;4001:70;1862:10:32;-1:-1:-1;2042:49:32;4001:70:59;;;1472:2873:36;;;;-1:-1:-1;;;;;1507:7026:77;;;4998:58:36;1769:24;;1809:163;;-1:-1:-1;1809:163:36;;;;;;;2085:8;2081:127;;1765:2574;1472:2873::o;2081:127::-;3741:1424:22;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;1507:7026:77;3741:1424:22;5591:98:77;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;1765:2574:36;2238:1774;-1:-1:-1;2238:1774:36;;;;;;;;;1507:7026:77;;;;;;2238:1774:36;;1507:7026:77;;;;;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;2238:1774;3741:1424:22;-1:-1:-1;;;3741:1424:22;;2238:1774:36;3741:1424:22;;;;;;-1:-1:-1;;;2238:1774:36;3741:1424:22;;;;2238:1774:36;3741:1424:22;;;5591:98:77;3741:1424:22;;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;2238:1774:36;3741:1424:22;;;;;4268:28:36;;;3741:1424:22;;;;;;;1711:436:33;-1:-1:-1;;;;;1853:233:33;;;-1:-1:-1;1853:233:33;;;;;;;;;;;;;;;1507:7026:77;;-1:-1:-1;;;2117:21:33;;;;;1507:7026:77;;;;1853:233:33;1507:7026:77;;2117:21:33;;1507:7026:77;;;2117:21:33;;;;;;;-1:-1:-1;2117:21:33;;;2095:45;1711:436;:::o;2117:21::-;;;1853:233;2117:21;;1853:233;2117:21;;;;;;417:66:26;2117:21:33;;;:::i;:::-;;;417:66:26;;;;;1711:436:33;:::o;2117:21::-;;;-1:-1:-1;2117:21:33;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;:::o;1958:1171:81:-;1507:7026:77;2229:16:81;;1958:1171;;;;;-1:-1:-1;;;;;1507:7026:77;;;;1958:1171:81;2265:19;;1507:7026:77;;2282:1:81;1507:7026:77;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;3804:27:81;;1507:7026:77;;2282:1:81;3886:238;3902:10;;;;;;1507:7026:77;;4271:47:81;1507:7026:77;;;;;;:::i;:::-;;;;;;;;10389:138:81;;1507:7026:77;;;;10389:138:81;;1507:7026:77;;;;;;10389:138:81;;1507:7026:77;;;;10389:138:81;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;4271:47:81;:::i;:::-;1507:7026:77;4333:18:81;1507:7026:77;;4375:9:81;;:18;1507:7026:77;;4329:526:81;2714:45;;;:::i;:::-;2710:196;;1507:7026:77;;;3049:22:81;1507:7026:77;3049:22:81;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;;;;;10389:138:81;1507:7026:77;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;;;;;;;2999:73:81;1507:7026:77;3049:22:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;3049:22:81;5591:98:77;;3049:22:81;;;;;;:::i;:::-;1507:7026:77;;;;;2999:73:81;1507:7026:77;2999:73:81;;1507:7026:77;;;;;;;;;;;:::i;2999:73:81:-;1507:7026:77;;;;;;;;;;;2980:93:81;;1507:7026:77;2980:93:81;;;1507:7026:77;;;;;;:::i;:::-;2980:93:81;;-1:-1:-1;;;;;1507:7026:77;2980:93:81;;;;;;;2282:1;2980:93;;;1507:7026:77;;;;3091:31:81;;1507:7026:77;;;;;;;;;3091:31:81;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;3091:31:81;1507:7026:77;3091:31:81;;;1507:7026:77;;;;:::i;:::-;3084:38:81;;1958:1171::o;2980:93::-;;;;;;2282:1;2980:93;;;;;;:::i;:::-;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:196:81;2856:39;;;;;5107:8;;5147:27;;;;:::i;:::-;1507:7026:77;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;2282:1:81;1507:7026:77;5261:39:81;1507:7026:77;;;;;5261:44:81;5257:108;;2710:196;9192:46:82;357:173:37;;;9192:46:82;;:::i;:::-;1507:7026:77;;;;5538:52:81;1507:7026:77;;;;5538:52:81;;:::i;:::-;1507:7026:77;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;5402:323:81;;;1507:7026:77;;5402:323:81;;;1507:7026:77;357:173:37;5402:323:81;;;1507:7026:77;5747:37:81;1507:7026:77;10389:138:81;;5761:15;1507:7026:77;5747:37:81;:::i;:::-;5800:9;2282:1;5800:9;1507:7026:77;10389:138:81;;5815:15;1507:7026:77;;;5811:26:81;;;;;1507:7026:77;5935:15:81;;6406:190;;;;;;;;;;;;;;357:173:37;5402:323:81;;;1507:7026:77;;;;;6691:15:81;;1507:7026:77;;;6643:64:81;7635:205;;;;7666:21;1507:7026:77;;;;;;;;;;;;;7635:205:81;;5402:323;;357:173:37;5402:323:81;1507:7026:77;;;;;6789:39:81;;;;;1507:7026:77;;;;;;6859:83:81;;5611:16;6859:83;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;6859:15:81;:83;:15;;:83;;;;;;;2282:1;6859:83;;;6789:39;-1:-1:-1;;;;;;1507:7026:77;;6960:14:81;1507:7026:77;;7054:15:81;;;1507:7026:77;;;5402:323:81;;;1507:7026:77;5402:323:81;;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;7105:17:81;1507:7026:77;;;;;;;9099:323:81;;1507:7026:77;357:173:37;;1507:7026:77;;;;;;7103:30:81;;;:::i;:::-;1507:7026:77;;;8009:323:81;;;;;1507:7026:77;8009:323:81;;;;;;;;1507:7026:77;;8009:323:81;;;1507:7026:77;8009:323:81;;;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;7176:223:81;;1507:7026:77;;;;7176:223:81;;;1507:7026:77;;;;;;;;;;7176:223:81;;1507:7026:77;;;;;;;;7176:223:81;;1507:7026:77;7176:223:81;357:173:37;7176:223:81;;1507:7026:77;357:173:37;5402:323:81;;;1507:7026:77;;;8615:56:81;2282:1;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;9164:232:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;9164:232:81;;;1507:7026:77;;;9164:232:81;;1507:7026:77;;;;;-1:-1:-1;;;9099:323:81;;1507:7026:77;;;;;;;5611:16:81;9099:323;;;:::i;:::-;;1507:7026:77;2282:1:81;-1:-1:-1;;;;;1507:7026:77;;9099:323:81;;;;;;;2282:1;9099:323;;;6789:39;2052:83:34;;1507:7026:77;2052:83:34;2241:89;;;9518:207:81;;;;;9564:52;2282:1;1507:7026:77;2241:89:34;1507:7026:77;9564:11:81;:52;2282:1;;;9601:8;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9564:52:81;9518:207;;-1:-1:-1;;;;;1507:7026:77;;9743:17:81;1507:7026:77;;;7176:223:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;9817:35:81;-1:-1:-1;9813:112:81;;9518:207;-1:-1:-1;9986:10:81;;1507:7026:77;;9986:10:81;;1507:7026:77;2114:78:83;;-1:-1:-1;;;;;1507:7026:77;2614:4:81;2114:78:83;;:::i;:::-;2282:13;1507:7026:77;2282:13:83;;1507:7026:77;2218:78:83;1507:7026:77;;;;;;;;2614:4:81;;2218:78:83;;:::i;:::-;2325:40;;;;;2282:1:81;2325:40:83;;2393;;;2614:4:81;;2393:40:83;;2282:1:81;5579:6:83;;:31;;;2393:40;5575:115;;2393:40;5703:6;;2282:1:81;5703:6:83;;5699:365;;2393:40;6078:6;;2282:1:81;6078:6:83;;:31;;;2393:40;6074:115;;2393:40;6202:6;2282:1:81;6202:6:83;;6198:365;;2393:40;-1:-1:-1;1507:7026:77;;;;;;;;357:173:37;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;8682:132:81;;2393:40:83;7176:223:81;;;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;2282:1:81;1507:7026:77;2408:38:80;5261:14:81;2368:15:80;;1507:7026:77;;;;;;;;;;;;871:1:84;;;;;;;1507:7026:77;;;;;;;7176:223:81;;1507:7026:77;;2408:38:80;;:::i;:::-;1507:7026:77;7176:223:81;;1507:7026:77;5611:16:81;2456:15:80;;1507:7026:77;;;-1:-1:-1;;;;;7176:223:81;;;1507:7026:77;;;;-1:-1:-1;;;1507:7026:77;;5402:323:81;;;1507:7026:77;;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2755:15:80;;1507:7026:77;2735:17:80;;;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;3143:17:80;;1507:7026:77;3143:33:80;;1507:7026:77;;;;;3143:33:80;:::i;:::-;3233:15;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;3272:14:80;;:26;1507:7026:77;;;;;;;;;;;864:15:79;860:218;;2393:40:83;7176:223:81;;;;;1507:7026:77;1107:6:84;;;;1507:7026:77;;;;1128:18:84;;;1124:235;1128:18;;;1507:7026:77;1124:235:84;2282:1:81;3594:343:84;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;871:1:84;;;;;;;;;;;;7176:223:81;;;;1507:7026:77;5402:323:81;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;3818:143:80;;1507:7026:77;;3679:55:80;;1507:7026:77;;;3679:55:80;:::i;:::-;1507:7026:77;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;;1507:7026:77;;3877:15:80;;;1507:7026:77;5402:323:81;357:173:37;5402:323:81;;;1507:7026:77;;;5402:323:81;1507:7026:77;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:173:37;1507:7026:77;;;3818:143:80;1507:7026:77;;;;;;5402:323:81;;;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;3976:77:80;5855:99:81;;;;:::i;:::-;1507:7026:77;;5800:9:81;;;;1124:235:84;3594:343;;;2282:1:81;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;;2282:1:81;3594:343:84;;1124:235;;860:218:79;846:396:31;1507:7026:77;846:396:31;;2282:1:81;846:396:31;;;;;;;1039:11:79;1676:170:31;1507:7026:77;1676:170:31;;;1507:7026:77;;2282:1:81;1507:7026:77;;;;1676:170:31;1507:7026:77;2282:1:81;1507:7026:77;1676:170:31;;1507:7026:77;;;1039:28:79;1507:7026:77;;860:218:79;;;;8682:132:81;8794:8;8750:14;;;5402:323;;;;1507:7026:77;;;;;;;;;5402:323:81;;;1507:7026:77;;8794:8:81;;:::i;:::-;8682:132;;;6198:365:83;6257:3;;;;;;;;;:::i;:::-;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;6276:31:83;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;6276:31:83;;5611:16:81;6276:31:83;;1507:7026:77;;;;;;;6276:31:83;;;;;;;;6198:365;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;4998:58:36;6325:29:83;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;6374:35:83;;1507:7026:77;;;;;;5611:16:81;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;6374:35:83;;;;;;;1507:7026:77;6374:35:83;1507:7026:77;6374:35:83;357:173:37;6374:35:83;;;6321:232;;;6198:365;;;;;;;;;6374:35;;;1507:7026:77;6374:35:83;;;;;;;;;:::i;:::-;;;;;6321:232;6493:6;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;6493:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;6518:20:83;;1507:7026:77;;;5611:16:81;1507:7026:77;2282:1:81;-1:-1:-1;;;;;1507:7026:77;;6518:20:83;;;;;;;1507:7026:77;6518:20:83;1507:7026:77;6518:20:83;357:173:37;6518:20:83;;;6321:232;;;;6518:20;;;1507:7026:77;6518:20:83;;;;;;;;;:::i;:::-;;;;;6276:31;2282:1:81;6276:31:83;;;:::i;:::-;;;;6074:115;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;6125:53:83;;;;1507:7026:77;;6125:53:83;1507:7026:77;2282:1:81;1507:7026:77;;;;;;;;;;;;;;6125:53:83;;5611:16:81;6125:53:83;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;6125:53:83;;;;;;;6074:115;6125:53;2282:1:81;6125:53:83;;;:::i;:::-;;6074:115;;6078:31;-1:-1:-1;;;;;;1507:7026:77;;6088:21:83;;6078:31;;5699:365;5758:3;;;:::i;:::-;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;5777:31:83;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;5777:31:83;;5611:16:81;5777:31:83;;1507:7026:77;;;;;;;5777:31:83;;;;;;;;5699:365;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;4998:58:36;5826:29:83;;1507:7026:77;;;5611:16:81;1507:7026:77;;;;;;;;;5875:35:83;;1507:7026:77;;;;;;5875:35:83;;;;;;;;5822:232;;;5699:365;;;;5875:35;;;1507:7026:77;5875:35:83;;;;;;;;;:::i;:::-;;;;;5822:232;5994:6;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;5994:6:83;:::i;:::-;2282:1:81;1507:7026:77;;5611:16:81;1507:7026:77;;;;;;;;;6019:20:83;;1507:7026:77;;;;;;6019:20:83;;;;;;;;5822:232;;;;6019:20;;;1507:7026:77;6019:20:83;;;;;;;;;:::i;:::-;;;;;5777:31;2282:1:81;5777:31:83;;;:::i;:::-;;;;5575:115;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;5626:53:83;;;;1507:7026:77;;2282:1:81;1507:7026:77;;5626:53:83;1507:7026:77;;;;;;;;;;;;;5626:53:83;;5611:16:81;5626:53:83;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;5626:53:83;;;;;;;;5575:115;;;;;5626:53;2282:1:81;5626:53:83;;;:::i;:::-;;;;5579:31;-1:-1:-1;;;;;;1507:7026:77;;5589:21:83;;5579:31;;2393:40;;2282:1:81;2393:40:83;;;2325;2614:4:81;2325:40:83;;;9813:112:81;9879:35;;;;;;;:::i;:::-;9813:112;;;;9564:52;;2282:1;9564:52;;9518:207;9662:52;-1:-1:-1;2282:1:81;9662:11;;2282:1;;;9699:8;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9662:52:81;9518:207;;;9662:52;;2282:1;9662:52;;9099:323;;;;1507:7026:77;9099:323:81;;;;;;;;;:::i;:::-;;;;;6859:83;;;;1507:7026:77;6859:83:81;;;;;;;;;1507:7026:77;6859:83:81;;;:::i;:::-;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;6859:83:81;;;;;;;-1:-1:-1;6859:83:81;;6789:39;;;;;7635:205;7775:19;;;;:::i;:::-;7808:21;7635:205;;;5811:26;;;;;;;;2849:46;;:::o;5257:108::-;2282:1;1507:7026:77;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:108:81;;1507:7026:77;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;4329:526:81;4476:9;1507:7026:77;;;;-1:-1:-1;;;4573:28:81;;2614:4;4573:28;;;1507:7026:77;;;;4573:28:81;1507:7026:77;4573:28:81;;;;;;;;2282:1;4573:28;;;4329:526;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;4624:45:81;;2594:10;4573:28;4624:45;;1507:7026:77;2614:4:81;4573:28;1507:7026:77;;;;;;;;;;;4624:45:81;1507:7026:77;-1:-1:-1;4624:45:81;;;;;;;;2282:1;4624:45;;;4329:526;1507:7026:77;;;;;4573:28:81;1507:7026:77;;;;;;;;;;4741:28:81;;2614:4;4573:28;4741;;1507:7026:77;4741:28:81;;;;;;;2282:1;4741:28;;;4329:526;4773:21;;;;;:::i;:::-;4741:53;4329:526;1507:7026:77;;;;;2282:1:81;1507:7026:77;4573:28:81;2282:1;1507:7026:77;4741:28:81;;;1507:7026:77;4741:28:81;;1507:7026:77;4741:28:81;;;;;;417:66:26;4741:28:81;;;:::i;:::-;;;417:66:26;;;;4773:21:81;417:66:26;;4741:28:81;;;;;;-1:-1:-1;4741:28:81;;4624:45;;;1507:7026:77;4624:45:81;;1507:7026:77;4624:45:81;;;;;;1507:7026:77;4624:45:81;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;4624:45:81;;;;;;-1:-1:-1;4624:45:81;;4573:28;;;;1507:7026:77;4573:28:81;;1507:7026:77;4573:28:81;;;;;;417:66:26;4573:28:81;;;:::i;:::-;;;417:66:26;;;;;4573:28:81;;;;;;;-1:-1:-1;4573:28:81;;3891:9;3945:13;;;;;;:::i;:::-;1507:7026:77;3980:9:81;;;1507:7026:77;;;4041:13:81;;;;:::i;:::-;1507:7026:77;;3891:9:81;;;1507:7026:77;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77","linkReferences":{"src/libs/LimitOrderViews.sol":{"LimitOrderViews":[{"start":4261,"length":20},{"start":7486,"length":20},{"start":19857,"length":20}]}},"immutableReferences":{"10692":[{"start":28,"length":32},{"start":907,"length":32},{"start":1075,"length":32},{"start":1545,"length":32},{"start":4008,"length":32},{"start":4882,"length":32},{"start":5801,"length":32},{"start":6067,"length":32},{"start":6447,"length":32},{"start":6577,"length":32},{"start":7177,"length":32},{"start":7802,"length":32},{"start":7976,"length":32},{"start":8036,"length":32},{"start":9117,"length":32},{"start":9184,"length":32},{"start":9284,"length":32},{"start":9408,"length":32},{"start":9477,"length":32},{"start":9608,"length":32},{"start":9686,"length":32},{"start":9798,"length":32},{"start":9865,"length":32},{"start":9962,"length":32},{"start":10060,"length":32},{"start":10128,"length":32},{"start":10249,"length":32},{"start":10327,"length":32},{"start":11119,"length":32},{"start":12074,"length":32}],"10695":[{"start":2932,"length":32},{"start":11156,"length":32}],"10698":[{"start":1962,"length":32},{"start":4546,"length":32}],"10700":[{"start":2997,"length":32},{"start":6398,"length":32},{"start":6528,"length":32},{"start":11196,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","balanceOf(address,address)":"f7888aec","create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":"eb07ed24","fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":"7a9cf273","fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":"5f8fbad6","getMaxFillCount()":"d8c31772","isPermittedCaller(address)":"7fcc389f","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setMaxFillCount(uint256)":"c96d060b","setPermittedCallers(address[],bool[])":"aa24fafc","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","weth()":"3fc8cef3","withdraw(bytes32[],address,uint256,address)":"c2ec68ea","zoraCoinVersionLookup()":"5ef3e955","zoraHookRegistry()":"a6de70b4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraCoinVersionLookup_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraHookRegistry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotPermitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"expectedCoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualCoin\",\"type\":\"address\"}],\"name\":\"CoinMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientForwardedFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"}],\"name\":\"InvalidFillWindow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOrder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPoolKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxFillCountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"MinAmountNotReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeValueMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyZoraHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderFillable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNotMaker\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PathMustHaveAtLeastOneStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermittedCallersLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterMsgSenderInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCallback\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnlockedFillNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WethTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMaker\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroOrderSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroRealizedOrder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"orderTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"currentTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coinIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountOut\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"fillReferralAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCancelled\",\"type\":\"bool\"}],\"name\":\"LimitOrderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"MakerBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"permitted\",\"type\":\"bool\"}],\"name\":\"PermittedCallerUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"orderSizes\",\"type\":\"uint256[]\"},{\"internalType\":\"int24[]\",\"name\":\"orderTicks\",\"type\":\"int24[]\"},{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct IZoraLimitOrderBook.OrderBatch[]\",\"name\":\"batches\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxFillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"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\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"}],\"name\":\"setMaxFillCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"callers\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"permitted\",\"type\":\"bool[]\"}],\"name\":\"setPermittedCallers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraCoinVersionLookup\",\"outputs\":[{\"internalType\":\"contract IDeployedCoinVersionLookup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraHookRegistry\",\"outputs\":[{\"internalType\":\"contract IZoraHookRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"balanceOf(address,address)\":{\"params\":{\"coin\":\"Address of the coin (use address(0) for native ETH).\",\"maker\":\"Address of the maker.\"},\"returns\":{\"_0\":\"Total value of open orders.\"}},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"details\":\"Access is controlled by the PermittedCallers base contract. If PUBLIC_ACCESS (address(0)) is permitted, anyone can create orders. Otherwise, only addresses in the permittedCallers mapping can create orders.\",\"params\":{\"isCurrency0\":\"Whether the orders are denominated in currency0.\",\"key\":\"Pool key specifying currency pair and tick spacing.\",\"maker\":\"Address of the maker who will own the orders.\",\"orderSizes\":\"Order liquidity sizes.\",\"orderTicks\":\"Corresponding ticks.\"},\"returns\":{\"_0\":\"Deterministic order identifiers.\"}},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"params\":{\"batches\":\"Array of per-pool batches containing order ids to process.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\"}},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"params\":{\"endTick\":\"Inclusive ending tick. Use `type(int24).max` for the default upper bound.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\",\"isCurrency0\":\"Whether currency0 orders are targeted; otherwise currency1.\",\"key\":\"Pool key whose orders should be processed.\",\"maxFillCount\":\"Maximum orders to fill in this pass.\",\"startTick\":\"Inclusive starting tick. Use `-type(int24).max` for the default lower bound.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setMaxFillCount(uint256)\":{\"details\":\"Only callable by the owner.\",\"params\":{\"maxFillCount\":\"The new maximum fill count value.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"params\":{\"data\":\"ABI encoded callback identifier and callback data.\"},\"returns\":{\"_0\":\"result Optional return data for create flows.\"}},\"withdraw(bytes32[],address,uint256,address)\":{\"details\":\"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.\",\"params\":{\"coin\":\"The coin address that all orders must match (use address(0) for native ETH).\",\"minAmountOut\":\"Minimum amount to withdraw (0 = cancel all provided orders).\",\"orderIds\":\"Order identifiers to cancel.\",\"recipient\":\"Destination for returned assets.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AddressZero()\":[{\"notice\":\"Address argument was zero.\"}],\"ArrayLengthMismatch()\":[{\"notice\":\"Input arrays must have equal length.\"}],\"CoinMismatch(bytes32,address,address)\":[{\"notice\":\"Order coin does not match expected coin for batch withdrawal.\"}],\"InsufficientForwardedFunds()\":[{\"notice\":\"Forwarded funds from hook were insufficient.\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidFillWindow(int24,int24,bool)\":[{\"notice\":\"Tick range inputs were invalid or misaligned.\"}],\"InvalidOrder()\":[{\"notice\":\"Order id was not found.\"}],\"InvalidPoolKey()\":[{\"notice\":\"Referenced pool key hash is unknown.\"}],\"MaxFillCountCannotBeZero()\":[{\"notice\":\"Fill requests must cap the number of orders processed.\"}],\"MinAmountNotReached(uint256,uint256)\":[{\"notice\":\"Withdrawal did not reach minimum amount threshold.\"}],\"NativeValueMismatch()\":[{\"notice\":\"Supplied ETH must match expected amount.\"}],\"NotPoolManager()\":[{\"notice\":\"Caller must be the configured pool manager.\"}],\"OnlyZoraHook()\":[{\"notice\":\"Caller must be a registered Zora hook.\"}],\"OrderClosed()\":[{\"notice\":\"Order is no longer open.\"}],\"OrderFillable()\":[{\"notice\":\"Order is fillable and must be filled, not withdrawn.\"}],\"OrderNotMaker()\":[{\"notice\":\"Operation attempted by non-maker.\"}],\"PathMustHaveAtLeastOneStep()\":[{\"notice\":\"Thrown when a attempting to swap with a path that has no steps.\"}],\"RouterMsgSenderInvalid()\":[{\"notice\":\"Router caller failed to expose the original message sender.\"}],\"UnknownCallback()\":[{\"notice\":\"Unlock callback id was not recognized.\"}],\"UnlockedFillNotAllowed()\":[{\"notice\":\"Non-hook caller attempted to fill orders while pool is unlocked.\"}],\"ZeroMaker()\":[{\"notice\":\"Maker address cannot be zero.\"}],\"ZeroOrderSize()\":[{\"notice\":\"Orders must specify a non-zero size.\"}],\"ZeroRealizedOrder()\":[{\"notice\":\"Callback realized zero fills when one was expected.\"}]},\"events\":{\"LimitOrderCreated(address,address,bytes32,bool,int24,int24,uint128,bytes32)\":{\"notice\":\"Emitted when a new order joins a tick queue.\"},\"LimitOrderFilled(address,address,address,uint128,uint128,address,uint128,bytes32,int24,bytes32)\":{\"notice\":\"Emitted when an order is filled and removed from the book.\"},\"LimitOrderUpdated(address,address,bytes32,bool,int24,uint128,bytes32,bool)\":{\"notice\":\"Emitted when an order is amended or marked inactive.\"},\"MakerBalanceUpdated(address,address,uint256)\":{\"notice\":\"Emitted when a maker's aggregate balance for a coin changes.\"}},\"kind\":\"user\",\"methods\":{\"balanceOf(address,address)\":{\"notice\":\"Returns the aggregate balance of open orders for a maker/coin pair.\"},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"notice\":\"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked.\"},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"notice\":\"Fills explicit order ids grouped by pool.\"},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"notice\":\"Fills limit orders within a tick window.\"},\"setMaxFillCount(uint256)\":{\"notice\":\"Sets the maximum number of orders that can be filled in a single fill operation.\"},\"unlockCallback(bytes)\":{\"notice\":\"Processes pool-manager unlock callbacks and routes them to the correct handler.\"},\"withdraw(bytes32[],address,uint256,address)\":{\"notice\":\"Cancels orders and withdraws resulting funds to a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ZoraLimitOrderBook.sol\":\"ZoraLimitOrderBook\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickBitmap.sol\":{\"keccak256\":\"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d\",\"dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@uniswap/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol\":{\"keccak256\":\"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3\",\"dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol\":{\"keccak256\":\"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa\",\"dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IERC7572.sol\":{\"keccak256\":\"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d\",\"dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u\"]},\"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol\":{\"keccak256\":\"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5\",\"dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol\":{\"keccak256\":\"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df\",\"dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk\"]},\"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol\":{\"keccak256\":\"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f\",\"dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg\"]},\"node_modules/@zoralabs/coins/src/interfaces/IWETH.sol\":{\"keccak256\":\"0xf6e2763ec71771fa2afd5585416ebe4476a7d602d11976289b6704f8fc8ddf04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cdf97ae29836cabe610c9f1bfec07cf43a531a151cd0ae4d0a048d65ce8a7ba\",\"dweb:/ipfs/QmWc19xLLwdfk1MjtChoEFGEzRpvPFX23RKwJtURAwKeqo\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol\":{\"keccak256\":\"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1\",\"dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraV4CoinHook.sol\":{\"keccak256\":\"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7\",\"dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM\"]},\"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol\":{\"keccak256\":\"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6\",\"dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol\":{\"keccak256\":\"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0\",\"dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46\",\"dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7\"]},\"node_modules/@zoralabs/coins/src/libs/UniV4SwapToCurrency.sol\":{\"keccak256\":\"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0\",\"dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol\":{\"keccak256\":\"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319\",\"dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/ZoraLimitOrderBook.sol\":{\"keccak256\":\"0xe73023239abbc699b3ed29a2c971026b11573b02125868e3fbb48f8e7184aacd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b34ce00f5138646380b91a1e2dc3d9cf589a511be7e1c21640a95f3b860376f1\",\"dweb:/ipfs/QmcpHpDqVtzuQ1hnnCXDcW869Uwry4t14emC4JFRF3b8m8\"]},\"src/access/PermittedCallers.sol\":{\"keccak256\":\"0x4f2f6797999bdd3bfaf0c438537e82d2c48cde4ed98cd5562a161a8cf91c0ae3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e9aa1eca5a8d14e960ec5cf6e8d03b42e8d512a250bde1781a275a9c61a9d9f\",\"dweb:/ipfs/QmYC51e59iPykzGm7E2VadR7yH7HTbZTtVse9kigWaNfAm\"]},\"src/libs/LimitOrderBitmap.sol\":{\"keccak256\":\"0x4855d25ca566789fd3a89183f66a45710db7f7d45c308529888481a5670eb350\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b9c0450c5b02f6328fc5dd68db7b6b325944adbdaeefd72f007ea56c11149a52\",\"dweb:/ipfs/QmNkhqMfeLFNpU6evVHVHpZh1crWytMCcAXMRxG2kgL77w\"]},\"src/libs/LimitOrderCommon.sol\":{\"keccak256\":\"0x14e92d96a2d5defb24ea100892fdf2d36b1c2101cd05d224f135cf24a926e448\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a3a8cc7d7e5e4548238182149380d54288a5c4c28b3936c40dbfd08362952a25\",\"dweb:/ipfs/QmWCydaf2465v8CgHybqjW4MpAnNqmFzBSejGFjyeGbnPm\"]},\"src/libs/LimitOrderCreate.sol\":{\"keccak256\":\"0xa016e977714d3334a7c7af22aa7d9f039b555dcde42dfd8cc45a9dccf3551c69\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://3001cbc0a91938aa8121da5ef063349ed6f58733d65a47ea53cb83fa7f042420\",\"dweb:/ipfs/QmV3P9hdEykuErEX2dT3yJNwsStQX7WKb2F58Ba5bP9FfZ\"]},\"src/libs/LimitOrderFill.sol\":{\"keccak256\":\"0x1ce3f9afdd319e0cf5c5a60f6d5605f5b35649da5c8c34a66f87d50448eee5da\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://c9f9d9fbc227c2756c4e6e6a5e381f00a07a16126de550e7cf4ab1bb4ce03338\",\"dweb:/ipfs/QmZiWuan7h44a8ZiA1jkdso3pzBsgVC3YjCfes5X2LiYkX\"]},\"src/libs/LimitOrderLiquidity.sol\":{\"keccak256\":\"0x8cc406e16b31c7d8a7bece5a96a027d343c3cb1416326bab22298e045560329b\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://606ea40457bb81c8cc7aad072666c2172ec2e189ab7a55cc72ebf0ed434e9d7e\",\"dweb:/ipfs/QmP6PgAP15EKH5iHTq9s6R5yMWVJ7Ny3fd3KgDp3ZuA9Xj\"]},\"src/libs/LimitOrderQueues.sol\":{\"keccak256\":\"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4\",\"dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt\"]},\"src/libs/LimitOrderStorage.sol\":{\"keccak256\":\"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72\",\"dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu\"]},\"src/libs/LimitOrderTypes.sol\":{\"keccak256\":\"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e\",\"dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5\"]},\"src/libs/LimitOrderViews.sol\":{\"keccak256\":\"0xb1815330aae85a16c7e2e6db4d64701fee910be156934befcb6be6943e339240\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://977012c25b4cc858ab91657644a503a7f5882fd8b006ee21d7ceff3f5d225c2e\",\"dweb:/ipfs/QmU1Xcr1oAuxNe34dgoEKq9BT8UBxLZDaYJTjN4UHEhtZ7\"]},\"src/libs/LimitOrderWithdraw.sol\":{\"keccak256\":\"0x96f59d44bb0c71a6ffdb21e655a5f56eec8e8771f5f5a6a283d795d6ae94b29f\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://dc2f6025b6e3c09c0304f1577ebd596e03304d0e2d85a5fcd58b5f2b3ec2692a\",\"dweb:/ipfs/QmYJGyzq76QxGiBXymmNbUYSefrtAC7k6AupSVR2PuMuyb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"poolManager_","type":"address"},{"internalType":"address","name":"zoraCoinVersionLookup_","type":"address"},{"internalType":"address","name":"zoraHookRegistry_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"weth_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressZero"},{"inputs":[],"type":"error","name":"ArrayLengthMismatch"},{"inputs":[],"type":"error","name":"CallerNotPermitted"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"address","name":"expectedCoin","type":"address"},{"internalType":"address","name":"actualCoin","type":"address"}],"type":"error","name":"CoinMismatch"},{"inputs":[],"type":"error","name":"InsufficientForwardedFunds"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"bool","name":"isCurrency0","type":"bool"}],"type":"error","name":"InvalidFillWindow"},{"inputs":[],"type":"error","name":"InvalidOrder"},{"inputs":[],"type":"error","name":"InvalidPoolKey"},{"inputs":[],"type":"error","name":"MaxFillCountCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"MinAmountNotReached"},{"inputs":[],"type":"error","name":"NativeValueMismatch"},{"inputs":[],"type":"error","name":"NotPoolManager"},{"inputs":[],"type":"error","name":"OnlyZoraHook"},{"inputs":[],"type":"error","name":"OrderClosed"},{"inputs":[],"type":"error","name":"OrderFillable"},{"inputs":[],"type":"error","name":"OrderNotMaker"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PathMustHaveAtLeastOneStep"},{"inputs":[],"type":"error","name":"PermittedCallersLengthMismatch"},{"inputs":[],"type":"error","name":"RouterMsgSenderInvalid"},{"inputs":[],"type":"error","name":"UnknownCallback"},{"inputs":[],"type":"error","name":"UnlockedFillNotAllowed"},{"inputs":[],"type":"error","name":"WethTransferFailed"},{"inputs":[],"type":"error","name":"ZeroMaker"},{"inputs":[],"type":"error","name":"ZeroOrderSize"},{"inputs":[],"type":"error","name":"ZeroRealizedOrder"},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"orderTick","type":"int24","indexed":false},{"internalType":"int24","name":"currentTick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coinIn","type":"address","indexed":true},{"internalType":"address","name":"coinOut","type":"address","indexed":false},{"internalType":"uint128","name":"amountIn","type":"uint128","indexed":false},{"internalType":"uint128","name":"amountOut","type":"uint128","indexed":false},{"internalType":"address","name":"fillReferral","type":"address","indexed":false},{"internalType":"uint128","name":"fillReferralAmount","type":"uint128","indexed":false},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderFilled","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCancelled","type":"bool","indexed":false}],"type":"event","name":"LimitOrderUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"MakerBalanceUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bool","name":"permitted","type":"bool","indexed":false}],"type":"event","name":"PermittedCallerUpdated","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"coin","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"uint256[]","name":"orderSizes","type":"uint256[]"},{"internalType":"int24[]","name":"orderTicks","type":"int24[]"},{"internalType":"address","name":"maker","type":"address"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"uint256","name":"maxFillCount","type":"uint256"},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[{"internalType":"struct IZoraLimitOrderBook.OrderBatch[]","name":"batches","type":"tuple[]","components":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"}]},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxFillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"maxFillCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxFillCount"},{"inputs":[{"internalType":"address[]","name":"callers","type":"address[]"},{"internalType":"bool[]","name":"permitted","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"setPermittedCallers"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"},{"internalType":"address","name":"coin","type":"address"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraCoinVersionLookup","outputs":[{"internalType":"contract IDeployedCoinVersionLookup","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraHookRegistry","outputs":[{"internalType":"contract IZoraHookRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"balanceOf(address,address)":{"params":{"coin":"Address of the coin (use address(0) for native ETH).","maker":"Address of the maker."},"returns":{"_0":"Total value of open orders."}},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"details":"Access is controlled by the PermittedCallers base contract. If PUBLIC_ACCESS (address(0)) is permitted, anyone can create orders. Otherwise, only addresses in the permittedCallers mapping can create orders.","params":{"isCurrency0":"Whether the orders are denominated in currency0.","key":"Pool key specifying currency pair and tick spacing.","maker":"Address of the maker who will own the orders.","orderSizes":"Order liquidity sizes.","orderTicks":"Corresponding ticks."},"returns":{"_0":"Deterministic order identifiers."}},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"params":{"batches":"Array of per-pool batches containing order ids to process.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker."}},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"params":{"endTick":"Inclusive ending tick. Use `type(int24).max` for the default upper bound.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker.","isCurrency0":"Whether currency0 orders are targeted; otherwise currency1.","key":"Pool key whose orders should be processed.","maxFillCount":"Maximum orders to fill in this pass.","startTick":"Inclusive starting tick. Use `-type(int24).max` for the default lower bound."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setMaxFillCount(uint256)":{"details":"Only callable by the owner.","params":{"maxFillCount":"The new maximum fill count value."}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"params":{"data":"ABI encoded callback identifier and callback data."},"returns":{"_0":"result Optional return data for create flows."}},"withdraw(bytes32[],address,uint256,address)":{"details":"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.","params":{"coin":"The coin address that all orders must match (use address(0) for native ETH).","minAmountOut":"Minimum amount to withdraw (0 = cancel all provided orders).","orderIds":"Order identifiers to cancel.","recipient":"Destination for returned assets."}}},"version":1},"userdoc":{"kind":"user","methods":{"balanceOf(address,address)":{"notice":"Returns the aggregate balance of open orders for a maker/coin pair."},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"notice":"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked."},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"notice":"Fills explicit order ids grouped by pool."},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"notice":"Fills limit orders within a tick window."},"setMaxFillCount(uint256)":{"notice":"Sets the maximum number of orders that can be filled in a single fill operation."},"unlockCallback(bytes)":{"notice":"Processes pool-manager unlock callbacks and routes them to the correct handler."},"withdraw(bytes32[],address,uint256,address)":{"notice":"Cancels orders and withdraws resulting funds to a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/ZoraLimitOrderBook.sol":"ZoraLimitOrderBook"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickBitmap.sol":{"keccak256":"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a","urls":["bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d","dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@uniswap/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol":{"keccak256":"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c","urls":["bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3","dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol":{"keccak256":"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba","urls":["bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa","dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IERC7572.sol":{"keccak256":"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937","urls":["bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d","dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol":{"keccak256":"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb","urls":["bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5","dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol":{"keccak256":"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce","urls":["bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df","dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol":{"keccak256":"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7","urls":["bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f","dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IWETH.sol":{"keccak256":"0xf6e2763ec71771fa2afd5585416ebe4476a7d602d11976289b6704f8fc8ddf04","urls":["bzz-raw://3cdf97ae29836cabe610c9f1bfec07cf43a531a151cd0ae4d0a048d65ce8a7ba","dweb:/ipfs/QmWc19xLLwdfk1MjtChoEFGEzRpvPFX23RKwJtURAwKeqo"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol":{"keccak256":"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de","urls":["bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1","dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/interfaces/IZoraV4CoinHook.sol":{"keccak256":"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37","urls":["bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7","dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM"],"license":"MIT"},"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol":{"keccak256":"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21","urls":["bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6","dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol":{"keccak256":"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd","urls":["bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0","dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf","urls":["bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46","dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/UniV4SwapToCurrency.sol":{"keccak256":"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac","urls":["bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0","dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol":{"keccak256":"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22","urls":["bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319","dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/ZoraLimitOrderBook.sol":{"keccak256":"0xe73023239abbc699b3ed29a2c971026b11573b02125868e3fbb48f8e7184aacd","urls":["bzz-raw://b34ce00f5138646380b91a1e2dc3d9cf589a511be7e1c21640a95f3b860376f1","dweb:/ipfs/QmcpHpDqVtzuQ1hnnCXDcW869Uwry4t14emC4JFRF3b8m8"],"license":"ZORA-DELAYED-OSL-v1"},"src/access/PermittedCallers.sol":{"keccak256":"0x4f2f6797999bdd3bfaf0c438537e82d2c48cde4ed98cd5562a161a8cf91c0ae3","urls":["bzz-raw://1e9aa1eca5a8d14e960ec5cf6e8d03b42e8d512a250bde1781a275a9c61a9d9f","dweb:/ipfs/QmYC51e59iPykzGm7E2VadR7yH7HTbZTtVse9kigWaNfAm"],"license":"MIT"},"src/libs/LimitOrderBitmap.sol":{"keccak256":"0x4855d25ca566789fd3a89183f66a45710db7f7d45c308529888481a5670eb350","urls":["bzz-raw://b9c0450c5b02f6328fc5dd68db7b6b325944adbdaeefd72f007ea56c11149a52","dweb:/ipfs/QmNkhqMfeLFNpU6evVHVHpZh1crWytMCcAXMRxG2kgL77w"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCommon.sol":{"keccak256":"0x14e92d96a2d5defb24ea100892fdf2d36b1c2101cd05d224f135cf24a926e448","urls":["bzz-raw://a3a8cc7d7e5e4548238182149380d54288a5c4c28b3936c40dbfd08362952a25","dweb:/ipfs/QmWCydaf2465v8CgHybqjW4MpAnNqmFzBSejGFjyeGbnPm"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCreate.sol":{"keccak256":"0xa016e977714d3334a7c7af22aa7d9f039b555dcde42dfd8cc45a9dccf3551c69","urls":["bzz-raw://3001cbc0a91938aa8121da5ef063349ed6f58733d65a47ea53cb83fa7f042420","dweb:/ipfs/QmV3P9hdEykuErEX2dT3yJNwsStQX7WKb2F58Ba5bP9FfZ"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderFill.sol":{"keccak256":"0x1ce3f9afdd319e0cf5c5a60f6d5605f5b35649da5c8c34a66f87d50448eee5da","urls":["bzz-raw://c9f9d9fbc227c2756c4e6e6a5e381f00a07a16126de550e7cf4ab1bb4ce03338","dweb:/ipfs/QmZiWuan7h44a8ZiA1jkdso3pzBsgVC3YjCfes5X2LiYkX"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderLiquidity.sol":{"keccak256":"0x8cc406e16b31c7d8a7bece5a96a027d343c3cb1416326bab22298e045560329b","urls":["bzz-raw://606ea40457bb81c8cc7aad072666c2172ec2e189ab7a55cc72ebf0ed434e9d7e","dweb:/ipfs/QmP6PgAP15EKH5iHTq9s6R5yMWVJ7Ny3fd3KgDp3ZuA9Xj"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderQueues.sol":{"keccak256":"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24","urls":["bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4","dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderStorage.sol":{"keccak256":"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367","urls":["bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72","dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderTypes.sol":{"keccak256":"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258","urls":["bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e","dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderViews.sol":{"keccak256":"0xb1815330aae85a16c7e2e6db4d64701fee910be156934befcb6be6943e339240","urls":["bzz-raw://977012c25b4cc858ab91657644a503a7f5882fd8b006ee21d7ceff3f5d225c2e","dweb:/ipfs/QmU1Xcr1oAuxNe34dgoEKq9BT8UBxLZDaYJTjN4UHEhtZ7"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderWithdraw.sol":{"keccak256":"0x96f59d44bb0c71a6ffdb21e655a5f56eec8e8771f5f5a6a283d795d6ae94b29f","urls":["bzz-raw://dc2f6025b6e3c09c0304f1577ebd596e03304d0e2d85a5fcd58b5f2b3ec2692a","dweb:/ipfs/QmYJGyzq76QxGiBXymmNbUYSefrtAC7k6AupSVR2PuMuyb"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":77}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"address"},{"name":"zoraCoinVersionLookup_","type":"address","internalType":"address"},{"name":"zoraHookRegistry_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"},{"name":"weth_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"maker","type":"address","internalType":"address"},{"name":"coin","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderSizes","type":"uint256[]","internalType":"uint256[]"},{"name":"orderTicks","type":"int24[]","internalType":"int24[]"},{"name":"maker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"fill","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"maxFillCount","type":"uint256","internalType":"uint256"},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"batches","type":"tuple[]","internalType":"struct IZoraLimitOrderBook.OrderBatch[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMaxFillCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxFillCount","inputs":[{"name":"maxFillCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPermittedCallers","inputs":[{"name":"callers","type":"address[]","internalType":"address[]"},{"name":"permitted","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"coin","type":"address","internalType":"address"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"zoraCoinVersionLookup","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDeployedCoinVersionLookup"}],"stateMutability":"view"},{"type":"function","name":"zoraHookRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraHookRegistry"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderCreated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"currentTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderFilled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coinIn","type":"address","indexed":true,"internalType":"address"},{"name":"coinOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amountOut","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"fillReferral","type":"address","indexed":false,"internalType":"address"},{"name":"fillReferralAmount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCancelled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"MakerBalanceUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PermittedCallerUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"permitted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"AddressZero","inputs":[]},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"CallerNotPermitted","inputs":[]},{"type":"error","name":"CoinMismatch","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"expectedCoin","type":"address","internalType":"address"},{"name":"actualCoin","type":"address","internalType":"address"}]},{"type":"error","name":"InsufficientForwardedFunds","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidFillWindow","inputs":[{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"isCurrency0","type":"bool","internalType":"bool"}]},{"type":"error","name":"InvalidOrder","inputs":[]},{"type":"error","name":"InvalidPoolKey","inputs":[]},{"type":"error","name":"MaxFillCountCannotBeZero","inputs":[]},{"type":"error","name":"MinAmountNotReached","inputs":[{"name":"withdrawn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NativeValueMismatch","inputs":[]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"OnlyZoraHook","inputs":[]},{"type":"error","name":"OrderClosed","inputs":[]},{"type":"error","name":"OrderFillable","inputs":[]},{"type":"error","name":"OrderNotMaker","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PathMustHaveAtLeastOneStep","inputs":[]},{"type":"error","name":"PermittedCallersLengthMismatch","inputs":[]},{"type":"error","name":"RouterMsgSenderInvalid","inputs":[]},{"type":"error","name":"UnknownCallback","inputs":[]},{"type":"error","name":"UnlockedFillNotAllowed","inputs":[]},{"type":"error","name":"WethTransferFailed","inputs":[]},{"type":"error","name":"ZeroMaker","inputs":[]},{"type":"error","name":"ZeroOrderSize","inputs":[]},{"type":"error","name":"ZeroRealizedOrder","inputs":[]}],"bytecode":{"object":"0x6101003461028457601f615c4538819003918201601f19168301916001600160401b038311848410176102885780849260a094604052833981010312610284576100488161029c565b906100556020820161029c565b6100616040830161029c565b61007960806100726060860161029c565b940161029c565b6001600160a01b0390931693841561027157600180546001600160a01b03199081169091555f80549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a35f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b805460ff191660011790556001600160a01b0316918215610262576001600160a01b0316908115610262576001600160a01b0316918215610262576001600160a01b038416156102625760805260a05260c05260e05261599490816102b18239608051818181601c0152818161038b015281816104330152818161060901528181610fa801528181611312015281816116ad015281816117a00152818161185a01528181611b5401528181611dc501528181611e7301528181611eaf015281816122e60152818161232901528181612372015281816123b101528181612448015281816124960152818161250601528181612549015281816125aa0152818161260c01528181612650015281816126c90152818161271701528181612a2f0152612dd9015260a051818181610b740152612a54015260c0518181816107aa01526111c2015260e051818181610bb50152818161181f0152612a7c0152f35b639fabe1c160e01b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102845756fe60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081633fc8cef314610ba3575080635ef3e95514610b5f5780635f8fbad614610afe578063715018a614610a9b57806379ba509714610a165780637a9cf2731461089e5780637fcc389f146108715780638da5cb5b1461084a57806391dd7346146107d9578063a6de70b414610795578063aa24fafc1461067b578063c2ec68ea146104b8578063c96d060b1461048b578063d8c3177214610462578063dc4c90d31461041e578063e30c3978146103f6578063eb07ed2414610208578063f2fde38b146101985763f7888aec14610138575f61000f565b3461019457604036600319011261019457610151610c17565b610159610c01565b6001600160a01b039182165f9081525f5160206159745f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b34610194576020366003190112610194576101b1610c17565b6101b9612e26565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b366003190161012081126101945760a0136101945760405161022981610c95565b6004356001600160a01b03811681036101945781526024356001600160a01b038116810361019457602082015260443562ffffff811681036101945760408201526064358060020b81036101945760608201526084356001600160a01b038116810361019457608082015261029c610be4565b9060c4356001600160401b0381116101945736602382011215610194578060040135906102c882610d6c565b916102d66040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103e65750505060e4356001600160401b03811161019457366023820112156101945780600401359061032882610d6c565b916103366040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103ce575050610104359290506001600160a01b03831683036101945761037c33612e39565b156103bf576103bb946103af947f0000000000000000000000000000000000000000000000000000000000000000612eed565b60405191829182610d83565b0390f35b638078f92160e01b5f5260045ffd5b602080916103db84610bf3565b815201910190610353565b81358152602091820191016102f3565b34610194575f366003190112610194576001546040516001600160a01b039091168152602090f35b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f3660031901126101945760205f5160206159545f395f51905f5254604051908152f35b34610194576020366003190112610194576104a4612e26565b6004355f5160206159545f395f51905f5255005b34610194576080366003190112610194576004356001600160401b038111610194576104e8903690600401610c41565b906104f1610c01565b6064356001600160a01b038116939190849003610194576105266105ac936040519361051c85610c95565b338552369161128e565b9360208301948552604083019160018060a01b031682526060830160443581526080840191825261057d60405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610ed9565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610d4b565b60405190816105e2816105d45f94600260206106049801526040808401526060830190610c71565b03601f198101835282610d4b565b604051809381926348c8949160e01b8352602060048401526024830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761063f57005b61065a903d805f833e6106528183610d4b565b810190612d87565b005b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b34610194576040366003190112610194576004356001600160401b038111610194576106ab903690600401610c41565b6024356001600160401b038111610194576106ca903690600401610c41565b926106d3612e26565b838303610786575f5b8381106106e557005b806106fb6106f66001938887612942565b6112da565b828060a01b0361071461070f848988612942565b612966565b165f52600260205260405f209060ff80198354169115151617905561073d61070f828786612942565b7f34f71eeeadf8791995a3f273a2e80649f38e3c90b95e1850d3ffcfbc1e970c3c602061076e6106f6858b8a612942565b926040519315158452858060a01b031692a2016106dc565b63b85b903160e01b5f5260045ffd5b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194576020366003190112610194576004356001600160401b0381116101945736602382011215610194578060040135906001600160401b038211610194573660248383010111610194576103bb916024610836920161130c565b604051918291602083526020830190610c71565b34610194575f366003190112610194575f546040516001600160a01b039091168152602090f35b3461019457602036600319011261019457602061089461088f610c17565b612e39565b6040519015158152f35b34610194576040366003190112610194576004356001600160401b038111610194576108ce903690600401610c41565b6108d6610c01565b913681900360de1901905f5b8381101561065a578060051b820135838112156101945782019060c0820161090a8184611259565b905061091c575b5060019150016108e2565b6109296109309184611259565b369161128e565b9161093d60a082016112da565b9083519360a0823603126101945760405161095781610c95565b61096083610c2d565b815261096e60208401610c2d565b602082015260408301359162ffffff8316830361019457600196610a10956109b560806105d497610a0b9760408801526109aa60608201610bf3565b606088015201610c2d565b6080850152604051936109c785610cdf565b6109cf612aa3565b508452151560208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610f0c565b612dac565b86610911565b34610194575f36600319011261019457600154336001600160a01b0390911603610a8857600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610194575f36600319011261019457610ab3612e26565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457366003190161014081126101945760a01361019457610b20610be4565b60c435908160020b82036101945760e435908160020b82036101945761012435916001600160a01b03831683036101945761065a936101043592610f81565b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f366003190112610194577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361019457565b35908160020b820361019457565b602435906001600160a01b038216820361019457565b600435906001600160a01b038216820361019457565b35906001600160a01b038216820361019457565b9181601f84011215610194578235916001600160401b038311610194576020808501948460051b01011161019457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610cb057604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610cb057604052565b60e081019081106001600160401b03821117610cb057604052565b606081019081106001600160401b03821117610cb057604052565b60c081019081106001600160401b03821117610cb057604052565b604081019081106001600160401b03821117610cb057604052565b90601f801991011681019081106001600160401b03821117610cb057604052565b6001600160401b038111610cb05760051b60200190565b60206040818301928281528451809452019201905f5b818110610da65750505090565b8251845260209384019390920191600101610d99565b5190811515820361019457565b51906001600160a01b038216820361019457565b519062ffffff8216820361019457565b51908160020b820361019457565b91908260a091031261019457604051610e1381610c95565b6080610e5f818395610e2481610dc9565b8552610e3260208201610dc9565b6020860152610e4360408201610ddd565b6040860152610e5460608201610ded565b606086015201610dc9565b910152565b90610e6e82610d6c565b610e7b6040519182610d4b565b8281528092610e8c601f1991610d6c565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610ef65750505090565b8251845260209384019390920191600101610ee9565b61018060c0610f7e9360208452610f27602085018251610e96565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610ed9565b90565b939291925f5160206159545f395f51905f525483158015611250575b611248575b50610fcc7f0000000000000000000000000000000000000000000000000000000000000000612989565b92836111a7575b610fdb612a18565b9460018060a01b038651169660405197633fe552eb60e01b89525f5160206159545f395f51905f5260048a0152602489015260043560018060a01b0381168091036101945760448901526024356001600160a01b0381169081900361019457606489015260443562ffffff81168091036101945760848901526064358060020b8091036101945760a48901526084356001600160a01b038116908190036101945760c48901521515938460e489015260020b61010488015260020b61012487015260e0866101448173__$b37d8808673a650b3481d88bc26a627692$__5af4801561065c575f965f905f92611151575b50604051946110db602087610d4b565b5f86525f368137604051986110ef8a610cdf565b6110f7612aa3565b5089526020890152600290810b60408901520b606087015260808601526001600160a01b031660a085015260c084015261114757506105d4610a0b6111459260405192839160208301610f0c565b565b9061114591612afc565b9750505060e03d60e0116111a0575b61116a8188610d4b565b860160e087820312610194576111809087610dfb565b61119860c061119160a08a01610ded565b9801610ded565b90965f6110cb565b503d611160565b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561065c575f9161120e575b50610fd3576344863e8560e11b5f5260045ffd5b90506020813d602011611240575b8161122960209383610d4b565b810103126101945761123a90610dbc565b5f6111fa565b3d915061121c565b92505f610fa2565b50808411610f9d565b903590601e198136030182121561019457018035906001600160401b03821161019457602001918160051b3603831361019457565b92919061129a81610d6c565b936112a86040519586610d4b565b602085838152019160051b810192831161019457905b8282106112ca57505050565b81358152602091820191016112be565b3580151581036101945790565b6001600160401b038111610cb057601f01601f191660200190565b6003111561066757565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610194578035906003821015610194576020810135906001600160401b03821161019457019183601f84011215610194578235611385816112e7565b936113936040519586610d4b565b81855260208501956020838301011161019457815f9260208093018837850101526113bd82611302565b81156119ca57506113cd81611302565b600181036114c25750906113df612a18565b825183019260208401926020828603126101945751906001600160401b0382116101945701926101609084900312610194576040519161141e83610cdf565b61142b8160208601610dfb565b835261143960c08501610dbc565b602084015261144a60e08501610ded565b604084015261145c6101008501610ded565b606084015261012084015160808401526114796101408501610dc9565b60a0840152610160840151906001600160401b0382116101945760206114a4926114ae960101612e90565b60c0830152612afc565b6040516114bc602082610d4b565b5f815290565b6002906114ce81611302565b036119bb5780518101916020828403126101945751906001600160401b03821161019457019060a082820312610194576040519061150b82610c95565b61151760208401610dc9565b825260408301516001600160401b0381116101945760208061153d930191850101612e90565b80602083015261154f60608401610dc9565b9182604082015261156d60a060808601519586606085015201610dc9565b6080820181905290516001600160a01b0390811691908116156119ac57825191821561197f579392905f945f94871515935b8587106115d1575b505050505050508181106115bc5750506114ae565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966115e28883612ae8565b51805f525f5160206159145f395f51905f5260205260405f206004810154918260601c801561197f57870361199d57600160ff8460501c1661162381611302565b0361198e57600382015492600283015492835f525f5160206159345f395f51905f5260205260405f206040519061165982610c95565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b606085018190529201541660808301521561197f576116db6116d160a083207f00000000000000000000000000000000000000000000000000000000000000006138eb565b505090508361342c565b6119705761179b906116ec83613457565b95604060ff8660581c169561170187856133fd565b925f525f5160206158f45f395f51905f52602052815f2060018060a01b0384165f52602052815f208960020b5f5260205261174d86835f2060ff60501b19841660048301558587613a79565b5061175a8a60801c6139a4565b82519161176683610cc4565b8060020b835260181c60020b602083015282820152876060820152815180958192632d35e7ed60e11b835286600484016139ca565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c578c9461187e8f9460c0956002947f73544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde985f91611941575b508a1561192a578251611844906001600160a01b03165b7f0000000000000000000000000000000000000000000000000000000000000000946141aa565b91600f82900b9160801d906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000613f1d565b505001549060018060a01b03169687956040519283521515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b038616820361190857506118df926001600160801b039092169190506138de565b9685806118fe575b6118f95760010195949392919061159f565b6115a7565b50888810156118e7565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b6020830151611844906001600160a01b031661181d565b611962915060403d8111611969575b61195a8183610d4b565b8101906139b4565b505f611806565b503d611950565b6374169b5760e11b5f5260045ffd5b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b91809391505183019260208401916020828603126101945751906001600160401b03821161019457019261012090849003126101945760405192611a0d84610c95565b611a1a8260208301610dfb565b8452611a2860c08201610dbc565b916020850192835260e08201516001600160401b0381116101945760209083010181601f8201121561019457805190611a6082610d6c565b91611a6e6040519384610d4b565b80835260208084019160051b8301019184831161019457602001905b8282106129325750505060408601526101008201516001600160401b038111610194576020908301019080601f83011215610194578151611aca81610d6c565b92611ad86040519485610d4b565b81845260208085019260051b82010192831161019457602001905b82821061291a5750505084840152611b0e9061012001610dc9565b9160808401928352835192611b2284612f05565b92835f525f5160206159345f395f51905f52602052600160405f20015460b81c60020b15612879575b611b7860a086207f00000000000000000000000000000000000000000000000000000000000000006138eb565b5050929050611b8a82511515876133fd565b855f525f5160206158d45f395f51905f5260205260405f20549160018060a01b03905116925115159360405196611bc088610d15565b875260020b602087015260018060a01b0316604086015283850152608084015260a0830152611bf3604085015151610e64565b915f5b604086015190815181101561285c5760208488015192818360051b80920101519301015160a084015115158588015160020b905f1461284c578160020b01627fffff198112627fffff821317612838575b60a08501511580159061283157815b60405191632939447b60e11b835260048301528560248301528360020b60448301528060020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f926127ee575b506001600160801b0382161561278f57611dc0604060a08951600180831b03838c015116600180841b0360808d015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052845f2091611d118354612acd565b8093558551938452602084015288858401528d83015260808201522095815198611d3a8a610d15565b8d8a52600282810b60208c015285900b838b01526001600160801b038681168d8c01521660808a015260a0808a018890528a01518251901515955f959192909190611d8484610cc4565b600290810b84520b60208301526001600160801b0316828201528a81018790528151632d35e7ed60e11b81529283918291908f600484016139ca565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561065c575f916127cf575b508060801d90600f0b835f146127a557505f81600f0b125f1461279e57611e23906142b2565b6001600160801b03165b915b6001600160801b0383161561278f57608087015183906001600160801b03908116908216811161277c575b505086518051909190611e97906001600160a01b0316307f0000000000000000000000000000000000000000000000000000000000000000614800565b6020830151909190611ed3906001600160a01b0316307f0000000000000000000000000000000000000000000000000000000000000000614800565b918115612775575f915b1561276e5730915b5f82138061275c575b6126b9575b505f81126124ed575b505f8213806124db575b612435575b505f81126122c9575b5060019660a0929091506001600160801b0381166122a6575b50818101515f525f5160206159145f395f51905f52602052600260405f20611f78600382018a8060801b0387168b8060801b03198254161781558a8060801b038d8601511690613a56565b602083015160048201908c6001600160581b038d845490604089015160181b65ffffff00000063ffffffff60301b8684015160301b169260ff60581b8d820151151560581b169660806001600160601b0319920151901b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff1916171691161717171617179055895191829101555f525f5160206158f45f395f51905f5260205260405f208780841b0360408a0151168880851b03165f5260205260405f208460020b5f5260205260405f20600281019061205e61205886845460801c614501565b83613a56565b89515f525f5160206158b45f395f51905f5260205260405f208980861b0360408c0151168a80871b03165f5260205260405f208b8451015160020b8a8060801b0384541615612274575b50508383015190898101908282549182155f1461225357555b825f525f5160206159145f395f51905f526020528a60405f20015555878060801b03888060801b0389808060801b03845416011616888060801b03198254161790550151858060a01b036080880151165f525f5160206159745f395f51905f5260205260405f20868060a01b03604089015116878060a01b03165f526020527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c061217960405f20898060801b03861690546138de565b94888060a01b0360808b0151165f525f5160206159745f395f51905f5260205260405f20898060a01b0360408c0151168a8060a01b03165f526020528560405f2055888060a01b0360808b01511693898060a01b0360408c015116958b805193602060a0830151151592015160020b91604051958652602086015260020b60408501528d8401528a8060801b0316608083015260a0820152a3838060a01b036080860151165f5160206158945f395f51905f526020868060a01b0360408901511693604051908152a361224c8287612ae8565b5201611bf6565b5050805f525f5160206159145f395f51905f526020528260405f20556120c1565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff60405f2092161b81541790555f806120a8565b6122c3908251848b015115158a80871b0360808d015116916144c4565b5f611f2d565b6122d2906139a4565b60208201516001600160a01b0390811692907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101939093525f83602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561065c5761239a93612425575b50602001516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691166146bd565b604051630476982d60e21b8152956020876004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a0936123f7575b5091819750611f14565b6124179060203d811161241e575b61240f8183610d4b565b81019061297a565b505f6123ed565b503d612405565b5f61242f91610d4b565b5f612363565b60208301516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916124919187916004850161487c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611f0b575f6124d591610d4b565b5f611f0b565b506001600160a01b0381161515611f06565b6124f6906139a4565b83516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576126a9575b5083516001600160a01b0316806126055750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576125e7575b505b5f611efc565b6125fe9060203d811161241e5761240f8183610d4b565b505f6125df565b61263a91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906146bd565b604051630476982d60e21b81526020816004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761268b575b506125e1565b6126a29060203d811161241e5761240f8183610d4b565b505f612685565b5f6126b391610d4b565b5f61257e565b84516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916127129187916004850161487c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611ef3575f61275691610d4b565b5f611ef3565b506001600160a01b0381161515611eee565b5f91611ee5565b3091611edd565b612787929350613a3d565b90825f611e5a565b63f8db18c360e01b5f5260045ffd5b505f611e2d565b90505f8112156127c8576127b8906142b2565b6001600160801b03165b91611e2f565b505f6127c2565b6127e7915060403d81116119695761195a8183610d4b565b505f611dfd565b9091506020813d8211612829575b8161280960209383610d4b565b8101031261019457516001600160801b038116810361019457905f611cac565b3d91506127fc565b8291611c56565b634e487b7160e01b5f52601160045260245ffd5b6128569082612f46565b90611c47565b505050506105d49250610f7e915060405192839160208301610d83565b5f8481525f5160206159345f395f51905f526020908152604091829020875181546001600160a01b039182166001600160a01b031991821617835592890151600183018054958b0151898c015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608088015160029091018054919093169116179055611b4b565b6020809161292784610ded565b815201910190611af3565b8151815260209182019101611a8a565b91908110156129525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101945790565b90816020910312610194575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561065c575f916129e6575b50151590565b90506020813d602011612a10575b81612a0160209383610d4b565b8101031261019457515f6129e0565b3d91506129f4565b60405190612a2582610cfa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000811660208401527f0000000000000000000000000000000000000000000000000000000000000000166040830152565b60405190612ab082610c95565b5f6080838281528260208201528260408201528260608201520152565b5f1981146128385760010190565b8051156129525760200190565b80518210156129525760209160051b010190565b90612b078151612f05565b805f525f5160206158d45f395f51905f5260205260405f20612b298154612acd565b809155815f525f5160206159345f395f51905f5260205260405f20604051612b5081610c95565b81546001600160a01b0390811682526001830154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529301541660808201529015612d23575b60c084019485515115612d07576020850151151591845f525f5160206158f45f395f51905f5260205260405f20612bd184836133fd565b60018060a01b03165f5260205260405f209560a0600180821b039101511694875151975f5b898110612c095750505050505050505050565b80612c176001928451612ae8565b51805f525f5160206159145f395f51905f526020528960405f209160048301548b8660ff8360501c16612c4981611302565b149182612cf9575b82612ce6575b82612cd3575b505080612caa575b612c73575b50505001612bf6565b82612c80612ca294613457565b60020b5f528d60205260405f20895f5160206159545f395f51905f528c613477565b5f8981612c6a565b50612cce612cc4868060a01b038b511660a08b20906138eb565b505090508461342c565b612c65565b60301c63ffffffff161090508b5f612c5d565b91508b60ff8360581c1615151491612c57565b60028601548a149250612c51565b9250505061114592505f5160206159545f395f51905f52612f63565b508251606081015160020b612b9a5763c256622b60e01b5f5260045ffd5b81601f8201121561019457805190612d58826112e7565b92612d666040519485610d4b565b8284526020838301011161019457815f9260208093018386015e8301015290565b906020828203126101945781516001600160401b03811161019457610f7e9201612d41565b60405190816105e2816105d45f9460016020612dd49801526040808401526060830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612e105750565b612e23903d805f833e6106528183610d4b565b50565b5f546001600160a01b03163303610a8857565b5f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5460ff16908115612e71575090565b6001600160a01b03165f9081526002602052604090205460ff16919050565b9080601f83011215610194578151612ea781610d6c565b92612eb56040519485610d4b565b81845260208085019260051b82010192831161019457602001905b828210612edd5750505090565b8151815260209182019101612ed0565b90612eff95949392915f60a05261489e565b60a05190565b604051612f16602082018093610e96565b60a08152612f2560c082610d4b565b51902090565b60020b5f190190627fffff198212627fffff83131761283857565b600291820b910b0390627fffff198212627fffff83131761283857565b9060808301918251156133f757612f7a8451612f05565b6020850151159081156133e3578551602001519092906001600160a01b03165b60018060a01b031695835f526005820160205260405f2060018060a01b0388165f5260205260405f2096845f526006830160205260405f209060018060a01b03165f5260205260405f209160018101945f526004810160205260405f2054965f905195604084015160020b91606085015160020b9560608651015160020b935b898310613031575b50505050505050505050505050565b5f9d95969798999a9b9c9d50895f146133d757888160020b13155b6133cf5760020b845f8183071291050393895f146132d5578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159784895f146132c05750610194578392817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8a156132b557898660020b13155b6132ac571561329057845f528160205260405f2098895480156132715793909192935b80151580613268575b156132555790818f959493925f528660205260405f208054966004820154600160ff8260501c1661319481611302565b0361324a5760301c63ffffffff1614613216578f518c5160a090206131d0916131c691906001600160a01b03166138eb565b505090508261342c565b15613202578f600193926131f5928f8f8f81519160a08a80821b039101511695613477565b0193925b9390919261315b565b505050505050505050975050505050505050565b50509c9b9a9950949091939796959d92505b88156132455761323790612f2b565b9b9a919b969290939661301a565b613237565b5050505093926131f9565b509b9a999850939c91929695949c613228565b508c8210613164565b50949091939796959d929b9a999850885f146132455761324590612f2b565b90929695949c919a99989793885f146132455761324590612f2b565b50859d50613022565b898660020b13613138565b9391505060020b900360020b0260020b613128565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159784895f146133b557506101945783928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b9461312a565b93905060ff809250031660020b0160020b0260020b6133af565b859d50613022565b888160020b121561304c565b8551519092906001600160a01b0316612f9a565b50505050565b901561341a57516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b031661340e565b6004015460ff8160581c165f1461344c5760181c60020b9060020b121590565b60020b9060020b1290565b6004015460ff8160581c165f146134715760181c60020b90565b60020b90565b60048501805460ff60501b1916600160511b179081905591969195605887901c60ff16959094939092906134ab87826133fd565b96156134b790826133fd565b83516020850151604090950151600387018054909b6001600160a01b039384169b94985f989095879590948116939116918d916134f69060801c6139a4565b6040519161350383610cc4565b8060020b835260181c60020b602083015260408201528c606082015260405180988192632d35e7ed60e11b8352600483019161353e926139ca565b03815a6040945f91f198891561065c576135e78f9a8e938a88819b8b9689955f925f916138b9575b5091926135db926001600160a01b0386166138a3578460801d945b6001600160a01b03871661388c57600f0b955b6001600160a01b0316613882575f9f5b6001600160a01b0316613876575060045f995b01549560ff8760581c165f146138655760208201516001600160a01b031692613c72565b96879360601c90613f1d565b97909d5f82600f0b138015613859575b61383f575b505050505060018060801b038b5416915f60028a0199613629613623868d5460801c613a3d565b8c613a56565b60018a0186549060018801928354928315861461382d578082555b8015861461381a57506001915001555b8a546001600160801b0316806137f7575b508186555561367384613457565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b03905416156137c2575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612838576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f5160206158945f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f806136b2565b8b546001600160801b03191683199091016001600160801b0316178b555f613665565b8552506020526040832060010155613654565b83865282602052806040872055613644565b61384c959a508990613f1d565b9050945f808080806135fc565b505f83600f0b136135f7565b81516001600160a01b031692613c72565b600490600f0b996135b7565b8060801d9f6135a4565b61389d9082600f0b90600f0b613a18565b95613594565b6138b38160801d8660801d613a18565b94613581565b6135db93506138d7915060403d6040116119695761195a8183610d4b565b9092613566565b9190820180921161283857565b9190602090604051828101918252600660408201526040815261390f606082610d4b565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561065c575f92613970575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d60201161399c575b8161398c60209383610d4b565b810103126101945751905f613948565b3d915061397f565b600160ff1b8114612838575f0390565b9190826040910312610194576020825192015190565b90610160926139db83606093610e96565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761283857565b6001600160801b03918216908216039190821161283857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f6002880197613aaa613aa4888b5460801c613a3d565b8a613a56565b835490600185019182549182158514613c3a578181555b81158514613c19576001915001555b88546001600160801b031680613bf6575b5081845555613aef82613457565b9660028301545f525f5160206158b45f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615613bc1575b5050015460601c90815f525f5160206159745f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116128385760205f5160206158945f395f51905f5291835f525f5160206159745f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613b37565b89546001600160801b03191683199091016001600160801b03161789555f613ae1565b5083525f5160206159145f395f51905f526020526001604084200155613ad0565b8285525f5160206159145f395f51905f52602052816040862055613ac1565b60405190613c6682610d30565b5f602083606081520152565b92919092613c7e613c59565b506001600160a01b0381169384613c9c575b5050610f7e92506141aa565b60405163442f7de960e11b8152600481018690526001600160a01b03919091169190602081602481865afa5f9181613edf575b50613cdb575b50613c90565b60ff6004911610159081613ecf575b50613cf7575b8080613cd5565b5f9060246040518096819363f3ffe14b60e01b835260048301525afa92831561065c575f93613d66575b508251805115159081613d3f575b50613d3a5782613cf0565b505090565b6001600160a01b039150613d5290612adb565b5151166001600160a01b038316145f613d2f565b9092503d805f833e613d788183610d4b565b810190602081830312610194578051906001600160401b03821161019457016040818303126101945760405191613dae83610d30565b81516001600160401b0381116101945782019080601f8301121561019457815191613dd883610d6c565b92613de66040519485610d4b565b80845260208085019160051b830101918383116101945760208101915b838310613e2a575050505050613e1e91602091845201610dc9565b6020820152915f613d21565b82516001600160401b0381116101945782019060a0828703601f1901126101945760405190613e5882610c95565b613e6460208401610dc9565b8252613e7260408401610ddd565b6020830152613e8360608401610ded565b6040830152613e9460808401610dc9565b606083015260a0830151916001600160401b03831161019457613ebf88602080969581960101612d41565b6080820152815201920191613e03565b613ed9915061412c565b5f613cea565b9091506020813d602011613f15575b81613efb60209383610d4b565b81010312610194575160ff8116810361019457905f613ccf565b3d9150613eee565b9591939092935f81600f0b135f14614124576001600160801b0316935b5f81600f0b135f1461411d576001600160801b03165b60208201519151805190926001600160a01b0316901561410e57613f7d90613f7784612adb565b5161451a565b9081156141085786925b82156140f75760208201516001600160a01b0316975b83156140ef5750925b6001600160801b0316806140a3575050509594919293955b95926001926020945b835185101561404b578798614017613ffc9899613fea600194613f778a8a612ae8565b9a9093858060801b0316600f0b6142b2565b600f0b8a846040519361400f8d86610d4b565b5f85526145a2565b828060801b0316975f1461403d5786828060a01b03910151165b94019397969597613fc7565b818060a01b03905116614031565b979691959094508793509150856001600160801b03811661406e575b5050505050565b61407a928486936142f3565b6001600160a01b031615614092575b80808080614067565b6001600160a01b031692505f614089565b916140d5916140b86140e49594600f0b6142b2565b91604051926140c8602085610d4b565b5f8452600f0b918c6145a2565b6001600160801b031690614501565b959491929395613fbe565b905092613fa6565b81516001600160a01b031697613f9d565b82613f87565b6319dcad4d60e31b5f5260045ffd5b505f613f50565b505f93613f3a565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f918161416e575b50610f7e57505f90565b9091506020813d6020116141a2575b8161418a60209383610d4b565b810103126101945761419b90610dbc565b905f614164565b3d915061417d565b916141b3613c59565b835190926001600160a01b0390811691168181036142ad575060208401516001600160a01b03165b6001600160a01b031660208401526040805194906141f98187610d4b565b60018652601f1981015f5b8181106142795750508495612e2394955262ffffff818301511691606081015160020b90608060018060a01b039101511691805193614244602086610d4b565b5f855281519561425387610c95565b865260208601528401526060830152608082015283519061427382612adb565b52612adb565b602090835161428781610c95565b5f81525f838201525f858201525f60608201526060608082015282828b01015201614204565b6141db565b600f0b60016001607f1b03198114612838575f0390565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b5f9491906001600160a01b03821661446e576001600160a01b031690813b1561446a578461433c92879283604051809681958294630b0d9c0960e01b84523090600485016142c9565b03925af1801561444a57908591614455575b50506001600160a01b0316916001600160801b031690823b1561444657604051630d0e30db60e41b8152848160048186885af1801561444a57908591614431575b5060405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925291602091839160449183915af19081156144265782916143e8575b50156143d95750565b6332067e4160e01b8152600490fd5b90506020813d60201161441e575b8161440360209383610d4b565b8101031261441a5761441490610dbc565b5f6143d0565b5080fd5b3d91506143f6565b6040513d84823e3d90fd5b8161443b91610d4b565b61444657835f61438f565b8380fd5b6040513d87823e3d90fd5b8161445f91610d4b565b61444657835f61434e565b8580fd5b92945092916001600160a01b03169050803b15610194576144a9935f809460405196879586948593630b0d9c0960e01b8552600485016142c9565b03925af1801561065c576144ba5750565b5f61114591610d4b565b90926001600160801b0316919082156133f75761114593156144ef57516001600160a01b03166146bd565b602001516001600160a01b03166146bd565b6001600160801b03918216908216019190821161283857565b90614523612aa3565b5081516001600160a01b03828116929116908183101561459a575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b0391015116926040519461457886610c95565b85526001600160a01b0316602085015260408401526060830152608082015291565b50819061453e565b90939291602091811561469e5761460a5f6401000276a4975b61463b604051956145cb87610cfa565b15158087528787018981526001600160a01b03909b16604080890191825251633cf3645360e21b81529b919a8c98899788969294926004880190610e96565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610c71565b03926001600160a01b03165af192831561065c575f9361466a575b505f130361466457600f0b90565b60801d90565b9092506020813d602011614696575b8161468660209383610d4b565b810103126101945751915f614656565b3d9150614679565b61460a5f73fffd8963efd1fc6a506488495d951d5263988d25976145bb565b9091906001600160a01b038116908161474b5750505f80808093855af1156146e25750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d1160018551141617169282815282602082015201521561479c5750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561065c575f9161484d575090565b90506020813d602011614874575b8161486860209383610d4b565b81010312610194575190565b3d915061485b565b6001600160a01b03918216815291166020820152604081019190915260600190565b606060a05291959491936001600160a01b0390921691908215615884575f60806040516148ca81610c95565b6148d2612aa3565b815282602082015260a051604082015260a05160a05182015201525f90845183518103615875575f905b80821061583e5750506149476040519561491587610c95565b82875298151560208701818152604088019a909a5260a0518701948552608087019586526001600160a01b03926133fd565b16806156df575034036156d0575b61495e84612989565b614ae75760408051936020808601526101608501976149808387018351610e96565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110614ad1575050505194603f1983820301610120840152602080875192838152019601905f5b818110614ab857505050916105d4614a2583614a09614a49955f9899899860018060a01b0390511661014083015203601f198101835282610d4b565b6040519283918760208401526040808401526060830190610c71565b6040519485809481936348c8949160e01b8352602060048401526024830190610c71565b03926001600160a01b03165af190811561065c575f91614a9e575b508051810190602081830312610194576020810151916001600160401b03831161019457614a99926020809201920101612e90565b60a052565b614ab291503d805f833e6106528183610d4b565b5f614a64565b825160020b8852602097880197909201916001016149cd565b82518952602098890198909201916001016149a5565b9193949290845193614af885612f05565b91825f525f5160206159345f395f51905f52602052600160405f20015460b81c60020b1561562e575b614b2e60a08720856138eb565b50509050614b3f83511515886133fd565b90845f525f5160206158d45f395f51905f5260205260405f20549260018060a01b039051169351151594604051608052614b7a608051610d15565b6080515260020b6020608051015260018060a01b03166040608051015260a051608051015260808051015260a06080510152614bba604085015151610e64565b915f5b6040860151908151811015615622576020835192818360051b80920101519301015160a06080510151151560a05188015160020b905f14615611578160020b01627fffff198112627fffff82131761283857925b60805160a001511580159061560a5784915b60405191632939447b60e11b835260048301528060248301528360020b60448301528560020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f926155c7575b506001600160801b0382161561278f5760808051805160408281015192909301516001600160a01b039081165f8181527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528590208054614d9f969560a095949293921690614ce990612acd565b809355855193845260208401528885840152835183015260808201522095815193614d1385610d15565b8d85528160020b60208601528960020b8386015260018060801b03861660a05186015260018060801b031660808501528660a085015260a060805101511515945f99835192614d6184610cc4565b600290810b84520b60208301526001600160801b03168282015260a05181018790528151632d35e7ed60e11b81529283918291908f600484016139ca565b03815f6001600160a01b038e165af190811561065c575f916155a8575b508060801d90600f0b835f1461557e57505f81600f0b125f1461557757614de2906142b2565b6001600160801b03165b915b6001600160801b0383161561278f5760808201516001600160801b039081169084168111615563575b5081518051909190614e33906001600160a01b0316308c614800565b906020830192614e4e60018060a01b038551168d3090614800565b92821561555c575f925b15615554578c30935b5f831380615542575b6154d8575b50505f81126153ac575b50505f82138061539a575b615336575b505f8112615254575b506040966001969594939260a09250906001600160801b03811661522e575b50818101515f525f5160206159145f395f51905f526020526002885f20614efc600382018a8060801b0387168b8060801b03198254161781558a8060801b0386518601511690613a56565b6020830151600482019081546001600160581b038d87015160181b9163ffffffff60301b8951608051015160301b1660ff60581b8a6080510151151560581b169365ffffff0000006001600160601b03196080805101518d511b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff19161716911617171716171790556080515191829101555f525f5160206158f45f395f51905f52602052875f208780841b03896080510151168880851b03165f52602052875f208460020b5f52602052875f206002810190614fdf61205886845460801c614501565b608051515f525f5160206158b45f395f51905f52602052895f208980861b038b6080510151168a80871b03165f52602052895f2084518451015160020b8a8060801b03845416156151fd575b50508383015190898101908282549182155f146151dd57555b5f8381525f5160206159145f395f51905f5260209081528d82208d019290925592909155825460808b811b8c90038083168d018116811990931692909217909455939094015182519283015160a08b901b8b900390811683525f5160206159745f395f51905f5286528b8320938c01511682529190935291889020547f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a39160c0916150f1918616906138de565b94888060a01b0360808051015116898060a01b03165f525f5160206159745f395f51905f52602052895f20898060a01b038b6080510151168a8060a01b03165f52602052858a5f2055888060a01b036080805101511693898060a01b038b60805101511695608051519260a060805101511515906020608051015160020b918e51958652602086015260020b8d85015260a0518401528a8060801b0316608083015260a0820152a3838060a01b03608080510151165f5160206158945f395f51905f526020868060a01b0388608051015116938851908152a36151d48288612ae8565b52019050614bbd565b5050805f525f5160206159145f395f51905f52602052828c5f2055615044565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff8c5f2092161b81541790555f8061502b565b61524e90825184608051015115158a80871b0360808051015116916144c4565b5f614eb1565b615263909695949392966139a4565b81516001600160a01b0390811692908b163b15610194575f8b602482956040519687938492632961046560e21b8452600484015260018060a01b03165af192831561065c576152c593615326575b50516001600160a01b038b811691166146bd565b604051630476982d60e21b8152946020866004815f6001600160a01b038e165af190811561065c5760409760019760a093615308575b5097509192939495614e92565b61531f9060203d811161241e5761240f8183610d4b565b505f6152fb565b5f61533091610d4b565b5f6152b1565b82516001600160a01b03908116908c163b1561019457828c615372935f809460405196879586948593630b0d9c0960e01b85526004850161487c565b03926001600160a01b03165af1801561065c5715614e89575f61539491610d4b565b5f614e89565b506001600160a01b0381161515614e84565b6153b5906139a4565b81519091906001600160a01b03908116908e163b15610194575f8e602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c576154c8575b50516001600160a01b031680615463575060208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c57615445575b505b5f80614e79565b61545c9060203d811161241e5761240f8183610d4b565b505f61543c565b61547891906001600160a01b038e16906146bd565b5f60208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c576154aa575b5061543e565b6154c19060203d811161241e5761240f8183610d4b565b505f6154a4565b5f6154d291610d4b565b5f615400565b83516001600160a01b0390811692163b1561019457828f5f92836155139560405196879586948593630b0d9c0960e01b85526004850161487c565b03926001600160a01b03165af1801561065c57615532575b8d90614e6f565b5f61553c91610d4b565b5f61552b565b506001600160a01b0381161515614e6a565b8c5f93614e61565b3092614e58565b6155709197508390613a3d565b955f614e17565b505f614dec565b90505f8112156155a157615591906142b2565b6001600160801b03165b91614dee565b505f61559b565b6155c0915060403d81116119695761195a8183610d4b565b505f614dbc565b9091506020813d8211615602575b816155e260209383610d4b565b8101031261019457516001600160801b038116810361019457905f614c79565b3d91506155d5565b8291614c23565b61561b9082612f46565b9092614c11565b5050505091505060a052565b5f8381525f5160206159345f395f51905f526020908152604091829020885181546001600160a01b039182166001600160a01b0319918216178355928a0151600183018054958c015160a080518e015160b81b62ffffff60b81b1662ffffff60a01b9290911b919091169284166001600160d01b0319909716969096179190911794909417909355608089015160029091018054919093169116179055614b21565b636d295d4f60e11b5f5260045ffd5b346156d0576040516370a0823160e01b815230600482015291602083602481855afa92831561065c575f9361580a575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561065c575f916157d0575b501561578b576020602492604051938480926370a0823160e01b82523060048301525afa91821561065c575f9261579a575b5061578591926138de565b14614955575b637627529f60e01b5f5260045ffd5b91506020823d6020116157c8575b816157b560209383610d4b565b810103126101945761578591519161577a565b3d91506157a8565b90506020813d602011615802575b816157eb60209383610d4b565b81010312610194576157fc90610dbc565b5f615748565b3d91506157de565b9092506020813d602011615836575b8161582660209383610d4b565b810103126101945751915f61570f565b3d9150615819565b909261584a8488612ae8565b519081156158665760019161585e916138de565b9301906148fc565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b633b77ab5760e11b5f5260045ffdfea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf098b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1507:7026:77:-:0;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;;;1273:26:0;;1269:95;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;3052:40:0;;-1:-1:-1;3052:40:0;-1:-1:-1;303:10:78;;600:17;1507:7026:77;303:10:78;;;;-1:-1:-1;;303:10:78;2093:20:1;303:10:78;;;-1:-1:-1;;;;;1507:7026:77;;1960:26;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2020:36;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2090:31;;1507:7026;;-1:-1:-1;;;;;1507:7026:77;;2155:19;1507:7026;;;2201:40;1507:7026;2251:74;2335:55;;2400:12;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2335:55;1507:7026;;;;;;;;;;2400:12;1507:7026;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;1507:7026:77;;-1:-1:-1;1322:31:0;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o","linkReferences":{"src/libs/LimitOrderViews.sol":{"LimitOrderViews":[{"start":4950,"length":20},{"start":7994,"length":20},{"start":20231,"length":20}]}}},"deployedBytecode":{"object":"0x60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081633fc8cef314610ba3575080635ef3e95514610b5f5780635f8fbad614610afe578063715018a614610a9b57806379ba509714610a165780637a9cf2731461089e5780637fcc389f146108715780638da5cb5b1461084a57806391dd7346146107d9578063a6de70b414610795578063aa24fafc1461067b578063c2ec68ea146104b8578063c96d060b1461048b578063d8c3177214610462578063dc4c90d31461041e578063e30c3978146103f6578063eb07ed2414610208578063f2fde38b146101985763f7888aec14610138575f61000f565b3461019457604036600319011261019457610151610c17565b610159610c01565b6001600160a01b039182165f9081525f5160206159745f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b34610194576020366003190112610194576101b1610c17565b6101b9612e26565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b366003190161012081126101945760a0136101945760405161022981610c95565b6004356001600160a01b03811681036101945781526024356001600160a01b038116810361019457602082015260443562ffffff811681036101945760408201526064358060020b81036101945760608201526084356001600160a01b038116810361019457608082015261029c610be4565b9060c4356001600160401b0381116101945736602382011215610194578060040135906102c882610d6c565b916102d66040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103e65750505060e4356001600160401b03811161019457366023820112156101945780600401359061032882610d6c565b916103366040519384610d4b565b8083526024602084019160051b8301019136831161019457602401905b8282106103ce575050610104359290506001600160a01b03831683036101945761037c33612e39565b156103bf576103bb946103af947f0000000000000000000000000000000000000000000000000000000000000000612eed565b60405191829182610d83565b0390f35b638078f92160e01b5f5260045ffd5b602080916103db84610bf3565b815201910190610353565b81358152602091820191016102f3565b34610194575f366003190112610194576001546040516001600160a01b039091168152602090f35b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f3660031901126101945760205f5160206159545f395f51905f5254604051908152f35b34610194576020366003190112610194576104a4612e26565b6004355f5160206159545f395f51905f5255005b34610194576080366003190112610194576004356001600160401b038111610194576104e8903690600401610c41565b906104f1610c01565b6064356001600160a01b038116939190849003610194576105266105ac936040519361051c85610c95565b338552369161128e565b9360208301948552604083019160018060a01b031682526060830160443581526080840191825261057d60405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610ed9565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610d4b565b60405190816105e2816105d45f94600260206106049801526040808401526060830190610c71565b03601f198101835282610d4b565b604051809381926348c8949160e01b8352602060048401526024830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761063f57005b61065a903d805f833e6106528183610d4b565b810190612d87565b005b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b34610194576040366003190112610194576004356001600160401b038111610194576106ab903690600401610c41565b6024356001600160401b038111610194576106ca903690600401610c41565b926106d3612e26565b838303610786575f5b8381106106e557005b806106fb6106f66001938887612942565b6112da565b828060a01b0361071461070f848988612942565b612966565b165f52600260205260405f209060ff80198354169115151617905561073d61070f828786612942565b7f34f71eeeadf8791995a3f273a2e80649f38e3c90b95e1850d3ffcfbc1e970c3c602061076e6106f6858b8a612942565b926040519315158452858060a01b031692a2016106dc565b63b85b903160e01b5f5260045ffd5b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194576020366003190112610194576004356001600160401b0381116101945736602382011215610194578060040135906001600160401b038211610194573660248383010111610194576103bb916024610836920161130c565b604051918291602083526020830190610c71565b34610194575f366003190112610194575f546040516001600160a01b039091168152602090f35b3461019457602036600319011261019457602061089461088f610c17565b612e39565b6040519015158152f35b34610194576040366003190112610194576004356001600160401b038111610194576108ce903690600401610c41565b6108d6610c01565b913681900360de1901905f5b8381101561065a578060051b820135838112156101945782019060c0820161090a8184611259565b905061091c575b5060019150016108e2565b6109296109309184611259565b369161128e565b9161093d60a082016112da565b9083519360a0823603126101945760405161095781610c95565b61096083610c2d565b815261096e60208401610c2d565b602082015260408301359162ffffff8316830361019457600196610a10956109b560806105d497610a0b9760408801526109aa60608201610bf3565b606088015201610c2d565b6080850152604051936109c785610cdf565b6109cf612aa3565b508452151560208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610f0c565b612dac565b86610911565b34610194575f36600319011261019457600154336001600160a01b0390911603610a8857600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610194575f36600319011261019457610ab3612e26565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019457366003190161014081126101945760a01361019457610b20610be4565b60c435908160020b82036101945760e435908160020b82036101945761012435916001600160a01b03831683036101945761065a936101043592610f81565b34610194575f366003190112610194576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610194575f366003190112610194577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361019457565b35908160020b820361019457565b602435906001600160a01b038216820361019457565b600435906001600160a01b038216820361019457565b35906001600160a01b038216820361019457565b9181601f84011215610194578235916001600160401b038311610194576020808501948460051b01011161019457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610cb057604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610cb057604052565b60e081019081106001600160401b03821117610cb057604052565b606081019081106001600160401b03821117610cb057604052565b60c081019081106001600160401b03821117610cb057604052565b604081019081106001600160401b03821117610cb057604052565b90601f801991011681019081106001600160401b03821117610cb057604052565b6001600160401b038111610cb05760051b60200190565b60206040818301928281528451809452019201905f5b818110610da65750505090565b8251845260209384019390920191600101610d99565b5190811515820361019457565b51906001600160a01b038216820361019457565b519062ffffff8216820361019457565b51908160020b820361019457565b91908260a091031261019457604051610e1381610c95565b6080610e5f818395610e2481610dc9565b8552610e3260208201610dc9565b6020860152610e4360408201610ddd565b6040860152610e5460608201610ded565b606086015201610dc9565b910152565b90610e6e82610d6c565b610e7b6040519182610d4b565b8281528092610e8c601f1991610d6c565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610ef65750505090565b8251845260209384019390920191600101610ee9565b61018060c0610f7e9360208452610f27602085018251610e96565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610ed9565b90565b939291925f5160206159545f395f51905f525483158015611250575b611248575b50610fcc7f0000000000000000000000000000000000000000000000000000000000000000612989565b92836111a7575b610fdb612a18565b9460018060a01b038651169660405197633fe552eb60e01b89525f5160206159545f395f51905f5260048a0152602489015260043560018060a01b0381168091036101945760448901526024356001600160a01b0381169081900361019457606489015260443562ffffff81168091036101945760848901526064358060020b8091036101945760a48901526084356001600160a01b038116908190036101945760c48901521515938460e489015260020b61010488015260020b61012487015260e0866101448173__$b37d8808673a650b3481d88bc26a627692$__5af4801561065c575f965f905f92611151575b50604051946110db602087610d4b565b5f86525f368137604051986110ef8a610cdf565b6110f7612aa3565b5089526020890152600290810b60408901520b606087015260808601526001600160a01b031660a085015260c084015261114757506105d4610a0b6111459260405192839160208301610f0c565b565b9061114591612afc565b9750505060e03d60e0116111a0575b61116a8188610d4b565b860160e087820312610194576111809087610dfb565b61119860c061119160a08a01610ded565b9801610ded565b90965f6110cb565b503d611160565b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561065c575f9161120e575b50610fd3576344863e8560e11b5f5260045ffd5b90506020813d602011611240575b8161122960209383610d4b565b810103126101945761123a90610dbc565b5f6111fa565b3d915061121c565b92505f610fa2565b50808411610f9d565b903590601e198136030182121561019457018035906001600160401b03821161019457602001918160051b3603831361019457565b92919061129a81610d6c565b936112a86040519586610d4b565b602085838152019160051b810192831161019457905b8282106112ca57505050565b81358152602091820191016112be565b3580151581036101945790565b6001600160401b038111610cb057601f01601f191660200190565b6003111561066757565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610194578035906003821015610194576020810135906001600160401b03821161019457019183601f84011215610194578235611385816112e7565b936113936040519586610d4b565b81855260208501956020838301011161019457815f9260208093018837850101526113bd82611302565b81156119ca57506113cd81611302565b600181036114c25750906113df612a18565b825183019260208401926020828603126101945751906001600160401b0382116101945701926101609084900312610194576040519161141e83610cdf565b61142b8160208601610dfb565b835261143960c08501610dbc565b602084015261144a60e08501610ded565b604084015261145c6101008501610ded565b606084015261012084015160808401526114796101408501610dc9565b60a0840152610160840151906001600160401b0382116101945760206114a4926114ae960101612e90565b60c0830152612afc565b6040516114bc602082610d4b565b5f815290565b6002906114ce81611302565b036119bb5780518101916020828403126101945751906001600160401b03821161019457019060a082820312610194576040519061150b82610c95565b61151760208401610dc9565b825260408301516001600160401b0381116101945760208061153d930191850101612e90565b80602083015261154f60608401610dc9565b9182604082015261156d60a060808601519586606085015201610dc9565b6080820181905290516001600160a01b0390811691908116156119ac57825191821561197f579392905f945f94871515935b8587106115d1575b505050505050508181106115bc5750506114ae565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966115e28883612ae8565b51805f525f5160206159145f395f51905f5260205260405f206004810154918260601c801561197f57870361199d57600160ff8460501c1661162381611302565b0361198e57600382015492600283015492835f525f5160206159345f395f51905f5260205260405f206040519061165982610c95565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b606085018190529201541660808301521561197f576116db6116d160a083207f00000000000000000000000000000000000000000000000000000000000000006138eb565b505090508361342c565b6119705761179b906116ec83613457565b95604060ff8660581c169561170187856133fd565b925f525f5160206158f45f395f51905f52602052815f2060018060a01b0384165f52602052815f208960020b5f5260205261174d86835f2060ff60501b19841660048301558587613a79565b5061175a8a60801c6139a4565b82519161176683610cc4565b8060020b835260181c60020b602083015282820152876060820152815180958192632d35e7ed60e11b835286600484016139ca565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c578c9461187e8f9460c0956002947f73544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde985f91611941575b508a1561192a578251611844906001600160a01b03165b7f0000000000000000000000000000000000000000000000000000000000000000946141aa565b91600f82900b9160801d906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000613f1d565b505001549060018060a01b03169687956040519283521515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b038616820361190857506118df926001600160801b039092169190506138de565b9685806118fe575b6118f95760010195949392919061159f565b6115a7565b50888810156118e7565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b6020830151611844906001600160a01b031661181d565b611962915060403d8111611969575b61195a8183610d4b565b8101906139b4565b505f611806565b503d611950565b6374169b5760e11b5f5260045ffd5b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b91809391505183019260208401916020828603126101945751906001600160401b03821161019457019261012090849003126101945760405192611a0d84610c95565b611a1a8260208301610dfb565b8452611a2860c08201610dbc565b916020850192835260e08201516001600160401b0381116101945760209083010181601f8201121561019457805190611a6082610d6c565b91611a6e6040519384610d4b565b80835260208084019160051b8301019184831161019457602001905b8282106129325750505060408601526101008201516001600160401b038111610194576020908301019080601f83011215610194578151611aca81610d6c565b92611ad86040519485610d4b565b81845260208085019260051b82010192831161019457602001905b82821061291a5750505084840152611b0e9061012001610dc9565b9160808401928352835192611b2284612f05565b92835f525f5160206159345f395f51905f52602052600160405f20015460b81c60020b15612879575b611b7860a086207f00000000000000000000000000000000000000000000000000000000000000006138eb565b5050929050611b8a82511515876133fd565b855f525f5160206158d45f395f51905f5260205260405f20549160018060a01b03905116925115159360405196611bc088610d15565b875260020b602087015260018060a01b0316604086015283850152608084015260a0830152611bf3604085015151610e64565b915f5b604086015190815181101561285c5760208488015192818360051b80920101519301015160a084015115158588015160020b905f1461284c578160020b01627fffff198112627fffff821317612838575b60a08501511580159061283157815b60405191632939447b60e11b835260048301528560248301528360020b60448301528060020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f926127ee575b506001600160801b0382161561278f57611dc0604060a08951600180831b03838c015116600180841b0360808d015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052845f2091611d118354612acd565b8093558551938452602084015288858401528d83015260808201522095815198611d3a8a610d15565b8d8a52600282810b60208c015285900b838b01526001600160801b038681168d8c01521660808a015260a0808a018890528a01518251901515955f959192909190611d8484610cc4565b600290810b84520b60208301526001600160801b0316828201528a81018790528151632d35e7ed60e11b81529283918291908f600484016139ca565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561065c575f916127cf575b508060801d90600f0b835f146127a557505f81600f0b125f1461279e57611e23906142b2565b6001600160801b03165b915b6001600160801b0383161561278f57608087015183906001600160801b03908116908216811161277c575b505086518051909190611e97906001600160a01b0316307f0000000000000000000000000000000000000000000000000000000000000000614800565b6020830151909190611ed3906001600160a01b0316307f0000000000000000000000000000000000000000000000000000000000000000614800565b918115612775575f915b1561276e5730915b5f82138061275c575b6126b9575b505f81126124ed575b505f8213806124db575b612435575b505f81126122c9575b5060019660a0929091506001600160801b0381166122a6575b50818101515f525f5160206159145f395f51905f52602052600260405f20611f78600382018a8060801b0387168b8060801b03198254161781558a8060801b038d8601511690613a56565b602083015160048201908c6001600160581b038d845490604089015160181b65ffffff00000063ffffffff60301b8684015160301b169260ff60581b8d820151151560581b169660806001600160601b0319920151901b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff1916171691161717171617179055895191829101555f525f5160206158f45f395f51905f5260205260405f208780841b0360408a0151168880851b03165f5260205260405f208460020b5f5260205260405f20600281019061205e61205886845460801c614501565b83613a56565b89515f525f5160206158b45f395f51905f5260205260405f208980861b0360408c0151168a80871b03165f5260205260405f208b8451015160020b8a8060801b0384541615612274575b50508383015190898101908282549182155f1461225357555b825f525f5160206159145f395f51905f526020528a60405f20015555878060801b03888060801b0389808060801b03845416011616888060801b03198254161790550151858060a01b036080880151165f525f5160206159745f395f51905f5260205260405f20868060a01b03604089015116878060a01b03165f526020527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c061217960405f20898060801b03861690546138de565b94888060a01b0360808b0151165f525f5160206159745f395f51905f5260205260405f20898060a01b0360408c0151168a8060a01b03165f526020528560405f2055888060a01b0360808b01511693898060a01b0360408c015116958b805193602060a0830151151592015160020b91604051958652602086015260020b60408501528d8401528a8060801b0316608083015260a0820152a3838060a01b036080860151165f5160206158945f395f51905f526020868060a01b0360408901511693604051908152a361224c8287612ae8565b5201611bf6565b5050805f525f5160206159145f395f51905f526020528260405f20556120c1565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff60405f2092161b81541790555f806120a8565b6122c3908251848b015115158a80871b0360808d015116916144c4565b5f611f2d565b6122d2906139a4565b60208201516001600160a01b0390811692907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101939093525f83602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561065c5761239a93612425575b50602001516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691166146bd565b604051630476982d60e21b8152956020876004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561065c5760019760a0936123f7575b5091819750611f14565b6124179060203d811161241e575b61240f8183610d4b565b81019061297a565b505f6123ed565b503d612405565b5f61242f91610d4b565b5f612363565b60208301516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916124919187916004850161487c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611f0b575f6124d591610d4b565b5f611f0b565b506001600160a01b0381161515611f06565b6124f6906139a4565b83516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051632961046560e21b815260048101919091525f81602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576126a9575b5083516001600160a01b0316806126055750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c576125e7575b505b5f611efc565b6125fe9060203d811161241e5761240f8183610d4b565b505f6125df565b61263a91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906146bd565b604051630476982d60e21b81526020816004815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5761268b575b506125e1565b6126a29060203d811161241e5761240f8183610d4b565b505f612685565b5f6126b391610d4b565b5f61257e565b84516001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b1561019457604051630b0d9c0960e01b8152915f91839182916127129187916004850161487c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c5715611ef3575f61275691610d4b565b5f611ef3565b506001600160a01b0381161515611eee565b5f91611ee5565b3091611edd565b612787929350613a3d565b90825f611e5a565b63f8db18c360e01b5f5260045ffd5b505f611e2d565b90505f8112156127c8576127b8906142b2565b6001600160801b03165b91611e2f565b505f6127c2565b6127e7915060403d81116119695761195a8183610d4b565b505f611dfd565b9091506020813d8211612829575b8161280960209383610d4b565b8101031261019457516001600160801b038116810361019457905f611cac565b3d91506127fc565b8291611c56565b634e487b7160e01b5f52601160045260245ffd5b6128569082612f46565b90611c47565b505050506105d49250610f7e915060405192839160208301610d83565b5f8481525f5160206159345f395f51905f526020908152604091829020875181546001600160a01b039182166001600160a01b031991821617835592890151600183018054958b0151898c015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608088015160029091018054919093169116179055611b4b565b6020809161292784610ded565b815201910190611af3565b8151815260209182019101611a8a565b91908110156129525760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101945790565b90816020910312610194575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561065c575f916129e6575b50151590565b90506020813d602011612a10575b81612a0160209383610d4b565b8101031261019457515f6129e0565b3d91506129f4565b60405190612a2582610cfa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000811660208401527f0000000000000000000000000000000000000000000000000000000000000000166040830152565b60405190612ab082610c95565b5f6080838281528260208201528260408201528260608201520152565b5f1981146128385760010190565b8051156129525760200190565b80518210156129525760209160051b010190565b90612b078151612f05565b805f525f5160206158d45f395f51905f5260205260405f20612b298154612acd565b809155815f525f5160206159345f395f51905f5260205260405f20604051612b5081610c95565b81546001600160a01b0390811682526001830154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529301541660808201529015612d23575b60c084019485515115612d07576020850151151591845f525f5160206158f45f395f51905f5260205260405f20612bd184836133fd565b60018060a01b03165f5260205260405f209560a0600180821b039101511694875151975f5b898110612c095750505050505050505050565b80612c176001928451612ae8565b51805f525f5160206159145f395f51905f526020528960405f209160048301548b8660ff8360501c16612c4981611302565b149182612cf9575b82612ce6575b82612cd3575b505080612caa575b612c73575b50505001612bf6565b82612c80612ca294613457565b60020b5f528d60205260405f20895f5160206159545f395f51905f528c613477565b5f8981612c6a565b50612cce612cc4868060a01b038b511660a08b20906138eb565b505090508461342c565b612c65565b60301c63ffffffff161090508b5f612c5d565b91508b60ff8360581c1615151491612c57565b60028601548a149250612c51565b9250505061114592505f5160206159545f395f51905f52612f63565b508251606081015160020b612b9a5763c256622b60e01b5f5260045ffd5b81601f8201121561019457805190612d58826112e7565b92612d666040519485610d4b565b8284526020838301011161019457815f9260208093018386015e8301015290565b906020828203126101945781516001600160401b03811161019457610f7e9201612d41565b60405190816105e2816105d45f9460016020612dd49801526040808401526060830190610c71565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561065c57612e105750565b612e23903d805f833e6106528183610d4b565b50565b5f546001600160a01b03163303610a8857565b5f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5460ff16908115612e71575090565b6001600160a01b03165f9081526002602052604090205460ff16919050565b9080601f83011215610194578151612ea781610d6c565b92612eb56040519485610d4b565b81845260208085019260051b82010192831161019457602001905b828210612edd5750505090565b8151815260209182019101612ed0565b90612eff95949392915f60a05261489e565b60a05190565b604051612f16602082018093610e96565b60a08152612f2560c082610d4b565b51902090565b60020b5f190190627fffff198212627fffff83131761283857565b600291820b910b0390627fffff198212627fffff83131761283857565b9060808301918251156133f757612f7a8451612f05565b6020850151159081156133e3578551602001519092906001600160a01b03165b60018060a01b031695835f526005820160205260405f2060018060a01b0388165f5260205260405f2096845f526006830160205260405f209060018060a01b03165f5260205260405f209160018101945f526004810160205260405f2054965f905195604084015160020b91606085015160020b9560608651015160020b935b898310613031575b50505050505050505050505050565b5f9d95969798999a9b9c9d50895f146133d757888160020b13155b6133cf5760020b845f8183071291050393895f146132d5578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159784895f146132c05750610194578392817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8a156132b557898660020b13155b6132ac571561329057845f528160205260405f2098895480156132715793909192935b80151580613268575b156132555790818f959493925f528660205260405f208054966004820154600160ff8260501c1661319481611302565b0361324a5760301c63ffffffff1614613216578f518c5160a090206131d0916131c691906001600160a01b03166138eb565b505090508261342c565b15613202578f600193926131f5928f8f8f81519160a08a80821b039101511695613477565b0193925b9390919261315b565b505050505050505050975050505050505050565b50509c9b9a9950949091939796959d92505b88156132455761323790612f2b565b9b9a919b969290939661301a565b613237565b5050505093926131f9565b509b9a999850939c91929695949c613228565b508c8210613164565b50949091939796959d929b9a999850885f146132455761324590612f2b565b90929695949c919a99989793885f146132455761324590612f2b565b50859d50613022565b898660020b13613138565b9391505060020b900360020b0260020b613128565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159784895f146133b557506101945783928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b9461312a565b93905060ff809250031660020b0160020b0260020b6133af565b859d50613022565b888160020b121561304c565b8551519092906001600160a01b0316612f9a565b50505050565b901561341a57516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b031661340e565b6004015460ff8160581c165f1461344c5760181c60020b9060020b121590565b60020b9060020b1290565b6004015460ff8160581c165f146134715760181c60020b90565b60020b90565b60048501805460ff60501b1916600160511b179081905591969195605887901c60ff16959094939092906134ab87826133fd565b96156134b790826133fd565b83516020850151604090950151600387018054909b6001600160a01b039384169b94985f989095879590948116939116918d916134f69060801c6139a4565b6040519161350383610cc4565b8060020b835260181c60020b602083015260408201528c606082015260405180988192632d35e7ed60e11b8352600483019161353e926139ca565b03815a6040945f91f198891561065c576135e78f9a8e938a88819b8b9689955f925f916138b9575b5091926135db926001600160a01b0386166138a3578460801d945b6001600160a01b03871661388c57600f0b955b6001600160a01b0316613882575f9f5b6001600160a01b0316613876575060045f995b01549560ff8760581c165f146138655760208201516001600160a01b031692613c72565b96879360601c90613f1d565b97909d5f82600f0b138015613859575b61383f575b505050505060018060801b038b5416915f60028a0199613629613623868d5460801c613a3d565b8c613a56565b60018a0186549060018801928354928315861461382d578082555b8015861461381a57506001915001555b8a546001600160801b0316806137f7575b508186555561367384613457565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b03905416156137c2575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612838576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f5160206158945f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f806136b2565b8b546001600160801b03191683199091016001600160801b0316178b555f613665565b8552506020526040832060010155613654565b83865282602052806040872055613644565b61384c959a508990613f1d565b9050945f808080806135fc565b505f83600f0b136135f7565b81516001600160a01b031692613c72565b600490600f0b996135b7565b8060801d9f6135a4565b61389d9082600f0b90600f0b613a18565b95613594565b6138b38160801d8660801d613a18565b94613581565b6135db93506138d7915060403d6040116119695761195a8183610d4b565b9092613566565b9190820180921161283857565b9190602090604051828101918252600660408201526040815261390f606082610d4b565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561065c575f92613970575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d60201161399c575b8161398c60209383610d4b565b810103126101945751905f613948565b3d915061397f565b600160ff1b8114612838575f0390565b9190826040910312610194576020825192015190565b90610160926139db83606093610e96565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761283857565b6001600160801b03918216908216039190821161283857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f6002880197613aaa613aa4888b5460801c613a3d565b8a613a56565b835490600185019182549182158514613c3a578181555b81158514613c19576001915001555b88546001600160801b031680613bf6575b5081845555613aef82613457565b9660028301545f525f5160206158b45f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615613bc1575b5050015460601c90815f525f5160206159745f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116128385760205f5160206158945f395f51905f5291835f525f5160206159745f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613b37565b89546001600160801b03191683199091016001600160801b03161789555f613ae1565b5083525f5160206159145f395f51905f526020526001604084200155613ad0565b8285525f5160206159145f395f51905f52602052816040862055613ac1565b60405190613c6682610d30565b5f602083606081520152565b92919092613c7e613c59565b506001600160a01b0381169384613c9c575b5050610f7e92506141aa565b60405163442f7de960e11b8152600481018690526001600160a01b03919091169190602081602481865afa5f9181613edf575b50613cdb575b50613c90565b60ff6004911610159081613ecf575b50613cf7575b8080613cd5565b5f9060246040518096819363f3ffe14b60e01b835260048301525afa92831561065c575f93613d66575b508251805115159081613d3f575b50613d3a5782613cf0565b505090565b6001600160a01b039150613d5290612adb565b5151166001600160a01b038316145f613d2f565b9092503d805f833e613d788183610d4b565b810190602081830312610194578051906001600160401b03821161019457016040818303126101945760405191613dae83610d30565b81516001600160401b0381116101945782019080601f8301121561019457815191613dd883610d6c565b92613de66040519485610d4b565b80845260208085019160051b830101918383116101945760208101915b838310613e2a575050505050613e1e91602091845201610dc9565b6020820152915f613d21565b82516001600160401b0381116101945782019060a0828703601f1901126101945760405190613e5882610c95565b613e6460208401610dc9565b8252613e7260408401610ddd565b6020830152613e8360608401610ded565b6040830152613e9460808401610dc9565b606083015260a0830151916001600160401b03831161019457613ebf88602080969581960101612d41565b6080820152815201920191613e03565b613ed9915061412c565b5f613cea565b9091506020813d602011613f15575b81613efb60209383610d4b565b81010312610194575160ff8116810361019457905f613ccf565b3d9150613eee565b9591939092935f81600f0b135f14614124576001600160801b0316935b5f81600f0b135f1461411d576001600160801b03165b60208201519151805190926001600160a01b0316901561410e57613f7d90613f7784612adb565b5161451a565b9081156141085786925b82156140f75760208201516001600160a01b0316975b83156140ef5750925b6001600160801b0316806140a3575050509594919293955b95926001926020945b835185101561404b578798614017613ffc9899613fea600194613f778a8a612ae8565b9a9093858060801b0316600f0b6142b2565b600f0b8a846040519361400f8d86610d4b565b5f85526145a2565b828060801b0316975f1461403d5786828060a01b03910151165b94019397969597613fc7565b818060a01b03905116614031565b979691959094508793509150856001600160801b03811661406e575b5050505050565b61407a928486936142f3565b6001600160a01b031615614092575b80808080614067565b6001600160a01b031692505f614089565b916140d5916140b86140e49594600f0b6142b2565b91604051926140c8602085610d4b565b5f8452600f0b918c6145a2565b6001600160801b031690614501565b959491929395613fbe565b905092613fa6565b81516001600160a01b031697613f9d565b82613f87565b6319dcad4d60e31b5f5260045ffd5b505f613f50565b505f93613f3a565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f918161416e575b50610f7e57505f90565b9091506020813d6020116141a2575b8161418a60209383610d4b565b810103126101945761419b90610dbc565b905f614164565b3d915061417d565b916141b3613c59565b835190926001600160a01b0390811691168181036142ad575060208401516001600160a01b03165b6001600160a01b031660208401526040805194906141f98187610d4b565b60018652601f1981015f5b8181106142795750508495612e2394955262ffffff818301511691606081015160020b90608060018060a01b039101511691805193614244602086610d4b565b5f855281519561425387610c95565b865260208601528401526060830152608082015283519061427382612adb565b52612adb565b602090835161428781610c95565b5f81525f838201525f858201525f60608201526060608082015282828b01015201614204565b6141db565b600f0b60016001607f1b03198114612838575f0390565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b5f9491906001600160a01b03821661446e576001600160a01b031690813b1561446a578461433c92879283604051809681958294630b0d9c0960e01b84523090600485016142c9565b03925af1801561444a57908591614455575b50506001600160a01b0316916001600160801b031690823b1561444657604051630d0e30db60e41b8152848160048186885af1801561444a57908591614431575b5060405163a9059cbb60e01b81526001600160a01b039092166004830152602482019290925291602091839160449183915af19081156144265782916143e8575b50156143d95750565b6332067e4160e01b8152600490fd5b90506020813d60201161441e575b8161440360209383610d4b565b8101031261441a5761441490610dbc565b5f6143d0565b5080fd5b3d91506143f6565b6040513d84823e3d90fd5b8161443b91610d4b565b61444657835f61438f565b8380fd5b6040513d87823e3d90fd5b8161445f91610d4b565b61444657835f61434e565b8580fd5b92945092916001600160a01b03169050803b15610194576144a9935f809460405196879586948593630b0d9c0960e01b8552600485016142c9565b03925af1801561065c576144ba5750565b5f61114591610d4b565b90926001600160801b0316919082156133f75761114593156144ef57516001600160a01b03166146bd565b602001516001600160a01b03166146bd565b6001600160801b03918216908216019190821161283857565b90614523612aa3565b5081516001600160a01b03828116929116908183101561459a575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b0391015116926040519461457886610c95565b85526001600160a01b0316602085015260408401526060830152608082015291565b50819061453e565b90939291602091811561469e5761460a5f6401000276a4975b61463b604051956145cb87610cfa565b15158087528787018981526001600160a01b03909b16604080890191825251633cf3645360e21b81529b919a8c98899788969294926004880190610e96565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610c71565b03926001600160a01b03165af192831561065c575f9361466a575b505f130361466457600f0b90565b60801d90565b9092506020813d602011614696575b8161468660209383610d4b565b810103126101945751915f614656565b3d9150614679565b61460a5f73fffd8963efd1fc6a506488495d951d5263988d25976145bb565b9091906001600160a01b038116908161474b5750505f80808093855af1156146e25750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d1160018551141617169282815282602082015201521561479c5750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561065c575f9161484d575090565b90506020813d602011614874575b8161486860209383610d4b565b81010312610194575190565b3d915061485b565b6001600160a01b03918216815291166020820152604081019190915260600190565b606060a05291959491936001600160a01b0390921691908215615884575f60806040516148ca81610c95565b6148d2612aa3565b815282602082015260a051604082015260a05160a05182015201525f90845183518103615875575f905b80821061583e5750506149476040519561491587610c95565b82875298151560208701818152604088019a909a5260a0518701948552608087019586526001600160a01b03926133fd565b16806156df575034036156d0575b61495e84612989565b614ae75760408051936020808601526101608501976149808387018351610e96565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110614ad1575050505194603f1983820301610120840152602080875192838152019601905f5b818110614ab857505050916105d4614a2583614a09614a49955f9899899860018060a01b0390511661014083015203601f198101835282610d4b565b6040519283918760208401526040808401526060830190610c71565b6040519485809481936348c8949160e01b8352602060048401526024830190610c71565b03926001600160a01b03165af190811561065c575f91614a9e575b508051810190602081830312610194576020810151916001600160401b03831161019457614a99926020809201920101612e90565b60a052565b614ab291503d805f833e6106528183610d4b565b5f614a64565b825160020b8852602097880197909201916001016149cd565b82518952602098890198909201916001016149a5565b9193949290845193614af885612f05565b91825f525f5160206159345f395f51905f52602052600160405f20015460b81c60020b1561562e575b614b2e60a08720856138eb565b50509050614b3f83511515886133fd565b90845f525f5160206158d45f395f51905f5260205260405f20549260018060a01b039051169351151594604051608052614b7a608051610d15565b6080515260020b6020608051015260018060a01b03166040608051015260a051608051015260808051015260a06080510152614bba604085015151610e64565b915f5b6040860151908151811015615622576020835192818360051b80920101519301015160a06080510151151560a05188015160020b905f14615611578160020b01627fffff198112627fffff82131761283857925b60805160a001511580159061560a5784915b60405191632939447b60e11b835260048301528060248301528360020b60448301528560020b606483015260208260848173__$b37d8808673a650b3481d88bc26a627692$__5af491821561065c575f926155c7575b506001600160801b0382161561278f5760808051805160408281015192909301516001600160a01b039081165f8181527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528590208054614d9f969560a095949293921690614ce990612acd565b809355855193845260208401528885840152835183015260808201522095815193614d1385610d15565b8d85528160020b60208601528960020b8386015260018060801b03861660a05186015260018060801b031660808501528660a085015260a060805101511515945f99835192614d6184610cc4565b600290810b84520b60208301526001600160801b03168282015260a05181018790528151632d35e7ed60e11b81529283918291908f600484016139ca565b03815f6001600160a01b038e165af190811561065c575f916155a8575b508060801d90600f0b835f1461557e57505f81600f0b125f1461557757614de2906142b2565b6001600160801b03165b915b6001600160801b0383161561278f5760808201516001600160801b039081169084168111615563575b5081518051909190614e33906001600160a01b0316308c614800565b906020830192614e4e60018060a01b038551168d3090614800565b92821561555c575f925b15615554578c30935b5f831380615542575b6154d8575b50505f81126153ac575b50505f82138061539a575b615336575b505f8112615254575b506040966001969594939260a09250906001600160801b03811661522e575b50818101515f525f5160206159145f395f51905f526020526002885f20614efc600382018a8060801b0387168b8060801b03198254161781558a8060801b0386518601511690613a56565b6020830151600482019081546001600160581b038d87015160181b9163ffffffff60301b8951608051015160301b1660ff60581b8a6080510151151560581b169365ffffff0000006001600160601b03196080805101518d511b1696600160501b9462ffffff60ff60501b1992169069ffffffffffffffffffff19161716911617171716171790556080515191829101555f525f5160206158f45f395f51905f52602052875f208780841b03896080510151168880851b03165f52602052875f208460020b5f52602052875f206002810190614fdf61205886845460801c614501565b608051515f525f5160206158b45f395f51905f52602052895f208980861b038b6080510151168a80871b03165f52602052895f2084518451015160020b8a8060801b03845416156151fd575b50508383015190898101908282549182155f146151dd57555b5f8381525f5160206159145f395f51905f5260209081528d82208d019290925592909155825460808b811b8c90038083168d018116811990931692909217909455939094015182519283015160a08b901b8b900390811683525f5160206159745f395f51905f5286528b8320938c01511682529190935291889020547f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a39160c0916150f1918616906138de565b94888060a01b0360808051015116898060a01b03165f525f5160206159745f395f51905f52602052895f20898060a01b038b6080510151168a8060a01b03165f52602052858a5f2055888060a01b036080805101511693898060a01b038b60805101511695608051519260a060805101511515906020608051015160020b918e51958652602086015260020b8d85015260a0518401528a8060801b0316608083015260a0820152a3838060a01b03608080510151165f5160206158945f395f51905f526020868060a01b0388608051015116938851908152a36151d48288612ae8565b52019050614bbd565b5050805f525f5160206159145f395f51905f52602052828c5f2055615044565b8760020b905f81830712910503908160020b60081d8b0b5f526020528960ff8c5f2092161b81541790555f8061502b565b61524e90825184608051015115158a80871b0360808051015116916144c4565b5f614eb1565b615263909695949392966139a4565b81516001600160a01b0390811692908b163b15610194575f8b602482956040519687938492632961046560e21b8452600484015260018060a01b03165af192831561065c576152c593615326575b50516001600160a01b038b811691166146bd565b604051630476982d60e21b8152946020866004815f6001600160a01b038e165af190811561065c5760409760019760a093615308575b5097509192939495614e92565b61531f9060203d811161241e5761240f8183610d4b565b505f6152fb565b5f61533091610d4b565b5f6152b1565b82516001600160a01b03908116908c163b1561019457828c615372935f809460405196879586948593630b0d9c0960e01b85526004850161487c565b03926001600160a01b03165af1801561065c5715614e89575f61539491610d4b565b5f614e89565b506001600160a01b0381161515614e84565b6153b5906139a4565b81519091906001600160a01b03908116908e163b15610194575f8e602482936040519485938492632961046560e21b8452600484015260018060a01b03165af1801561065c576154c8575b50516001600160a01b031680615463575060208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c57615445575b505b5f80614e79565b61545c9060203d811161241e5761240f8183610d4b565b505f61543c565b61547891906001600160a01b038e16906146bd565b5f60208c600460405180948193630476982d60e21b835260018060a01b03165af1801561065c576154aa575b5061543e565b6154c19060203d811161241e5761240f8183610d4b565b505f6154a4565b5f6154d291610d4b565b5f615400565b83516001600160a01b0390811692163b1561019457828f5f92836155139560405196879586948593630b0d9c0960e01b85526004850161487c565b03926001600160a01b03165af1801561065c57615532575b8d90614e6f565b5f61553c91610d4b565b5f61552b565b506001600160a01b0381161515614e6a565b8c5f93614e61565b3092614e58565b6155709197508390613a3d565b955f614e17565b505f614dec565b90505f8112156155a157615591906142b2565b6001600160801b03165b91614dee565b505f61559b565b6155c0915060403d81116119695761195a8183610d4b565b505f614dbc565b9091506020813d8211615602575b816155e260209383610d4b565b8101031261019457516001600160801b038116810361019457905f614c79565b3d91506155d5565b8291614c23565b61561b9082612f46565b9092614c11565b5050505091505060a052565b5f8381525f5160206159345f395f51905f526020908152604091829020885181546001600160a01b039182166001600160a01b0319918216178355928a0151600183018054958c015160a080518e015160b81b62ffffff60b81b1662ffffff60a01b9290911b919091169284166001600160d01b0319909716969096179190911794909417909355608089015160029091018054919093169116179055614b21565b636d295d4f60e11b5f5260045ffd5b346156d0576040516370a0823160e01b815230600482015291602083602481855afa92831561065c575f9361580a575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561065c575f916157d0575b501561578b576020602492604051938480926370a0823160e01b82523060048301525afa91821561065c575f9261579a575b5061578591926138de565b14614955575b637627529f60e01b5f5260045ffd5b91506020823d6020116157c8575b816157b560209383610d4b565b810103126101945761578591519161577a565b3d91506157a8565b90506020813d602011615802575b816157eb60209383610d4b565b81010312610194576157fc90610dbc565b5f615748565b3d91506157de565b9092506020813d602011615836575b8161582660209383610d4b565b810103126101945751915f61570f565b3d9150615819565b909261584a8488612ae8565b519081156158665760019161585e916138de565b9301906148fc565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b633b77ab5760e11b5f5260045ffdfea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf098b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1507:7026:77:-:0;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;7579:11;-1:-1:-1;;;;;1507:7026:77;7557:10;:34;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;1507:7026:77;;;-1:-1:-1;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;785:24:78;798:10;785:24;:::i;:::-;1507:7026:77;;;;3498:11;3446:113;3498:11;;3446:113;:::i;:::-;1507:7026;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1582:41;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;1500:62:0;;:::i;:::-;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;5975:141;1507:7026;;;;;;;:::i;:::-;6021:10;1507:7026;;;;;:::i;:::-;5986:129;1507:7026;5986:129;;1507:7026;;;;5986:129;;1507:7026;;;;;;;;;;5986:129;;1507:7026;;;;;5986:129;;1507:7026;;;;;;5975:141;;;1507:7026;5975:141;;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;5975:141;-1:-1:-1;;5975:141:77;;;;;;:::i;:::-;1507:7026;;;8492:31;;;1507:7026;;8492:31;5935:26;1507:7026;;8492:31;;1507:7026;;;;;;;;;;;:::i;:::-;8492:31;5591:98;;8492:31;;;;;;:::i;:::-;1507:7026;;;;;;;;;8473:51;;1507:7026;;8473:51;;1507:7026;;;;;;:::i;:::-;8473:51;1507:7026;;8473:11;-1:-1:-1;;;;;1507:7026:77;8473:51;;;;;;;;1507:7026;8473:51;;;;;1507:7026;8473:51;;;;;;:::i;:::-;;;;;:::i;:::-;1507:7026;8473:51;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;1500:62:0;;;:::i;:::-;1086:34:78;;;1507:7026:77;;;1185:18:78;;;;;;1507:7026:77;1205:3:78;1256:12;;;1507:7026:77;1256:12:78;;;;:::i;:::-;;:::i;:::-;1507:7026:77;;;;;1242:10:78;;;;;;:::i;:::-;;:::i;:::-;1507:7026:77;;;1224:17:78;1507:7026:77;;;;;;;;;;;;;;;;;;;1310:10:78;;;;;;:::i;:::-;1287:48;1507:7026:77;1322:12:78;;;;;;:::i;:::-;1507:7026:77;;;;;;;;;;;;;;1287:48:78;;1507:7026:77;1170:13:78;;1507:7026:77;;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1700:51;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;932:20:78;1507:7026:77;;:::i;:::-;932:20:78;:::i;:::-;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;:::i;:::-;;;:::i;:::-;5296:13;1507:7026;;;;-1:-1:-1;;1507:7026:77;;;5323:3;5311:10;;;;;;1507:7026;;;;;;;;;;;;;;5399:14;;;;;;;;:::i;:::-;:26;;5395:327;;5323:3;;1507:7026;5323:3;;1507:7026;5296:13;;5395:327;5473:14;1507:7026;5473:14;;;:::i;:::-;1507:7026;;;:::i;:::-;5623:17;;;;;;:::i;:::-;1507:7026;;;;5623:17;1507:7026;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5591:98;1507:7026;;;5591:98;1507:7026;5591:98;1507:7026;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;8136:18;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;;;5623:17;1507:7026;;;5399:14;1507:7026;;8356:24;1507:7026;;5591:98;;;1507:7026;5591:98;;;:::i;:::-;;:::i;:::-;5395:327;;;1507:7026;;;;;;-1:-1:-1;;1507:7026:77;;;;;;735:10:7;-1:-1:-1;;;;;1507:7026:77;;;2339:24:1;2335:96;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;735:10:7;1507:7026:77;;;;;;;-1:-1:-1;;;;;1507:7026:77;;3052:40:0;;-1:-1:-1;3052:40:0;1507:7026:77;2335:96:1;2386:34;;;1507:7026:77;2386:34:1;735:10:7;1507:7026:77;;;;2386:34:1;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;1500:62:0;;:::i;:::-;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;;;;-1:-1:-1;;;;;;1507:7026:77;3052:40:0;-1:-1:-1;;3052:40:0;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1507:7026:77;;;;;;1629:65;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;1757:29;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;;1507:7026:77;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;;;5591:98;;1507:7026;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;5591:98;1507:7026;5591:98;;1507:7026;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;:::i;:::-;;:::o;3612:1537::-;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;3831:17;;:55;;;;3612:1537;3827:120;;3612:1537;4008:11;3975:45;4008:11;3975:45;:::i;:::-;4088:121;;;;3612:1537;4332:14;;:::i;:::-;1507:7026;;;;;;;;;;;;;;;;4429:177;;-1:-1:-1;;;;;;;;;;;1507:7026:77;4429:177;;1507:7026;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:15;:177;:15;;:177;;;;;;-1:-1:-1;;;;;4429:177:77;;;3612:1537;1507:7026;;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;8136:18:77;;1507:7026;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;8356:24;4887:152;;1507:7026;5121:20;;;1507:7026;;;5121:20;;;1507:7026;5121:20;;;:::i;:::-;3612:1537::o;4887:152::-;4999:8;;;;:::i;4429:177::-;;;;;1507:7026;4429:177;1507:7026;4429:177;;;;;;;;:::i;:::-;;;1507:7026;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;4429:177;;;;;;;;;;4088:121;1507:7026;;-1:-1:-1;;;4126:45:77;;4160:10;1507:7026;4126:45;;1507:7026;;;4126:45;1507:7026;4126:16;-1:-1:-1;;;;;1507:7026:77;4126:45;;;;;;;-1:-1:-1;4126:45:77;;;4088:121;1507:7026;4088:121;1507:7026;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;4126:45;;;1507:7026;4126:45;;1507:7026;4126:45;;;;;;1507:7026;4126:45;;;:::i;:::-;;;1507:7026;;;;;;;:::i;:::-;4126:45;;;;;;-1:-1:-1;4126:45:77;;3827:120;3902:34;-1:-1:-1;3827:120:77;;;3831:55;3852:34;;;;3831:55;;1507:7026;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;:::o;:::-;;-1:-1:-1;1507:7026:77;;;:::o;6368:869::-;;1507:7026;;6485:11;-1:-1:-1;;;;;1507:7026:77;6463:10;:34;1507:7026;;6580:37;;1507:7026;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;:::i;:::-;6709:31;;6705:140;;1507:7026;;;;:::i;:::-;;6859:29;;1507:7026;;6945:14;;;;:::i;:::-;1507:7026;;1680:64:82;;;1507:7026:77;1680:64:82;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;1778:4:82;1507:7026:77;;;;:::i;:::-;;;;;1778:4:82;:::i;:::-;1507:7026:77;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;6368:869;:::o;6855:349::-;7009:26;1507:7026;;;;:::i;:::-;6995:40;7009:26;;1507:7026;;1271:69:88;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;1271:69:88;1507:7026:77;1271:69:88;;1507:7026:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;1775:23:88;1507:7026:77;;;;1898:15:88;;;1507:7026:77;;1961:22:88;;;-1:-1:-1;1999:9:88;-1:-1:-1;2926:16:88;;;;1994:1032;2010:14;;;;;;1994:1032;3087:30;;;;;;;;;;1507:7026:77;;6991:213;;6855:349;;1507:7026;;;;-1:-1:-1;1507:7026:77;2180:11:88;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2026:3:88;2063:11;;;;;;;;;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2180:11:88;;;1507:7026:77;;;;;2180:25:88;;1507:7026:77;;2264:20:88;;1507:7026:77;;;;;;;;;;;:::i;:::-;2344:48:88;1507:7026:77;;;2463:15:88;;1507:7026:77;3536:17:88;7009:26:77;3536:17:88;;1507:7026:77;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:26;1507:7026;;;;;;;;;;;;;;;;;3572:20:88;1507:7026:77;;3727:86:88;2309:46:80;1507:7026:77;357:173:37;;6485:11:77;2309:46:80;:::i;:::-;3727:86:88;;;;;;:::i;:::-;1507:7026:77;;9065:208:83;3880:36:88;;;;:::i;:::-;1507:7026:77;;;;;;;3933:53:88;;;;;:::i;:::-;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;4445:64:88;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;2180:11:88;;;1507:7026:77;4445:64:88;;;:::i;:::-;;9206:27:83;1507:7026:77;;;9206:27:83;:::i;:::-;1507:7026:77;;;;;;:::i;:::-;;7009:26;1507:7026;;;;;7009:26;1507:7026;;9123:124:83;;1507:7026:77;9123:124:83;;;1507:7026:77;9123:124:83;1507:7026:77;9123:124:83;;1507:7026:77;;;;;;;;;;9065:208:83;;;2180:11:88;9065:208:83;;;:::i;:::-;;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;9065:208:83;;;;;;;;7227:106;9065:208;;1507:7026:77;9065:208:83;7009:26:77;9065:208:83;4707:111:88;9065:208:83;-1:-1:-1;9065:208:83;;;2026:3:88;-1:-1:-1;7158:43:83;;;;1507:7026:77;;7286:40:83;;-1:-1:-1;;;;;1507:7026:77;7158:43:83;7119:4:77;7286:40:83;;:::i;:::-;2241:89:34;;;;;;1507:7026:77;2052:83:34;;-1:-1:-1;;;;;1507:7026:77;6485:11;7227:106:83;:::i;:::-;3536:17:88;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;7009:26;1507:7026;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;4707:111:88;-1:-1:-1;;;;;1507:7026:77;;2691:19:88;;2687:125;;-1:-1:-1;2826:27:88;;-1:-1:-1;;;;;1507:7026:77;;;;;-1:-1:-1;2826:27:88;:::i;:::-;2926:50;;;;;7158:43:83;2922:94:88;;1507:7026:77;;1999:9:88;;;;;;;;2922:94;2996:5;;2926:50;2946:30;;;;;2926:50;;2687:125;2737:60;;;;;-1:-1:-1;2737:60:88;2180:11;1507:7026:77;;;;;;;;;;;;-1:-1:-1;2737:60:88;7158:43:83;1507:7026:77;;;;7286:40:83;;-1:-1:-1;;;;;1507:7026:77;7158:43:83;;9065:208;;;;1507:7026:77;9065:208:83;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;2180:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;2180:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;2180:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;2180:11:88;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;6991:213;7176:17;;;-1:-1:-1;7176:17:77;;-1:-1:-1;7176:17:77;6705:140;1507:7026;;;;;;3348:61:81;;;1507:7026:77;3348:61:81;;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;;;;;;;;;:::i;:::-;;;;;;;;5107:8:81;;5147:27;;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;5261:39:81;1507:7026:77;;;;;5261:44:81;5257:108;;1507:7026:77;2309:46:80;1507:7026:77;357:173:37;;6485:11:77;2309:46:80;:::i;:::-;1507:7026:77;;;;;5538:52:81;1507:7026:77;;;;5538:52:81;;:::i;:::-;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5402:323:81;;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;5402:323:81;;;1507:7026:77;;5402:323:81;;1507:7026:77;;5402:323:81;;1507:7026:77;5747:37:81;1507:7026:77;;;5761:15:81;1507:7026:77;5747:37:81;:::i;:::-;5800:9;-1:-1:-1;5800:9:81;1507:7026:77;;;5815:15:81;1507:7026:77;;;5811:26:81;;;;;1507:7026:77;;;;5935:15:81;6406:190;;;1507:7026:77;6406:190:81;;;;;;;;;;1507:7026:77;5402:323:81;;1507:7026:77;;;6691:15:81;;;1507:7026:77;;;6643:64:81;7635:205;;;;7666:21;1507:7026:77;;;;;;;;;;;;;7635:205:81;1507:7026:77;5402:323:81;;1507:7026:77;;;;;6789:39:81;;;;1507:7026:77;;;;;;6859:83:81;;5611:16;6859:83;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;6859:15:81;:83;:15;;:83;;;;;;;-1:-1:-1;6859:83:81;;;6789:39;-1:-1:-1;;;;;;1507:7026:77;;6960:14:81;1507:7026:77;;9099:457:81;1507:7026:77;;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;;;-1:-1:-1;1507:7026:77;7105:17:81;1507:7026:77;;;-1:-1:-1;1507:7026:77;;7103:30:81;1507:7026:77;;7103:30:81;:::i;:::-;1507:7026:77;;;8009:323:81;;;;;1507:7026:77;8009:323:81;;;;;;;;;;;;1507:7026:77;8009:323:81;;;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;7176:223:81;;1507:7026:77;;;;7176:223:81;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;7176:223:81;;;1507:7026:77;;;7176:223:81;;1507:7026:77;;7176:223:81;;;1507:7026:77;;;5402:323:81;;1507:7026:77;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;:::i;:::-;;;;;;;;;9164:366:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;9164:366:81;;;1507:7026:77;9164:366:81;;;1507:7026:77;;;;;-1:-1:-1;;;9099:457:81;;1507:7026:77;;;;;;;5611:16:81;9099:457;;;:::i;:::-;;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;9099:457:81;;;;;;;-1:-1:-1;9099:457:81;;;6789:39;2052:83:34;;1507:7026:77;2052:83:34;2241:89;;;9652:455:81;;;;;9822:52;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;9822:11:81;:52;-1:-1:-1;;;9859:8:81;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9822:52:81;9652:455;;-1:-1:-1;;;;;1507:7026:77;;10125:17:81;1507:7026:77;;;7176:223:81;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;10199:35:81;-1:-1:-1;10195:112:81;;9652:455;-1:-1:-1;;10368:10:81;;1507:7026:77;;10368:10:81;;1507:7026:77;2114:78:83;;-1:-1:-1;;;;;1507:7026:77;2171:4:83;6485:11:77;2114:78:83;:::i;:::-;1507:7026:77;2282:13:83;;1507:7026:77;;;;2218:78:83;;-1:-1:-1;;;;;1507:7026:77;2171:4:83;6485:11:77;2218:78:83;:::i;:::-;2325:40;;;;;-1:-1:-1;2325:40:83;;2393;;;2171:4;2393:40;;-1:-1:-1;7493:6:83;;:31;;;2393:40;7489:115;;2393:40;7617:6;-1:-1:-1;7617:6:83;;7613:582;;2393:40;8209:6;-1:-1:-1;8209:6:83;;:31;;;2393:40;8205:234;;2393:40;8452:6;-1:-1:-1;8452:6:83;;8448:330;;2393:40;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;;;;;;1507:7026:77;;8682:132:81;;2393:40:83;7176:223:81;;;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;3164:38:80;1507:7026:77;3124:15:80;;1507:7026:77;;;;;;;;;;;;871:1:84;;;;;;;1507:7026:77;;;;;7176:223:81;;;1507:7026:77;;3164:38:80;;:::i;:::-;1507:7026:77;7176:223:81;;1507:7026:77;5611:16:81;3212:15:80;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;7176:223:81;1507:7026:77;7176:223:81;;1507:7026:77;;;;-1:-1:-1;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;5402:323:81;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:17:80;;;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;3899:17:80;;1507:7026:77;3899:33:80;;1507:7026:77;;;;;3899:33:80;:::i;:::-;;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;4028:14:80;;;:26;1507:7026:77;;;;;;;;;;;809:15:79;805:218;;2393:40:83;7176:223:81;;;;;1507:7026:77;1107:6:84;;;;1507:7026:77;;;;1128:18:84;;;1124:235;1128:18;;;1507:7026:77;1124:235:84;3594:343;-1:-1:-1;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;1507:7026:77;-1:-1:-1;3594:343:84;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:1:84;;;;;;;7176:223:81;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;4574:143:80;1507:7026:77;4435:55:80;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;;;;;4435:55:80;:::i;:::-;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;;5402:323:81;;1507:7026:77;;;;;;5402:323:81;1507:7026:77;;5402:323:81;;1507:7026:77;;;5402:323:81;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:143:80;1507:7026:77;;;;;;5402:323:81;;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;5402:323:81;;1507:7026:77;;;;;;;;4732:77:80;5855:99:81;;;;:::i;:::-;1507:7026:77;;5800:9:81;;1124:235:84;3594:343;;;-1:-1:-1;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;1507:7026:77;-1:-1:-1;3594:343:84;;1124:235;;805:218:79;846:396:31;1507:7026:77;846:396:31;;-1:-1:-1;846:396:31;;;;;;;984:11:79;1676:170:31;1507:7026:77;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;1676:170:31;1507:7026:77;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;;;984:28:79;1507:7026:77;;805:218:79;;;;8682:132:81;8794:8;8750:14;;;5402:323;;;1507:7026:77;;;;;;;;;5402:323:81;;1507:7026:77;;8794:8:81;;:::i;:::-;8682:132;;;8448:330:83;8618:3;;;:::i;:::-;1507:7026:77;2282:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;2282:13:83;6485:11:77;1507:7026;8636:31:83;;;;1507:7026:77;;-1:-1:-1;;;8636:31:83;;5611:16:81;8636:31:83;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;8636:31:83;;;;;;;8726:6;8636:31;;;8448:330;-1:-1:-1;1507:7026:77;2282:13:83;1507:7026:77;-1:-1:-1;;;;;6485:11:77;1507:7026;;;;8726:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;8747:20:83;;1507:7026:77;;;5611:16:81;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;8747:20:83;;;;;;;1507:7026:77;8747:20:83;1507:7026:77;8747:20:83;;;8448:330;;;;;;;;8747:20;;;1507:7026:77;8747:20:83;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8636:31;-1:-1:-1;8636:31:83;;;:::i;:::-;;;;8205:234;1507:7026:77;2282:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;8375:53:83;;;;1507:7026:77;;-1:-1:-1;;;8375:53:83;;1507:7026:77;-1:-1:-1;;1507:7026:77;;;;8375:53:83;;1507:7026:77;;5611:16:81;8375:53:83;;;:::i;:::-;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;8375:53:83;;;;;;;8205:234;8375:53;-1:-1:-1;8375:53:83;;;:::i;:::-;;8205:234;;8209:31;-1:-1:-1;;;;;;1507:7026:77;;8219:21:83;;8209:31;;7613:582;7783:3;;;:::i;:::-;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;7801:31:83;;;;1507:7026:77;;-1:-1:-1;;;7801:31:83;;5611:16:81;7801:31:83;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;7801:31:83;;;;;;;;7613:582;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;4998:58:36;7957:29:83;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;8006:35:83;;1507:7026:77;;;;;5611:16:81;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;8006:35:83;;;;;;;;7953:232;;;7613:582;;;8006:35;;;1507:7026:77;8006:35:83;;;;;;;;;:::i;:::-;;;;;7953:232;8125:6;;1507:7026:77;6485:11;-1:-1:-1;;;;;1507:7026:77;;8125:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;8150:20:83;;1507:7026:77;;5611:16:81;1507:7026:77;-1:-1:-1;6485:11:77;-1:-1:-1;;;;;1507:7026:77;8150:20:83;;;;;;;;7953:232;;;;8150:20;;;1507:7026:77;8150:20:83;;;;;;;;;:::i;:::-;;;;;7801:31;-1:-1:-1;7801:31:83;;;:::i;:::-;;;;7489:115;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;6485:11;1507:7026;7540:53:83;;;;1507:7026:77;;-1:-1:-1;;;7540:53:83;;1507:7026:77;-1:-1:-1;;1507:7026:77;;;;7540:53:83;;1507:7026:77;;5611:16:81;7540:53:83;;;:::i;:::-;;1507:7026:77;;6485:11;-1:-1:-1;;;;;1507:7026:77;7540:53:83;;;;;;;7489:115;7540:53;-1:-1:-1;7540:53:83;;;:::i;:::-;;7489:115;;7493:31;-1:-1:-1;;;;;;1507:7026:77;;7503:21:83;;7493:31;;2393:40;-1:-1:-1;2393:40:83;;;2325;2171:4;2325:40;;;10195:112:81;10261:35;;;;;:::i;:::-;10195:112;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;5611:16:81;-1:-1:-1;1507:7026:77;9822:52:81;;-1:-1:-1;9822:52:81;;9652:455;10044:52;-1:-1:-1;;10044:11:81;;-1:-1:-1;;;10081:8:81;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;10044:52:81;9652:455;;;10044:52;;-1:-1:-1;10044:52:81;;9099:457;;;;1507:7026:77;9099:457:81;;;;;;;;;:::i;:::-;;;;;6859:83;;;;1507:7026:77;6859:83:81;;;;;;;;;1507:7026:77;6859:83:81;;;:::i;:::-;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;6859:83:81;;;;;;;-1:-1:-1;6859:83:81;;6789:39;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;5611:16:81;1507:7026:77;;-1:-1:-1;1507:7026:77;7635:205:81;7775:19;;;;:::i;:::-;7808:21;7635:205;;5811:26;;;;;3499:20;5811:26;;3499:20;5811:26;;1507:7026:77;;3499:20:81;;;1507:7026:77;3499:20:81;;;:::i;5257:108::-;-1:-1:-1;1507:7026:77;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:108:81;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;:::o;417:66:26:-;;;;;;;;;;;:::o;2217:141:33:-;1507:7026:77;;-1:-1:-1;;;2305:39:33;;417:66:26;2305:39:33;;;1507:7026:77;;417:66:26;;1507:7026:77;;2305:39:33;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;2305:39:33;;;;;;;-1:-1:-1;2305:39:33;;;2217:141;2305:46;;;2217:141;:::o;2305:39::-;;;417:66:26;2305:39:33;;417:66:26;2305:39:33;;;;;;417:66:26;2305:39:33;;;:::i;:::-;;;417:66:26;;;;;2305:39:33;;;;;;-1:-1:-1;2305:39:33;;7623:203:77;1507:7026;;;;;;:::i;:::-;-1:-1:-1;;;;;7732:11:77;1507:7026;;;;7773:21;1507:7026;;;;;;7815:4;1507:7026;;;;;7623:203::o;1507:7026::-;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;1796:2024:82:-;;2139:36;2162:12;;2139:36;:::i;:::-;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2208:31:82;1507:7026:77;;2208:31:82;:::i;:::-;1507:7026:77;;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:20:82;2308:152;;1796:2024;2474:13;;;;;;1507:7026:77;2474:25:82;2470:110;;1507:7026:77;2609:16:82;;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;2726:47:82;;;;:::i;:::-;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;2898:17:82;;1507:7026:77;;2943:13:82;;;1507:7026:77;2978:9:82;-1:-1:-1;2989:10:82;;;;;;1796:2024;;;;;;;;;;:::o;2978:9::-;3035:13;:16;1507:7026:77;3035:13:82;;;:16;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;-1:-1:-1;1507:7026:77;3159:12:82;2210:16;3159:12;;1507:7026:77;;;;;;;;;;;:::i;:::-;3159:48:82;:100;;;;2978:9;3159:152;;;2978:9;3159:205;;;2978:9;3159:315;;;;;2978:9;3138:606;;2978:9;1507:7026:77;;;;2978:9:82;;3138:606;3525:36;;3716:12;3525:36;;:::i;:::-;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;3716:12:82;-1:-1:-1;;;;;;;;;;;3716:12:82;;:::i;:::-;3138:606;;;;;3159:315;1507:7026:77;3384:90:82;2309:46:80;1507:7026:77;;;;;;;;;357:173:37;;2309:46:80;;:::i;:::-;3384:90:82;;;;;;:::i;:::-;3159:315;;:205;1507:7026:77;;;;3331:33:82;;-1:-1:-1;3159:205:82;;;;:152;1507:7026:77;;;;;;;;;;3279:32:82;3159:152;;;:100;1507:7026:77;3227:17:82;;1507:7026:77;3227:32:82;;;-1:-1:-1;3159:100:82;;2470:110;2544:4;;;;;;;-1:-1:-1;;;;;;;;;;;2544:4:82;:::i;2308:152::-;2354:12;;;1507:7026:77;2384:15:82;;1507:7026:77;;;2308:152:82;2380:69;2413:36;;;-1:-1:-1;2413:36:82;2210:16;-1:-1:-1;2413:36:82;1507:7026:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;:::i;8393:138::-;1507:7026;;;8492:31;;;1507:7026;-1:-1:-1;8492:31:77;1507:7026;8492:31;1507:7026;8492:31;;1507:7026;;;;;;;;;;;:::i;:::-;8473:51;1507:7026;;8473:11;-1:-1:-1;;;;;1507:7026:77;8473:51;;;;;;;;8393:138;:::o;8473:51::-;;;;;-1:-1:-1;8473:51:77;;;;;;:::i;:::-;;8393:138::o;1796:162:0:-;1710:6;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;735:10:7;1855:23:0;1851:101;;1796:162::o;1358:152:78:-;311:1;1507:7026:77;;1442:17:78;1507:7026:77;;;303:10:78;1507:7026:77;;;1442:61:78;;;;1435:68;1358:152;:::o;1442:61::-;-1:-1:-1;;;;;1507:7026:77;311:1:78;1507:7026:77;;;1442:17:78;1507:7026:77;;;;;303:10:78;1507:7026:77;;;1358:152:78;-1:-1:-1;1358:152:78:o;1507:7026:77:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;417:66:26;;1507:7026:77;;;;;;;;;;1958:1171:81;;;;;;;;;;;;:::i;:::-;;;;:::o;874:123:55:-;1507:7026:77;;;974:15:55;;;1507:7026:77;;;:::i;:::-;974:15:55;;;;;;;:::i;:::-;1507:7026:77;964:26:55;;874:123;:::o;1507:7026:77:-;;;-1:-1:-1;;1507:7026:77;;-1:-1:-1;;1507:7026:77;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;:::o;3826:3473:82:-;;3984:17;;;1507:7026:77;;;3984:22:82;3980:59;;4071:36;4094:12;;4071:36;:::i;:::-;4136:16;;;1507:7026:77;;;4193:60:82;;;;4206:12;;4136:16;4206:22;1507:7026:77;4193:60:82;;;-1:-1:-1;;;;;1507:7026:77;4193:60:82;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;4308:17:82;;;4136:16;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;-1:-1:-1;1507:7026:77;4415:16:82;;;4136;1507:7026:77;;-1:-1:-1;1507:7026:77;4415:35:82;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;4524:17:82;;;;1507:7026:77;-1:-1:-1;1507:7026:77;4574:16:82;;;4136;1507:7026:77;;-1:-1:-1;1507:7026:77;;4726:17:82;-1:-1:-1;1507:7026:77;;4854:14:82;1507:7026:77;4854:14:82;;1507:7026:77;;;4893:12:82;;;;1507:7026:77;;;4935:12:82;4893;4935;;:24;1507:7026:77;;;4969:2324:82;4976:19;;;;;;4969:2324;3826:3473;;;;;;;;;;;;;:::o;4969:2324::-;-1:-1:-1;5015:51:82;;;;;;;;;;;;;;;;1507:7026:77;;;;5031:16:82;;5015:51;5011:95;;1507:7026:77;846:396:31;;-1:-1:-1;846:396:31;;;;;;;4565:1682;;;;;;1676:170;1507:7026:77;1676:170:31;;4839:13;1676:170;1507:7026:77;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;4839:20:31;5014:11;;;;;;5164:194;;;;;;;1507:7026:77;;;;;;759:552:20;;1507:7026:77;;;;;;;759:552:20;;;;;;-1:-1:-1;;;;;759:552:20;4415:16:82;759:552:20;;;;;1507:7026:77;759:552:20;4308:17:82;759:552:20;;;;;;;4574:16:82;759:552:20;;;;;;;1507:7026:77;759:552:20;;;;;;;;;;1507:7026:77;;;;;;;;;;;;5164:194:31;4565:1682;;5279:54:82;;;;1507:7026:77;;;;5295:18:82;;5279:54;5347:57;;5422:12;5418:125;;5636:265;-1:-1:-1;5636:265:82;;4136:16;5636:265;1507:7026:77;-1:-1:-1;5636:265:82;;;;5919:18;;5915:131;;6060:22;;;;;6096:1124;6103:21;;;:44;;;6096:1124;6103:44;;;6262:286;;;;;;;-1:-1:-1;6262:286:82;;4136:16;6262:286;1507:7026:77;-1:-1:-1;6262:286:82;;;6570:12;4574:16;6570:12;;1507:7026:77;4524:17:82;1507:7026:77;;;;;;;;:::i;:::-;6570:48:82;6566:146;;1507:7026:77;;;;6733:34:82;6729:86;;1507:7026:77;;6922:12:82;;357:173:37;;;6837:99:82;;2309:46:80;;357:173:37;-1:-1:-1;;;;;1507:7026:77;2309:46:80;:::i;:::-;6837:99:82;;;;;;:::i;:::-;6836:100;6832:153;;7026:12;4524:17;7026:12;;7067:17;7026:12;;;;;;1507:7026:77;357:173:37;1507:7026:77;;;;;7067:17:82;;1507:7026:77;;7067:17:82;;:::i;:::-;1507:7026:77;7184:21:82;6096:1124;;;;;;;;6832:153;6960:7;;;;;;;;;;;;;;;;;;:::o;6729:86::-;6791:5;;;;;;;;;;;;;;;;;6096:1124;7243:39;;;;7259:12;;;:::i;:::-;4969:2324;;;;;;;;;;;7243:39;;;6566:146;6642:21;;;;;6685:8;;;6103:44;;;;;;;;;;;;;;;;;;6128:19;;;;6103:44;;5915:131;5966:39;;;;;;;;;;;;;;;;;;;;5982:12;;;:::i;5418:125::-;5463:39;;;;;;;;;;;;;;;;;5479:12;;;:::i;5347:57::-;5384:5;;;;;;5279:54;1507:7026:77;;;;5316:17:82;5279:54;;5164:194:31;1507:7026:77;;;;;;;;;;;;;5164:194:31;;4565:1682;1507:7026:77;4524:17:82;1507:7026:77;;;;;;1676:170:31;;1507:7026:77;1676:170:31;5702:13;1676:170;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;4524:17:82;1507:7026:77;;;;;;;5647:20:31;1507:7026:77;;5702:20:31;5869:11;;;;;;6019:213;;;;;;;1507:7026:77;;;1766:834:20;;;1507:7026:77;1766:834:20;-1:-1:-1;1766:834:20;;;;;;;;;;;;;;;;;;;;;;;;;1507:7026:77;;;;;;;;;;6019:213:31;4565:1682;;;6019:213;1507:7026:77;;;;;;;;;;;;;;;;;6019:213:31;;5011:95:82;5086:5;;;;;5015:51;1507:7026:77;;;;5050:16:82;;5015:51;;4193:60;4231:12;;1507:7026:77;4193:60:82;;;-1:-1:-1;;;;;1507:7026:77;4193:60:82;;3980:59;4022:7;;;;:::o;1694:176:80:-;;1819:43;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1819:43:80;-1:-1:-1;;;;;1507:7026:77;;1694:176:80:o;1819:43::-;1849:13;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1819:43:80;;1956:216;2083:17;;1507:7026:77;;;;;;2083:82:80;1507:7026:77;;;;;;;;;;2103:30:80;;1956:216;:::o;2083:82::-;1507:7026:77;;;;;2136:29:80;1956:216;:::o;1517:171::-;1628:17;;1507:7026:77;;;;;;1628:53:80;1507:7026:77;;;;;;;1517:171:80;:::o;1628:53::-;1507:7026:77;;1517:171:80;:::o;7305:1520:82:-;7607:12;;;1507:7026:77;;-1:-1:-1;;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;7305:1520:82;;1507:7026:77;;;;;;;;;7305:1520:82;;;;;;7732:53;1507:7026:77;7305:1520:82;7732:53;:::i;:::-;7848:18;;7813:54;;;;:::i;:::-;1507:7026:77;;8279:17:82;;;1507:7026:77;8310:8:82;;;;1507:7026:77;;4323:15:83;;1507:7026:77;;4323:15:83;;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;;;;;;;4307:33:83;;1507:7026:77;;4307:33:83;:::i;:::-;8310:8:82;1507:7026:77;;;;;:::i;:::-;;7622:34:82;1507:7026:77;;;;;7622:34:82;1507:7026:77;8279:17:82;4212:145:83;;1507:7026:77;8310:8:82;4212:145:83;;1507:7026:77;4212:145:83;;;;1507:7026:77;8310:8:82;1507:7026:77;;;;;;;;4154:229:83;;7607:12:82;4154:229:83;;;;;;:::i;:::-;;;;8310:8:82;4154:229:83;-1:-1:-1;4154:229:83;;;;;;;5252:104;4154:229;;;;;;;;;;;;-1:-1:-1;;;4154:229:83;;;7305:1520:82;-1:-1:-1;4627:66:83;;5149:59;;-1:-1:-1;;;;;1507:7026:77;;;;2052:83:34;1507:7026:77;2052:83:34;4627:66:83;;-1:-1:-1;;;;;1507:7026:77;;;;2241:89:34;;4733:66:83;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;4842:60:83;;-1:-1:-1;;;;;1507:7026:77;;;4945:60:83;7607:12:82;-1:-1:-1;4945:60:83;;7607:12:82;1507:7026:77;5042:49:83;1507:7026:77;;;;;5042:49:83;1507:7026:77;;;8279:17:82;5062:13:83;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;5149:59:83;:::i;:::-;1507:7026:77;;;4212:145:83;1507:7026:77;5252:104:83;;:::i;:::-;1507:7026:77;;;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;5371:27:83;:58;;;;5042:49;5367:224;;5042:49;8416:66:82;;;;;1507:7026:77;;;;;;;;5131:17:80;-1:-1:-1;7622:34:82;5131:17:80;;1507:7026:77;5131:25:80;;1507:7026:77;;;;;5131:25:80;:::i;:::-;;;:::i;:::-;1507:7026:77;5202:17:80;;2079:369:84;;;1507:7026:77;2079:369:84;;;;;2530:20;;;;;;;1507:7026:77;;;2526:145:84;2748:20;;;;;;2784:6;1507:7026:77;2784:6:84;;;1507:7026:77;2744:145:84;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;2899:95:84;;2744:145;3187:167;;;;;5294:19:80;;;:::i;:::-;5371:17;5353;7622:34:82;5371:17:80;;1507:7026:77;;;-1:-1:-1;1507:7026:77;5353:17:80;8279::82;1507:7026:77;8310:8:82;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;4212:145:83;1507:7026:77;-1:-1:-1;1507:7026:77;5408:15:80;;1507:7026:77;7622:34:82;1507:7026:77;;;;;;;;;;1164:14:79;1160:218;;2744:145:84;7607:12:82;;5516:19:80;7607:12:82;;;1507:7026:77;4212:145:83;1507:7026:77;5516:19:80;;1507:7026:77;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5630:69:80;;7607:12:82;;1507:7026:77;;;;;8310:8:82;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;8279:17:82;1507:7026:77;;;;;;;;;;;;;;4212:145:83;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;7622:34:82;1507:7026:77;;;;;;;;;;;;;;;;;;;;8498:320:82;;1507:7026:77;;8498:320:82;7305:1520::o;1160:218:79:-;846:396:31;7622:34:82;846:396:31;;-1:-1:-1;846:396:31;;;;;;;1338:11:79;1676:170:31;7622:34:82;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;1353:14:79;1507:7026:77;;1338:29:79;1507:7026:77;;1160:218:79;;;;2899:95:84;871:1;;-1:-1:-1;;;;;;871:1:84;1507:7026:77;;871:1:84;;;-1:-1:-1;;;;;1507:7026:77;871:1:84;;;-1:-1:-1;2899:95:84;;2744:145;3594:343;;-1:-1:-1;8279:17:82;3594:343:84;8310:8:82;3594:343:84;;1507:7026:77;3594:343:84;;2744:145;;2526;3594:343;;;;8279:17:82;3594:343:84;;8310:8:82;3594:343:84;;;2526:145;;5367:224:83;5469:111;;;;;;;:::i;:::-;5445:135;;5367:224;;;;;;;;5371:58;1507:7026:77;-1:-1:-1;1507:7026:77;2241:89:34;1507:7026:77;5402:27:83;5371:58;;5042:49;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;5149:59:83;:::i;4945:60::-;7607:12:82;2241:89:34;;;4945:60:83;;;4842;2052:83:34;1507:7026:77;2052:83:34;4842:60:83;;;4733:66;4775:24;2241:89:34;;;;;;;4775:24:83;:::i;:::-;4733:66;;;4627;4669:24;2052:83:34;1507:7026:77;2052:83:34;;1507:7026:77;2052:83:34;4669:24:83;:::i;:::-;4627:66;;;4154:229;5149:59;4154:229;;;;;8310:8:82;4154:229:83;8310:8:82;4154:229:83;;;;;;;:::i;:::-;;;;;1507:7026:77;;;;;;;;;;:::o;1580:996:30:-;;;14953:51;1580:996;1507:7026:77;;14953:51:30;;;1507:7026:77;;;414:1:30;1507:7026:77;398:19:30;;1507:7026:77;;14953:51:30;;;;;;:::i;:::-;1507:7026:77;14943:62:30;;1507:7026:77;;-1:-1:-1;;;1892:27:30;;;;;1507:7026:77;;;;;;;1892:27:30;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;1507:7026:77;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;14953:51;1892:27;;14953:51;1892:27;;;;;;417:66:26;1892:27:30;;;:::i;:::-;;;417:66:26;;;;;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;:::o;4822:884:80:-;;;;5469:11;4822:884;1507:7026:77;;;;;5106:15:80;;;1507:7026:77;;5131:17:80;-1:-1:-1;5131:17:80;;;1507:7026:77;5131:25:80;;1507:7026:77;;;;;5131:25:80;:::i;:::-;;;:::i;:::-;2079:369:84;;;5202:17:80;2079:369:84;;;;;2530:20;;;;;;;1507:7026:77;;;2526:145:84;2748:20;;;;;;5202:17:80;2784:6:84;;;1507:7026:77;2744:145:84;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;2899:95:84;;2744:145;3187:167;;;;;5294:19:80;;;:::i;:::-;5371:17;5131;5371;;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;5408:15:80;1507:7026:77;-1:-1:-1;1507:7026:77;5408:15:80;;1507:7026:77;5131:17:80;1507:7026:77;;;;;;;;;;1164:14:79;1160:218;;2744:145:84;5469:11:80;;;1507:7026:77;5408:15:80;1507:7026:77;5516:26:80;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5565:26:80;1507:7026:77;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;-1:-1:-1;1507:7026:77;;;;;;;;-1:-1:-1;1507:7026:77;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;5630:69:80;;4822:884::o;1160:218:79:-;846:396:31;5131:17:80;846:396:31;;-1:-1:-1;846:396:31;;;;;;;1338:11:79;1676:170:31;5131:17:80;1676:170:31;;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;5202:17:80;1676:170:31;1507:7026:77;-1:-1:-1;1507:7026:77;1676:170:31;;1507:7026:77;1353:14:79;1507:7026:77;;1338:29:79;1507:7026:77;;1160:218:79;;;;2899:95:84;871:1;;-1:-1:-1;;;;;;871:1:84;1507:7026:77;;871:1:84;;;-1:-1:-1;;;;;1507:7026:77;871:1:84;;;-1:-1:-1;2899:95:84;;2744:145;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:84;;5202:17:80;3594:343:84;;;;;2744:145;;2526;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:84;;;;;;;2526:145;;1507:7026:77;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;;;;;;:::o;9356:980:83:-;;;;;1507:7026:77;;:::i;:::-;-1:-1:-1;;;;;;1507:7026:77;;;;9648:570:83;;9356:980;10289:40;;;;;;:::i;9648:570::-;1507:7026:77;;-1:-1:-1;;;9692:44:83;;;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;9692:44:83;1507:7026:77;;9692:44:83;;9670:1;;9692:44;;;9648:570;9688:520;;;9648:570;;;;9688:520;1507:7026:77;9692:44:83;1507:7026:77;;9783:12:83;;:41;;;;9688:520;9779:406;;;9688:520;;;;;9779:406;9670:1;1507:7026:77;9692:44:83;1507:7026:77;;;;;;;;;9861:50:83;;9692:44;9861:50;;1507:7026:77;9861:50:83;;;;;;;9670:1;9861:50;;;9779:406;10012:15;;;1507:7026:77;;10012:26:83;;:87;;;;9779:406;10008:159;;;9779:406;;;10008:159;10127:17;;;:::o;10012:87::-;-1:-1:-1;;;;;1507:7026:77;-1:-1:-1;10042:18:83;;;:::i;:::-;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;448:51:36;10012:87:83;;;9861:50;;;;;;9670:1;9861:50;;;;;;:::i;:::-;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;9861:50:83;;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;1507:7026:77;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9783:41:83;9799:25;;;;:::i;:::-;9783:41;;;9692:44;;;;1507:7026:77;9692:44:83;;1507:7026:77;9692:44:83;;;;;;1507:7026:77;9692:44:83;;;:::i;:::-;;;1507:7026:77;;;;;;;;;;;;9692:44:83;;;;;;;-1:-1:-1;9692:44:83;;11598:1322;;;;;;;12424:1;1507:7026:77;;;12414:11:83;:34;12424:1;;;-1:-1:-1;;;;;1507:7026:77;;12414:34:83;12424:1;1507:7026:77;;;12523:11:83;:34;12424:1;;;-1:-1:-1;;;;;1507:7026:77;12523:34:83;12571:21;;;1507:7026:77;12606:15:83;;1507:7026:77;;12606:15:83;;-1:-1:-1;;;;;1507:7026:77;;1868:15:59;1507:7026:77;;2929:39:59;2145:7;;;;:::i;:::-;;2929:39;:::i;:::-;3001:30;;;;;;;;3059:50;;;;12571:21:83;3072:17:59;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;3059:50:59;3152:30;;;;;;;-1:-1:-1;;;;;1507:7026:77;3283:16:59;1507:7026:77;;3315:36:59;;;3279:234;;;;;;;2064:119;2264:13;2276:1;1507:7026:77;;2259:355:59;2296:3;1507:7026:77;;2279:15:59;;;;;2384:7;;2450:73;2490:28;2384:7;;2359:47;2276:1;2384:7;;;;;:::i;2359:47::-;1507:7026:77;;;;;;;;;;;2490:28:59;:::i;:::-;1507:7026:77;;;;;;;;;;;:::i;:::-;12424:1:83;1507:7026:77;;2450:73:59;:::i;:::-;1507:7026:77;;;;;;2553:50:59;;;;;1507:7026:77;;;;;;2566:17:59;;1507:7026:77;;2553:50:59;2296:3;1507:7026:77;2264:13:59;;;;;;;2553:50;1507:7026:77;;;;;;;;2553:50:59;;2279:15;;12159:472:83;2279:15:59;;;;-1:-1:-1;2279:15:59;;-1:-1:-1;2279:15:59;-1:-1:-1;12159:472:83;-1:-1:-1;;;;;1507:7026:77;;12642:272:83;;2259:355:59;11598:1322:83;;;;;:::o;12642:272::-;12787:4;;;;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;4998:58:36;12806:98:83;;12642:272;;;;;;;12806:98;-1:-1:-1;;;;;1507:7026:77;;-1:-1:-1;12806:98:83;;;3279:234:59;1507:7026:77;3429:72:59;1507:7026:77;3469:20:59;3397:105;1507:7026:77;;;;3469:20:59;:::i;:::-;1507:7026:77;;;;;;;;:::i;:::-;12424:1:83;1507:7026:77;;;;3429:72:59;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;;3397:105:59;:::i;:::-;3279:234;;;;;;;;3152:30;;;;;;3059:50;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;3059:50:59;;3001:30;;;;1507:7026:77;;;;12424:1:83;1507:7026:77;;12424:1:83;1507:7026:77;12523:34:83;;12424:1;12523:34;;12414;;12424:1;12414:34;;;10848:263;1507:7026:77;;-1:-1:-1;;;10931:63:83;;-1:-1:-1;;;10931:63:83;;;1507:7026:77;;;;;;10931:63:83;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;10931:63:83;;1507:7026:77;;10931:63:83;;;10848:263;-1:-1:-1;10927:178:83;;11082:12;1507:7026:77;11082:12:83;:::o;10931:63::-;;;;1507:7026:77;10931:63:83;;1507:7026:77;10931:63:83;;;;;;1507:7026:77;10931:63:83;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;10931:63:83;;;;;;;-1:-1:-1;10931:63:83;;10342:500;;1507:7026:77;;:::i;:::-;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;448:51:36;;;10520:63:83;;-1:-1:-1;10554:13:83;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;10520:63:83;-1:-1:-1;;;;;1507:7026:77;10593:21:83;;;1507:7026:77;;;;;;;;;;:::i;:::-;10672:1:83;1507:7026:77;;-1:-1:-1;;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;;;10640:34:83;;;;10684:151;10640:34;;;1507:7026:77;10757:7:83;;;1507:7026:77;;10779:15:83;1507:7026:77;10779:15:83;;1507:7026:77;;;;;;;;;;10803:9:83;;1507:7026:77;;;;;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;;;;;;;:::i;:::-;;;;10705:130:83;;1507:7026:77;10705:130:83;;1507:7026:77;;10705:130:83;;1507:7026:77;;10705:130:83;;1507:7026:77;10684:15:83;;:151;;;;:::i;:::-;;;:::i;1507:7026:77:-;10593:21:83;1507:7026:77;;;;;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;;;10520:63:83;;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;:::o;:::-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;:::o;11117:475:83:-;-1:-1:-1;;11117:475:83;;-1:-1:-1;;;;;1507:7026:77;;11252:121:83;;-1:-1:-1;;;;;1507:7026:77;;11383:49:83;;;;;1507:7026:77;11383:49:83;1507:7026:77;;;;;;;;;;;;;;;11383:49:83;;11418:4;11383:49;;;;;:::i;:::-;;;;;;;;;;;;;;11117:475;-1:-1:-1;;;;;;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;11442:36:83;;;;;1507:7026:77;;-1:-1:-1;;;11442:36:83;;;1507:7026:77;11383:49:83;1507:7026:77;11442:36:83;;;;;;;;;;;;;11117:475;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;11493:39:83;;-1:-1:-1;;;;;1507:7026:77;;;11383:49:83;11493:39;;1507:7026:77;;;;;;;;;;;;;11493:39:83;;1507:7026:77;;11493:39:83;;;;;;;;;;;11117:475;11492:40;;11488:98;;11117:475;:::o;11488:98::-;-1:-1:-1;;;11555:20:83;;11383:49;;11555:20;11493:39;;;1507:7026:77;11493:39:83;;1507:7026:77;11493:39:83;;;;;;1507:7026:77;11493:39:83;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;11493:39:83;;;1507:7026:77;;;;11493:39:83;;;-1:-1:-1;11493:39:83;;;1507:7026:77;;;;;;;;;11442:36:83;;;;;:::i;:::-;1507:7026:77;;11442:36:83;;;;1507:7026:77;;;;11442:36:83;1507:7026:77;;;;;;;;;11383:49:83;;;;;:::i;:::-;1507:7026:77;;11383:49:83;;;;;1507:7026:77;;;11252:121:83;1507:7026:77;;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;-1:-1:-1;11297:45:83;;;;;;1507:7026:77;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;11297:45:83;;;;;;:::i;:::-;;;;;;;;;;;11356:7;:::o;11297:45::-;-1:-1:-1;11297:45:83;;;:::i;1701:281::-;;;-1:-1:-1;;;;;1507:7026:77;;1701:281:83;1817:11;;1813:48;;1943:32;;1890:43;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1943:32:83;:::i;1890:43::-;1920:13;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;1943:32:83;:::i;1507:7026:77:-;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;:::o;4545:484:59:-;;1507:7026:77;;:::i;:::-;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;;734:50:36;;;1507:7026:77;;;4800:80:59;1507:7026:77;;;;;;448:51:36;;;4977:10:59;1507:7026:77;4977:10:59;;;1507:7026:77;;4989:18:59;;;1507:7026:77;;;;5009:12:59;1507:7026:77;;;;;5009:12:59;;1507:7026:77;;;4989:18:59;1507:7026:77;;;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;4977:10:59;4947:75;;1507:7026:77;4989:18:59;4947:75;;1507:7026:77;5009:12:59;4947:75;;1507:7026:77;4947:75:59;;;1507:7026:77;;4545:484:59:o;4800:80::-;;;;;;3525:709;;;;;3961:111;;4001:70;;;;1862:10:32;-1:-1:-1;1862:10:32;4001:70:59;;1862:10:32;1507:7026:77;;;;;;:::i;:::-;;;;;;3961:111:59;;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;;;;3961:111:59;;;1507:7026:77;;;;-1:-1:-1;;;3902:210:59;;1507:7026:77;;;;;;;;;;;3961:111:59;3902:210;;;;1862:10:32;:::i;:::-;;1507:7026:77;;1862:10:32;;;1507:7026:77;1862:10:32;;;;1507:7026:77;1862:10:32;-1:-1:-1;;;;;1507:7026:77;1862:10:32;;;1507:7026:77;1862:10:32;;;;;;;;;;:::i;:::-;3902:210:59;;-1:-1:-1;;;;;1507:7026:77;3902:210:59;;;;;;;-1:-1:-1;3902:210:59;;;4001:70;-1:-1:-1;;;4147:33:59;-1:-1:-1;;2241:89:34;;3525:709:59;:::o;4146:71::-;2052:83:34;;3525:709:59;:::o;3902:210::-;;;;3961:111;3902:210;;3961:111;3902:210;;;;;;3961:111;3902:210;;;:::i;:::-;;;1862:10:32;;;;1507:7026:77;;-1:-1:-1;3902:210:59;;;;;-1:-1:-1;3902:210:59;;4001:70;1862:10:32;-1:-1:-1;2042:49:32;4001:70:59;;;1472:2873:36;;;;-1:-1:-1;;;;;1507:7026:77;;;4998:58:36;1769:24;;1809:163;;-1:-1:-1;1809:163:36;;;;;;;2085:8;2081:127;;1765:2574;1472:2873::o;2081:127::-;3741:1424:22;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;1507:7026:77;3741:1424:22;5591:98:77;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;1765:2574:36;2238:1774;-1:-1:-1;2238:1774:36;;;;;;;;;1507:7026:77;;;;;;2238:1774:36;;1507:7026:77;;;;;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;2238:1774;3741:1424:22;-1:-1:-1;;;3741:1424:22;;2238:1774:36;3741:1424:22;;;;;;-1:-1:-1;;;2238:1774:36;3741:1424:22;;;;2238:1774:36;3741:1424:22;;;5591:98:77;3741:1424:22;;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;2238:1774:36;3741:1424:22;;;;;4268:28:36;;;3741:1424:22;;;;;;;1711:436:33;-1:-1:-1;;;;;1853:233:33;;;-1:-1:-1;1853:233:33;;;;;;;;;;;;;;;1507:7026:77;;-1:-1:-1;;;2117:21:33;;;;;1507:7026:77;;;;1853:233:33;1507:7026:77;;2117:21:33;;1507:7026:77;;;2117:21:33;;;;;;;-1:-1:-1;2117:21:33;;;2095:45;1711:436;:::o;2117:21::-;;;1853:233;2117:21;;1853:233;2117:21;;;;;;417:66:26;2117:21:33;;;:::i;:::-;;;417:66:26;;;;;1711:436:33;:::o;2117:21::-;;;-1:-1:-1;2117:21:33;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;:::o;1958:1171:81:-;1507:7026:77;2229:16:81;;1958:1171;;;;;-1:-1:-1;;;;;1507:7026:77;;;;1958:1171:81;2265:19;;1507:7026:77;;2282:1:81;1507:7026:77;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;3804:27:81;;1507:7026:77;;2282:1:81;3886:238;3902:10;;;;;;1507:7026:77;;4271:47:81;1507:7026:77;;;;;;:::i;:::-;;;;;;;;10771:138:81;;1507:7026:77;;;;10771:138:81;;1507:7026:77;;;;;;10771:138:81;;1507:7026:77;;;;10771:138:81;;1507:7026:77;;;-1:-1:-1;;;;;1507:7026:77;4271:47:81;:::i;:::-;1507:7026:77;4333:18:81;1507:7026:77;;4375:9:81;;:18;1507:7026:77;;4329:526:81;2714:45;;;:::i;:::-;2710:196;;1507:7026:77;;;3049:22:81;1507:7026:77;3049:22:81;;;1507:7026:77;;;;;;;;;;;;:::i;:::-;;;;;;;;10771:138:81;1507:7026:77;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:1:81;1507:7026:77;;;;;;;;;;;2999:73:81;1507:7026:77;3049:22:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;3049:22:81;5591:98:77;;3049:22:81;;;;;;:::i;:::-;1507:7026:77;;;;;2999:73:81;1507:7026:77;2999:73:81;;1507:7026:77;;;;;;;;;;;:::i;2999:73:81:-;1507:7026:77;;;;;;;;;;;2980:93:81;;1507:7026:77;2980:93:81;;;1507:7026:77;;;;;;:::i;:::-;2980:93:81;;-1:-1:-1;;;;;1507:7026:77;2980:93:81;;;;;;;2282:1;2980:93;;;1507:7026:77;;;;3091:31:81;;1507:7026:77;;;;;;;;;3091:31:81;;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;3091:31:81;1507:7026:77;3091:31:81;;;1507:7026:77;;;;:::i;:::-;3084:38:81;;1958:1171::o;2980:93::-;;;;;;2282:1;2980:93;;;;;;:::i;:::-;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:196:81;2856:39;;;;;5107:8;;5147:27;;;;:::i;:::-;1507:7026:77;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;2282:1:81;1507:7026:77;5261:39:81;1507:7026:77;;;;;5261:44:81;5257:108;;2710:196;2309:46:80;357:173:37;;;2309:46:80;;:::i;:::-;1507:7026:77;;;;5538:52:81;1507:7026:77;;;;5538:52:81;;:::i;:::-;1507:7026:77;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;5402:323:81;;;1507:7026:77;;5402:323:81;;;1507:7026:77;357:173:37;5402:323:81;;;1507:7026:77;5747:37:81;1507:7026:77;10771:138:81;;5761:15;1507:7026:77;5747:37:81;:::i;:::-;5800:9;2282:1;5800:9;1507:7026:77;10771:138:81;;5815:15;1507:7026:77;;;5811:26:81;;;;;1507:7026:77;5935:15:81;;6406:190;;;;;;;;;;;;;;357:173:37;5402:323:81;;;1507:7026:77;;;;;6691:15:81;;1507:7026:77;;;6643:64:81;7635:205;;;;7666:21;1507:7026:77;;;;;;;;;;;;;7635:205:81;;5402:323;;357:173:37;5402:323:81;1507:7026:77;;;;;6789:39:81;;;;;1507:7026:77;;;;;;6859:83:81;;5611:16;6859:83;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;6859:15:81;:83;:15;;:83;;;;;;;2282:1;6859:83;;;6789:39;-1:-1:-1;;;;;;1507:7026:77;;6960:14:81;1507:7026:77;;7054:15:81;;;1507:7026:77;;;5402:323:81;;;1507:7026:77;5402:323:81;;;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;7105:17:81;1507:7026:77;;;;;;;9099:457:81;;1507:7026:77;357:173:37;;1507:7026:77;;;;;;7103:30:81;;;:::i;:::-;1507:7026:77;;;8009:323:81;;;;;1507:7026:77;8009:323:81;;;;;;;;1507:7026:77;;8009:323:81;;;1507:7026:77;8009:323:81;;;;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;7176:223:81;;1507:7026:77;;;;7176:223:81;;;1507:7026:77;;;;;;;;;;7176:223:81;;1507:7026:77;;;;;;;;7176:223:81;;1507:7026:77;7176:223:81;357:173:37;7176:223:81;;1507:7026:77;357:173:37;5402:323:81;;;1507:7026:77;;;8615:56:81;2282:1;1507:7026:77;;;;;;;:::i;:::-;;;;;;;;;9164:366:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;9164:366:81;;;1507:7026:77;;;9164:366:81;;1507:7026:77;;;;;-1:-1:-1;;;9099:457:81;;1507:7026:77;;;;;;;5611:16:81;9099:457;;;:::i;:::-;;1507:7026:77;2282:1:81;-1:-1:-1;;;;;1507:7026:77;;9099:457:81;;;;;;;2282:1;9099:457;;;6789:39;2052:83:34;;1507:7026:77;2052:83:34;2241:89;;;9652:455:81;;;;;9822:52;2282:1;1507:7026:77;2241:89:34;1507:7026:77;9822:11:81;:52;2282:1;;;9859:8;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;9822:52:81;9652:455;;-1:-1:-1;;;;;1507:7026:77;;10125:17:81;1507:7026:77;;;7176:223:81;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;;10199:35:81;-1:-1:-1;10195:112:81;;9652:455;-1:-1:-1;10368:10:81;;1507:7026:77;;10368:10:81;;1507:7026:77;2114:78:83;;-1:-1:-1;;;;;1507:7026:77;2614:4:81;2114:78:83;;:::i;:::-;2282:13;1507:7026:77;2282:13:83;;1507:7026:77;2218:78:83;1507:7026:77;;;;;;;;2614:4:81;;2218:78:83;;:::i;:::-;2325:40;;;;;2282:1:81;2325:40:83;;2393;;;2614:4:81;;2393:40:83;;2282:1:81;7493:6:83;;:31;;;2393:40;7489:115;;2393:40;7617:6;;2282:1:81;7617:6:83;;7613:582;;2393:40;8209:6;;2282:1:81;8209:6:83;;:31;;;2393:40;8205:234;;2393:40;8452:6;2282:1:81;8452:6:83;;8448:330;;2393:40;-1:-1:-1;1507:7026:77;;;;;;;;357:173:37;;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;8682:132:81;;2393:40:83;7176:223:81;;;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;2282:1:81;1507:7026:77;3164:38:80;5261:14:81;3124:15:80;;1507:7026:77;;;;;;;;;;;;871:1:84;;;;;;;1507:7026:77;;;;;;;7176:223:81;;1507:7026:77;;3164:38:80;;:::i;:::-;1507:7026:77;7176:223:81;;1507:7026:77;5611:16:81;3212:15:80;;1507:7026:77;;;-1:-1:-1;;;;;7176:223:81;;;1507:7026:77;;;;-1:-1:-1;;;1507:7026:77;;5402:323:81;;;1507:7026:77;;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3511:15:80;;1507:7026:77;3491:17:80;;;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;3899:17:80;;1507:7026:77;3899:33:80;;1507:7026:77;;;;;3899:33:80;:::i;:::-;3989:15;;1507:7026:77;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;2282:1:81;1507:7026:77;;;4028:14:80;;:26;1507:7026:77;;;;;;;;;;;809:15:79;805:218;;2393:40:83;7176:223:81;;;;;1507:7026:77;1107:6:84;;;;1507:7026:77;;;;1128:18:84;;;1124:235;1128:18;;;1507:7026:77;1124:235:84;2282:1:81;3594:343:84;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;871:1:84;;;;;;;;;;;;7176:223:81;;;;1507:7026:77;5402:323:81;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;4574:143:80;;1507:7026:77;;4435:55:80;;1507:7026:77;;;4435:55:80;:::i;:::-;1507:7026:77;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;2282:1:81;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;;;;;;;5402:323:81;;;1507:7026:77;;;;;;;;5402:323:81;;;;1507:7026:77;;4633:15:80;;;1507:7026:77;5402:323:81;357:173:37;5402:323:81;;;1507:7026:77;;;5402:323:81;1507:7026:77;5402:323:81;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:173:37;1507:7026:77;;;4574:143:80;1507:7026:77;;;;;;5402:323:81;;;1507:7026:77;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;5402:323:81;;;;1507:7026:77;;;;;;;;4732:77:80;5855:99:81;;;;:::i;:::-;1507:7026:77;;5800:9:81;;;;1124:235:84;3594:343;;;2282:1:81;3594:343:84;-1:-1:-1;;;;;;;;;;;1507:7026:77;3594:343:84;;;2282:1:81;3594:343:84;;1124:235;;805:218:79;846:396:31;1507:7026:77;846:396:31;;2282:1:81;846:396:31;;;;;;;984:11:79;1676:170:31;1507:7026:77;1676:170:31;;;1507:7026:77;;2282:1:81;1507:7026:77;;;;1676:170:31;1507:7026:77;2282:1:81;1507:7026:77;1676:170:31;;1507:7026:77;;;984:28:79;1507:7026:77;;805:218:79;;;;8682:132:81;8794:8;8750:14;;;5402:323;;;;1507:7026:77;;;;;;;;;5402:323:81;;;1507:7026:77;;8794:8:81;;:::i;:::-;8682:132;;;8448:330:83;8618:3;;;;;;;;;:::i;:::-;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;;8636:31:83;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;8636:31:83;;5611:16:81;8636:31:83;;1507:7026:77;;;;;;;8636:31:83;;;;;;;8726:6;8636:31;;;8448:330;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;;;8726:6:83;:::i;:::-;1507:7026:77;;-1:-1:-1;;;8747:20:83;;1507:7026:77;;;5611:16:81;1507:7026:77;2282:1:81;-1:-1:-1;;;;;1507:7026:77;;8747:20:83;;;;;;;1507:7026:77;8747:20:83;1507:7026:77;8747:20:83;357:173:37;8747:20:83;;;8448:330;;;;;;;;;;;8747:20;;;1507:7026:77;8747:20:83;;;;;;;;;:::i;:::-;;;;;8636:31;2282:1:81;8636:31:83;;;:::i;:::-;;;;8205:234;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;;8375:53:83;;;;1507:7026:77;;8375:53:83;1507:7026:77;2282:1:81;1507:7026:77;;;;;;;;;;;;;;8375:53:83;;5611:16:81;8375:53:83;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;8375:53:83;;;;;;;8205:234;8375:53;2282:1:81;8375:53:83;;;:::i;:::-;;8205:234;;8209:31;-1:-1:-1;;;;;;1507:7026:77;;8219:21:83;;8209:31;;7613:582;7783:3;;;:::i;:::-;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;7801:31:83;;;;2282:1:81;1507:7026:77;;;;;;;;;;;;;;7801:31:83;;5611:16:81;7801:31:83;;1507:7026:77;;;;;;;7801:31:83;;;;;;;;7613:582;-1:-1:-1;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;4998:58:36;7957:29:83;;1507:7026:77;;;5611:16:81;1507:7026:77;;;;;;;;;8006:35:83;;1507:7026:77;;;;;;8006:35:83;;;;;;;;7953:232;;;7613:582;;;;8006:35;;;1507:7026:77;8006:35:83;;;;;;;;;:::i;:::-;;;;;7953:232;8125:6;;1507:7026:77;-1:-1:-1;;;;;1507:7026:77;;;8125:6:83;:::i;:::-;2282:1:81;1507:7026:77;;5611:16:81;1507:7026:77;;;;;;;;;8150:20:83;;1507:7026:77;;;;;;8150:20:83;;;;;;;;7953:232;;;;8150:20;;;1507:7026:77;8150:20:83;;;;;;;;;:::i;:::-;;;;;7801:31;2282:1:81;7801:31:83;;;:::i;:::-;;;;7489:115;1507:7026:77;;-1:-1:-1;;;;;1507:7026:77;;;;;7540:53:83;;;;1507:7026:77;;2282:1:81;1507:7026:77;;7540:53:83;1507:7026:77;;;;;;;;;;;;;7540:53:83;;5611:16:81;7540:53:83;;;:::i;:::-;;;-1:-1:-1;;;;;1507:7026:77;7540:53:83;;;;;;;;7489:115;;;;;7540:53;2282:1:81;7540:53:83;;;:::i;:::-;;;;7493:31;-1:-1:-1;;;;;;1507:7026:77;;7503:21:83;;7493:31;;2393:40;;2282:1:81;2393:40:83;;;2325;2614:4:81;2325:40:83;;;10195:112:81;10261:35;;;;;;;:::i;:::-;10195:112;;;;9822:52;;2282:1;9822:52;;9652:455;10044:52;-1:-1:-1;2282:1:81;10044:11;;2282:1;;;10081:8;;;:::i;:::-;-1:-1:-1;;;;;1507:7026:77;10044:52:81;9652:455;;;10044:52;;2282:1;10044:52;;9099:457;;;;1507:7026:77;9099:457:81;;;;;;;;;:::i;:::-;;;;;6859:83;;;;1507:7026:77;6859:83:81;;;;;;;;;1507:7026:77;6859:83:81;;;:::i;:::-;;;1507:7026:77;;;;;-1:-1:-1;;;;;1507:7026:77;;;;;;6859:83:81;;;;;;;-1:-1:-1;6859:83:81;;6789:39;;;;;7635:205;7775:19;;;;:::i;:::-;7808:21;7635:205;;;5811:26;;;;;;;;2849:46;;:::o;5257:108::-;2282:1;1507:7026:77;;;-1:-1:-1;;;;;;;;;;;1507:7026:77;;;;;;;;;;;;;-1:-1:-1;;;;;1507:7026:77;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;-1:-1:-1;1507:7026:77;;;;;;;;;;;;;;;;-1:-1:-1;;;1507:7026:77;-1:-1:-1;;;1507:7026:77;;;;;;;;;;;-1:-1:-1;;;;;;1507:7026:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:108:81;;1507:7026:77;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;4329:526:81;4476:9;1507:7026:77;;;;-1:-1:-1;;;4573:28:81;;2614:4;4573:28;;;1507:7026:77;;;;4573:28:81;1507:7026:77;4573:28:81;;;;;;;;2282:1;4573:28;;;4329:526;-1:-1:-1;1507:7026:77;;-1:-1:-1;;;4624:45:81;;2594:10;4573:28;4624:45;;1507:7026:77;2614:4:81;4573:28;1507:7026:77;;;;;;;;;;;4624:45:81;1507:7026:77;-1:-1:-1;4624:45:81;;;;;;;;2282:1;4624:45;;;4329:526;1507:7026:77;;;;;4573:28:81;1507:7026:77;;;;;;;;;;4741:28:81;;2614:4;4573:28;4741;;1507:7026:77;4741:28:81;;;;;;;2282:1;4741:28;;;4329:526;4773:21;;;;;:::i;:::-;4741:53;4329:526;1507:7026:77;;;;;2282:1:81;1507:7026:77;4573:28:81;2282:1;1507:7026:77;4741:28:81;;;1507:7026:77;4741:28:81;;1507:7026:77;4741:28:81;;;;;;417:66:26;4741:28:81;;;:::i;:::-;;;417:66:26;;;;4773:21:81;417:66:26;;4741:28:81;;;;;;-1:-1:-1;4741:28:81;;4624:45;;;1507:7026:77;4624:45:81;;1507:7026:77;4624:45:81;;;;;;1507:7026:77;4624:45:81;;;:::i;:::-;;;1507:7026:77;;;;;;;:::i;:::-;4624:45:81;;;;;;-1:-1:-1;4624:45:81;;4573:28;;;;1507:7026:77;4573:28:81;;1507:7026:77;4573:28:81;;;;;;417:66:26;4573:28:81;;;:::i;:::-;;;417:66:26;;;;;4573:28:81;;;;;;;-1:-1:-1;4573:28:81;;3891:9;3945:13;;;;;;:::i;:::-;1507:7026:77;3980:9:81;;;1507:7026:77;;;4041:13:81;;;;:::i;:::-;1507:7026:77;;3891:9:81;;;1507:7026:77;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77;;;;;2282:1:81;1507:7026:77;;2282:1:81;1507:7026:77","linkReferences":{"src/libs/LimitOrderViews.sol":{"LimitOrderViews":[{"start":4261,"length":20},{"start":7305,"length":20},{"start":19542,"length":20}]}},"immutableReferences":{"10714":[{"start":28,"length":32},{"start":907,"length":32},{"start":1075,"length":32},{"start":1545,"length":32},{"start":4008,"length":32},{"start":4882,"length":32},{"start":5805,"length":32},{"start":6048,"length":32},{"start":6234,"length":32},{"start":6996,"length":32},{"start":7621,"length":32},{"start":7795,"length":32},{"start":7855,"length":32},{"start":8934,"length":32},{"start":9001,"length":32},{"start":9074,"length":32},{"start":9137,"length":32},{"start":9288,"length":32},{"start":9366,"length":32},{"start":9478,"length":32},{"start":9545,"length":32},{"start":9642,"length":32},{"start":9740,"length":32},{"start":9808,"length":32},{"start":9929,"length":32},{"start":10007,"length":32},{"start":10799,"length":32},{"start":11737,"length":32}],"10717":[{"start":2932,"length":32},{"start":10836,"length":32}],"10720":[{"start":1962,"length":32},{"start":4546,"length":32}],"10722":[{"start":2997,"length":32},{"start":6175,"length":32},{"start":10876,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","balanceOf(address,address)":"f7888aec","create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":"eb07ed24","fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":"7a9cf273","fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":"5f8fbad6","getMaxFillCount()":"d8c31772","isPermittedCaller(address)":"7fcc389f","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setMaxFillCount(uint256)":"c96d060b","setPermittedCallers(address[],bool[])":"aa24fafc","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","weth()":"3fc8cef3","withdraw(bytes32[],address,uint256,address)":"c2ec68ea","zoraCoinVersionLookup()":"5ef3e955","zoraHookRegistry()":"a6de70b4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraCoinVersionLookup_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraHookRegistry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotPermitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"expectedCoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualCoin\",\"type\":\"address\"}],\"name\":\"CoinMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientForwardedFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"}],\"name\":\"InvalidFillWindow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOrder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPoolKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxFillCountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"MinAmountNotReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeValueMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyZoraHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderFillable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNotMaker\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PathMustHaveAtLeastOneStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermittedCallersLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterMsgSenderInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCallback\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnlockedFillNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WethTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMaker\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroOrderSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroRealizedOrder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"orderTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"currentTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coinIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountOut\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"fillReferralAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCancelled\",\"type\":\"bool\"}],\"name\":\"LimitOrderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"MakerBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"permitted\",\"type\":\"bool\"}],\"name\":\"PermittedCallerUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"orderSizes\",\"type\":\"uint256[]\"},{\"internalType\":\"int24[]\",\"name\":\"orderTicks\",\"type\":\"int24[]\"},{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct IZoraLimitOrderBook.OrderBatch[]\",\"name\":\"batches\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxFillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"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\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"}],\"name\":\"setMaxFillCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"callers\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"permitted\",\"type\":\"bool[]\"}],\"name\":\"setPermittedCallers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraCoinVersionLookup\",\"outputs\":[{\"internalType\":\"contract IDeployedCoinVersionLookup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraHookRegistry\",\"outputs\":[{\"internalType\":\"contract IZoraHookRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"balanceOf(address,address)\":{\"params\":{\"coin\":\"Address of the coin (use address(0) for native ETH).\",\"maker\":\"Address of the maker.\"},\"returns\":{\"_0\":\"Total value of open orders.\"}},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"details\":\"Access is controlled by the PermittedCallers base contract. If PUBLIC_ACCESS (address(0)) is permitted, anyone can create orders. Otherwise, only addresses in the permittedCallers mapping can create orders.\",\"params\":{\"isCurrency0\":\"Whether the orders are denominated in currency0.\",\"key\":\"Pool key specifying currency pair and tick spacing.\",\"maker\":\"Address of the maker who will own the orders.\",\"orderSizes\":\"Order liquidity sizes.\",\"orderTicks\":\"Corresponding ticks.\"},\"returns\":{\"_0\":\"Deterministic order identifiers.\"}},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"params\":{\"batches\":\"Array of per-pool batches containing order ids to process.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\"}},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"params\":{\"endTick\":\"Inclusive ending tick. Use `type(int24).max` for the default upper bound.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\",\"isCurrency0\":\"Whether currency0 orders are targeted; otherwise currency1.\",\"key\":\"Pool key whose orders should be processed.\",\"maxFillCount\":\"Maximum orders to fill in this pass.\",\"startTick\":\"Inclusive starting tick. Use `-type(int24).max` for the default lower bound.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setMaxFillCount(uint256)\":{\"details\":\"Only callable by the owner.\",\"params\":{\"maxFillCount\":\"The new maximum fill count value.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"params\":{\"data\":\"ABI encoded callback identifier and callback data.\"},\"returns\":{\"_0\":\"result Optional return data for create flows.\"}},\"withdraw(bytes32[],address,uint256,address)\":{\"details\":\"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.\",\"params\":{\"coin\":\"The coin address that all orders must match (use address(0) for native ETH).\",\"minAmountOut\":\"Minimum amount to withdraw (0 = cancel all provided orders).\",\"orderIds\":\"Order identifiers to cancel.\",\"recipient\":\"Destination for returned assets.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AddressZero()\":[{\"notice\":\"Address argument was zero.\"}],\"ArrayLengthMismatch()\":[{\"notice\":\"Input arrays must have equal length.\"}],\"CoinMismatch(bytes32,address,address)\":[{\"notice\":\"Order coin does not match expected coin for batch withdrawal.\"}],\"InsufficientForwardedFunds()\":[{\"notice\":\"Forwarded funds from hook were insufficient.\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidFillWindow(int24,int24,bool)\":[{\"notice\":\"Tick range inputs were invalid or misaligned.\"}],\"InvalidOrder()\":[{\"notice\":\"Order id was not found.\"}],\"InvalidPoolKey()\":[{\"notice\":\"Referenced pool key hash is unknown.\"}],\"MaxFillCountCannotBeZero()\":[{\"notice\":\"Fill requests must cap the number of orders processed.\"}],\"MinAmountNotReached(uint256,uint256)\":[{\"notice\":\"Withdrawal did not reach minimum amount threshold.\"}],\"NativeValueMismatch()\":[{\"notice\":\"Supplied ETH must match expected amount.\"}],\"NotPoolManager()\":[{\"notice\":\"Caller must be the configured pool manager.\"}],\"OnlyZoraHook()\":[{\"notice\":\"Caller must be a registered Zora hook.\"}],\"OrderClosed()\":[{\"notice\":\"Order is no longer open.\"}],\"OrderFillable()\":[{\"notice\":\"Order is fillable and must be filled, not withdrawn.\"}],\"OrderNotMaker()\":[{\"notice\":\"Operation attempted by non-maker.\"}],\"PathMustHaveAtLeastOneStep()\":[{\"notice\":\"Thrown when a attempting to swap with a path that has no steps.\"}],\"RouterMsgSenderInvalid()\":[{\"notice\":\"Router caller failed to expose the original message sender.\"}],\"UnknownCallback()\":[{\"notice\":\"Unlock callback id was not recognized.\"}],\"UnlockedFillNotAllowed()\":[{\"notice\":\"Non-hook caller attempted to fill orders while pool is unlocked.\"}],\"ZeroMaker()\":[{\"notice\":\"Maker address cannot be zero.\"}],\"ZeroOrderSize()\":[{\"notice\":\"Orders must specify a non-zero size.\"}],\"ZeroRealizedOrder()\":[{\"notice\":\"Callback realized zero fills when one was expected.\"}]},\"events\":{\"LimitOrderCreated(address,address,bytes32,bool,int24,int24,uint128,bytes32)\":{\"notice\":\"Emitted when a new order joins a tick queue.\"},\"LimitOrderFilled(address,address,address,uint128,uint128,address,uint128,bytes32,int24,bytes32)\":{\"notice\":\"Emitted when an order is filled and removed from the book.\"},\"LimitOrderUpdated(address,address,bytes32,bool,int24,uint128,bytes32,bool)\":{\"notice\":\"Emitted when an order is amended or marked inactive.\"},\"MakerBalanceUpdated(address,address,uint256)\":{\"notice\":\"Emitted when a maker's aggregate balance for a coin changes.\"}},\"kind\":\"user\",\"methods\":{\"balanceOf(address,address)\":{\"notice\":\"Returns the aggregate balance of open orders for a maker/coin pair.\"},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"notice\":\"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked.\"},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"notice\":\"Fills explicit order ids grouped by pool.\"},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"notice\":\"Fills limit orders within a tick window.\"},\"setMaxFillCount(uint256)\":{\"notice\":\"Sets the maximum number of orders that can be filled in a single fill operation.\"},\"unlockCallback(bytes)\":{\"notice\":\"Processes pool-manager unlock callbacks and routes them to the correct handler.\"},\"withdraw(bytes32[],address,uint256,address)\":{\"notice\":\"Cancels orders and withdraws resulting funds to a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ZoraLimitOrderBook.sol\":\"ZoraLimitOrderBook\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickBitmap.sol\":{\"keccak256\":\"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d\",\"dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@uniswap/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol\":{\"keccak256\":\"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3\",\"dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol\":{\"keccak256\":\"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa\",\"dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IERC7572.sol\":{\"keccak256\":\"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d\",\"dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u\"]},\"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol\":{\"keccak256\":\"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5\",\"dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol\":{\"keccak256\":\"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df\",\"dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk\"]},\"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol\":{\"keccak256\":\"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f\",\"dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg\"]},\"node_modules/@zoralabs/coins/src/interfaces/IWETH.sol\":{\"keccak256\":\"0xf6e2763ec71771fa2afd5585416ebe4476a7d602d11976289b6704f8fc8ddf04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cdf97ae29836cabe610c9f1bfec07cf43a531a151cd0ae4d0a048d65ce8a7ba\",\"dweb:/ipfs/QmWc19xLLwdfk1MjtChoEFGEzRpvPFX23RKwJtURAwKeqo\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol\":{\"keccak256\":\"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1\",\"dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraV4CoinHook.sol\":{\"keccak256\":\"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7\",\"dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM\"]},\"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol\":{\"keccak256\":\"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6\",\"dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol\":{\"keccak256\":\"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0\",\"dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc\",\"dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt\"]},\"node_modules/@zoralabs/coins/src/libs/UniV4SwapToCurrency.sol\":{\"keccak256\":\"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0\",\"dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol\":{\"keccak256\":\"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319\",\"dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/ZoraLimitOrderBook.sol\":{\"keccak256\":\"0xe73023239abbc699b3ed29a2c971026b11573b02125868e3fbb48f8e7184aacd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b34ce00f5138646380b91a1e2dc3d9cf589a511be7e1c21640a95f3b860376f1\",\"dweb:/ipfs/QmcpHpDqVtzuQ1hnnCXDcW869Uwry4t14emC4JFRF3b8m8\"]},\"src/access/PermittedCallers.sol\":{\"keccak256\":\"0x09621325cb88e2b27558e144f8a683d0055f85ca8103d2d8855c659cc38456e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beec70505a8f4a022cb9f8d567180426c7279df4e520d4deec9be02adbe49fd7\",\"dweb:/ipfs/QmPpTyG2rHXyPecKNJzTj9fhV8q2gt3WzoEMoqe9jVKGZT\"]},\"src/libs/LimitOrderBitmap.sol\":{\"keccak256\":\"0xfc20115f2904be299412fa90b8a7573c429ed67d690a351168d6f495333e4471\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5e3acc0f3f7035bffa06d67f489dd345e0781098502ae25a3284eba7d2bbd8c5\",\"dweb:/ipfs/QmXN2DQn7VZ5aYc5xmX5uezJejVusWhhSgAXrvN8jmxM3Y\"]},\"src/libs/LimitOrderCommon.sol\":{\"keccak256\":\"0x28f33092e777da786ee80d5d8a09ab3322d1094d517a22d899b361c76ed70e57\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://491a707509943f87292fbd7cb7fe956b39b7b86d10003f670c65ceee203f71bb\",\"dweb:/ipfs/QmbiETprDYUg3kw3HTDJkQP1HJ1Ad62MU1ofVF1zLJp1LG\"]},\"src/libs/LimitOrderCreate.sol\":{\"keccak256\":\"0x7575f2fff4a23090ca88575048c6f7db5c99189dc0e93de9c7ff48a634b8e751\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a7e54320c198ac335f415eeb122f1e53978a6dbff596e58bc981076fb32ab788\",\"dweb:/ipfs/Qmc4sQSrHH9XDwMJSUPpxNEwJMcn8vg3asxuitu2YaZtGp\"]},\"src/libs/LimitOrderFill.sol\":{\"keccak256\":\"0x7e010fb0650584617b4186a2d4862bc32d17959143f78ed006d66525f8dae661\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://06e8df49666c766e4e20ab90a9d02e185248f54475dbdc70363a7558194ba647\",\"dweb:/ipfs/QmbkGonmvuD1Q5xnZp14CJcyWFYLJSSRerFQH5a3gnNsjL\"]},\"src/libs/LimitOrderLiquidity.sol\":{\"keccak256\":\"0xbf98050110676b8f75519c88c9d44314269c2bbf3b63192934f7251004fc5ecd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://4b81ecb8e9e9336faa3bc652ef0c9c0b1701eedc91b84be74f06c794e3c92d96\",\"dweb:/ipfs/QmbLMbcU3iC4RYpixb1hW2KT3kHsaiMby99CnC1TGr5wYe\"]},\"src/libs/LimitOrderQueues.sol\":{\"keccak256\":\"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4\",\"dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt\"]},\"src/libs/LimitOrderStorage.sol\":{\"keccak256\":\"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72\",\"dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu\"]},\"src/libs/LimitOrderTypes.sol\":{\"keccak256\":\"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e\",\"dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5\"]},\"src/libs/LimitOrderViews.sol\":{\"keccak256\":\"0xb1815330aae85a16c7e2e6db4d64701fee910be156934befcb6be6943e339240\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://977012c25b4cc858ab91657644a503a7f5882fd8b006ee21d7ceff3f5d225c2e\",\"dweb:/ipfs/QmU1Xcr1oAuxNe34dgoEKq9BT8UBxLZDaYJTjN4UHEhtZ7\"]},\"src/libs/LimitOrderWithdraw.sol\":{\"keccak256\":\"0x7c1687cdec55894d876e55391a56ae1e6cf4f850ca2454f18f1997f384dd53b8\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://c97896b0d3a98411df07bffa3301b9c377ea36b226cd054c1b71736ed3c158af\",\"dweb:/ipfs/Qme5yzY8P5TM9nTDYBpxfUvtd5ZLPRKbgWD394eywtHkLZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"poolManager_","type":"address"},{"internalType":"address","name":"zoraCoinVersionLookup_","type":"address"},{"internalType":"address","name":"zoraHookRegistry_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"weth_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressZero"},{"inputs":[],"type":"error","name":"ArrayLengthMismatch"},{"inputs":[],"type":"error","name":"CallerNotPermitted"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"address","name":"expectedCoin","type":"address"},{"internalType":"address","name":"actualCoin","type":"address"}],"type":"error","name":"CoinMismatch"},{"inputs":[],"type":"error","name":"InsufficientForwardedFunds"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"bool","name":"isCurrency0","type":"bool"}],"type":"error","name":"InvalidFillWindow"},{"inputs":[],"type":"error","name":"InvalidOrder"},{"inputs":[],"type":"error","name":"InvalidPoolKey"},{"inputs":[],"type":"error","name":"MaxFillCountCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"MinAmountNotReached"},{"inputs":[],"type":"error","name":"NativeValueMismatch"},{"inputs":[],"type":"error","name":"NotPoolManager"},{"inputs":[],"type":"error","name":"OnlyZoraHook"},{"inputs":[],"type":"error","name":"OrderClosed"},{"inputs":[],"type":"error","name":"OrderFillable"},{"inputs":[],"type":"error","name":"OrderNotMaker"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PathMustHaveAtLeastOneStep"},{"inputs":[],"type":"error","name":"PermittedCallersLengthMismatch"},{"inputs":[],"type":"error","name":"RouterMsgSenderInvalid"},{"inputs":[],"type":"error","name":"UnknownCallback"},{"inputs":[],"type":"error","name":"UnlockedFillNotAllowed"},{"inputs":[],"type":"error","name":"WethTransferFailed"},{"inputs":[],"type":"error","name":"ZeroMaker"},{"inputs":[],"type":"error","name":"ZeroOrderSize"},{"inputs":[],"type":"error","name":"ZeroRealizedOrder"},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"orderTick","type":"int24","indexed":false},{"internalType":"int24","name":"currentTick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coinIn","type":"address","indexed":true},{"internalType":"address","name":"coinOut","type":"address","indexed":false},{"internalType":"uint128","name":"amountIn","type":"uint128","indexed":false},{"internalType":"uint128","name":"amountOut","type":"uint128","indexed":false},{"internalType":"address","name":"fillReferral","type":"address","indexed":false},{"internalType":"uint128","name":"fillReferralAmount","type":"uint128","indexed":false},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderFilled","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCancelled","type":"bool","indexed":false}],"type":"event","name":"LimitOrderUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"MakerBalanceUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bool","name":"permitted","type":"bool","indexed":false}],"type":"event","name":"PermittedCallerUpdated","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"coin","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"uint256[]","name":"orderSizes","type":"uint256[]"},{"internalType":"int24[]","name":"orderTicks","type":"int24[]"},{"internalType":"address","name":"maker","type":"address"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"uint256","name":"maxFillCount","type":"uint256"},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[{"internalType":"struct IZoraLimitOrderBook.OrderBatch[]","name":"batches","type":"tuple[]","components":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"isCurrency0","type":"bool"},{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"}]},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxFillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"maxFillCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxFillCount"},{"inputs":[{"internalType":"address[]","name":"callers","type":"address[]"},{"internalType":"bool[]","name":"permitted","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"setPermittedCallers"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"},{"internalType":"address","name":"coin","type":"address"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraCoinVersionLookup","outputs":[{"internalType":"contract IDeployedCoinVersionLookup","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraHookRegistry","outputs":[{"internalType":"contract IZoraHookRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"balanceOf(address,address)":{"params":{"coin":"Address of the coin (use address(0) for native ETH).","maker":"Address of the maker."},"returns":{"_0":"Total value of open orders."}},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"details":"Access is controlled by the PermittedCallers base contract. If PUBLIC_ACCESS (address(0)) is permitted, anyone can create orders. Otherwise, only addresses in the permittedCallers mapping can create orders.","params":{"isCurrency0":"Whether the orders are denominated in currency0.","key":"Pool key specifying currency pair and tick spacing.","maker":"Address of the maker who will own the orders.","orderSizes":"Order liquidity sizes.","orderTicks":"Corresponding ticks."},"returns":{"_0":"Deterministic order identifiers."}},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"params":{"batches":"Array of per-pool batches containing order ids to process.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker."}},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"params":{"endTick":"Inclusive ending tick. Use `type(int24).max` for the default upper bound.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker.","isCurrency0":"Whether currency0 orders are targeted; otherwise currency1.","key":"Pool key whose orders should be processed.","maxFillCount":"Maximum orders to fill in this pass.","startTick":"Inclusive starting tick. Use `-type(int24).max` for the default lower bound."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setMaxFillCount(uint256)":{"details":"Only callable by the owner.","params":{"maxFillCount":"The new maximum fill count value."}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"params":{"data":"ABI encoded callback identifier and callback data."},"returns":{"_0":"result Optional return data for create flows."}},"withdraw(bytes32[],address,uint256,address)":{"details":"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.","params":{"coin":"The coin address that all orders must match (use address(0) for native ETH).","minAmountOut":"Minimum amount to withdraw (0 = cancel all provided orders).","orderIds":"Order identifiers to cancel.","recipient":"Destination for returned assets."}}},"version":1},"userdoc":{"kind":"user","methods":{"balanceOf(address,address)":{"notice":"Returns the aggregate balance of open orders for a maker/coin pair."},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"notice":"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked."},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"notice":"Fills explicit order ids grouped by pool."},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"notice":"Fills limit orders within a tick window."},"setMaxFillCount(uint256)":{"notice":"Sets the maximum number of orders that can be filled in a single fill operation."},"unlockCallback(bytes)":{"notice":"Processes pool-manager unlock callbacks and routes them to the correct handler."},"withdraw(bytes32[],address,uint256,address)":{"notice":"Cancels orders and withdraws resulting funds to a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/ZoraLimitOrderBook.sol":"ZoraLimitOrderBook"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickBitmap.sol":{"keccak256":"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a","urls":["bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d","dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@uniswap/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol":{"keccak256":"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c","urls":["bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3","dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol":{"keccak256":"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba","urls":["bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa","dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IERC7572.sol":{"keccak256":"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937","urls":["bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d","dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol":{"keccak256":"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb","urls":["bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5","dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol":{"keccak256":"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce","urls":["bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df","dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol":{"keccak256":"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7","urls":["bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f","dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IWETH.sol":{"keccak256":"0xf6e2763ec71771fa2afd5585416ebe4476a7d602d11976289b6704f8fc8ddf04","urls":["bzz-raw://3cdf97ae29836cabe610c9f1bfec07cf43a531a151cd0ae4d0a048d65ce8a7ba","dweb:/ipfs/QmWc19xLLwdfk1MjtChoEFGEzRpvPFX23RKwJtURAwKeqo"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol":{"keccak256":"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de","urls":["bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1","dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/interfaces/IZoraV4CoinHook.sol":{"keccak256":"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37","urls":["bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7","dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM"],"license":"MIT"},"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol":{"keccak256":"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21","urls":["bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6","dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol":{"keccak256":"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd","urls":["bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0","dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f","urls":["bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc","dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/UniV4SwapToCurrency.sol":{"keccak256":"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac","urls":["bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0","dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol":{"keccak256":"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22","urls":["bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319","dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/ZoraLimitOrderBook.sol":{"keccak256":"0xe73023239abbc699b3ed29a2c971026b11573b02125868e3fbb48f8e7184aacd","urls":["bzz-raw://b34ce00f5138646380b91a1e2dc3d9cf589a511be7e1c21640a95f3b860376f1","dweb:/ipfs/QmcpHpDqVtzuQ1hnnCXDcW869Uwry4t14emC4JFRF3b8m8"],"license":"ZORA-DELAYED-OSL-v1"},"src/access/PermittedCallers.sol":{"keccak256":"0x09621325cb88e2b27558e144f8a683d0055f85ca8103d2d8855c659cc38456e1","urls":["bzz-raw://beec70505a8f4a022cb9f8d567180426c7279df4e520d4deec9be02adbe49fd7","dweb:/ipfs/QmPpTyG2rHXyPecKNJzTj9fhV8q2gt3WzoEMoqe9jVKGZT"],"license":"MIT"},"src/libs/LimitOrderBitmap.sol":{"keccak256":"0xfc20115f2904be299412fa90b8a7573c429ed67d690a351168d6f495333e4471","urls":["bzz-raw://5e3acc0f3f7035bffa06d67f489dd345e0781098502ae25a3284eba7d2bbd8c5","dweb:/ipfs/QmXN2DQn7VZ5aYc5xmX5uezJejVusWhhSgAXrvN8jmxM3Y"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCommon.sol":{"keccak256":"0x28f33092e777da786ee80d5d8a09ab3322d1094d517a22d899b361c76ed70e57","urls":["bzz-raw://491a707509943f87292fbd7cb7fe956b39b7b86d10003f670c65ceee203f71bb","dweb:/ipfs/QmbiETprDYUg3kw3HTDJkQP1HJ1Ad62MU1ofVF1zLJp1LG"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCreate.sol":{"keccak256":"0x7575f2fff4a23090ca88575048c6f7db5c99189dc0e93de9c7ff48a634b8e751","urls":["bzz-raw://a7e54320c198ac335f415eeb122f1e53978a6dbff596e58bc981076fb32ab788","dweb:/ipfs/Qmc4sQSrHH9XDwMJSUPpxNEwJMcn8vg3asxuitu2YaZtGp"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderFill.sol":{"keccak256":"0x7e010fb0650584617b4186a2d4862bc32d17959143f78ed006d66525f8dae661","urls":["bzz-raw://06e8df49666c766e4e20ab90a9d02e185248f54475dbdc70363a7558194ba647","dweb:/ipfs/QmbkGonmvuD1Q5xnZp14CJcyWFYLJSSRerFQH5a3gnNsjL"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderLiquidity.sol":{"keccak256":"0xbf98050110676b8f75519c88c9d44314269c2bbf3b63192934f7251004fc5ecd","urls":["bzz-raw://4b81ecb8e9e9336faa3bc652ef0c9c0b1701eedc91b84be74f06c794e3c92d96","dweb:/ipfs/QmbLMbcU3iC4RYpixb1hW2KT3kHsaiMby99CnC1TGr5wYe"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderQueues.sol":{"keccak256":"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24","urls":["bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4","dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderStorage.sol":{"keccak256":"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367","urls":["bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72","dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderTypes.sol":{"keccak256":"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258","urls":["bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e","dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderViews.sol":{"keccak256":"0xb1815330aae85a16c7e2e6db4d64701fee910be156934befcb6be6943e339240","urls":["bzz-raw://977012c25b4cc858ab91657644a503a7f5882fd8b006ee21d7ceff3f5d225c2e","dweb:/ipfs/QmU1Xcr1oAuxNe34dgoEKq9BT8UBxLZDaYJTjN4UHEhtZ7"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderWithdraw.sol":{"keccak256":"0x7c1687cdec55894d876e55391a56ae1e6cf4f850ca2454f18f1997f384dd53b8","urls":["bzz-raw://c97896b0d3a98411df07bffa3301b9c377ea36b226cd054c1b71736ed3c158af","dweb:/ipfs/Qme5yzY8P5TM9nTDYBpxfUvtd5ZLPRKbgWD394eywtHkLZ"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":77}
|