0 txs
50 calls
constructor
constructor(address _siloRepo)
functions
balanceOfUnderlying
viewfunction balanceOfUnderlying(uint256 _assetTotalDeposits, address _shareToken, address _user) view returns (uint256)
borrowAPY
viewfunction borrowAPY(address _silo, address _asset) view returns (uint256)
borrowShare
viewfunction borrowShare(address _silo, address _asset, address _user) view returns (uint256)
calcFee
viewfunction calcFee(uint256 _amount) view returns (uint256)
calculateBorrowValue
viewfunction calculateBorrowValue(address _silo, address _user, address _asset) view returns (uint256)
calculateCollateralValue
viewfunction calculateCollateralValue(address _silo, address _user, address _asset) view returns (uint256)
collateralBalanceOfUnderlying
viewfunction collateralBalanceOfUnderlying(address _silo, address _asset, address _user) view returns (uint256)
collateralOnlyDeposits
viewfunction collateralOnlyDeposits(address _silo, address _asset) view returns (uint256)
debtBalanceOfUnderlying
viewfunction debtBalanceOfUnderlying(address _silo, address _asset, address _user) view returns (uint256)
depositAPY
viewfunction depositAPY(address _silo, address _asset) view returns (uint256)
getBorrowAmount
viewfunction getBorrowAmount(address _silo, address _asset, address _user, uint256 _timestamp) view returns (uint256)
getDepositAmount
viewfunction getDepositAmount(address _silo, address _asset, address _user, uint256 _timestamp) view returns (uint256 totalUserDeposits)
getModel
viewfunction getModel(address _silo, address _asset) view returns (address)
getUserLiquidationThreshold
viewfunction getUserLiquidationThreshold(address _silo, address _user) view returns (uint256 liquidationThreshold)
getUserLTV
viewfunction getUserLTV(address _silo, address _user) view returns (uint256 userLTV)
getUserMaximumLTV
viewfunction getUserMaximumLTV(address _silo, address _user) view returns (uint256 maximumLTV)
getUtilization
viewfunction getUtilization(address _silo, address _asset) view returns (uint256)
hasPosition
viewfunction hasPosition(address _silo, address _user) view returns (bool)
inDebt
viewfunction inDebt(address _silo, address _user) view returns (bool)
isSolvent
viewfunction isSolvent(address _silo, address _user) view returns (bool)
lensPing
purefunction lensPing() pure returns (bytes4)
liquidity
viewfunction liquidity(address _silo, address _asset) view returns (uint256)
protocolFees
viewfunction protocolFees(address _silo, address _asset) view returns (uint256)
siloRepository
viewfunction siloRepository() view returns (address)
totalBorrowAmount
viewfunction totalBorrowAmount(address _silo, address _asset) view returns (uint256)
totalBorrowAmountWithInterest
viewfunction totalBorrowAmountWithInterest(address _silo, address _asset) view returns (uint256 _totalBorrowAmount)
totalBorrowShare
viewfunction totalBorrowShare(address _silo, address _asset) view returns (uint256)
totalDeposits
viewfunction totalDeposits(address _silo, address _asset) view returns (uint256)
totalDepositsWithInterest
viewfunction totalDepositsWithInterest(address _silo, address _asset) view returns (uint256 _totalDeposits)
events
No events.
errors
DifferentArrayLength
error DifferentArrayLength()
InvalidRepository
error InvalidRepository()
UnsupportedLTVType
error UnsupportedLTVType()
UserIsZero
error UserIsZero()
ZeroAssets
error ZeroAssets()
ZeroAssets
error ZeroAssets()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620039fa380380620039fa833981016040819052620000349162000112565b62000058816001600160a01b031663e99ed41d6200008860201b620020c81760201c565b6200007657604051639f45596360e01b815260040160405180910390fd5b6001600160a01b031660805262000169565b60006001600160a01b038316158015906200010b575082826040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f691906200013d565b60e083901b6001600160e01b03199081169116145b9392505050565b6000602082840312156200012557600080fd5b81516001600160a01b03811681146200010b57600080fd5b6000602082840312156200015057600080fd5b81516001600160e01b0319811681146200010b57600080fd5b60805161380c620001ee600039600081816103f1015281816108280152818161098b01528181610ac601528181610bd501528181610d9b01528181610ec501528181610f7901528181611479015281816114ff0152818161166b0152818161177601528181611a3501528181611a5d01528181611d2a0152611fae015261380c6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806382656b5011610104578063a43f23a3116100a2578063bde1271811610071578063bde12718146103ec578063c719a39614610413578063c8de845114610426578063ee9555dd1461043957600080fd5b8063a43f23a3146103a0578063af82d2bc146103b3578063b003ec14146103c6578063b2217281146103d957600080fd5b806388a9af40116100de57806388a9af401461033c5780638feddfec1461034f578063970d45e51461037a578063993dadeb1461038d57600080fd5b806382656b50146103035780638705c3591461031657806387f041401461032957600080fd5b806359e9e79911610171578063738a3a1e1161014b578063738a3a1e146102b757806375dc7d8c146102ca57806375f746c9146102dd57806379a5e106146102f057600080fd5b806359e9e7991461027e5780637343901914610291578063737f6e42146102a457600080fd5b806324bc00b0116101ad57806324bc00b0146102225780632dc09ae41461024557806343afdad214610258578063590630f01461026b57600080fd5b806302f417d3146101d4578063035054cd146101fa578063153ef0401461020f575b600080fd5b6101e76101e23660046130c4565b61044c565b6040519081526020015b60405180910390f35b60405163035054cd60e01b81526020016101f1565b6101e761021d366004613106565b610536565b610235610230366004613106565b6105b1565b60405190151581526020016101f1565b6101e761025336600461313f565b610823565b6101e7610266366004613106565b610a47565b610235610279366004613106565b610b2c565b6101e761028c366004613106565b610c3e565b6101e761029f36600461316f565b610d23565b6101e76102b2366004613106565b610dd1565b6101e76102c5366004613106565b610ebc565b6101e76102d83660046131c0565b610f74565b6101e76102eb366004613106565b611020565b6101e76102fe366004613106565b611096565b6101e761031136600461313f565b61110f565b610235610324366004613106565b6111ed565b6101e7610337366004613106565b611381565b6101e761034a366004613106565b6113fa565b61036261035d366004613106565b6114d5565b6040516001600160a01b0390911681526020016101f1565b6101e7610388366004613106565b61156c565b6101e761039b366004613106565b6115e8565b6101e76103ae36600461313f565b611771565b6101e76103c136600461313f565b611aa0565b6101e76103d436600461313f565b611b24565b6101e76103e7366004613106565b611bc5565b6103627f000000000000000000000000000000000000000000000000000000000000000081565b6101e7610421366004613106565b611cab565b6101e7610434366004613106565b611d86565b6101e761044736600461316f565b611e35565b6040516370a0823160e01b81526001600160a01b03828116600483015260009182918516906370a0823190602401602060405180830381865afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb91906131d9565b905061052b85856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052391906131d9565b83919061214e565b9150505b9392505050565b60405163bf27304160e01b81526001600160a01b0382811660048301526000919084169063bf2730419060240160c060405180830381865afa158015610580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a491906132d0565b6080015190505b92915050565b600080836001600160a01b03166364654cf56040518163ffffffff1660e01b8152600401600060405180830381865afa1580156105f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261061a9190810190613384565b91505060005b81518110156108185781818151811061063b5761063b613448565b6020026020010151604001516001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161068191906001600160a01b0391909116815260200190565b602060405180830381865afa15801561069e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c291906131d9565b156106d2576001925050506105ab565b8181815181106106e4576106e4613448565b6020908102919091010151516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b91906131d9565b1561076b576001925050506105ab565b81818151811061077d5761077d613448565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f691906131d9565b15610806576001925050506105ab565b8061081081613474565b915050610620565b506000949350505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061348d565b6040516341976e0960e01b81526001600160a01b0385811660048301529192506000918316906341976e0990602401602060405180830381865afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091891906131d9565b90506000846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097e91906134aa565b60ff16905060006109b1887f000000000000000000000000000000000000000000000000000000000000000088426121b1565b60405163bf27304160e01b81526001600160a01b038881166004830152919250600091610a2d91908b169063bf2730419060240160c060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2691906132d0565b898461229c565b9050610a3a8185856123a8565b9998505050505050505050565b6000806000846001600160a01b03166364654cf56040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a8a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ab29190810190613384565b91509150610b226040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001876001600160a01b03168152602001848152602001838152602001866001600160a01b031681525060006123d1565b5095945050505050565b60006001600160a01b038216610b5557604051630b328ad960e31b815260040160405180910390fd5b600080846001600160a01b03166364654cf56040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bbe9190810190613384565b91509150600080610c316040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001306001600160a01b03168152602001868152602001858152602001886001600160a01b031681525060016123d1565b1015979650505050505050565b600080610c4b84846114d5565b6001600160a01b0316636bcc82166040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac91906131d9565b90506000610cba85856115e8565b905080600003610ccf576000925050506105ab565b600082610cdc878761156c565b610ce68888610ebc565b610cf091906134cd565b610cfa9190613502565b905081610d0f670de0b6b3a7640000836134cd565b610d199190613502565b9695505050505050565b60405163bf27304160e01b81526001600160a01b038481166004830152600091610dc69187169063bf2730419060240160c060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9491906132d0565b84610dc1887f000000000000000000000000000000000000000000000000000000000000000089886121b1565b61229c565b90505b949350505050565b604051631f0f875560e31b81526001600160a01b038281166004830152600091829185169063f87c3aa890602401606060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e409190613533565b9050610dc9610e4f85856114d5565b6001600160a01b0316636bcc82166040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb091906131d9565b82516020840151612541565b600080610eeb847f000000000000000000000000000000000000000000000000000000000000000085426121b1565b604051631f0f875560e31b81526001600160a01b03858116600483015291925060009186169063f87c3aa890602401606060405180830381865afa158015610f37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5b9190613533565b9050610f6b816020015183612589565b95945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663072ea61c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906131d9565b90508060000361100c5750600092915050565b670de0b6b3a7640000838202049392505050565b604051631f0f875560e31b81526001600160a01b0382811660048301526000919084169063f87c3aa890602401606060405180830381865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190613533565b519392505050565b60405163fb25570360e01b81526001600160a01b0382811660048301526000919084169063fb25570390602401608060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190613593565b602001519392505050565b60405163bf27304160e01b81526001600160a01b0383811660048301526000919085169063bf2730419060240160c060405180830381865afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d91906132d0565b60409081015190516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc991906131d9565b600080836001600160a01b03166367e4ac2c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561122e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611256919081019061360a565b905060005b815181101561081857846001600160a01b031663bf27304183838151811061128557611285613448565b60200260200101516040518263ffffffff1660e01b81526004016112b891906001600160a01b0391909116815260200190565b60c060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f991906132d0565b60409081015190516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa158015611345573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136991906131d9565b15611379576001925050506105ab565b60010161125b565b60405163bf27304160e01b81526001600160a01b0382811660048301526000919084169063bf2730419060240160c060405180830381865afa1580156113cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ef91906132d0565b60a001519392505050565b6000806000846001600160a01b03166364654cf56040518163ffffffff1660e01b8152600401600060405180830381865afa15801561143d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114659190810190613384565b91509150610f6b6040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001876001600160a01b03168152602001848152602001838152602001866001600160a01b031681525060016125b2565b60405163122cfaaf60e21b81526001600160a01b03838116600483015282811660248301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906348b3eabc90604401602060405180830381865afa158015611548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f919061348d565b600061157883836114d5565b6001600160a01b031663071962ff8484426040518463ffffffff1660e01b81526004016115a79392919061363f565b602060405180830381865afa1580156115c4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f91906131d9565b6000806115f584846114d5565b6001600160a01b031663b1e017658585426040518463ffffffff1660e01b81526004016116249392919061363f565b602060405180830381865afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166591906131d9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166325ed3d446040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116eb91906131d9565b604051631f0f875560e31b81526001600160a01b03868116600483015291925060009187169063f87c3aa890602401606060405180830381865afa158015611737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175b9190613533565b9050610d19816000015182602001518486612691565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f6919061348d565b60405163bf27304160e01b81526001600160a01b03858116600483015291925060009187169063bf2730419060240160c060405180830381865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186691906132d0565b6040516341976e0960e01b81526001600160a01b0386811660048301529192506000918416906341976e0990602401602060405180830381865afa1580156118b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d691906131d9565b90506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193c91906134aa565b83516040516370a0823160e01b81526001600160a01b038a81166004830152929350600092909116906370a0823190602401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af91906131d9565b60208501516040516370a0823160e01b81526001600160a01b038b81166004830152929350600092909116906370a0823190602401602060405180830381865afa158015611a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2591906131d9565b90506000611a81868484611a5b8f7f00000000000000000000000000000000000000000000000000000000000000008f426121b1565b7f00000000000000000000000000000000000000000000000000000000000000006126e5565b9050611a91818660ff87166123a8565b9b9a5050505050505050505050565b60405163bf27304160e01b81526001600160a01b038381166004830152600091829186169063bf2730419060240160c060405180830381865afa158015611aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0f91906132d0565b905061052b8160a0015182604001518561044c565b60405163bf27304160e01b81526001600160a01b038381166004830152600091829186169063bf2730419060240160c060405180830381865afa158015611b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9391906132d0565b9050611ba8816080015182602001518561044c565b611bbb826060015183600001518661044c565b0195945050505050565b60405163bf27304160e01b81526001600160a01b0382811660048301526000919084169063bf2730419060240160c060405180830381865afa158015611c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3391906132d0565b608001516040516370a0823160e01b81526001600160a01b0385811660048301528416906370a0823190602401602060405180830381865afa158015611c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca191906131d9565b61052f9190613663565b6000806000846001600160a01b03166364654cf56040518163ffffffff1660e01b8152600401600060405180830381865afa158015611cee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d169190810190613384565b91509150610f6b6040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001876001600160a01b03168152602001848152602001838152602001866001600160a01b031681525060006125b2565b60405163bf27304160e01b81526001600160a01b0382811660048301526000919084169063bf2730419060240160c060405180830381865afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df491906132d0565b604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c4573d6000803e3d6000fd5b60405163bf27304160e01b81526001600160a01b038481166004830152600091829187169063bf2730419060240160c060405180830381865afa158015611e80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea491906132d0565b80516040516370a0823160e01b81526001600160a01b038781166004830152929350600092909116906370a0823190602401602060405180830381865afa158015611ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1791906131d9565b905080600003611f2c57600092505050610dc9565b6000611f3888886114d5565b6001600160a01b031663b1e017658989886040518463ffffffff1660e01b8152600401611f679392919061363f565b602060405180830381865afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa891906131d9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166325ed3d446040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202e91906131d9565b9050600061204685606001518660a001518486612691565b90506120ba8186600001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b291906131d9565b86919061214e565b9a9950505050505050505050565b60006001600160a01b0383161580159061052f575082826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612132919061367a565b60e083901b6001600160e01b0319908116911614905092915050565b600081158061215b575082155b156121685750600061052f565b61217283856134cd565b9050818181612183576121836134ec565b0490508015801561219357508315155b1561052f57604051630cb65c7760e21b815260040160405180910390fd5b60405163122cfaaf60e21b81526001600160a01b038581166004830152838116602483015260009182918616906348b3eabc90604401602060405180830381865afa158015612204573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612228919061348d565b60405163b1e0176560e01b81529091506001600160a01b0382169063b1e017659061225b9089908890889060040161363f565b602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1991906131d9565b60408084015190516370a0823160e01b81526001600160a01b03848116600483015260009283929116906370a0823190602401602060405180830381865afa1580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906131d9565b90508060000361232457600091505061052f565b60006123348660a0015185612589565b9050610d198187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a091906131d9565b849190612850565b60006123b483856134cd565b905081600a0a81816123c8576123c86134ec565b04949350505050565b60008060006123df856128a0565b90506123ea816129bd565b6000036123fe57600080925092505061253a565b600085600001516001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612442573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612466919061348d565b9050600061247982886040015185612a03565b90506000612486826129bd565b9050806000036124a057600080955095505050505061253a565b60006124ac848a612c1f565b905060006124b9826129bd565b9050806000036124d75760001960009750975050505050505061253a565b60006124f28b600001518c602001518d604001518d87612c3d565b905081612507670de0b6b3a7640000866134cd565b6125119190613502565b985081612526670de0b6b3a7640000836134cd565b6125309190613502565b9750505050505050505b9250929050565b600082158061254e575081155b1561255b5750600061052f565b61256584836134cd565b9050828181612576576125766134ec565b0490508381111561052f57509192915050565b6000670de0b6b3a764000061259e83856134cd565b6125a89190613502565b61052f90846136a4565b60008083600001516001600160a01b0316635ddf2be36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261b919061348d565b905060006126298286612c1f565b90506000612636826129bd565b90508060000361264c57600093505050506105ab565b60006126678760000151886020015189604001518987612c3d565b90508161267c670de0b6b3a7640000836134cd565b6126869190613502565b979650505050505050565b6000806126a684670de0b6b3a7640000613663565b9050670de0b6b3a764000081816126bd86896134cd565b6126c79190613502565b6126d191906134cd565b6126db9190613502565b610d1990876136a4565b60008085156127d9576127d461276688606001518960a00151866001600160a01b03166325ed3d446040518163ffffffff1660e01b8152600401602060405180830381865afa15801561273c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276091906131d9565b88612691565b88600001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127cc91906131d9565b889190612cca565b6127dc565b60005b90506000851561283557612830886080015189602001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a8573d6000803e3d6000fd5b612838565b60005b905061284481836136a4565b98975050505050505050565b600081158061285d575082155b1561286a5750600061052f565b600061287684866134cd565b905060006128848483613502565b905061289084836136bc565b1561052b57610d196001826136a4565b6060816060015151826040015151146128cc5760405163dba17af560e01b815260040160405180910390fd5b81604001515167ffffffffffffffff8111156128ea576128ea6131f2565b604051908082528060200260200182016040528015612913578160200160208202803683370190505b50905060005b8260400151518110156129b7576000612959846020015185600001518660400151858151811061294b5761294b613448565b6020026020010151426121b1565b90506129878460600151838151811061297457612974613448565b602002602001015185608001518361229c565b83838151811061299957612999613448565b602090810291909101015250806129af81613474565b915050612919565b50919050565b6000805b82518110156129b7578281815181106129dc576129dc613448565b6020026020010151826129ef91906136a4565b9150806129fb81613474565b9150506129c1565b60608151835114612a275760405163dba17af560e01b815260040160405180910390fd5b825167ffffffffffffffff811115612a4157612a416131f2565b604051908082528060200260200182016040528015612a6a578160200160208202803683370190505b50905060005b8351811015612c1757828181518110612a8b57612a8b613448565b602002602001015160000315612c05576000856001600160a01b03166341976e09868481518110612abe57612abe613448565b60200260200101516040518263ffffffff1660e01b8152600401612af191906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3291906131d9565b90506000858381518110612b4857612b48613448565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb191906134aa565b9050612be4828260ff16878681518110612bcd57612bcd613448565b6020026020010151612d289092919063ffffffff16565b848481518110612bf657612bf6613448565b60200260200101818152505050505b80612c0f81613474565b915050612a70565b509392505050565b60606000612c2c83612d49565b9050610dc984846040015183612a03565b60008151845114612c615760405163dba17af560e01b815260040160405180910390fd5b60005b8451811015610b2257612cac8787878481518110612c8457612c84613448565b602002602001015187878681518110612c9f57612c9f613448565b6020026020010151612f9c565b612cb690836136a4565b915080612cc281613474565b915050612c64565b6000811580612cd7575082155b15612ce45750600061052f565b600082612cf185876134cd565b612cfb9190613502565b905080158015612d0a57508415155b15610dc957604051630cb65c7760e21b815260040160405180910390fd5b6000612d3582600a6137b4565b612d3f84866134cd565b610dc99190613502565b606081606001515182604001515114612d755760405163dba17af560e01b815260040160405180910390fd5b81604001515167ffffffffffffffff811115612d9357612d936131f2565b604051908082528060200260200182016040528015612dbc578160200160208202803683370190505b50905060005b8260400151518110156129b757600083606001518281518110612de757612de7613448565b60209081029190910101515160808501516040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612e3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6291906131d9565b9050600084606001518381518110612e7c57612e7c613448565b602090810291909101810151015160808601516040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef991906131d9565b9050612f0581836136a4565b600003612f13575050612f8a565b6000612f38866020015187600001518860400151878151811061294b5761294b613448565b9050612f6886606001518581518110612f5357612f53613448565b60200260200101518484848a600001516126e5565b858581518110612f7a57612f7a613448565b6020026020010181815250505050505b80612f9481613474565b915050612dc2565b60008080846001811115612fb257612fb26137c0565b03613031576040516330be9d2560e21b81526001600160a01b038781166004830152868116602483015288169063c2fa7494906044015b602060405180830381865afa158015613006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302a91906131d9565b9050613099565b6001846001811115613045576130456137c0565b0361308057604051630ca4db1160e21b81526001600160a01b03878116600483015286811660248301528816906332936c4490604401612fe9565b6040516353c3731560e01b815260040160405180910390fd5b670de0b6b3a764000061267c82856134cd565b6001600160a01b03811681146130c157600080fd5b50565b6000806000606084860312156130d957600080fd5b8335925060208401356130eb816130ac565b915060408401356130fb816130ac565b809150509250925092565b6000806040838503121561311957600080fd5b8235613124816130ac565b91506020830135613134816130ac565b809150509250929050565b60008060006060848603121561315457600080fd5b833561315f816130ac565b925060208401356130eb816130ac565b6000806000806080858703121561318557600080fd5b8435613190816130ac565b935060208501356131a0816130ac565b925060408501356131b0816130ac565b9396929550929360600135925050565b6000602082840312156131d257600080fd5b5035919050565b6000602082840312156131eb57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613231576132316131f2565b604052919050565b600060c0828403121561324b57600080fd5b60405160c0810181811067ffffffffffffffff8211171561326e5761326e6131f2565b80604052508091508251613281816130ac565b81526020830151613291816130ac565b602082015260408301516132a4816130ac565b80604083015250606083015160608201526080830151608082015260a083015160a08201525092915050565b600060c082840312156132e257600080fd5b61052f8383613239565b600067ffffffffffffffff821115613306576133066131f2565b5060051b60200190565b600082601f83011261332157600080fd5b81516020613336613331836132ec565b613208565b82815260059290921b8401810191818101908684111561335557600080fd5b8286015b8481101561337957805161336c816130ac565b8352918301918301613359565b509695505050505050565b6000806040838503121561339757600080fd5b825167ffffffffffffffff808211156133af57600080fd5b6133bb86838701613310565b93506020915081850151818111156133d257600080fd5b85019050601f810186136133e557600080fd5b80516133f3613331826132ec565b81815260c0918202830184019184820191908984111561341257600080fd5b938501935b83851015613438576134298a86613239565b83529384019391850191613417565b5080955050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016134865761348661345e565b5060010190565b60006020828403121561349f57600080fd5b815161052f816130ac565b6000602082840312156134bc57600080fd5b815160ff8116811461052f57600080fd5b60008160001904831182151516156134e7576134e761345e565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613511576135116134ec565b500490565b805167ffffffffffffffff8116811461352e57600080fd5b919050565b60006060828403121561354557600080fd5b6040516060810181811067ffffffffffffffff82111715613568576135686131f2565b8060405250825181526020830151602082015261358760408401613516565b60408201529392505050565b6000608082840312156135a557600080fd5b6040516080810181811067ffffffffffffffff821117156135c8576135c86131f2565b806040525082518152602083015160208201526135e760408401613516565b60408201526060830151600381106135fe57600080fd5b60608201529392505050565b60006020828403121561361c57600080fd5b815167ffffffffffffffff81111561363357600080fd5b610dc984828501613310565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000828210156136755761367561345e565b500390565b60006020828403121561368c57600080fd5b81516001600160e01b03198116811461052f57600080fd5b600082198211156136b7576136b761345e565b500190565b6000826136cb576136cb6134ec565b500690565b600181815b8085111561370b5781600019048211156136f1576136f161345e565b808516156136fe57918102915b93841c93908002906136d5565b509250929050565b600082613722575060016105ab565b8161372f575060006105ab565b8160018114613745576002811461374f5761376b565b60019150506105ab565b60ff8411156137605761376061345e565b50506001821b6105ab565b5060208310610133831016604e8410600b841016171561378e575081810a6105ab565b61379883836136d0565b80600019048211156137ac576137ac61345e565b029392505050565b600061052f8383613713565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220c684bf671c7063cc83a651852bc459c935717cfa78debe977fec2e7d9cd3eb0a64736f6c634300080d0033000000000000000000000000bacbbefda6fd1fbf5a2d6a79916f4b6124ed2d49