0 txs
1 call
constructor
constructor(address _owner)
functions
calculatePositionFee
viewfunction calculatePositionFee(address pool, int24 bottomTick, int24 topTick, address owner) view returns (uint256 fee0, uint256 fee1)
checkPriceChange
viewfunction checkPriceChange(address pos, uint32 _twapInterval, uint256 _priceThreshold) view returns (uint256 price)
clearDeposit
viewfunction clearDeposit(uint256 deposit0, uint256 deposit1, address from, address to, address pos) view returns (bool cleared, uint256 actualDeposit0, uint256 actualDeposit1)
clearShares
viewfunction clearShares(address pos) view returns (bool cleared)
freeDepositList
viewfunction freeDepositList(address, address) view returns (bool)
getDepositAmount
viewfunction getDepositAmount(address pos, address token, uint256 _deposit) view returns (uint256 amountStart, uint256 amountEnd)
getListed
viewfunction getListed(address pos, address i) view returns (bool)
getPositionInfo
viewfunction getPositionInfo(address pos) view returns (tuple)
getSqrtTwapX96
viewfunction getSqrtTwapX96(address pos, uint32 _twapInterval) view returns (uint160 sqrtPriceX96)
getTotalAmountsPlusFees
viewfunction getTotalAmountsPlusFees(address pos) view returns (uint256 total0, uint256 total1)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
positions
viewfunction positions(address) view returns (uint8 version, bool twapOverride, uint32 twapInterval, uint256 priceThreshold)
PRECISION
viewfunction PRECISION() view returns (uint256)
priceThreshold
viewfunction priceThreshold() view returns (uint256)
twapCheck
viewfunction twapCheck() view returns (bool)
twapInterval
viewfunction twapInterval() view returns (uint32)
addPosition
nonpayablefunction addPosition(address pos, uint8 version)
appendList
nonpayablefunction appendList(address pos, address[] listed)
pause
nonpayablefunction pause(bool _paused)
removeListed
nonpayablefunction removeListed(address pos, address listed)
setPriceThreshold
nonpayablefunction setPriceThreshold(uint256 _priceThreshold)
setTwapCheck
nonpayablefunction setTwapCheck(bool _twapCheck)
setTwapInterval
nonpayablefunction setTwapInterval(uint32 _twapInterval)
setTwapOverride
nonpayablefunction setTwapOverride(address pos, bool twapOverride, uint32 _twapInterval, uint256 _priceThreshold)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ListAppended
event ListAppended(address pos, address[] listed)
ListRemoved
event ListRemoved(address pos, address listed)
PositionAdded
event PositionAdded(address, uint8)
PriceThresholdSet
event PriceThresholdSet(uint256 _priceThreshold)
TwapCheckSet
event TwapCheckSet(bool twapCheck)
TwapIntervalSet
event TwapIntervalSet(uint32 _twapInterval)
TwapOverrideSet
event TwapOverrideSet(address pos, bool twapOverride, uint32 _twapInterval, uint256 _priceThreshold)
errors
T
error T()
creation bytecode
0x60806040526003805464ffffffffff1916620e100117905561277460045534801562000029575f80fd5b50604051620030dd380380620030dd8339810160408190526200004c9162000076565b60015f81905580546001600160a01b0319166001600160a01b0392909216919091179055620000a5565b5f6020828403121562000087575f80fd5b81516001600160a01b03811681146200009e575f80fd5b9392505050565b61302a80620000b35f395ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c80636aa29881116100d9578063b9c9476111610093578063da3d29531161006e578063da3d295314610448578063f2fde38b1461045b578063f44018321461046e578063fbd1d25a14610481575f80fd5b8063b9c9476114610419578063cc2f60931461042c578063d0645c5114610435575f80fd5b80636aa298811461035157806370507b3b146103645780638da5cb5b1461039457806392e25078146103a757806393708485146103e2578063aaf5eb6814610403575f80fd5b80634fb52c70116101445780635c975abb1161011f5780635c975abb1461030a5780635ccfb71d1461031e578063686f38f0146103315780636a9dc0da1461033e575f80fd5b80634fb52c7014610248578063500cb3631461025b57806355f5751014610298575f80fd5b806302329a291461018b5780631d27050f146101a05780631ea4930d146101b35780633c1d5df0146101c657806347628f60146101f55780634a45171c14610220575b5f80fd5b61019e61019936600461269e565b61054d565b005b61019e6101ae3660046126d1565b61059e565b61019e6101c136600461269e565b61061f565b6003546101db90610100900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6102086102033660046126fe565b61068a565b6040516001600160a01b0390911681526020016101ec565b61023361022e36600461273f565b610970565b604080519283526020830191909152016101ec565b61019e610256366004612798565b610b0f565b6102886102693660046127af565b600560209081525f928352604080842090915290825290205460ff1681565b60405190151581526020016101ec565b6102db6102a63660046127e6565b60026020525f90815260409020805460019091015460ff808316926101008104909116916201000090910463ffffffff169084565b6040805160ff9095168552921515602085015263ffffffff9091169183019190915260608201526080016101ec565b60015461028890600160a01b900460ff1681565b61023361032c366004612801565b610b6e565b6003546102889060ff1681565b61019e61034c3660046128a7565b610db7565b61019e61035f366004612964565b610f24565b610377610372366004612990565b611100565b6040805193151584526020840192909252908201526060016101ec565b600154610208906001600160a01b031681565b6102886103b53660046127af565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b6103f56103f03660046129eb565b61152b565b6040519081526020016101ec565b6103f56ec097ce7bc90715b34b9f100000000081565b61019e610427366004612a26565b6116df565b6103f560045481565b61019e6104433660046127af565b6117e9565b6102886104563660046127e6565b6118b4565b61019e6104693660046127e6565b6118fb565b61023361047c3660046127e6565b61199d565b61050f61048f3660046127e6565b604080516080810182525f808252602082018190529181018290526060810191909152506001600160a01b03165f908152600260209081526040918290208251608081018452815460ff80821683526101008204161515938201939093526201000090920463ffffffff1692820192909252600190910154606082015290565b6040516101ec9190815160ff16815260208083015115159082015260408083015163ffffffff16908201526060918201519181019190915260800190565b6001546001600160a01b031633146105805760405162461bcd60e51b815260040161057790612a72565b60405180910390fd5b60018054911515600160a01b0260ff60a01b19909216919091179055565b6001546001600160a01b031633146105c85760405162461bcd60e51b815260040161057790612a72565b6003805464ffffffff00191661010063ffffffff8416908102919091179091556040519081527fa715e512c9ea089998019d7ece21b384bb7161dc3caf500058fdcb05bc4232f8906020015b60405180910390a150565b6001546001600160a01b031633146106495760405162461bcd60e51b815260040161057790612a72565b6003805460ff19168215159081179091556040519081527f100070386f47b433254b3e62256cf5886af8f369b4e9da23184130521884b7d090602001610614565b5f8163ffffffff165f03610766575f836001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f99190612a96565b6001600160a01b03166397ce1c516040518163ffffffff1660e01b815260040160e060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190612ac7565b50505050505090505061096a565b6040805160028082526060820183525f9260208301908036833701905050905082815f8151811061079957610799612b60565b602002602001019063ffffffff16908163ffffffff16815250505f816001815181106107c7576107c7612b60565b602002602001019063ffffffff16908163ffffffff16815250505f846001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108429190612a96565b6001600160a01b031663ef01df4f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190612a96565b6001600160a01b0316639d3a5241836040518263ffffffff1660e01b81526004016108cc9190612b74565b5f60405180830381865afa1580156108e6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261090d9190810190612c39565b5090506109658460030b825f8151811061092957610929612b60565b60200260200101518360018151811061094457610944612b60565b60200260200101516109569190612d12565b6109609190612d53565b611c9c565b925050505b92915050565b5f805f61097e848787611fb7565b90505f805f805f8b6001600160a01b031663514ea4bf876040518263ffffffff1660e01b81526004016109b391815260200190565b60a060405180830381865afa1580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f29190612d8f565b945094509450945094505f80610a098e8e8e611fd5565b91509150836001600160801b03169950826001600160801b031698505f80878414610a345787840391505b868314610a4057508582035b610a4f828a600160801b61224d565b8c019b50610a62818a600160801b61224d565b8b019a505f8d6001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac79190612ddb565b9050610ad660ff82168e612df6565b610ae0908e612e09565b9c50610aef60ff82168d612df6565b610af9908d612e09565b9b50505050505050505050505094509492505050565b6001546001600160a01b03163314610b395760405162461bcd60e51b815260040161057790612a72565b60048190556040518181527fa1e8a7779c35eb2e6161f5b0a5dbf6bcaf16f317d166788bfae1ea33eb210fc090602001610614565b5f80846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd09190612a96565b6001600160a01b0316846001600160a01b03161480610c5f5750846001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612a96565b6001600160a01b0316846001600160a01b0316145b610c9c5760405162461bcd60e51b815260206004820152600e60248201526d0e8ded6cadc40dad2e6dac2e8c6d60931b6044820152606401610577565b5f8311610ce45760405162461bcd60e51b81526020600482015260166024820152756465706f736974732063616e2774206265207a65726f60501b6044820152606401610577565b5f80610cef8761199d565b91509150815f1480610cff575080155b15610d0f575f93505f9250610dad565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6f9190612a96565b6001600160a01b0316866001600160a01b031603610d9c57610d9285828461224d565b9350839250610dad565b610da785838361224d565b93508392505b5050935093915050565b6001546001600160a01b03163314610de15760405162461bcd60e51b815260040161057790612a72565b6001600160a01b0382165f9081526002602052604081208054849260ff9091169003610e1f5760405162461bcd60e51b815260040161057790612e1c565b825160ff1015610e615760405162461bcd60e51b815260206004820152600d60248201526c4c69737420746f6f206c6f6e6760981b6044820152606401610577565b5f5b83518160ff161015610ee4576001600160a01b0385165f908152600560205260408120855160019290879060ff8616908110610ea157610ea1612b60565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610edc81612e3f565b915050610e63565b507f587820c8cbf51b999284b47677716a04cf5da2568b643ec21ef498bd201baea98484604051610f16929190612e5d565b60405180910390a150505050565b6001546001600160a01b03163314610f4e5760405162461bcd60e51b815260040161057790612a72565b6001600160a01b0382165f908152600260205260409020805460ff1615610fa75760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481859191959609a1b6044820152606401610577565b5f8260ff1611610fe75760405162461bcd60e51b815260206004820152600b60248201526a76657273696f6e203c203160a81b6044820152606401610577565b805460ff191660ff831617815560408051630dfe168160e01b815290516110759185915f19916001600160a01b03841691630dfe1681916004808201926020929091908290030181865afa158015611041573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110659190612a96565b6001600160a01b031691906122f7565b6110b7835f19856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611041573d5f803e3d5ffd5b604080516001600160a01b038516815260ff841660208201527f0ffbdaa00809b1cda17f454a21810d6fb0be19db2adc1be661c5ec0a86a2894c910160405180910390a1505050565b6001600160a01b0381165f90815260026020526040812080548291829185919060ff1683036111415760405162461bcd60e51b815260040161057790612e1c565b600154600160a01b900460ff16156111845760405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606401610577565b6001600160a01b0387166111d25760405162461bcd60e51b8152602060048201526015602482015274746f2073686f756c64206265206e6f6e2d7a65726f60581b6044820152606401610577565b856001600160a01b031663fa0827436040518163ffffffff1660e01b8152600401602060405180830381865afa15801561120e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112329190612eb8565b60020b866001600160a01b031663065e53606040518163ffffffff1660e01b8152600401602060405180830381865afa158015611271573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112959190612eb8565b60020b121580156113695750856001600160a01b031663888a91346040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113019190612eb8565b60020b866001600160a01b031663065e53606040518163ffffffff1660e01b8152600401602060405180830381865afa158015611340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113649190612eb8565b60020b125b6113b55760405162461bcd60e51b815260206004820152601760248201527f7072696365206f7574206f6620626173652072616e67650000000000000000006044820152606401610577565b6001600160a01b0386165f90815260026020526040902060035460ff16806113e357508054610100900460ff165b1561144057805461143e908890610100900460ff1661140f57600354610100900463ffffffff1661141e565b825462010000900463ffffffff165b8354610100900460ff166114345760045461152b565b836001015461152b565b505b6001600160a01b038088165f908152600560209081526040808320938d168352929052205460ff161561147d57600195508a94508993505061151e565b5f806114888961199d565b915091505f8211801561149a57505f81115b6114df5760405162461bcd60e51b815260206004820152601660248201527563616e6e6f742064657465726d696e6520726174696f60501b6044820152606401610577565b5f6114eb8e838561224d565b90505f6114f98e858561224d565b90508d821161150d578e9850819750611514565b8098508d97505b6001995050505050505b5050955095509592505050565b5f80846001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611569573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158d9190612a96565b6001600160a01b03166397ce1c516040518163ffffffff1660e01b815260040160e060405180830381865afa1580156115c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ec9190612ac7565b505050505050905061162f816001600160a01b0316826001600160a01b03166116159190612ed3565b6ec097ce7bc90715b34b9f1000000000600160c01b61224d565b91505f61163c868661068a565b90505f6116556116156001600160a01b03841680612ed3565b9050848161166586612710612ed3565b61166f9190612df6565b11806116905750848461168483612710612ed3565b61168e9190612df6565b115b156116d55760405162461bcd60e51b81526020600482015260156024820152745072696365206368616e6765206f766572666c6f7760581b6044820152606401610577565b5050509392505050565b6001546001600160a01b031633146117095760405162461bcd60e51b815260040161057790612a72565b6001600160a01b0384165f9081526002602052604081208054869260ff90911690036117475760405162461bcd60e51b815260040161057790612e1c565b6001600160a01b0386165f81815260026020908152604091829020805465ffffffffff0019166101008a151590810265ffffffff00001916919091176201000063ffffffff8b16908102919091178355600183018990558451958652928501529183015260608201859052907f12588f80b3d955932fa6495825fce3e5a86e65babbb64fb0f03843c81948c6079060800160405180910390a150505050505050565b6001546001600160a01b031633146118135760405162461bcd60e51b815260040161057790612a72565b6001600160a01b0382165f9081526002602052604081208054849260ff90911690036118515760405162461bcd60e51b815260040161057790612e1c565b6001600160a01b038481165f81815260056020908152604080832094881680845294825291829020805460ff1916905581519283528201929092527f327ebead4bc995c77eca4e68adf4a8709ea36622e0732ecd0e23dee6bcfb88699101610f16565b6001600160a01b0381165f908152600260205260408120805483919060ff1683036118f15760405162461bcd60e51b815260040161057790612e1c565b5060019392505050565b6001546001600160a01b031633146119255760405162461bcd60e51b815260040161057790612a72565b6001600160a01b03811661197b5760405162461bcd60e51b815260206004820152601b60248201527f6e65774f776e65722073686f756c64206265206e6f6e2d7a65726f00000000006044820152606401610577565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f80826001600160a01b031663c4a7761e6040518163ffffffff1660e01b81526004016040805180830381865afa1580156119da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119fe9190612eea565b80925081935050505f80611b31856001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6b9190612a96565b866001600160a01b031663fa0827436040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611acb9190612eb8565b876001600160a01b031663888a91346040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2b9190612eb8565b88610970565b915091505f80611c60876001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9a9190612a96565b886001600160a01b03166351e87af76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bfa9190612eb8565b896001600160a01b0316630f35bcac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5a9190612eb8565b8a610970565b909250905081611c708588612f0c565b611c7a9190612f0c565b955080611c878487612f0c565b611c919190612f0c565b945050505050915091565b5f805f8360020b12611cb1578260020b611cb8565b8260020b5f035b9050620d89e8811115611cde576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f03611cf357600160801b611d05565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611d39576ffff97272373d413259a46990580e213a0260801c5b6004821615611d58576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611d77576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611d96576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611db5576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611dd4576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611df3576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611e13576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611e33576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611e53576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611e73576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611e93576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611eb3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611ed3576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611ef3576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611f14576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611f34576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611f53576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611f70576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611f8f57805f1981611f8b57611f8b612d3f565b0490505b640100000000810615611fa3576001611fa5565b5f5b60ff16602082901c0192505050919050565b62ffffff818116908316601885811b91909117901b175b9392505050565b5f805f856001600160a01b03166397ce1c516040518163ffffffff1660e01b815260040160e060405180830381865afa158015612014573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120389190612ac7565b505060405163f30dba9360e01b815260028b900b60048201529395505f945084936001600160a01b038c16935063f30dba939250602401905060c060405180830381865afa15801561208c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b09190612f1f565b60405163f30dba9360e01b815260028d900b600482015291975095505f94508493506001600160a01b038d16925063f30dba93915060240160c060405180830381865afa158015612103573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121279190612f1f565b95509550505050505f8a6001600160a01b0316636378ae446040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121909190612f89565b90505f8b6001600160a01b031663ecdecf426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f39190612f89565b90508a60020b8760020b1215612212578386039850828503975061223e565b8960020b8760020b121561223357838683030398508285820303975061223e565b858403985084830397505b50505050505050935093915050565b5f80805f19858709858702925082811083820303915050805f03612281575f8411612276575f80fd5b508290049050611fce565b80841161228c575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b80158061236f5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236d9190612f89565b155b6123da5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610577565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261242c908490612431565b505050565b5f612485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125049092919063ffffffff16565b905080515f14806124a55750808060200190518101906124a59190612fa0565b61242c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610577565b606061251284845f8561251a565b949350505050565b60608247101561257b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610577565b5f80866001600160a01b031685876040516125969190612fdd565b5f6040518083038185875af1925050503d805f81146125d0576040519150601f19603f3d011682016040523d82523d5f602084013e6125d5565b606091505b50915091506125e6878383876125f1565b979650505050505050565b6060831561265f5782515f03612658576001600160a01b0385163b6126585760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610577565b5081612512565b61251283838151156126745781518083602001fd5b8060405162461bcd60e51b81526004016105779190612ff8565b801515811461269b575f80fd5b50565b5f602082840312156126ae575f80fd5b8135611fce8161268e565b803563ffffffff811681146126cc575f80fd5b919050565b5f602082840312156126e1575f80fd5b611fce826126b9565b6001600160a01b038116811461269b575f80fd5b5f806040838503121561270f575f80fd5b823561271a816126ea565b9150612728602084016126b9565b90509250929050565b8060020b811461269b575f80fd5b5f805f8060808587031215612752575f80fd5b843561275d816126ea565b9350602085013561276d81612731565b9250604085013561277d81612731565b9150606085013561278d816126ea565b939692955090935050565b5f602082840312156127a8575f80fd5b5035919050565b5f80604083850312156127c0575f80fd5b82356127cb816126ea565b915060208301356127db816126ea565b809150509250929050565b5f602082840312156127f6575f80fd5b8135611fce816126ea565b5f805f60608486031215612813575f80fd5b833561281e816126ea565b9250602084013561282e816126ea565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561287c5761287c61283f565b604052919050565b5f67ffffffffffffffff82111561289d5761289d61283f565b5060051b60200190565b5f80604083850312156128b8575f80fd5b82356128c3816126ea565b915060208381013567ffffffffffffffff8111156128df575f80fd5b8401601f810186136128ef575f80fd5b80356129026128fd82612884565b612853565b81815260059190911b82018301908381019088831115612920575f80fd5b928401925b82841015612947578335612938816126ea565b82529284019290840190612925565b80955050505050509250929050565b60ff8116811461269b575f80fd5b5f8060408385031215612975575f80fd5b8235612980816126ea565b915060208301356127db81612956565b5f805f805f60a086880312156129a4575f80fd5b853594506020860135935060408601356129bd816126ea565b925060608601356129cd816126ea565b915060808601356129dd816126ea565b809150509295509295909350565b5f805f606084860312156129fd575f80fd5b8335612a08816126ea565b9250612a16602085016126b9565b9150604084013590509250925092565b5f805f8060808587031215612a39575f80fd5b8435612a44816126ea565b93506020850135612a548161268e565b9250612a62604086016126b9565b9396929550929360600135925050565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b5f60208284031215612aa6575f80fd5b8151611fce816126ea565b80516001600160801b03811681146126cc575f80fd5b5f805f805f805f60e0888a031215612add575f80fd5b8751612ae8816126ea565b6020890151909750612af981612731565b604089015190965061ffff81168114612b10575f80fd5b6060890151909550612b2181612956565b9350612b2f60808901612ab1565b925060a0880151612b3f81612731565b60c0890151909250612b5081612731565b8091505092959891949750929550565b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015612bb157835163ffffffff1683529284019291840191600101612b8f565b50909695505050505050565b5f82601f830112612bcc575f80fd5b81516020612bdc6128fd83612884565b82815260059290921b84018101918181019086841115612bfa575f80fd5b8286015b84811015612c2e5780516affffffffffffffffffffff81168114612c21575f8081fd5b8352918301918301612bfe565b509695505050505050565b5f8060408385031215612c4a575f80fd5b825167ffffffffffffffff80821115612c61575f80fd5b818501915085601f830112612c74575f80fd5b81516020612c846128fd83612884565b82815260059290921b84018101918181019089841115612ca2575f80fd5b948201945b83861015612ccf5785518060060b8114612cc0575f8081fd5b82529482019490820190612ca7565b91880151919650909350505080821115612ce7575f80fd5b50612cf485828601612bbd565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600682810b9082900b03667fffffffffffff198112667fffffffffffff8213171561096a5761096a612cfe565b634e487b7160e01b5f52601260045260245ffd5b5f8160060b8360060b80612d6957612d69612d3f565b667fffffffffffff1982145f1982141615612d8657612d86612cfe565b90059392505050565b5f805f805f60a08688031215612da3575f80fd5b855194506020860151935060408601519250612dc160608701612ab1565b9150612dcf60808701612ab1565b90509295509295909350565b5f60208284031215612deb575f80fd5b8151611fce81612956565b5f82612e0457612e04612d3f565b500490565b8181038181111561096a5761096a612cfe565b6020808252600990820152681b9bdd08185919195960ba1b604082015260600190565b5f60ff821660ff8103612e5457612e54612cfe565b60010192915050565b6001600160a01b0383811682526040602080840182905284519184018290525f92858201929091906060860190855b81811015612eaa578551851683529483019491830191600101612e8c565b509098975050505050505050565b5f60208284031215612ec8575f80fd5b8151611fce81612731565b808202811582820484141761096a5761096a612cfe565b5f8060408385031215612efb575f80fd5b505080516020909101519092909150565b8082018082111561096a5761096a612cfe565b5f805f805f8060c08789031215612f34575f80fd5b86519550602087015180600f0b8114612f4b575f80fd5b6040880151909550612f5c81612731565b6060880151909450612f6d81612731565b809350506080870151915060a087015190509295509295509295565b5f60208284031215612f99575f80fd5b5051919050565b5f60208284031215612fb0575f80fd5b8151611fce8161268e565b5f5b83811015612fd5578181015183820152602001612fbd565b50505f910152565b5f8251612fee818460208701612fbb565b9190910192915050565b602081525f8251806020840152613016816040850160208701612fbb565b601f01601f191691909101604001929150505600000000000000000000000071e7d05be74ff748c45402c06a941c822d756dc5