0 txs
2.7k calls
constructor
constructor(address registry_, address aerodromeFactory)
functions
AERO_FACTORY
viewfunction AERO_FACTORY() view returns (address)
ASSET_TYPE
viewfunction ASSET_TYPE() view returns (uint256)
assetToInformation
viewfunction assetToInformation(address asset) view returns (bool stable, uint64 unitCorrection0, uint64 unitCorrection1)
assetToUnderlyingAssets
viewfunction assetToUnderlyingAssets(bytes32 asset, uint256) view returns (bytes32 underlyingAssets)
getRiskFactors
viewfunction getRiskFactors(address creditor, address asset, uint256 assetId) view returns (uint16 collateralFactor, uint16 liquidationFactor)
getValue
viewfunction getValue(address creditor, address asset, uint256 assetId, uint256 assetAmount) view returns (uint256 valueInUsd, uint256 collateralFactor, uint256 liquidationFactor)
inAssetModule
viewfunction inAssetModule(address) view returns (bool)
isAllowed
viewfunction isAllowed(address asset, uint256) view returns (bool allowed)
lastExposureAssetToUnderlyingAsset
viewfunction lastExposureAssetToUnderlyingAsset(address creditor, bytes32 assetKey, bytes32 underlyingAssetKey) view returns (uint256 exposure)
lastExposuresAsset
viewfunction lastExposuresAsset(address creditor, bytes32 assetKey) view returns (uint112 lastExposureAsset, uint112 lastUsdExposureAsset)
owner
viewfunction owner() view returns (address)
REGISTRY
viewfunction REGISTRY() view returns (address)
riskParams
viewfunction riskParams(address creditor) view returns (uint112 lastUsdExposureProtocol, uint112 maxUsdExposureProtocol, uint16 riskFactor)
addAsset
nonpayablefunction addAsset(address pool)
processDirectDeposit
nonpayablefunction processDirectDeposit(address creditor, address asset, uint256 assetId, uint256 amount) returns (uint256 recursiveCalls)
processDirectWithdrawal
nonpayablefunction processDirectWithdrawal(address creditor, address asset, uint256 assetId, uint256 amount)
processIndirectDeposit
nonpayablefunction processIndirectDeposit(address creditor, address asset, uint256 assetId, uint256 exposureUpperAssetToAsset, int256 deltaExposureUpperAssetToAsset) returns (uint256 recursiveCalls, uint256 usdExposureUpperAssetToAsset)
processIndirectWithdrawal
nonpayablefunction processIndirectWithdrawal(address creditor, address asset, uint256 assetId, uint256 exposureUpperAssetToAsset, int256 deltaExposureUpperAssetToAsset) returns (uint256 usdExposureUpperAssetToAsset)
setRiskParameters
nonpayablefunction setRiskParameters(address creditor, uint112 maxUsdExposureProtocol_, uint16 riskFactor)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
errors
AssetNotAllowed
error AssetNotAllowed()
ExposureNotInLimits
error ExposureNotInLimits()
InvalidPool
error InvalidPool()
OnlyRegistry
error OnlyRegistry()
Overflow
error Overflow()
RiskFactorNotInLimits
error RiskFactorNotInLimits()
creation bytecode
0x60e060405234801562000010575f80fd5b5060405162002c6e38038062002c6e8339810160408190526200003391620000b8565b5f80546001600160a01b03191633908117825560405184926001928492849282917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b0391821660a0526080529290921660c05250620000ee915050565b80516001600160a01b0381168114620000b3575f80fd5b919050565b5f8060408385031215620000ca575f80fd5b620000d5836200009c565b9150620000e5602084016200009c565b90509250929050565b60805160a05160c051612af36200017b5f395f8181610288015261095d01525f81816101450152818161049401528181610509015281816106700152818161085901528181610a7301528181610b2001528181610e9601528181610f7f01528181611053015281816113a0015281816117060152611c0801525f818161041c0152610e5f0152612af35ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c806349bccc5d116100a95780638815eb391161006e5780638815eb39146104175780638da5cb5b1461043e578063ba9270ff14610450578063f2fde38b14610463578063f8350ed014610476575f80fd5b806349bccc5d146102aa57806353b85a50146102d8578063609669a01461034357806373aecb98146103a657806382d6b166146103b9575f80fd5b80632341eb86116100ef5780632341eb8614610205578063298410e51461022d5780633a8fe5e7146102405780633c0ac4f6146102705780633d2230ab14610283575f80fd5b8063024874c71461012b57806306433b1b1461014057806315ed93bc1461018457806317235093146101b65780631ba0408c146101d7575b5f80fd5b61013e61013936600461233e565b610489565b005b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101a6610192366004612381565b60016020525f908152604090205460ff1681565b604051901515815260200161017b565b6101c96101c436600461239c565b6104fd565b60405190815260200161017b565b6101ea6101e53660046123e9565b610596565b6040805161ffff93841681529290911660208301520161017b565b61021861021336600461239c565b61084c565b6040805192835260208301919091520161017b565b61013e61023b366004612381565b6108f1565b6101c961024e366004612427565b600460209081525f938452604080852082529284528284209052825290205481565b6101c961027e366004612459565b610ef3565b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6102bd6102b836600461233e565b610f1e565b6040805193845260208401929092529082015260600161017b565b6103196102e6366004612381565b60026020525f90815260409020546001600160701b0380821691600160701b810490911690600160e01b900461ffff1683565b604080516001600160701b03948516815293909216602084015261ffff169082015260600161017b565b61037f610351366004612381565b60066020525f908152604090205460ff8116906001600160401b036101008204811691600160481b90041683565b6040805193151584526001600160401b03928316602085015291169082015260600161017b565b61013e6103b4366004612488565b610f74565b6103f76103c73660046124db565b600360209081525f92835260408084209091529082529020546001600160701b0380821691600160701b90041682565b604080516001600160701b0393841681529290911660208301520161017b565b6101c97f000000000000000000000000000000000000000000000000000000000000000081565b5f54610167906001600160a01b031681565b6101c961045e36600461233e565b611047565b61013e610471366004612381565b6110bc565b6101a66104843660046124db565b61114e565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d2576040516310f5403960e31b815260040160405180910390fd5b825f6104e786836104e286612519565b611178565b90506104f4868383611269565b50505050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610547576040516310f5403960e31b815260040160405180910390fd5b845f610554888386611178565b90505f610562898484611269565b905081158061056f575080155b1561057c575f935061058a565b610587818784611551565b93505b50505095945050505050565b5f80806105a28561156c565b6040805160028082526060820183529293505f9290916020830190803683370190505090506105e9825f815181106105dc576105dc612547565b6020026020010151905f90565b50815f815181106105fc576105fc612547565b60200260200101816001600160a01b03166001600160a01b031681525050610630826001815181106105dc576105dc612547565b508160018151811061064457610644612547565b6001600160a01b039283166020918202929092010152604080516002808252606082019092525f9283927f000000000000000000000000000000000000000000000000000000000000000090911691630344bc4e918c918791816020016020820280368337019050506040518463ffffffff1660e01b81526004016106cb939291906125cd565b5f60405180830381865afa1580156106e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261070c91908101906126fb565b6001600160a01b038b165f908152600260205260409020548251929450909250600160e01b900461ffff16908390600190811061074b5761074b612547565b602002602001015161ffff16835f8151811061076957610769612547565b602002602001015161ffff16106107b4576107af8360018151811061079057610790612547565b602002602001015161ffff16612710836115519092919063ffffffff16565b6107c9565b6107c9835f8151811061079057610790612547565b9650816001815181106107de576107de612547565b602002602001015161ffff16825f815181106107fc576107fc612547565b602002602001015161ffff1610610828576108238260018151811061079057610790612547565b61083d565b61083d825f8151811061079057610790612547565b95505050505050935093915050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610897576040516310f5403960e31b815260040160405180910390fd5b855f6108a4898387611178565b90505f806108b3838c866115cb565b91509150825f14806108c3575080155b156108d0575f94506108de565b6108db818985611551565b94505b5060010199929850919650505050505050565b5f546001600160a01b0316331461093e5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b604051635b16ebb760e01b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635b16ebb790602401602060405180830381865afa1580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c6919061275a565b15156001146109e75760405162820f3560e61b815260040160405180910390fd5b5f80826001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004016040805180830381865afa158015610a24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a489190612779565b604051630f8350ed60e41b81526001600160a01b0380841660048301525f60248301529294509092507f00000000000000000000000000000000000000000000000000000000000000009091169063f8350ed090604401602060405180830381865afa158015610aba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ade919061275a565b610afb57604051634847234360e01b815260040160405180910390fd5b604051630f8350ed60e41b81526001600160a01b0382811660048301525f60248301527f0000000000000000000000000000000000000000000000000000000000000000169063f8350ed090604401602060405180830381865afa158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b89919061275a565b610ba657604051634847234360e01b815260040160405180910390fd5b826001600160a01b03166322be3de16040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610be3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c07919061275a565b15610da3576040518060600160405280600115158152602001836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8091906127b1565b610c8b9060126127d1565b610c9690600a6128ca565b6001600160401b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0491906127b1565b610d0f9060126127d1565b610d1a90600a6128ca565b6001600160401b039081169091526001600160a01b0385165f90815260066020908152604091829020845181549286015195909301518416600160481b0270ffffffffffffffff00000000000000000019959094166101000268ffffffffffffffff00199315159390931668ffffffffffffffffff199092169190911791909117929092161790555b6001600160a01b0383165f908152600160208181526040808420805460ff191690931790925581516002808252606082018452909290918301908036833701905050905082815f81518110610dfa57610dfa612547565b60209081029190910101528181600181518110610e1957610e19612547565b6020908102919091018101919091525f85815260058252604090208251610e42928401906122d3565b5060405163f1751c7b60e01b81526bffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160a01b0385811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063f1751c7b906044015f604051808303815f87803b158015610ed7575f80fd5b505af1158015610ee9573d5f803e3d5ffd5b5050505050505050565b6005602052815f5260405f208181548110610f0c575f80fd5b905f5260205f20015f91509150505481565b5f80808581610f2c8261156c565b90505f80610f3c8b858a86611903565b9150915080515f03610f5557610f528b84611a81565b90505b610f608b8383611c8f565b919d909c50909a5098505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fbd576040516310f5403960e31b815260040160405180910390fd5b6127108161ffff161115610fe457604051630b1c8e2560e01b815260040160405180910390fd5b6001600160a01b039092165f908152600260205260409020805461ffff909316600160e01b0261ffff60e01b196001600160701b03909316600160701b02929092166fffffffffffffffffffffffffffffffff60701b1990931692909217179055565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611091576040516310f5403960e31b815260040160405180910390fd5b835f61109e878386611178565b90505f6110ac8289856115cb565b5060010198975050505050505050565b5f546001600160a01b031633146111045760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610935565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0382165f9081526001602052604081205460ff1615611172575060015b92915050565b5f808213156111bf576001600160a01b0384165f9081526003602090815260408083208684529091529020546111b89083906001600160701b03166128d8565b9050611217565b6001600160a01b0384165f9081526003602090815260408083208684529091529020546001600160701b03166111f483612519565b8111611200575f611213565b61120983612519565b61121390826128eb565b9150505b61122081611e84565b6001600160a01b03949094165f9081526003602090815260408083209583529490529290922080546001600160701b0319166001600160701b0390941693909317909255919050565b5f806112748461156c565b90505f61128386868685611903565b5090505f805f805b8551811015611482576001600160a01b038a165f9081526004602090815260408083208c8452909152812087519091908890849081106112cd576112cd612547565b602002602001015181526020019081526020015f20548582815181106112f5576112f5612547565b602002602001015161130791906128fe565b935084818151811061131b5761131b612547565b602002602001015160045f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8b81526020019081526020015f205f88848151811061136857611368612547565b602002602001015181526020019081526020015f20819055506113968682815181106105dc576105dc612547565b80935081945050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631e3b06628b85858986815181106113e2576113e2612547565b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201526084810187905260a4016020604051808303815f875af115801561144a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146e9190612924565b61147890886128d8565b965060010161128b565b506001600160a01b0389165f8181526003602090815260408083208c8452825280832080546001600160701b038c8116600160701b908102600160701b600160e01b0319841617909355958552600290935290832054910483169216908289106114f157508188038101611502565b888303821115611502575087820381035b61150b81611e84565b6001600160a01b039c909c165f90815260026020526040902080546001600160701b0319166001600160701b03909d169c909c17909b5550959998505050505050505050565b5f825f190484118302158202611565575f80fd5b5091020490565b5f818152600560209081526040918290208054835181840281018401909452808452606093928301828280156115bf57602002820191905f5260205f20905b8154815260200190600101908083116115ab575b50505050509050919050565b5f805f806115d88561156c565b90505f6115e787878a85611903565b5090505f805f805f805b87518110156117f0576001600160a01b038d165f9081526004602090815260408083208f8452909152812089519091908a908490811061163357611633612547565b602002602001015181526020019081526020015f205487828151811061165b5761165b612547565b602002602001015161166d91906128fe565b955086818151811061168157611681612547565b602002602001015160045f8f6001600160a01b03166001600160a01b031681526020019081526020015f205f8e81526020019081526020015f205f8a84815181106116ce576116ce612547565b602002602001015181526020019081526020015f20819055506116fc8882815181106105dc576105dc612547565b80955081965050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a6674a78e87878b868151811061174857611748612547565b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201526084810189905260a40160408051808303815f875af11580156117af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d3919061293b565b90935091506117e2828b6128d8565b9a83019a99506001016115f1565b506001600160a01b038c165f8181526003602090815260408083208f8452825280832080546001600160701b038f8116600160701b908102600160701b600160e01b0319841617909355958552600290935292205491900482169116818b1061185f57818b0381019950611871565b8a8203811115611871578a8203810399505b6001600160a01b038e165f90815260026020526040902054600160701b90046001600160701b03168a106118b8576040516366b09a5960e01b815260040160405180910390fd5b5050506001600160a01b03909a165f90815260026020526040902080546001600160701b039097166001600160701b0319909716969096179095555094989397509295505050505050565b6040805160028082526060808301845292839291906020830190803683370190505091506119318684611a81565b9050805f8151811061194557611945612547565b60200260200101515f01515f148061197957508060018151811061196b5761196b612547565b60200260200101515f01515f145b611a78576001600160a01b0385165f90815260066020526040812054869190819060ff166119b0576119ab8385611e98565b6119ba565b6119ba8385611f9d565b915091505f836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1f9190612924565b9050611a2c838983611551565b865f81518110611a3e57611a3e612547565b6020908102919091010152611a54828983611551565b86600181518110611a6757611a67612547565b602002602001018181525050505050505b94509492505050565b80516060905f816001600160401b03811115611a9f57611a9f612533565b604051908082528060200260200182016040528015611ac8578160200160208202803683370190505b5090505f826001600160401b03811115611ae457611ae4612533565b604051908082528060200260200182016040528015611b0d578160200160208202803683370190505b5090505f836001600160401b03811115611b2957611b29612533565b604051908082528060200260200182016040528015611b52578160200160208202803683370190505b5090505f5b84811015611bf057611b748782815181106105dc576105dc612547565b858381518110611b8657611b86612547565b60200260200101858481518110611b9f57611b9f612547565b6020026020010182815250826001600160a01b03166001600160a01b03168152505050670de0b6b3a7640000828281518110611bdd57611bdd612547565b6020908102919091010152600101611b57565b5060405163cbdcbc3b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbdcbc3b90611c43908a9087908790879060040161295d565b5f60405180830381865afa158015611c5d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c8491908101906129a6565b979650505050505050565b5f805f611ce684600181518110611ca857611ca8612547565b60200260200101515f0151670de0b6b3a764000087600181518110611ccf57611ccf612547565b60200260200101516115519092919063ffffffff16565b611d21855f81518110611cfb57611cfb612547565b60200260200101515f0151670de0b6b3a7640000885f81518110611ccf57611ccf612547565b611d2b91906128d8565b6001600160a01b0387165f908152600260205260409020548551919450600160e01b900461ffff169085906001908110611d6757611d67612547565b602002602001015160200151855f81518110611d8557611d85612547565b60200260200101516020015110611dd057611dcb85600181518110611dac57611dac612547565b602002602001015160200151612710836115519092919063ffffffff16565b611de5565b611de5855f81518110611dac57611dac612547565b925084600181518110611dfa57611dfa612547565b602002602001015160400151855f81518110611e1857611e18612547565b60200260200101516040015110611e6357611e5e85600181518110611e3f57611e3f612547565b602002602001015160400151612710836115519092919063ffffffff16565b611e78565b611e78855f81518110611e3f57611e3f612547565b91505093509350939050565b5f600160701b8210611e94575f80fd5b5090565b5f805f80856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190612a5c565b5090925090505f611f0d8284612a87565b9050611f5b611f5687600181518110611f2857611f28612547565b60200260200101515f015183895f81518110611f4657611f46612547565b60200260200101515f0151612189565b612235565b9450611f9185875f81518110611f7357611f73612547565b60200260200101515f015188600181518110611f4657611f46612547565b93505050509250929050565b6001600160a01b0382165f81815260066020526040808220548151630240bc6b60e21b815291519293849384936001600160401b036101008504811694600160481b9004169285928392630902f1ac9160048083019260609291908290030181865afa15801561200f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120339190612a5c565b5090925090505f6120448584612a87565b90505f6120518584612a87565b90505f6120678383670de0b6b3a7640000611551565b90505f670de0b6b3a764000061207d8480612a87565b6120878680612a87565b61209191906128d8565b61209b9190612a9e565b90506120a78183612a87565b98505050505050505f82875f815181106120c3576120c3612547565b60200260200101515f01516120d89190612a9e565b90505f82886001815181106120ef576120ef612547565b60200260200101515f01516121049190612a9e565b90505f612112868385612189565b90505f61211f8380612a87565b6121298580612a87565b61213391906128d8565b90505f612160612156611f566ec097ce7bc90715b34b9f10000000008686612189565b611f569086612a87565b905061216c8782612a9e565b99505050505050611f9185875f81518110611f7357611f73612547565b5f80805f19858709858702925082811083820303915050805f036121bd575f84116121b2575f80fd5b50829004905061222e565b8084116121c8575f80fd5b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60b581600160881b811061224e5760409190911b9060801c5b600160481b81106122645760209190911b9060401c5b65010000000000811061227c5760109190911b9060201c5b630100000081106122925760089190911b9060101c5b62010000010260121c80820401600190811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b828054828255905f5260205f2090810192821561230c579160200282015b8281111561230c5782518255916020019190600101906122f1565b50611e949291505b80821115611e94575f8155600101612314565b6001600160a01b038116811461233b575f80fd5b50565b5f805f8060808587031215612351575f80fd5b843561235c81612327565b9350602085013561236c81612327565b93969395505050506040820135916060013590565b5f60208284031215612391575f80fd5b813561222e81612327565b5f805f805f60a086880312156123b0575f80fd5b85356123bb81612327565b945060208601356123cb81612327565b94979496505050506040830135926060810135926080909101359150565b5f805f606084860312156123fb575f80fd5b833561240681612327565b9250602084013561241681612327565b929592945050506040919091013590565b5f805f60608486031215612439575f80fd5b833561244481612327565b95602085013595506040909401359392505050565b5f806040838503121561246a575f80fd5b50508035926020909101359150565b61ffff8116811461233b575f80fd5b5f805f6060848603121561249a575f80fd5b83356124a581612327565b925060208401356001600160701b03811681146124c0575f80fd5b915060408401356124d081612479565b809150509250925092565b5f80604083850312156124ec575f80fd5b82356124f781612327565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b820161252d5761252d612505565b505f0390565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b838110156125935781516001600160a01b03168752958201959082019060010161256e565b509495945050505050565b5f815180845260208085019450602084015f5b83811015612593578151875295820195908201906001016125b1565b6001600160a01b03841681526060602082018190525f906125f09083018561255b565b8281036040840152612602818561259e565b9695505050505050565b604051606081016001600160401b038111828210171561262e5761262e612533565b60405290565b604051601f8201601f191681016001600160401b038111828210171561265c5761265c612533565b604052919050565b5f6001600160401b0382111561267c5761267c612533565b5060051b60200190565b5f82601f830112612695575f80fd5b815160206126aa6126a583612664565b612634565b8083825260208201915060208460051b8701019350868411156126cb575f80fd5b602086015b848110156126f05780516126e381612479565b83529183019183016126d0565b509695505050505050565b5f806040838503121561270c575f80fd5b82516001600160401b0380821115612722575f80fd5b61272e86838701612686565b93506020850151915080821115612743575f80fd5b5061275085828601612686565b9150509250929050565b5f6020828403121561276a575f80fd5b8151801515811461222e575f80fd5b5f806040838503121561278a575f80fd5b825161279581612327565b60208401519092506127a681612327565b809150509250929050565b5f602082840312156127c1575f80fd5b815160ff8116811461222e575f80fd5b60ff828116828216039081111561117257611172612505565b600181815b8085111561282457815f190482111561280a5761280a612505565b8085161561281757918102915b93841c93908002906127ef565b509250929050565b5f8261283a57506001611172565b8161284657505f611172565b816001811461285c576002811461286657612882565b6001915050611172565b60ff84111561287757612877612505565b50506001821b611172565b5060208310610133831016604e8410600b84101617156128a5575081810a611172565b6128af83836127ea565b805f19048211156128c2576128c2612505565b029392505050565b5f61222e60ff84168361282c565b8082018082111561117257611172612505565b8181038181111561117257611172612505565b8181035f83128015838313168383128216171561291d5761291d612505565b5092915050565b5f60208284031215612934575f80fd5b5051919050565b5f806040838503121561294c575f80fd5b505080516020909101519092909150565b6001600160a01b03851681526080602082018190525f906129809083018661255b565b8281036040840152612992818661259e565b90508281036060840152611c84818561259e565b5f60208083850312156129b7575f80fd5b82516001600160401b038111156129cc575f80fd5b8301601f810185136129dc575f80fd5b80516129ea6126a582612664565b81815260609182028301840191848201919088841115612a08575f80fd5b938501935b83851015612a505780858a031215612a23575f80fd5b612a2b61260c565b8551815286860151878201526040808701519082015283529384019391850191612a0d565b50979650505050505050565b5f805f60608486031215612a6e575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761117257611172612505565b5f82612ab857634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212207beba31aaebabbb2f4c0e8f7144247431132f2fbddd4dca6dbb8bab3bfd313d164736f6c63430008160033000000000000000000000000d0690557600eb8be8391d1d97346e2aab5300d5f000000000000000000000000420dd381b31aef6683db6b902084cb0ffece40da