0 txs
761 calls
constructor
No constructor.
functions
CALLBACK_GAS_LIMIT
viewfunction CALLBACK_GAS_LIMIT() view returns (uint256)
decodeCreateOrder
purefunction decodeCreateOrder(address exchangeRouterContractGuard, bytes[] multicallParams) pure returns (bytes lastCallData, uint256 numOfCalls, tuple createOrderParams)
getAssetHandler
viewfunction getAssetHandler(address poolManagerLogic) view returns (address)
getMaxDepositSlippageData
viewfunction getMaxDepositSlippageData(tuple latestDeposit, tuple priceDependencies, bool isMinOutputAmountUsed, uint256 optionalOutputAmount) view returns (uint256 inputTokensValueD18, uint256 outputTokensValueD18)
getMaxSwapSlippageData
viewfunction getMaxSwapSlippageData(tuple latestOrder, tuple priceDependencies, bool isMinOutputAmountUsed, uint256 optionalOutputAmount) view returns (uint256 inputTokensValue, uint256 outputTokensValue)
getMaxWithdrawalSlippageData
viewfunction getMaxWithdrawalSlippageData(tuple latestWithdrawal, tuple priceDependencies, bool isMinOutputAmountUsed, uint256 optionalOutputLongTokenAmount, uint256 optionalOutputShortTokenAmount) view returns (uint256 inputTokensValueD18, uint256 outputTokensValueD18)
MAX_LEVERAGE
viewfunction MAX_LEVERAGE() view returns (uint256)
MAX_SLIPPAGE
viewfunction MAX_SLIPPAGE() view returns (uint256)
maxLeverageCheck
viewfunction maxLeverageCheck(tuple latestOrder, tuple priceDependencies, address exchangeRouterContractGuard) view
validateTxGuardParams
viewfunction validateTxGuardParams(address exchangeRouterContractGuard, address poolManagerLogic, bytes data) view returns (bytes4 method, bytes params, address poolLogic, tuple poolSetting)
events
No events.
errors
No errors.
creation bytecode
0x614eef610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a35760003560e01c80631862aab3146100a857806333d608f1146100d15780634f8c58f3146100e6578063777bd4dd146101075780637c289ff11461011a5780639b45ec971461012f578063b397a75114610137578063d099473114610159578063f5e086af1461016c578063f97595181461018f578063fa217e3214610197575b600080fd5b6100bb6100b636600461375b565b6101b7565b6040516100c89190614771565b60405180910390f35b6100d96102a2565b6040516100c89190614d89565b6100f96100f4366004613ee3565b6102a9565b6040516100c8929190614d92565b6100f961011536600461443c565b6103f9565b61012d610128366004614237565b61052b565b005b6100d96107e3565b61014a610145366004613864565b6107ef565b6040516100c893929190614849565b6100f9610167366004614297565b610996565b61017f61017a366004613805565b610af1565b6040516100c894939291906147e5565b6100d9610df2565b8180156101a357600080fd5b5061012d6101b2366004613793565b610df7565b6000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156101f257600080fd5b505afa158015610206573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022a9190613777565b6001600160a01b03166309ed48936040518163ffffffff1660e01b815260040160206040518083038186803b15801561026257600080fd5b505afa158015610276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029a9190613777565b90505b919050565b620b71b081565b60008060006102c086886000015160a0015161175b565b60200151905060006102da87896000015160c0015161175b565b602001519050600061037b8889600001516001600160a01b031663714af34b8b602001518d60000151608001516040518363ffffffff1660e01b8152600401610324929190614910565b60806040518083038186803b15801561033c57600080fd5b505afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103749190614076565b6000611ab8565b90506103c064e8d4a510006103ba6103a4858d6020015160200151611bc590919063ffffffff16565b60208d0151516103b49088611bc5565b90611c1e565b90611c76565b60208a015160400151909550876103d45750855b6103ea670de0b6b3a76400006103ba8385611bc5565b94505050505094509492505050565b8351602085015186516080015160405163714af34b60e01b8152600093849384936001600160a01b039092169263714af34b926104399291600401614910565b60806040518083038186803b15801561045157600080fd5b505afa158015610465573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104899190614076565b90506104b2670de0b6b3a76400006103ba6104a68a856001611ab8565b60208c01515190611bc5565b925060006104c488836040015161175b565b60000151905060006104da89846060015161175b565b516020808c01519081015160409091015191925090896104fa5750879050865b61051a64e8d4a510006103ba6105108487611bc5565b6103b48689611bc5565b955050505050509550959350505050565b6000806106198585856001600160a01b0316626cc35e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056b57600080fd5b505afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190613777565b866001600160a01b031663b3f006746040518163ffffffff1660e01b815260040160206040518083038186803b1580156105dc57600080fd5b505afa1580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190613777565b611cda565b91509150600061063185876000015160c0015161175b565b51905060008083156106655761066261064a8585611bc5565b6020870151516103ba90670de0b6b3a7640000611bc5565b91505b6004602089015151600881111561067857fe5b1415610721576020808601515190890151604001511061069c5750505050506107de565b83886020015160600151106106cc5760405162461bcd60e51b81526004016106c390614c8c565b60405180910390fd5b61071a6106f4846106ee8b602001516060015188611f2490919063ffffffff16565b90611bc5565b6020808b01516040015190880151516103ba91670de0b6b3a7640000916106ee91611f24565b90506107a8565b6002602089015151600881111561073457fe5b14156107a857600061075789602001516060015186611c1e90919063ffffffff16565b11156107a8576107a561077f846106ee8b602001516060015188611c1e90919063ffffffff16565b6020808b01516040015190880151516103ba91670de0b6b3a7640000916106ee91611c1e565b90505b818111156107d857676124fee993bc00008111156107d85760405162461bcd60e51b81526004016106c390614c00565b50505050505b505050565b676124fee993bc000081565b606060006107fb6128b4565b83519150816003148061080e5750816002145b61082a5760405162461bcd60e51b81526004016106c390614bc9565b83600183038151811061083957fe5b602002602001015192506000856001600160a01b031663c3c6279f856040518263ffffffff1660e01b81526004016108719190614836565b60206040518083038186803b15801561088957600080fd5b505afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c19190613a8e565b90506000866001600160a01b03166368901513866040518263ffffffff1660e01b81526004016108f19190614836565b60006040518083038186803b15801561090957600080fd5b505afa15801561091d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109459190810190613ab6565b90506001600160e01b03198216636996807b60e01b146109775760405162461bcd60e51b81526004016106c390614d57565b8080602001905181019061098b9190613b9b565b925050509250925092565b60008060006109ad86886000015160c0015161175b565b602001519050600086600001516001600160a01b031663714af34b88602001518a6000015160e001516000815181106109e257fe5b60200260200101516040518363ffffffff1660e01b8152600401610a07929190614910565b60806040518083038186803b158015610a1f57600080fd5b505afa158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a579190614076565b90506000610a6d896000015160c0015183611f81565b90506000610a7b898361175b565b5160208b015160600151909150610a9d9064e8d4a51000906103ba9087611bc5565b95508715610ad157610aca64e8d4a510006103ba838d602001516101000151611bc590919063ffffffff16565b9450610ae4565b6103ea64e8d4a510006103ba8984611bc5565b5050505094509492505050565b600060606000610aff612905565b856001600160a01b03166339b81fd96040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3857600080fd5b505afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190613777565b9150336001600160a01b03831614610b9a5760405162461bcd60e51b81526004016106c390614cc3565b604051632a32620760e11b81526001600160a01b03881690635464c40e90610bc6908590600401614771565b604080518083038186803b158015610bdd57600080fd5b505afa158015610bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190613c7f565b9050816001600160a01b031681600001516001600160a01b031614610c4c5760405162461bcd60e51b81526004016106c390614b33565b6020810151604051634df48c7360e11b81526001600160a01b03881691639be918e691610c7c9190600401614771565b60206040518083038186803b158015610c9457600080fd5b505afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc9190613a72565b610ce85760405162461bcd60e51b81526004016106c390614c2f565b60405163c3c6279f60e01b81526001600160a01b0388169063c3c6279f90610d14908890600401614836565b60206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190613a8e565b604051636890151360e01b81529094506001600160a01b03881690636890151390610d93908890600401614836565b60006040518083038186803b158015610dab57600080fd5b505afa158015610dbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610de79190810190613ab6565b925093509350935093565b609681565b600080610e05868685610af1565b505091509150610e1361291c565b610e1b61294a565b6040518060a00160405280896001600160a01b031663660d0d676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5f57600080fd5b505afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190613777565b6001600160a01b03168152602001896001600160a01b031663d4fc42c66040518163ffffffff1660e01b815260040160206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190613777565b6001600160a01b03168152602001896001600160a01b03166333a518b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5d57600080fd5b505afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f959190613777565b6001600160a01b03168152602001896001600160a01b03166352dac6566040518163ffffffff1660e01b815260040160206040518083038186803b158015610fdc57600080fd5b505afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190613777565b6001600160a01b0316815260200161102b896101b7565b6001600160a01b039081169091526040805160808082018352602080860151851683528551851690830152840151831691810191909152908a16606082015290925090506001600160e01b03198416631592ca1b60e31b14156116115760008380602001905181019061109e91906139ea565b90506000816001835103815181106110b257fe5b60200260200101519050896001600160a01b031663c3c6279f826040518263ffffffff1660e01b81526004016110e89190614836565b60206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190613a8e565b95506001600160e01b03198616635b4e956160e01b14156112d657600061116b85600001516001600160a01b0316611fed565b60208601518651604051631485d29760e01b81529293506000926001600160a01b0390921691631485d297916111a591869060040161492a565b60006040518083038186803b1580156111bd57600080fd5b505afa1580156111d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111f99190810190613d7c565b8051518751919250600091611219916001600160a01b039091169061200f565b90508060011461123b5760405162461bcd60e51b81526004016106c390614b97565b620b71b0826020015160a0015110156112665760405162461bcd60e51b81526004016106c390614b03565b6000806112778489600160006102a9565b915091506112cc89604001518f60405180608001604052808860000151608001516001600160a01b031681526020018860000151608001516001600160a01b0316815260200186815260200185815250612090565b505050505061160a565b6001600160e01b0319861663ad23c5a160e01b141561141457600061130785600001516001600160a01b0316611fed565b6020860151865160405163ceeea3bf60e01b81529293506000926001600160a01b039092169163ceeea3bf9161134191869060040161492a565b60006040518083038186803b15801561135957600080fd5b505afa15801561136d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113959190810190614309565b80515187519192506000916113b5916001600160a01b0390911690612271565b9050806001146113d75760405162461bcd60e51b81526004016106c390614d22565b620b71b0826020015160a0015110156114025760405162461bcd60e51b81526004016106c390614b03565b600080611277848960016000806103f9565b6001600160e01b03198616636996807b60e01b141561160a576114378a836107ef565b505050600061145285600001516001600160a01b0316611fed565b602086015186516040516324b28db560e11b81529293506000926001600160a01b03909216916349651b6a9161148c91869060040161492a565b60006040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114e091908101906140f3565b8051518751919250600091611500916001600160a01b039091169061228b565b9050806001146115225760405162461bcd60e51b81526004016106c390614a49565b620b71b0826020015160e00151101561154d5760405162461bcd60e51b81526004016106c390614b03565b6000602083015151600881111561156057fe5b14156115fb57600080611577848960016000610996565b915091506115f489604001518f6040518060800160405280886000015160e001516000815181106115a457fe5b60200260200101516001600160a01b03168152602001886000015160e001516000815181106115cf57fe5b60200260200101516001600160a01b0316815260200186815260200185815250612090565b5050611606565b61160682878f61052b565b5050505b50506107d8565b6001600160e01b0319841663e9249b5760e01b14156107d8576000806000808680602001905181019061164491906138ff565b935093509350935060005b845181101561174c5773fd746c600401c3369c2ead3d3e1247bf872a1cf0636efc41e3886060015189600001518e60405180608001604052808b888151811061169457fe5b60200260200101516001600160a01b031681526020018a88815181106116b657fe5b60200260200101516001600160a01b031681526020018988815181106116d857fe5b60200260200101518152602001886001600160a01b03168152506040518563ffffffff1660e01b81526004016117119493929190614785565b60006040518083038186803b15801561172957600080fd5b505af415801561173d573d6000803e3d6000fd5b5050505080600101905061164f565b50505050505050505050505050565b611763612971565b6060830151604051630d23799160e31b81526000916001600160a01b03169063691bcc8890611796908690600401614771565b60206040518083038186803b1580156117ae57600080fd5b505afa1580156117c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e69190613777565b9050600084604001516001600160a01b031663b4fb1279836040518263ffffffff1660e01b815260040161181a9190614771565b60206040518083038186803b15801561183257600080fd5b505afa158015611846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186a9190613777565b604051631536292360e21b81529091506001600160a01b038216906354d8a48c9061189a906000906004016147da565b604080518083038186803b1580156118b157600080fd5b505afa9250505080156118e1575060408051601f3d908101601f191682019092526118de91810190613d61565b60015b6119b1576000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561192057600080fd5b505afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906145dc565b5050509150506000811361197e5760405162461bcd60e51b81526004016106c390614b60565b600061198f876020015183886122a5565b9050604051806040016040528082815260200182815250945050505050611ab2565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ea57600080fd5b505afa925050508015611a1a575060408051601f3d908101601f19168201909252611a1791810190613777565b60015b611a365760405162461bcd60e51b81526004016106c390614a79565b806001600160a01b0316846001600160a01b031614611a675760405162461bcd60e51b81526004016106c390614adc565b506000611a7d87602001518360000151886122a5565b90506000611a9488602001518460200151896122a5565b604080518082019091529283526020830152509350611ab292505050565b92915050565b60008084600001516001600160a01b031663095ce6c5866020015186611ae289896020015161175b565b611af08a8a6040015161175b565b611afe8b8b6060015161175b565b604051602001611b0d90614ceb565b604051602081830303815290604052805190602001208a6040518863ffffffff1660e01b8152600401611b4697969594939291906149c2565b6101806040518083038186803b158015611b5f57600080fd5b505afa158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190613ae8565b5090506000811315611bb757611bb28164e8d4a51000611c76565b611bba565b60005b9150505b9392505050565b600082611bd457506000611ab2565b82820282848281611be157fe5b0414611bbe5760405162461bcd60e51b8152600401808060200182810382526021815260200180614e996021913960400191505060405180910390fd5b600082820183811015611bbe576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b6000808211611cc9576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381611cd257fe5b049392505050565b611ce261298b565b8451805160a082015160c0909201516040880151516000938493611d079390926122d4565b865160208801516040516307d47a8b60e11b81529293506001600160a01b0390911691630fa8f51691611d3e91859060040161492a565b6101a06040518083038186803b158015611d5757600080fd5b505afa158015611d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8f91906142ed565b8051519093506001600160a01b0316611dac575060009050611f1b565b85516020870151885160a0015160405163714af34b60e01b81526000936001600160a01b03169263714af34b92611de592600401614910565b60806040518083038186803b158015611dfd57600080fd5b505afa158015611e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e359190614076565b905060006040518060600160405280611e528a856020015161175b565b8152602001611e658a856040015161175b565b8152602001611e788a856060015161175b565b9052885160208a0151604051630815bce160e01b81529293506000926001600160a01b0390921691630815bce191611ebf918c908990889088908f90600190600401614943565b6107a06040518083038186803b158015611ed857600080fd5b505afa158015611eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f109190613cd6565b90506103ea81612321565b94509492505050565b600082821115611f7b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081604001516001600160a01b0316836001600160a01b03161415611fac57506060810151611ab2565b81606001516001600160a01b0316836001600160a01b03161415611fd557506040810151611ab2565b60405162461bcd60e51b81526004016106c390614aa6565b600080611ff98361241f565b9050600061200784836124d6565b949350505050565b6000826001600160a01b031663f3903b9f6120298461250e565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561205d57600080fd5b505afa158015612071573d6000803e3d6000fd5b505050506040513d602081101561208757600080fd5b50519392505050565b8060400151816060015110156107de5760408101516120b990612710906103ba9061267a611bc5565b816060015110156120dc5760405162461bcd60e51b81526004016106c390614c65565b600061211961211483604001516103ba620f42406001600160801b03166106ee87606001518860400151611f2490919063ffffffff16565b61258b565b90506000846001600160a01b0316630a7654f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561215657600080fd5b505afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218e91906145b5565b90506000856001600160a01b0316634a7c34cc866040518263ffffffff1660e01b81526004016121be9190614771565b60206040518083038186803b1580156121d657600080fd5b505afa1580156121ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220e91906145b5565b9050816001600160801b0316612242612114836001600160801b0316866001600160801b0316611c1e90919063ffffffff16565b6001600160801b031611156122695760405162461bcd60e51b81526004016106c390614c65565b505050505050565b6000826001600160a01b031663f3903b9f612029846125d3565b6000826001600160a01b031663f3903b9f61202984612653565b6000806122bb6001600160a01b038616846126ce565b9050611bba848268327cb2734119d3b7a9601e1b612805565b604080516001600160a01b039586166020808301919091529486168183015292909416606083015215156080808301919091528351808303909101815260a0909101909252815191012090565b80516020908101516040908101519083015190910151156123705761236d612366836020015160c0015160200151846040015160200151611c7690919063ffffffff16565b8290611c1e565b90505b60008260a0015113156123aa576123a3612366836020015160c00151602001518460a00151611c7690919063ffffffff16565b90506123ea565b602082015160c001515160a08301516000916123c891830390611c76565b9050818110156123e3576123dc8282611f24565b91506123e8565b600091505b505b8082602001516101e0015110156124175760208201516101e00151612410908290611f24565b905061029d565b506000919050565b6000816001600160a01b031663bd02d0f5604051602001808060200182810382526005815260200180644e4f4e434560d81b815250602001915050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156124a457600080fd5b505afa1580156124b8573d6000803e3d6000fd5b505050506040513d60208110156124ce57600080fd5b505192915050565b604080516001600160a01b03939093166020808501919091528382019290925280518084038201815260609093019052815191012090565b604080516020808201819052601482840152731050d0d3d5539517d1115413d4d25517d31254d560621b6060808401919091528351808403909101815260808301845280519082012060a08301526001600160a01b03841660c0808401919091528351808403909101815260e09092019092528051910120919050565b6000600160801b82106125cf5760405162461bcd60e51b8152600401808060200182810382526027815260200180614e726027913960400191505060405180910390fd5b5090565b604080516020808201819052601782840152761050d0d3d5539517d5d2551211149055d05317d31254d5604a1b6060808401919091528351808403909101815260808301845280519082012060a08301526001600160a01b03841660c0808401919091528351808403909101815260e09092019092528051910120919050565b604080516020808201819052601282840152711050d0d3d5539517d3d491115497d31254d560721b6060808401919091528351808403909101815260808301845280519082012060a08301526001600160a01b03841660c0808401919091528351808403909101815260e09092019092528051910120919050565b60408051602080820181905260158284015274282924a1a2afa322a2a22fa6aaa62a24a82624a2a960591b6060808401919091528351808403909101815260808301845280519082012060a08301526001600160a01b0384811660c0808501919091528451808503909101815260e0840180865281519184019190912063bd02d0f560e01b90915260e4840152925160009384939087169263bd02d0f59261010480840193829003018186803b15801561278757600080fd5b505afa15801561279b573d6000803e3d6000fd5b505050506040513d60208110156127b157600080fd5b5051905080611bbe576040805162461bcd60e51b815260206004820152601b60248201527a32b6b83a3c90383934b1b2903332b2b21036bab63a34b83634b2b960291b604482015290519081900360640190fd5b600080806000198587098686029250828110908390030390508061283b576000841161283057600080fd5b508290049050611bbe565b80841161284757600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6040518061010001604052806128c86129bd565b81526020016128d56129fb565b81526020016000815260200160008152600060208201819052604082018190526060820181905260809091015290565b604080518082019091526000808252602082015290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528060008152602001600081525090565b604051806060016040528061299e612a40565b81526020016129ab612a60565b81526020016129b8612aac565b905290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051602081019091526000815290565b803561029d81614e31565b805161029d81614e31565b600082601f830112612ae4578081fd5b81356020612af9612af483614dc3565b614da0565b8281528181019085830183850287018401881015612b15578586fd5b855b85811015612b3c578135612b2a81614e31565b84529284019290840190600101612b17565b5090979650505050505050565b600082601f830112612b59578081fd5b81516020612b69612af483614dc3565b8281528181019085830183850287018401881015612b85578586fd5b855b85811015612b3c578151612b9a81614e31565b84529284019290840190600101612b87565b803561029d81614e49565b805161029d81614e49565b600082601f830112612bd2578081fd5b8135612be0612af482614de0565b818152846020838601011115612bf4578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112612c1e578081fd5b8151612c2c612af482614de0565b818152846020838601011115612c40578283fd5b612007826020830160208701614e01565b803561029d81614e57565b805161029d81614e57565b803561029d81614e64565b805161029d81614e64565b600060e08284031215612c8e578081fd5b612c9860e0614da0565b9050612ca382612ac9565b8152612cb160208301612ac9565b6020820152612cc260408301612ac9565b6040820152612cd360608301612ac9565b6060820152612ce460808301612ac9565b6080820152612cf560a08301612ac9565b60a082015260c08201516001600160401b03811115612d1357600080fd5b612d1f84828501612b49565b60c08301525092915050565b6000610100808385031215612d3e578182fd5b604051908101906001600160401b0382118183101715612d5a57fe5b81604052809250835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152505092915050565b600060608284031215612dc4578081fd5b604051606081018181106001600160401b0382111715612de057fe5b80604052508091508251815260208301516020820152604083015160408201525092915050565b600060208284031215612e18578081fd5b604051602081018181106001600160401b0382111715612e3457fe5b6040529050808235612e4581614e49565b905292915050565b600060208284031215612e5e578081fd5b604051602081018181106001600160401b0382111715612e7a57fe5b80604052508091508251612e4581614e49565b600060808284031215612e9e578081fd5b604051608081018181106001600160401b0382111715612eba57fe5b6040529050808235612ecb81614e49565b81526020830135612edb81614e49565b60208201526040830135612eee81614e49565b60408201526060830135612f0181614e49565b6060919091015292915050565b600060808284031215612f1f578081fd5b604051608081018181106001600160401b0382111715612f3b57fe5b80604052508091508251612f4e81614e49565b81526020830151612f5e81614e49565b60208201526040830151612f7181614e49565b60408201526060830151612f0181614e49565b600060808284031215612f95578081fd5b604051608081018181106001600160401b0382111715612fb157fe5b6040529050808235612fc281614e31565b81526020830135612fd281614e31565b60208201526040830135612fe581614e31565b60408201526060830135612f0181614e31565b600060c08284031215613009578081fd5b60405160c081018181106001600160401b038211171561302557fe5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600060c0828403121561307b578081fd5b60405160c081018181106001600160401b038211171561309757fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b60006101608083850312156130ef578182fd5b6130f881614da0565b91505061310482612c67565b815261311260208301612c51565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525061012080830135818301525061014080830135818301525092915050565b6000610160808385031215613190578182fd5b61319981614da0565b9150506131a582612c72565b81526131b360208301612c5c565b602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e082015261010080830151818301525061012080830151818301525061014080830151818301525092915050565b6000610120808385031215613231578182fd5b61323a81614da0565b915050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e082015261010080830151818301525092915050565b6000608082840312156132aa578081fd5b604051608081018181106001600160401b03821117156132c657fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006105408284031215613309578081fd5b613314610220614da0565b90506133208383613411565b815261014061333184828501612db3565b60208301526101a06133458582860161306a565b6040840152613358856102608601613299565b606084015261336b856102e086016134a6565b608084015261337e856103408601613299565b60a0840152613391856103c08601613505565b60c084015261040084015160e0840152610420840151610100840152610440840151610120840152610460840151828401526104808401516101608401526104a08401516101808401526104c08401518184015250506104e08201516101c08201526105008201516101e082015261052082015161020082015292915050565b6000610140808385031215613424578182fd5b61342d81614da0565b9150508151815261344060208301612ac9565b602082015261345160408301612ac9565b6040820152606082015160608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e082015261010080830151818301525061012080830151818301525092915050565b6000606082840312156134b7578081fd5b604051606081018181106001600160401b03821117156134d357fe5b806040525080915082516134e681614e31565b8082525060208301516020820152604083015160408201525092915050565b600060408284031215613516578081fd5b604051604081018181106001600160401b038211171561353257fe5b604052825181526020928301519281019290925250919050565b6000610200828403121561355e578081fd5b604051606081016001600160401b03828210818311171561357b57fe5b81604052829350843591508082111561359357600080fd5b81850191506101008083880312156135aa57600080fd5b6135b381614da0565b90506135be83612abe565b81526135cc60208401612abe565b60208201526135dd60408401612abe565b60408201526135ee60608401612abe565b60608201526135ff60808401612abe565b608082015261361060a08401612abe565b60a082015261362160c08401612abe565b60c082015260e08301358281111561363857600080fd5b61364488828601612ad4565b60e08301525083525061365c905084602085016130dc565b602082015261366f846101808501612e8d565b60408201525092915050565b60008183036101a081121561368e578182fd5b604051606081016001600160401b0382821081831117156136ab57fe5b8160405282945060608412156136c057600080fd5b60c08301935081841081851117156136d457fe5b5082604052845192506136e683614e31565b9182526020840151916136f883614e31565b8260808301526040850151925061370e83614e31565b60a082018390528152613724856060860161321e565b6020820152613737856101808601612e4d565b6040820152505092915050565b80516001600160501b038116811461029d57600080fd5b60006020828403121561376c578081fd5b8135611bbe81614e31565b600060208284031215613788578081fd5b8151611bbe81614e31565b600080600080608085870312156137a8578283fd5b84356137b381614e31565b935060208501356137c381614e31565b925060408501356137d381614e31565b915060608501356001600160401b038111156137ed578182fd5b6137f987828801612bc2565b91505092959194509250565b600080600060608486031215613819578081fd5b833561382481614e31565b9250602084013561383481614e31565b915060408401356001600160401b0381111561384e578182fd5b61385a86828701612bc2565b9150509250925092565b60008060408385031215613876578182fd5b823561388181614e31565b91506020838101356001600160401b0381111561389c578283fd5b8401601f810186136138ac578283fd5b80356138ba612af482614dc3565b81815283810190838501865b848110156138ef576138dd8b888435890101612bc2565b845292860192908601906001016138c6565b5096999098509650505050505050565b60008060008060808587031215613914578182fd5b84516001600160401b038082111561392a578384fd5b61393688838901612b49565b955060209150818701518181111561394c578485fd5b61395889828a01612b49565b95505060408701518181111561396c578485fd5b87019050601f8101881361397e578384fd5b805161398c612af482614dc3565b81815283810190838501858402850186018c10156139a8578788fd5b8794505b838510156139ca5780518352600194909401939185019185016139ac565b5080965050505050506139df60608601612ac9565b905092959194509250565b600060208083850312156139fc578182fd5b82516001600160401b03811115613a11578283fd5b8301601f81018513613a21578283fd5b8051613a2f612af482614dc3565b81815283810190838501865b84811015613a6457613a528a888451890101612c0e565b84529286019290860190600101613a3b565b509098975050505050505050565b600060208284031215613a83578081fd5b8151611bbe81614e49565b600060208284031215613a9f578081fd5b81516001600160e01b031981168114611bbe578182fd5b600060208284031215613ac7578081fd5b81516001600160401b03811115613adc578182fd5b61200784828501612c0e565b600080828403610180811215613afc578283fd5b8351925061016080601f1983011215613b13578283fd5b613b1c81614da0565b91506020850151825260408501516020830152606085015160408301526080850151606083015260a0850151608083015260c085015160a083015260e085015160c08301526101008086015160e08401526101208087015182850152610140915081870151818501525081860151818401525050809150509250929050565b600060208284031215613bac578081fd5b81516001600160401b0380821115613bc2578283fd5b908301906101e08286031215613bd6578283fd5b613be1610100614da0565b825182811115613bef578485fd5b613bfb87828601612c7d565b825250613c0b8660208501612d2b565b6020820152613c1d6101208401612c72565b6040820152613c2f6101408401612c5c565b6060820152613c416101608401612bb7565b6080820152613c536101808401612bb7565b60a0820152613c656101a08401612bb7565b60c08201526101c0929092015160e0830152509392505050565b600060408284031215613c90578081fd5b604051604081018181106001600160401b0382111715613cac57fe5b6040528251613cba81614e31565b81526020830151613cca81614e31565b60208201529392505050565b60006107a08284031215613ce8578081fd5b60405160c081018181106001600160401b0382111715613d0457fe5b604052613d11848461367b565b8152613d21846101a085016132f7565b6020820152613d34846106e08501612db3565b6040820152610740830151606082015261076083015160808201526107809092015160a083015250919050565b600060408284031215613d72578081fd5b611bbe8383613505565b600060208284031215613d8d578081fd5b81516001600160401b0380821115613da3578283fd5b8184019150610100808387031215613db9578384fd5b604051606081018181108482111715613dce57fe5b604052835183811115613ddf578586fd5b8401610120818903811315613df2578687fd5b613dfb81614da0565b9050613e0682612ac9565b8152613e1460208301612ac9565b6020820152613e2560408301612ac9565b6040820152613e3660608301612ac9565b6060820152613e4760808301612ac9565b6080820152613e5860a08301612ac9565b60a0820152613e6960c08301612ac9565b60c082015260e082015185811115613e7f578788fd5b613e8b8a828501612b49565b60e0830152508382015185811115613ea1578788fd5b613ead8a828501612b49565b8286015250825250613ec2876020860161306a565b6020820152613ed48760e08601612e4d565b60408201529695505050505050565b60008060008060e08587031215613ef8578182fd5b84356001600160401b0380821115613f0e578384fd5b818701915061010080838a031215613f24578485fd5b604051606081018181108482111715613f3957fe5b604052833583811115613f4a578687fd5b8401610120818c03811315613f5d578788fd5b613f6681614da0565b9050613f7182612abe565b8152613f7f60208301612abe565b6020820152613f9060408301612abe565b6040820152613fa160608301612abe565b6060820152613fb260808301612abe565b6080820152613fc360a08301612abe565b60a0820152613fd460c08301612abe565b60c082015260e082013585811115613fea578889fd5b613ff68d828501612ad4565b60e083015250838201358581111561400c578889fd5b6140188d828501612ad4565b828601525082525061402d8a60208601612ff8565b602082015261403f8a60e08601612e07565b6040820152809750505050506140588660208701612f84565b925061406660a08601612bac565b9396929550929360c00135925050565b600060808284031215614087578081fd5b604051608081018181106001600160401b03821117156140a357fe5b60405282516140b181614e31565b815260208301516140c181614e31565b602082015260408301516140d481614e31565b604082015260608301516140e781614e31565b60608201529392505050565b600060208284031215614104578081fd5b81516001600160401b038082111561411a578283fd5b90830190610200828603121561412e578283fd5b60405160608101818110838211171561414357fe5b604052825182811115614154578485fd5b8301610100818803811315614167578586fd5b61417081614da0565b905061417b82612ac9565b815261418960208301612ac9565b602082015261419a60408301612ac9565b60408201526141ab60608301612ac9565b60608201526141bc60808301612ac9565b60808201526141cd60a08301612ac9565b60a08201526141de60c08301612ac9565b60c082015260e0820151848111156141f4578687fd5b61420089828501612b49565b60e083015250825250614216866020850161317d565b6020820152614229866101808501612f0e565b604082015295945050505050565b600080600060c0848603121561424b578081fd5b83356001600160401b03811115614260578182fd5b61426c8682870161354c565b93505061427c8560208601612f84565b915060a084013561428c81614e31565b809150509250925092565b60008060008060e085870312156142ac578182fd5b84356001600160401b038111156142c1578283fd5b6142cd8782880161354c565b9450506142dd8660208701612f84565b925060a085013561406681614e49565b60006101a082840312156142ff578081fd5b611bbe838361367b565b60006020828403121561431a578081fd5b81516001600160401b0380821115614330578283fd5b908301906101008286031215614344578283fd5b60405160608101818110838211171561435957fe5b60405282518281111561436a578485fd5b830160e0818803121561437b578485fd5b61438560e0614da0565b61438e82612ac9565b815261439c60208301612ac9565b60208201526143ad60408301612ac9565b60408201526143be60608301612ac9565b60608201526143cf60808301612ac9565b608082015260a0820151848111156143e5578687fd5b6143f189828501612b49565b60a08301525060c082015184811115614408578687fd5b61441489828501612b49565b60c08301525082525061442a866020850161306a565b60208201526142298660e08501612e4d565b6000806000806000610100808789031215614455578384fd5b86356001600160401b038082111561446b578586fd5b818901915082828b03121561447e578586fd5b604051925060608301838110828211171561449557fe5b6040528135818111156144a6578687fd5b820160e0818c0312156144b7578687fd5b6144c160e0614da0565b6144ca82612abe565b81526144d860208301612abe565b60208201526144e960408301612abe565b60408201526144fa60608301612abe565b606082015261450b60808301612abe565b608082015260a082013583811115614521578889fd5b61452d8d828501612ad4565b60a08301525060c082013583811115614544578889fd5b6145508d828501612ad4565b60c08301525084525061456890508960208301612ff8565b602083015261457a8960e08301612e07565b604083015250945061458f8760208801612f84565b935061459d60a08701612bac565b9497939650939460c0810135945060e0013592915050565b6000602082840312156145c6578081fd5b81516001600160801b0381168114611bbe578182fd5b600080600080600060a086880312156145f3578283fd5b6145fc86613744565b945060208601519350604086015192506060860151915061461f60808701613744565b90509295509295909350565b15159052565b60008151808452614649816020860160208601614e01565b601f01601f19169290920160200192915050565b6003811061466757fe5b9052565b6009811061466757fe5b600060e0830160018060a01b038084511685526020818186015116818701528160408601511660408701528160608601511660608701528160808601511660808701528160a08601511660a087015260c085015160e060c08801528381518086526101008901915083830195508692505b80831015614708578551851682529483019460019290920191908301906146e6565b50979650505050505050565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b80518252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208085019190915291841660408085019190915281518516606080860191909152928201518516608085015281015160a0840152015190911660c082015260e00190565b901515815260200190565b600063ffffffff60e01b8616825260a0602083015261480760a0830186614631565b6001600160a01b0394851660408401528351851660608401526020909301519093166080909101529392505050565b600060208252611bbe6020830184614631565b60006060825261485c6060830186614631565b84602084015282810360408401526101e0845181835261487e82840182614675565b91505060208501516148936020840182614714565b5060408501516148a761012084018261466b565b5060608501516148bb61014084018261465d565b5060808501516148cf61016084018261462b565b5060a08501516148e361018084018261462b565b5060c08501516148f76101a084018261462b565b5060e08501516101c08301528092505050949350505050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038881168252878116602083015260408201879052855161018083019190614976906060850190614762565b602087015161498860a0850182614762565b50604087015161499b60e0850182614762565b50856101208401528085166101408401525082151561016083015298975050505050505050565b60006101a08201905060018060a01b03808a1683528089511660208401528060208a01511660408401528060408a01511660608401528060608a015116608084015250614a1260a0830188614762565b614a1f60e0830187614762565b614a2d610120830186614762565b8361016083015282151561018083015298975050505050505050565b6020808252601690820152751bdb9b1e481bdb99481bdc99195c88185b1b1bddd95960521b604082015260600190565b60208082526013908201527219985a5b1959081d1bc819d95d08185cdcd95d606a1b604082015260600190565b6020808252601c908201527b2ab730b13632903a379033b2ba1037b83837b9b4ba32903a37b5b2b760211b604082015260600190565b6020808252600d908201526c1a5b9d985b1a5908185cdcd95d609a1b604082015260600190565b6020808252601690820152751b1bddc818d85b1b189858dac819d85cc81b1a5b5a5d60521b604082015260600190565b6020808252601390820152721b9bdd0819db5e081dda1a5d195b1a5cdd1959606a1b604082015260600190565b6020808252601f908201527f4f6e636861696e206f7261636c6520707269636520697320696e76616c696400604082015260600190565b6020808252601890820152771bdb9b1e481bdb994819195c1bdcda5d08185b1b1bddd95960421b604082015260600190565b6020808252601f908201527f696e76616c6964206d756c746963616c6c20706172616d73206c656e67746800604082015260600190565b6020808252601590820152741b585e081b195d995c9859d948195e18d959591959605a1b604082015260600190565b6020808252601c908201527b1d5b9cdd5c1c1bdc9d1959081dda5d1a191c985dd85b08185cdcd95d60221b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252601d908201527f696e76616c696420636f6c6c61746572616c44656c7461416d6f756e74000000604082015260600190565b6020808252600e908201526d6e6f7420706f6f6c206c6f67696360901b604082015260600190565b6020808252601e908201527f4d41585f504e4c5f464143544f525f464f525f5749544844524157414c530000604082015260600190565b6020808252601b908201527a1bdb9b1e481bdb99481dda5d1a191c985dd85b08185b1b1bddd959602a1b604082015260600190565b602080825260189082015277696e76616c6964206d756c746963616c6c20706172616d7360401b604082015260600190565b90815260200190565b918252602082015260400190565b6040518181016001600160401b0381118282101715614dbb57fe5b604052919050565b60006001600160401b03821115614dd657fe5b5060209081020190565b60006001600160401b03821115614df357fe5b50601f01601f191660200190565b60005b83811015614e1c578181015183820152602001614e04565b83811115614e2b576000848401525b50505050565b6001600160a01b0381168114614e4657600080fd5b50565b8015158114614e4657600080fd5b60038110614e4657600080fd5b60098110614e4657600080fdfe53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122040313ff91f8c630c527ce192d4fab2e8778ee871395067021b536d90f30e4bde64736f6c63430007060033