0 txs
575 calls
constructor
constructor(address _contango, address _nativeToken, address _resolver)
functions
contango
viewfunction contango() view returns (address)
moneyMarketId
viewfunction moneyMarketId() view returns (uint8)
nativeToken
viewfunction nativeToken() view returns (address)
NEEDS_ACCOUNT
viewfunction NEEDS_ACCOUNT() view returns (bool)
NFT_ID_SLOT
viewfunction NFT_ID_SLOT() view returns (bytes32)
nftId
viewfunction nftId() view returns (uint256)
resolver
viewfunction resolver() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
vault
viewfunction vault(bytes32 positionId) view returns (address)
borrow
nonpayablefunction borrow(bytes32 positionId, address asset, uint256 amount, address to) returns (uint256 borrowed)
claimRewards
nonpayablefunction claimRewards(bytes32 positionId, address collateralAsset, address debtAsset, address to)
collateralBalance
nonpayablefunction collateralBalance(bytes32 positionId, address asset) returns (uint256)
debtBalance
nonpayablefunction debtBalance(bytes32 positionId, address asset) returns (uint256)
initialise
nonpayablefunction initialise(bytes32 positionId, address collateralAsset, address debtAsset)
lend
nonpayablefunction lend(bytes32 positionId, address asset, uint256 amount) returns (uint256 lent)
repay
nonpayablefunction repay(bytes32 positionId, address asset, uint256 amount) returns (uint256 repaid)
retrieve
nonpayablefunction retrieve(bytes32 positionId, address token) returns (uint256 amount)
withdraw
nonpayablefunction withdraw(bytes32 positionId, address asset, uint256 amount, address to) returns (uint256 withdrawn)
events
Borrowed
event Borrowed(bytes32 indexed positionId, address indexed asset, uint256 amount, uint256 balanceBefore)
Lent
event Lent(bytes32 indexed positionId, address indexed asset, uint256 amount, uint256 balanceBefore)
Repaid
event Repaid(bytes32 indexed positionId, address indexed asset, uint256 amount, uint256 balanceBefore)
Retrieved
event Retrieved(bytes32 indexed positionId, address indexed token, uint256 amount)
RewardsClaimed
event RewardsClaimed(bytes32 indexed positionId, address indexed rewardsToken, address to, uint256 rewardsAmount)
RewardsClaimed
event RewardsClaimed(bytes32 indexed positionId, address to)
Withdrawn
event Withdrawn(bytes32 indexed positionId, address indexed asset, uint256 amount, uint256 balanceBefore)
errors
InvalidExpiry
error InvalidExpiry()
InvalidMoneyMarketId
error InvalidMoneyMarketId()
InvalidPositionId
error InvalidPositionId(bytes32 positionId)
TokenCantBeRetrieved
error TokenCantBeRetrieved(address token)
Unauthorised
error Unauthorised(address msgSender)
ZeroDestination
error ZeroDestination()
ZeroPayer
error ZeroPayer()
creation bytecode
0x610100604052348015610010575f5ffd5b506040516129ee3803806129ee83398101604081905261002f91610068565b601f6080526001600160a01b0392831660a05290821660c0521660e0526100b2565b6001600160a01b0381168114610065575f5ffd5b50565b5f5f5f6060848603121561007a575f5ffd5b835161008581610051565b602085015190935061009681610051565b60408501519092506100a781610051565b809150509250925092565b60805160a05160c05160e05161286161018d5f395f818161020a015281816105dc01528181610ecd015261121501525f81816101180152818161013f0152818161043201528181610f7f015281816110a1015281816112dd0152818161132d015281816114a1015281816114f10152818161162b015261172501525f81816102550152818161049201528181610541015281816106800152818161075e015281816108750152818161097901528181610a6d01528181610c1701528181610cfe0152610db901525f81816103ae01526104d901526128615ff3fe608060405260043610610108575f3560e01c80639e687b6c11610092578063c6bc518211610062578063c6bc5182146103e2578063d03283dd14610402578063e1758bd814610421578063f336a54a14610454578063f75d217f14610473575f5ffd5b80639e687b6c14610340578063a4cc72a11461035f578063a5cb89981461037e578063aa5823281461039d575f5ffd5b806328f3b1cc116100d857806328f3b1cc146102a557806329da8e98146102c4578063346404a3146102e357806347fa348a1461030257806368284a9c14610321575f5ffd5b806301ffc9a7146101b457806304f3bcec146101f95780630a2959751461024457806311b7b57314610277575f5ffd5b366101b057336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101ae577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610196575f5ffd5b505af11580156101a8573d5f5f3e3d5ffd5b50505050505b005b5f5ffd5b3480156101bf575f5ffd5b506101e46101ce366004611d80565b6001600160e01b031916635e05eaff60e11b1490565b60405190151581526020015b60405180910390f35b348015610204575f5ffd5b5061022c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f0565b34801561024f575f5ffd5b5061022c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610282575f5ffd5b506102975f5160206128415f395f51905f5281565b6040519081526020016101f0565b3480156102b0575f5ffd5b506101ae6102bf366004611dbe565b610487565b3480156102cf575f5ffd5b506101ae6102de366004611dfd565b610536565b3480156102ee575f5ffd5b506102976102fd366004611e4d565b6105c5565b34801561030d575f5ffd5b5061022c61031c366004611e7b565b6105d9565b34801561032c575f5ffd5b5061029761033b366004611e92565b610674565b34801561034b575f5ffd5b5061029761035a366004611e4d565b610751565b34801561036a575f5ffd5b50610297610379366004611ece565b610c0b565b348015610389575f5ffd5b50610297610398366004611e4d565b610ce7565b3480156103a8575f5ffd5b506103d07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101f0565b3480156103ed575f5ffd5b505f5160206128415f395f51905f5254610297565b34801561040d575f5ffd5b5061029761041c366004611ece565b610cf2565b34801561042c575f5ffd5b5061022c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561045f575f5ffd5b5061029761046e366004611e92565b610dad565b34801561047e575f5ffd5b506101e4600181565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d75760405163570870ef60e11b81523360048201526024015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060ff166105058460781c90565b60ff161461052657604051633a0439f360e11b815260040160405180910390fd5b610531838383610e68565b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105815760405163570870ef60e11b81523360048201526024016104ce565b6040516001600160a01b038216815284907fbfa100eea2f40b39537bc6df4de7f953b016b20340469136d16c33725f92e8a39060200160405180910390a250505050565b5f6105d08383610ec9565b90505b92915050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6bd26a26106138460a81b90565b6040516001600160e01b031960e084901b16815260d89190911c6004820152602401602060405180830381865afa158015610650573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d39190611f03565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106c05760405163570870ef60e11b81523360048201526024016104ce565b825f036106ce57505f610749565b5f6106d98686610ec9565b9050805f036106eb575f915050610749565b6106f88686868685610f7b565b9150846001600160a01b0316867fad382ae4a0a8c252d70b902c9cc346f3e881ad505df3f728122a01006bb88f09848460405161073f929190918252602082015260400190565b60405180910390a3505b949350505050565b5f306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d24415b26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107dc9190611f03565b6001600160a01b0316633dce36f2856040518263ffffffff1660e01b815260040161080991815260200190565b602060405180830381865afa158015610824573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108489190611f03565b6001600160a01b0316146108725760405163222a979560e11b8152600481018490526024016104ce565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323228ecb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f39190611f03565b604051630e29a66960e21b8152600481018690529091505f906001600160a01b038316906338a699a490602401602060405180830381865afa15801561093b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190611f32565b6109ef5760405163586ca86560e11b8152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0d950ca90602401602060405180830381865afa1580156109c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ea9190611f03565b610a56565b60405163100ca19960e21b8152600481018690526001600160a01b03831690634032866490602401602060405180830381865afa158015610a32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a569190611f03565b90506001600160a01b03841615801590610b5757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aeb9190611f03565b6040516375151b6360e01b81526001600160a01b03868116600483015291909116906375151b6390602401602060405180830381865afa158015610b31573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b559190611f32565b155b15610b8057604051636ebdc1c760e11b81526001600160a01b03851660048201526024016104ce565b6001600160a01b038416610ba957479250610ba46001600160a01b038216846110d7565b610bbf565b610bbc6001600160a01b038516826111ec565b92505b836001600160a01b0316857fe10480fa0f8f1c0d4fc65799762c7be48848d8aeb9465f2b98dcd30bd6b784c685604051610bfb91815260200190565b60405180910390a3505092915050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c575760405163570870ef60e11b81523360048201526024016104ce565b815f03610c6557505f610ce0565b5f610c708585611211565b9050805f03610c82575f915050610ce0565b610c8f85858533856112c3565b9150836001600160a01b0316857f01e7ee7e76483485fd1d9e5b1c6a72af05e18dac7fc43f767d6897ef153bef868484604051610cd6929190918252602082015260400190565b60405180910390a3505b9392505050565b5f6105d08383611211565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d3e5760405163570870ef60e11b81523360048201526024016104ce565b815f03610d4c57505f610ce0565b5f610d578585610ec9565b9050610d668585853385611487565b9150836001600160a01b0316857fecb90afec3ccd66fd52ddbabd04ded0ffe45c0ce0496fd7859f4af4ca2d41a408484604051610cd6929190918252602082015260400190565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610df95760405163570870ef60e11b81523360048201526024016104ce565b825f03610e0757505f610749565b5f610e128686611211565b9050610e218686868685611627565b9150846001600160a01b0316867f089164adf1db4f670220caf2545a52c89761c59b497d19a31ead78652d6789f9848460405161073f929190918252602082015260400190565b610e718361174d565b610e8d5760405162d36c8560e81b815260040160405180910390fd5b5f610e97846105d9565b9050610eae6001600160a01b038416825f1961176a565b610ec36001600160a01b038316825f1961176a565b50505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663144128e8610f0f5f5160206128415f395f51905f525490565b6040518263ffffffff1660e01b8152600401610f2d91815260200190565b610c4060405180830381865afa158015610f49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6d9190612680565b506101200151949350505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161490505f838614610fd357610fc58661182b565b610fce90612762565b610fd9565b600160ff1b5b90505f610fe5896105d9565b6001600160a01b031663032d22766110085f5160206128415f395f51905f525490565b845f87611015578a611017565b305b6040518563ffffffff1660e01b8152600401611036949392919061277c565b6060604051808303815f875af1158015611052573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107691906127a0565b5091505061108c8161108790612762565b611898565b935082156110cb576110c96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163088876118e9565b505b50505095945050505050565b804710156111275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016104ce565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b50509050806105315760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016104ce565b5f6111f683611977565b905080156105d35761120a833084846118e9565b5092915050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663144128e86112575f5160206128415f395f51905f525490565b6040518263ffffffff1660e01b815260040161127591815260200190565b610c4060405180830381865afa158015611291573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b59190612680565b506101400151949350505050565b5f6112d96001600160a01b0386168430876118e9565b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03160361138d5750604051632e1a7d4d60e01b81526004810185905284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015611376575f5ffd5b505af1158015611388573d5f5f3e3d5ffd5b505050505b5f611397886105d9565b6001600160a01b031663032d2276836113bb5f5160206128415f395f51905f525490565b5f888b106113cd57600160ff1b6113df565b6113d68b61182b565b6113df90612762565b5f6040518663ffffffff1660e01b81526004016113ff949392919061277c565b60606040518083038185885af115801561141b573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061144091906127a0565b925050506114518161108790612762565b92508583101561147c576110cb308661146a868a6127cb565b6001600160a01b038b169291906118e9565b505095945050505050565b5f61149d6001600160a01b0386168430876118e9565b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316036115515750604051632e1a7d4d60e01b81526004810185905284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b15801561153a575f5ffd5b505af115801561154c573d5f5f3e3d5ffd5b505050505b5f6115675f5160206128415f395f51905f525490565b90505f5f6115748a6105d9565b6001600160a01b031663032d2276858561158d8c61182b565b5f5f6040518663ffffffff1660e01b81526004016115ae949392919061277c565b60606040518083038185885af11580156115ca573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115ef91906127a0565b5091509150825f0361161057611610825f5160206128415f395f51905f5255565b61161981611898565b9a9950505050505050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161490505f61166a886105d9565b6001600160a01b031663032d227661168d5f5160206128415f395f51905f525490565b5f6116978a61182b565b866116a257896116a4565b305b6040518563ffffffff1660e01b81526004016116c3949392919061277c565b6060604051808303815f875af11580156116df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170391906127a0565b9250505061171081611898565b9250811561147c576110cb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163087866118e9565b5f63ffffffff61175d8360581c90565b63ffffffff161492915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526117bb84826119df565b610ec3576040516001600160a01b03841660248201525f604482015261182190859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a7c565b610ec38482611a7c565b5f6001600160ff1b038211156118945760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016104ce565b5090565b5f5f8212156118945760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016104ce565b5f6001600160a01b0384166119115760405163a26bef6960e01b815260040160405180910390fd5b6001600160a01b03831661193857604051637d0f1ea160e01b815260040160405180910390fd5b826001600160a01b0316846001600160a01b03161480611956575081155b15611962575080610749565b61196e85858585611b4f565b95945050505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156119bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d391906127de565b5f5f5f846001600160a01b0316846040516119fa91906127f5565b5f604051808303815f865af19150503d805f8114611a33576040519150601f19603f3d011682016040523d82523d5f602084013e611a38565b606091505b5091509150818015611a62575080511580611a62575080806020019051810190611a629190611f32565b801561196e5750505050506001600160a01b03163b151590565b5f611ad0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611b969092919063ffffffff16565b905080515f1480611af0575080806020019051810190611af09190611f32565b6105315760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104ce565b5f6001600160a01b0384163014611b7a57611b756001600160a01b038616858585611ba4565b611b8e565b611b8e6001600160a01b0386168484611bdc565b509392505050565b606061074984845f85611c0c565b6040516001600160a01b0380851660248301528316604482015260648101829052610ec39085906323b872dd60e01b906084016117ea565b6040516001600160a01b03831660248201526044810182905261053190849063a9059cbb60e01b906064016117ea565b606082471015611c6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016104ce565b5f5f866001600160a01b03168587604051611c8891906127f5565b5f6040518083038185875af1925050503d805f8114611cc2576040519150601f19603f3d011682016040523d82523d5f602084013e611cc7565b606091505b5091509150611cd887838387611ce3565b979650505050505050565b60608315611d515782515f03611d4a576001600160a01b0385163b611d4a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104ce565b5081610749565b6107498383815115611d665781518083602001fd5b8060405162461bcd60e51b81526004016104ce919061280b565b5f60208284031215611d90575f5ffd5b81356001600160e01b031981168114610ce0575f5ffd5b6001600160a01b0381168114611dbb575f5ffd5b50565b5f5f5f60608486031215611dd0575f5ffd5b833592506020840135611de281611da7565b91506040840135611df281611da7565b809150509250925092565b5f5f5f5f60808587031215611e10575f5ffd5b843593506020850135611e2281611da7565b92506040850135611e3281611da7565b91506060850135611e4281611da7565b939692955090935050565b5f5f60408385031215611e5e575f5ffd5b823591506020830135611e7081611da7565b809150509250929050565b5f60208284031215611e8b575f5ffd5b5035919050565b5f5f5f5f60808587031215611ea5575f5ffd5b843593506020850135611eb781611da7565b9250604085013591506060850135611e4281611da7565b5f5f5f60608486031215611ee0575f5ffd5b833592506020840135611ef281611da7565b929592945050506040919091013590565b5f60208284031215611f13575f5ffd5b8151610ce081611da7565b80518015158114611f2d575f5ffd5b919050565b5f60208284031215611f42575f5ffd5b6105d082611f1e565b8051611f2d81611da7565b6040516101a0810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b60405290565b604051610180810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b604051610100810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b604051610120810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b604051610160810167ffffffffffffffff81118282101715611f8657634e487b7160e01b5f52604160045260245ffd5b805160ff81168114611f2d575f5ffd5b5f6101a0828403121561209c575f5ffd5b6120a4611f56565b90506120af82611f4b565b81526120bd60208301611f4b565b60208201526120ce60408301611f4b565b60408201526120df60608301611f4b565b60608201526120f060808301611f4b565b608082015261210160a08301611f4b565b60a082015261211260c0830161207b565b60c082015261212360e0830161207b565b60e082015261010082810151908201526101208083015190820152610140808301519082015261016080830151908201526101809182015191810191909152919050565b805161ffff81168114611f2d575f5ffd5b5f6101808284031215612189575f5ffd5b612191611f8c565b905061219c82612167565b81526121aa60208301612167565b60208201526121bb60408301612167565b60408201526121cc60608301612167565b60608201526121dd60808301612167565b60808201526121ee60a08301612167565b60a08201526121ff60c08301612167565b60c082015261221060e08301612167565b60e08201526122226101008301611f4b565b6101008201526101208281015190820152610140808301519082015261224b6101608301611f4b565b61016082015292915050565b5f6101a08284031215612268575f5ffd5b612270611f56565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e080840151908201526101008084015190820152610120808401519082015261014080840151908201526101608084015190820152610180928301519281019290925250919050565b5f60c0828403121561230a575f5ffd5b60405160c0810167ffffffffffffffff8111828210171561233957634e487b7160e01b5f52604160045260245ffd5b604090815283518252602080850151908301528381015190820152606080840151908201526080808401519082015260a0928301519281019290925250919050565b5f610100828403121561238c575f5ffd5b612394611fbc565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e0928301519281019290925250919050565b5f8183036101a08112156123f9575f5ffd5b612401611fec565b835181526020808501519082015260408085015190820152606080850151908201526080808501519082015260a08085015190820152915060e060bf198201121561244a575f5ffd5b50612453611fec565b60c083810151825260e0840151602083015261010084015160408301526101208401516060830152610140840151608083015261016084015160a0830152610180909301518184015291810191909152919050565b5f61012082840312156124b9575f5ffd5b6124c161201b565b90506124cc82611f1e565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b5f6101608284031215612538575f5ffd5b61254061204b565b905061254b82611f1e565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101409182015191810191909152919050565b5f610ac082840312156125cd575f5ffd5b6125d561201b565b90506125e082611f4b565b81526125ef836020840161208b565b6020820152612602836101c08401612178565b6040820152612615836103408401612257565b6060820152612628836104e084016122fa565b608082015261263b836105a0840161237b565b60a082015261264e836106a084016123e7565b60c08201526126618361084084016124a8565b60e0820152612674836109608401612527565b61010082015292915050565b5f5f828403610c40811215612693575f5ffd5b6101808112156126a1575f5ffd5b506126aa611f8c565b835181526126ba60208501611f4b565b60208201526126cb60408501611f1e565b60408201526126dc60608501611f1e565b60608201526080848101519082015260a0808501519082015260c0808501519082015260e08085015190820152610100808501519082015261012080850151908201526101408085015190820152610160808501519082015291506127458461018085016125bc565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b82016127765761277661274e565b505f0390565b938452602084019290925260408301526001600160a01b0316606082015260800190565b5f5f5f606084860312156127b2575f5ffd5b5050815160208301516040909301519094929350919050565b818103818111156105d3576105d361274e565b5f602082840312156127ee575f5ffd5b5051919050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fedf825e2eee9b16bb84c188e881cd60254385acf4b8216f44ae131b434928b37d0000000000000000000000006cae28b3d09d8f8fc74ccd496ac986fc84c0c24e000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000058f24b9fcef1847d4ec43af62ff1ac72066c5480