1 tx
1.3k calls
constructor
constructor(address _nonfungiblePositionManager, address _universalRouter, address _zeroxAllowanceHolder)
functions
factory
viewfunction factory() view returns (address)
nonfungiblePositionManager
viewfunction nonfungiblePositionManager() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
universalRouter
viewfunction universalRouter() view returns (address)
vaults
viewfunction vaults(address) view returns (bool)
weth
viewfunction weth() view returns (address)
zeroxAllowanceHolder
viewfunction zeroxAllowanceHolder() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
leverageDown
nonpayablefunction leverageDown(tuple params)
leverageUp
nonpayablefunction leverageUp(tuple params)
renounceOwnership
nonpayablefunction renounceOwnership()
setVault
nonpayablefunction setVault(address _vault)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)
VaultSet
event VaultSet(address newVault)
errors
AmountError
error AmountError()
ChainlinkPriceError
error ChainlinkPriceError()
CollateralFactorExceedsMax
error CollateralFactorExceedsMax()
CollateralFail
error CollateralFail()
CollateralValueLimit
error CollateralValueLimit()
CollectError
error CollectError()
DailyDebtIncreaseLimit
error DailyDebtIncreaseLimit()
DailyLendIncreaseLimit
error DailyLendIncreaseLimit()
DebtChanged
error DebtChanged()
EtherSendFailed
error EtherSendFailed()
ExceedsMaxReward
error ExceedsMaxReward()
GlobalDebtLimit
error GlobalDebtLimit()
GlobalLendLimit
error GlobalLendLimit()
InsufficientLiquidity
error InsufficientLiquidity()
InterestNotUpdated
error InterestNotUpdated()
InvalidConfig
error InvalidConfig()
InvalidPool
error InvalidPool()
InvalidToken
error InvalidToken()
MinLoanSize
error MinLoanSize()
MissingSwapData
error MissingSwapData()
NeedsRepay
error NeedsRepay()
NoEtherToken
error NoEtherToken()
NoLiquidity
error NoLiquidity()
NoSharesRepayed
error NoSharesRepayed()
NotConfigured
error NotConfigured()
NotEnoughReward
error NotEnoughReward()
NotLiquidatable
error NotLiquidatable()
NotReady
error NotReady()
NotSupportedFeeTier
error NotSupportedFeeTier()
NotSupportedWhatToDo
error NotSupportedWhatToDo()
NotWETH
error NotWETH()
PriceDifferenceExceeded
error PriceDifferenceExceeded()
Reentrancy
error Reentrancy()
SameRange
error SameRange()
SameToken
error SameToken()
SelfSend
error SelfSend()
SequencerDown
error SequencerDown()
SequencerGracePeriodNotOver
error SequencerGracePeriodNotOver()
SequencerUptimeFeedInvalid
error SequencerUptimeFeedInvalid()
SlippageError
error SlippageError()
SwapAmountTooLarge
error SwapAmountTooLarge()
SwapFailed
error SwapFailed()
TooMuchEtherSent
error TooMuchEtherSent()
TransferError
error TransferError()
TransformFailed
error TransformFailed()
TransformNotAllowed
error TransformNotAllowed()
TWAPCheckFailed
error TWAPCheckFailed()
Unauthorized
error Unauthorized()
WrongContract
error WrongContract()
creation bytecode
0x61012060405234801562000011575f80fd5b5060405162002809380380620028098339810160408190526200003491620001cc565b82828262000042336200014a565b826001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200007f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000a591906200021d565b6001600160a01b03166080816001600160a01b031681525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012191906200021d565b6001600160a01b0390811660a05292831660c05290821660e05216610100525062000242915050565b600180546001600160a01b0319169055620001658162000168565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811462000165575f80fd5b5f805f60608486031215620001df575f80fd5b8351620001ec81620001b7565b6020850151909350620001ff81620001b7565b60408501519092506200021281620001b7565b809150509250925092565b5f602082840312156200022e575f80fd5b81516200023b81620001b7565b9392505050565b60805160a05160c05160e0516101005161250c620002fd5f395f818161022c01528181611488015281816114b4015261155601525f818160f90152818161135f015281816113c6015261141201525f81816101de0152818161029d0152818161039c015281816105e601528181610611015281816106b3015281816107300152818161075b0152818161093f015281816109e301528181610b280152610ccc01525f81816102050152611a0401525f61013d015261250c5ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063a622ee7c11610093578063e30c397811610063578063e30c39781461024e578063ed309ea21461025f578063f2fde38b14610272578063fa461e3314610285575f80fd5b8063a622ee7c146101a7578063b44a2722146101d9578063c45a015514610200578063d2a5e66d14610227575f80fd5b80636817031b116100ce5780636817031b14610174578063715018a61461018757806379ba50971461018f5780638da5cb5b14610197575f80fd5b806335a9e4df146100f45780633fc8cef31461013857806357b8ebba1461015f575b5f80fd5b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b61017261016d366004611dca565b610298565b005b610172610182366004611e1d565b610841565b6101726108a8565b6101726108bb565b5f546001600160a01b031661011b565b6101c96101b5366004611e1d565b60026020525f908152604090205460ff1681565b604051901515815260200161012f565b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031661011b565b61017261026d366004611e38565b61093a565b610172610280366004611e1d565b610ff4565b610172610293366004611e70565b611064565b6102c37f000000000000000000000000000000000000000000000000000000000000000082356110e2565b5f816020013590505f336001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032c9190611ef9565b604051630ecbcdab60e01b815284356004820152602481018490529091503390630ecbcdab906044015f604051808303815f87803b15801561036c575f80fd5b505af115801561037e573d5f803e3d5ffd5b505060405163133f757160e31b8152853560048201525f92508291507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906399fbab889060240161018060405180830381865afa1580156103ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040e9190611f5f565b50505050505050509350935050505f826001600160a01b0316846001600160a01b03161461043c575f61043e565b845b90505f826001600160a01b0316856001600160a01b031614610460575f610462565b855b905060408701351561053f575f806104fa6040518060a00160405280896001600160a01b03168152602001886001600160a01b031681526020018b6040013581526020018b6060013581526020018b80608001906104c09190612038565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505091525061122a565b91509150846001600160a01b0316876001600160a01b031603610524576105218284612096565b92505b61052e8289612096565b975061053a81856120af565b935050505b60a0870135156105e0575f8061059b6040518060a00160405280896001600160a01b03168152602001876001600160a01b031681526020018b60a0013581526020018b60c0013581526020018b8060e001906104c09190612038565b91509150856001600160a01b0316876001600160a01b0316036105c5576105c28285612096565b93505b6105cf8289612096565b97506105db81846120af565b925050505b61060b847f0000000000000000000000000000000000000000000000000000000000000000846116fa565b610636837f0000000000000000000000000000000000000000000000000000000000000000836116fa565b6040805160c08101825288358152602081018481528183018481526101008b0135606084019081526101208c0135608085019081526101608d013560a08601908152955163219f5d1760e01b8152855160048201529351602485015291516044840152516064830152516084820152915160a4830152905f9081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063219f5d179060c4016060604051808303815f875af1158015610701573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072591906120c2565b9250925050610755877f00000000000000000000000000000000000000000000000000000000000000005f6117dd565b610780867f00000000000000000000000000000000000000000000000000000000000000005f6117dd565b818511156107ad576107ad8761079e6101608d016101408e01611e1d565b6107a88589612096565b6118f0565b808411156107d5576107d5866107cb6101608d016101408e01611e1d565b6107a88488612096565b866001600160a01b0316886001600160a01b0316141580156108095750856001600160a01b0316886001600160a01b031614155b801561081457508815155b15610835576108358861082f6101608d016101408e01611e1d565b8b6118f0565b50505050505050505050565b610849611920565b6040516001600160a01b03821681527fe7ae49f883c825b05681b3e00e8be6fdea9ed2a8a45e4c6ecb9390fc44cce6159060200160405180910390a16001600160a01b03165f908152600260205260409020805460ff19166001179055565b6108b0611920565b6108b95f611979565b565b60015433906001600160a01b0316811461092e5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61093781611979565b50565b6109657f000000000000000000000000000000000000000000000000000000000000000082356110e2565b5f336001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611ef9565b60405163133f757160e31b8152833560048201529091505f9081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906399fbab889060240161018060405180830381865afa158015610a31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a559190611f5f565b50505050505050509350935050505f80856020016020810190610a7891906120f6565b6001600160801b031615610b98575f6040518060a00160405280885f01358152602001886020016020810190610aae91906120f6565b6001600160801b0390811682526040808b01356020808501919091526060808d0135838601526101a08d0135948101949094528151630624e65f60e11b8152855160048201529085015190921660248301528301516044820152908201516064820152608082015160848201529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630c49ccbe9060a40160408051808303815f875af1158015610b6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b919190612111565b9093509150505b6040805160808082018352883582523060208301525f928201906001600160801b0390610bcb9060a08c01908c016120f6565b6001600160801b031614610c0957610c04610bec60a08b0160808c016120f6565b610bff906001600160801b0316876120af565b611992565b610c12565b6001600160801b035b6001600160801b039081168252602090910190610c3560c08b0160a08c016120f6565b6001600160801b031614610c6e57610c69610c5660c08b0160a08c016120f6565b610bff906001600160801b0316866120af565b610c77565b6001600160801b035b6001600160801b039081169091526040805163fc6f786560e01b81528351600482015260208401516001600160a01b0390811660248301529184015183166044820152606084015190921660648301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063fc6f78659060840160408051808303815f875af1158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d379190612111565b90935091505f6001600160a01b0387811690871614610d7557846001600160a01b0316876001600160a01b031614610d6f575f610d77565b82610d77565b835b905060c088013515801590610d9e5750856001600160a01b0316876001600160a01b031614155b15610e16575f80610df66040518060a001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018c60c0013581526020018c60e0013581526020018c8061010001906104c09190612038565b9092509050610e058287612096565b9550610e1181846120af565b925050505b61012088013515801590610e3c5750846001600160a01b0316876001600160a01b031614155b15610eb6575f80610e966040518060a00160405280896001600160a01b031681526020018b6001600160a01b031681526020018c610120013581526020018c610140013581526020018c8061016001906104c09190612038565b9092509050610ea58286612096565b9450610eb181846120af565b925050505b610ec18733836116fa565b604051630dfaa45360e31b815288356004820152602481018290525f60448201819052903390636fd522989060640160408051808303815f875af1158015610f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2f9190612111565b509050610f3d88335f6117dd565b80821115610f6557610f6588610f5b6101a08c016101808d01611e1d565b6107a88486612096565b8415801590610f865750866001600160a01b0316886001600160a01b031614155b15610fa757610fa787610fa16101a08c016101808d01611e1d565b876118f0565b8315801590610fc85750856001600160a01b0316886001600160a01b031614155b15610fe957610fe986610fe36101a08c016101808d01611e1d565b866118f0565b505050505050505050565b610ffc611920565b600180546001600160a01b0383166001600160a01b0319909116811790915561102c5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f84138061107157505f83135b611079575f80fd5b5f808061108884860186612133565b919450925090503361109b8484846119fe565b6001600160a01b0316146110c1576040516282b42960e81b815260040160405180910390fd5b6110d983335f8a136110d357886118f0565b896118f0565b50505050505050565b335f9081526002602052604090205460ff1615611180575f336001600160a01b031663ae41abab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611136573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115a919061217b565b905080821461117b576040516282b42960e81b815260040160405180910390fd5b505050565b6040516331a9108f60e11b8152600481018290525f906001600160a01b03841690636352211e90602401602060405180830381865afa1580156111c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e99190611ef9565b90506001600160a01b038116331480159061120d57506001600160a01b0381163014155b1561117b576040516282b42960e81b815260040160405180910390fd5b5f8082604001515f14158015611244575060808301515115155b801561125c575060208301516001600160a01b031615155b8015611271575082516001600160a01b031615155b156116f55782516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df919061217b565b60208501516040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561132c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611350919061217b565b608086015160208101519192507f000000000000000000000000000000000000000000000000000000000000000091821491821561147f575f8089608001518060200190518101906113a29190612283565b915091505f818060200190518101906113bb91906122d1565b90506113ef8b5f01517f00000000000000000000000000000000000000000000000000000000000000008d604001516118f0565b805160208201516040808401519051630d64d59360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693633593564c9361144a939192909190600401612411565b5f604051808303815f87803b158015611461575f80fd5b505af1158015611473573d5f803e3d5ffd5b5050505050505061157d565b6114b1885f01517f00000000000000000000000000000000000000000000000000000000000000008a604001516116fa565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031689608001516040516114ee919061248a565b5f604051808303815f865af19150503d805f8114611527576040519150601f19603f3d011682016040523d82523d5f602084013e61152c565b606091505b505090508061154e5760405163081ceff360e41b815260040160405180910390fd5b885161157b907f00000000000000000000000000000000000000000000000000000000000000005f6117dd565b505b87516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156115c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e6919061217b565b6115f09086612096565b60208901516040516370a0823160e01b815230600482015291985085916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561163d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611661919061217b565b61166b9190612096565b9550876060015186101561169257604051630d4205a160e11b815260040160405180910390fd5b87602001516001600160a01b0316885f01516001600160a01b03167ffa2dda1cc1b86e41239702756b13effbc1a092b5c57e3ad320fbe4f3b13fe23589896040516116e7929190918252602082015260400190565b60405180910390a350505050505b915091565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015611747573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176b919061217b565b90506117d78463095ea7b360e01b8561178486866120af565b6040516001600160a01b03909216602483015260448201526064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a3b565b50505050565b8015806118555750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561182f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611853919061217b565b155b6118c05760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610925565b6040516001600160a01b03831660248201526044810182905261117b90849063095ea7b360e01b906064016117a0565b6040516001600160a01b03831660248201526044810182905261117b90849063a9059cbb60e01b906064016117a0565b5f546001600160a01b031633146108b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610925565b600180546001600160a01b031916905561093781611b0e565b5f6001600160801b038211156119fa5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610925565b5090565b5f611a337f0000000000000000000000000000000000000000000000000000000000000000611a2e868686611b5d565b611bc7565b949350505050565b5f611a8f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cad9092919063ffffffff16565b905080515f1480611aaf575080806020019051810190611aaf91906124a5565b61117b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610925565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611b97579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b031610611bec575f80fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e260d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6060611a3384845f85855f80866001600160a01b03168587604051611cd2919061248a565b5f6040518083038185875af1925050503d805f8114611d0c576040519150601f19603f3d011682016040523d82523d5f602084013e611d11565b606091505b5091509150611d2287838387611d2d565b979650505050505050565b60608315611d9b5782515f03611d94576001600160a01b0385163b611d945760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610925565b5081611a33565b611a338383815115611db05781518083602001fd5b8060405162461bcd60e51b815260040161092591906124c4565b5f60208284031215611dda575f80fd5b813567ffffffffffffffff811115611df0575f80fd5b82016101808185031215611e02575f80fd5b9392505050565b6001600160a01b0381168114610937575f80fd5b5f60208284031215611e2d575f80fd5b8135611e0281611e09565b5f60208284031215611e48575f80fd5b813567ffffffffffffffff811115611e5e575f80fd5b82016101c08185031215611e02575f80fd5b5f805f8060608587031215611e83575f80fd5b8435935060208501359250604085013567ffffffffffffffff80821115611ea8575f80fd5b818701915087601f830112611ebb575f80fd5b813581811115611ec9575f80fd5b886020828501011115611eda575f80fd5b95989497505060200194505050565b8051611ef481611e09565b919050565b5f60208284031215611f09575f80fd5b8151611e0281611e09565b62ffffff81168114610937575f80fd5b8051611ef481611f14565b8051600281900b8114611ef4575f80fd5b6001600160801b0381168114610937575f80fd5b8051611ef481611f40565b5f805f805f805f805f805f806101808d8f031215611f7b575f80fd5b8c516bffffffffffffffffffffffff81168114611f96575f80fd5b9b50611fa460208e01611ee9565b9a50611fb260408e01611ee9565b9950611fc060608e01611ee9565b9850611fce60808e01611f24565b9750611fdc60a08e01611f2f565b9650611fea60c08e01611f2f565b9550611ff860e08e01611f54565b94506101008d015193506101208d015192506120176101408e01611f54565b91506120266101608e01611f54565b90509295989b509295989b509295989b565b5f808335601e1984360301811261204d575f80fd5b83018035915067ffffffffffffffff821115612067575f80fd5b60200191503681900382131561207b575f80fd5b9250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156120a9576120a9612082565b92915050565b808201808211156120a9576120a9612082565b5f805f606084860312156120d4575f80fd5b83516120df81611f40565b602085015160409095015190969495509392505050565b5f60208284031215612106575f80fd5b8135611e0281611f40565b5f8060408385031215612122575f80fd5b505080516020909101519092909150565b5f805f60608486031215612145575f80fd5b833561215081611e09565b9250602084013561216081611e09565b9150604084013561217081611f14565b809150509250925092565b5f6020828403121561218b575f80fd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156121c9576121c9612192565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121f8576121f8612192565b604052919050565b5f5b8381101561221a578181015183820152602001612202565b50505f910152565b5f82601f830112612231575f80fd5b815167ffffffffffffffff81111561224b5761224b612192565b61225e601f8201601f19166020016121cf565b818152846020838601011115612272575f80fd5b611a33826020830160208701612200565b5f8060408385031215612294575f80fd5b825161229f81611e09565b602084015190925067ffffffffffffffff8111156122bb575f80fd5b6122c785828601612222565b9150509250929050565b5f60208083850312156122e2575f80fd5b825167ffffffffffffffff808211156122f9575f80fd5b908401906060828703121561230c575f80fd5b6123146121a6565b825182811115612322575f80fd5b61232e88828601612222565b8252508383015182811115612341575f80fd5b8301601f81018813612351575f80fd5b80518381111561236357612363612192565b8060051b6123728782016121cf565b918252828101870191878101908b84111561238b575f80fd5b88850192505b838310156123c5578251878111156123a7575f80fd5b6123b58d8b83890101612222565b8352509188019190880190612391565b80898701525050505050604083015160408201528094505050505092915050565b5f81518084526123fd816020860160208601612200565b601f01601f19169290920160200192915050565b606081525f61242360608301866123e6565b6020838203818501528186518084528284019150828160051b8501018389015f5b8381101561247257601f198784030185526124608383516123e6565b94860194925090850190600101612444565b50508095505050505050826040830152949350505050565b5f825161249b818460208701612200565b9190910192915050565b5f602082840312156124b5575f80fd5b81518015158114611e02575f80fd5b602081525f611e0260208301846123e656fea26469706673582212208ffeff8e91a8577ecd419fd39de110511ec000cbe98651afddd6effe46a35da664736f6c63430008180033000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000001095692a6237d83c6a72f3f5efedb9a670c492230000000000000000000000000000000000001ff3684f28c67538d4d072c22734