0 txs
104.5k calls
constructor
constructor()
functions
getAddressesProvider
viewfunction getAddressesProvider() view returns (address)
getConfiguration
viewfunction getConfiguration(address asset) view returns (tuple)
getReserveData
viewfunction getReserveData(address asset) view returns (tuple)
getReserveNormalizedIncome
viewfunction getReserveNormalizedIncome(address asset) view returns (uint256)
getReserveNormalizedVariableDebt
viewfunction getReserveNormalizedVariableDebt(address asset) view returns (uint256)
getReservesList
viewfunction getReservesList() view returns (address[])
getUserAccountData
viewfunction getUserAccountData(address user) view returns (uint256 totalCollateral, uint256 totalDebt, uint256 availableBorrows, uint256 currentLiquidationThreshold, uint256 ltv, uint256 healthFactor)
getUserConfiguration
viewfunction getUserConfiguration(address user) view returns (tuple)
isShutdown
viewfunction isShutdown() view returns (bool)
LENDINGPOOL_REVISION
viewfunction LENDINGPOOL_REVISION() view returns (uint256)
MAX_NUMBER_RESERVES
viewfunction MAX_NUMBER_RESERVES() view returns (uint256)
MAX_STABLE_RATE_BORROW_SIZE_PERCENT
viewfunction MAX_STABLE_RATE_BORROW_SIZE_PERCENT() view returns (uint256)
paused
viewfunction paused() view returns (bool)
borrow
nonpayablefunction borrow(address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode, address onBehalfOf)
deposit
nonpayablefunction deposit(address asset, uint256 amount, address onBehalfOf, uint16 referralCode)
finalizeTransfer
nonpayablefunction finalizeTransfer(address asset, address from, address to, uint256 amount, uint256 balanceFromBefore, uint256 balanceToBefore)
initialize
nonpayablefunction initialize(address provider)
initReserve
nonpayablefunction initReserve(address asset, address aTokenAddress, address stableDebtAddress, address variableDebtAddress, address interestRateStrategyAddress)
liquidationCall
nonpayablefunction liquidationCall(address collateralAsset, address debtAsset, address user, uint256 debtToCover, bool receiveAToken)
rebalanceStableBorrowRate
nonpayablefunction rebalanceStableBorrowRate(address asset, address user)
repay
nonpayablefunction repay(address asset, uint256 amount, uint8 rateMode, address onBehalfOf) returns (uint256)
setConfiguration
nonpayablefunction setConfiguration(address asset, uint256 configuration)
setPause
nonpayablefunction setPause(bool val)
setReserveInterestRateStrategyAddress
nonpayablefunction setReserveInterestRateStrategyAddress(address asset, address rateStrategyAddress)
setUserUseReserveAsCollateral
nonpayablefunction setUserUseReserveAsCollateral(address asset, bool useAsCollateral)
shutdown
nonpayablefunction shutdown(uint256 badDebt)
swapBorrowRateMode
nonpayablefunction swapBorrowRateMode(address asset, uint256 rateMode)
withdraw
nonpayablefunction withdraw(address asset, uint256 amount, address to) returns (uint256)
events
Borrow
event Borrow(address indexed reserve, address user, address indexed onBehalfOf, uint256 amount, uint256 borrowRateMode, uint256 borrowRate, uint16 indexed referral)
Deposit
event Deposit(address indexed reserve, address user, address indexed onBehalfOf, uint256 amount, uint16 indexed referral)
EmergencyWithdrawal
event EmergencyWithdrawal(address indexed user, uint256 usdAmountWithdrawn)
FlashLoan
event FlashLoan(address indexed target, address indexed initiator, address indexed asset, uint256 amount, uint256 premium, uint16 referralCode)
LiquidationCall
event LiquidationCall(address indexed collateralAsset, address indexed debtAsset, address indexed user, uint256 debtToCover, uint256 liquidatedCollateralAmount, address liquidator, bool receiveAToken)
Paused
event Paused()
RebalanceStableBorrowRate
event RebalanceStableBorrowRate(address indexed reserve, address indexed user)
Repay
event Repay(address indexed reserve, address indexed user, address indexed repayer, uint256 amount)
ReserveDataUpdated
event ReserveDataUpdated(address indexed reserve, uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate, uint256 liquidityIndex, uint256 variableBorrowIndex)
ReserveUsedAsCollateralDisabled
event ReserveUsedAsCollateralDisabled(address indexed reserve, address indexed user)
ReserveUsedAsCollateralEnabled
event ReserveUsedAsCollateralEnabled(address indexed reserve, address indexed user)
Swap
event Swap(address indexed reserve, address indexed user, uint256 rateMode)
Unpaused
event Unpaused()
Withdraw
event Withdraw(address indexed reserve, address indexed user, address indexed to, uint256 amount)
errors
PoolDisabled
error PoolDisabled()
creation bytecode
0x6080604052600080553480156200001557600080fd5b506200002062000026565b620000b5565b60015460ff16156200008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154610100900460ff16620000b35760016000556001805461ff0019166101001790555b565b614d4480620000c56000396000f3fe608060405234801561001057600080fd5b50600436106101635760003560e01c8063bedb86fb116100c9578063bedb86fb14610409578063bf86d6901461041c578063bf92857c1461042c578063bfd7d1e21461046c578063c44b11f71461047f578063c4d66de8146104c1578063cd112382146104d4578063d15e0053146104e7578063d1946dbc146104fa578063d5ed39331461050f578063e82fec2f14610522578063e8eda9df1461052a578063f8119d511461053d578063fe65acfe1461054557600080fd5b8062a718a9146101685780631d2118f91461017d57806335ea6a7514610190578063386497fd146102f35780634417a583146103145780635a3b74b9146103655780635c975abb1461037857806369328dec1461038f5780637a708e92146103a25780638afaff02146103b557806394ba89a2146103bd5780639b93c039146103d0578063a415bcad146103e3578063b8d29276146103f6575b600080fd5b61017b61017636600461424e565b61055e565b005b61017b61018b3660046142b6565b6107ce565b6102dd61019e3660046142ef565b604080516101a08101825260006101808201818152825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152506001600160a01b0390811660009081526035602090815260409182902082516101a08101845281546101808201908152815260018201546001600160801b0380821694830194909452600160801b908190048416948201949094526002820154808416606083015284900483166080820152600382015492831660a08201529290910464ffffffffff1660c08301526004810154831660e0830152600581015483166101008301526006810154831661012083015260070154918216610140820152600160a01b90910460ff1661016082015290565b6040516102ea9190614326565b60405180910390f35b6103066103013660046142ef565b610807565b6040519081526020016102ea565b6103566103223660046142ef565b60408051602080820183526000918290526001600160a01b0393909316815260368352819020815192830190915254815290565b604051905181526020016102ea565b61017b61037336600461440c565b61082e565b60395460ff165b60405190151581526020016102ea565b61030661039d36600461443a565b6109fe565b61017b6103b036600461447c565b610d53565b610306600181565b61017b6103cb3660046144df565b610e31565b61017b6103de36600461450b565b611189565b61017b6103f136600461453b565b611283565b61017b6104043660046144df565b611303565b61017b61041736600461457a565b611327565b603954610100900460ff1661037f565b61043f61043a3660046142ef565b6113a0565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016102ea565b61030661047a366004614597565b61148d565b61035661048d3660046142ef565b60408051602080820183526000918290526001600160a01b0393909316815260358352819020815192830190915254815290565b61017b6104cf3660046142ef565b6117c1565b61017b6104e23660046142b6565b6118a2565b6103066104f53660046142ef565b611b02565b610502611b23565b6040516102ea91906145ee565b61017b61051d36600461463b565b611bd0565b603a54610306565b61017b6105383660046146a0565b611de6565b603c54610306565b6034546001600160a01b03166040516102ea91906146f1565b6105666120ca565b61056e612107565b6034546040805163712d917160e01b815290516000926001600160a01b03169163712d91719160048083019260209291908290030181865afa1580156105b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dc9190614705565b90506000603460009054906101000a90046001600160a01b03166001600160a01b0316635afaf0186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190614705565b90506001600160a01b03811661066a5750335b6040516001600160a01b038881166024830152878116604483015286811660648301526084820186905284151560a483015282811660c4830152600091829185169060e40160408051601f198184030181529181526020820180516001600160e01b0316633c42879760e01b179052516106e4919061474e565b600060405180830381855af49150503d806000811461071f576040519150601f19603f3d011682016040523d82523d6000602084013e610724565b606091505b509150915081610767576040805180820182526002815261323360f01b6020820152905162461bcd60e51b815261075e919060040161476a565b60405180910390fd5b6000808280602001905181019061077e91906147b3565b91509150816000146107c1578060405160200161079b919061474e565b60408051601f198184030181529082905262461bcd60e51b825261075e9160040161476a565b5050505050505050505050565b6107d6612130565b6001600160a01b03918216600090815260356020526040902060070180546001600160a01b03191691909216179055565b6001600160a01b0381166000908152603560205260408120610828906121db565b92915050565b6108366120ca565b61083e612107565b6001600160a01b03808316600090815260356020818152604080842033855260368352938190206038546034548351631f94a27560e31b8152935196977389407d8034cb9c43854a85ae5588d0b11174e71b97635fa297e5978a978d978d9792969295603795939493169263fca513a8926004808401939192918290030181865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190614705565b6040516001600160e01b031960e08b901b16815260048101989098526001600160a01b03968716602489015294151560448801526064870193909352608486019190915260a485015260c48401521660e48201526101040160006040518083038186803b15801561096557600080fd5b505af4158015610979573d6000803e3d6000fd5b5050505060078101543360009081526036602052604090206109a591600160a01b900460ff168461224d565b81156109d45760405133906001600160a01b03851690600080516020614cef83398151915290600090a3505050565b60405133906001600160a01b03851690600080516020614ccf83398151915290600090a35b505050565b6000610a086120ca565b603954610100900460ff1615610a2a57610a2233836122d9565b506000610d4c565b6001600160a01b0380851660009081526035602052604080822060048082015492516370a0823160e01b8152919492909216929183916370a0823191610a72913391016146f1565b602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab3919061486c565b905085600019811415610ac35750805b7389407d8034cb9c43854a85ae5588d0b11174e71b63d09db04a898385603560366000336001600160a01b03166001600160a01b031681526020019081526020016000206037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b839190614705565b60405160e08a901b6001600160e01b03191681526001600160a01b039889166004820152602481019790975260448701959095526064860193909352608485019190915260a484015260c483015290911660e48201526101040160006040518083038186803b158015610bf557600080fd5b505af4158015610c09573d6000803e3d6000fd5b50505050610c16846124a1565b610c2484898560008561255f565b81811415610c7c576007840154336000908152603660205260408120610c57929091600160a01b90910460ff169061224d565b60405133906001600160a01b038a1690600080516020614ccf83398151915290600090a35b6001840154604051636b81068560e11b81526001600160a01b0385169163d7020d0a91610cbd9133918b9187916001600160801b0390911690600401614885565b600060405180830381600087803b158015610cd757600080fd5b505af1158015610ceb573d6000803e3d6000fd5b50505050856001600160a01b0316336001600160a01b0316896001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610d3e91815260200190565b60405180910390a493505050505b9392505050565b610d5b612130565b6001600160a01b0385163b610d9a57604080518082018252600281526106e760f31b6020820152905162461bcd60e51b815261075e919060040161476a565b6001600160a01b038516600090815260356020526040908190209051630acce25f60e21b815273a6413dc5143a7d75f726b66a73da65bff2e58c5891632b33897c91610df1919088908890889088906004016148b6565b60006040518083038186803b158015610e0957600080fd5b505af4158015610e1d573d6000803e3d6000fd5b50505050610e2a85612924565b5050505050565b610e396120ca565b610e41612107565b6001600160a01b03821660009081526035602052604081209080610e653384612a32565b915091506000846002811115610e7d57610e7d6148e4565b3360009081526036602052604090819020905163a8695b1d60e01b81529192507389407d8034cb9c43854a85ae5588d0b11174e71b9163a8695b1d91610ece9188919088908890889060040161491c565b60006040518083038186803b158015610ee657600080fd5b505af4158015610efa573d6000803e3d6000fd5b50505050610f07846124a1565b6001816002811115610f1b57610f1b6148e4565b141561101c576005840154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610f559033908790600401614950565b600060405180830381600087803b158015610f6f57600080fd5b505af1158015610f83573d6000803e3d6000fd5b505050506006840154600185015460405163b3f1c93d60e01b81526001600160a01b039092169163b3f1c93d91610fd391339182918991600160801b90046001600160801b031690600401614885565b6020604051808303816000875af1158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190614969565b50611123565b60068401546001850154604051637a94c56560e11b81526001600160a01b039092169163f5298aca916110679133918791600160801b9091046001600160801b031690600401614986565b600060405180830381600087803b15801561108157600080fd5b505af1158015611095573d6000803e3d6000fd5b505050506005840154600385015460405163b3f1c93d60e01b81526001600160a01b039092169163b3f1c93d916110de913391829188916001600160801b031690600401614885565b6020604051808303816000875af11580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111219190614969565b505b600484015461114190859088906001600160a01b031660008061255f565b60405185815233906001600160a01b038816907fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca69060200160405180910390a3505050505050565b611191612130565b603954610100900460ff16156111a45750565b6039805461ff00191661010017905560345460408051632f407ca360e11b815290516000926001600160a01b031691635e80f9469160048083019260209291908290030181865afa1580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112219190614705565b604051638f1dd80960e01b8152600481018490529091506001600160a01b03821690638f1dd80990602401600060405180830381600087803b15801561126657600080fd5b505af115801561127a573d6000803e3d6000fd5b50505050505b50565b61128b6120ca565b611293612107565b6001600160a01b038086166000818152603560209081526040918290208251610100810184529384523391840191909152848416918301919091526060820187905260808201869052600481015490921660a082015261ffff841660c0820152600160e082015261127a90612b28565b61130b612130565b6001600160a01b03909116600090815260356020526040902055565b61132f612130565b6039805460ff191682151590811790915560ff1615611374576040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a150565b6040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a150565b60008060008060008061146a876035603660008b6001600160a01b03166001600160a01b031681526020019081526020016000206040518060200160405290816000820154815250506037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190614705565b6130f2565b93995091975090945092509050611482868684613640565b935091939550919395565b60006114976120ca565b61149f612107565b6001600160a01b038516600090815260356020526040812090806114c38584612a32565b60405163fa0c214960e01b815291935091507389407d8034cb9c43854a85ae5588d0b11174e71b9063fa0c2149906115099086908b908b908b90899089906004016149b0565b60006040518083038186803b15801561152157600080fd5b505af4158015611535573d6000803e3d6000fd5b5060009250600191506115459050565b876002811115611557576115576148e4565b146115625781611564565b825b9050808810156115715750865b61157a846124a1565b600187600281111561158e5761158e6148e4565b14156115ff576005840154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906115c89089908590600401614950565b600060405180830381600087803b1580156115e257600080fd5b505af11580156115f6573d6000803e3d6000fd5b5050505061167d565b60068401546001850154604051637a94c56560e11b81526001600160a01b039092169163f5298aca9161164a918a918691600160801b9091046001600160801b031690600401614986565b600060405180830381600087803b15801561166457600080fd5b505af1158015611678573d6000803e3d6000fd5b505050505b60048401546001600160a01b0316611699858b8385600061255f565b816116a48486614a07565b6116ae9190614a1f565b6116e65760078501546001600160a01b03881660009081526036602052604081206116e6929091600160a01b90910460ff1690613674565b6116fb6001600160a01b038b163383856136d9565b6040516388dd91a160e01b81526001600160a01b038216906388dd91a1906117299033908690600401614950565b600060405180830381600087803b15801561174357600080fd5b505af1158015611757573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b03168b6001600160a01b03167f4cdde6e09bb755c9a5589ebaec640bbfedff1362d4b255ebf8339782b9942faa856040516117aa91815260200190565b60405180910390a45093505050505b949350505050565b6001805460ff16158080156117e957506000548211806117e95750600154610100900460ff16155b61184c5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b606482015260840161075e565b8015611867576001805461ffff191661010117905560008290555b603480546001600160a01b0319166001600160a01b0385161790556109c4603a556004603c5580156109f9576001805460ff19169055505050565b6118aa6120ca565b6118b2612107565b6001600160a01b038083166000908152603560205260408082206005810154600682015460048084015494516370a0823160e01b81529396928316959183169490921692909185916370a082319161190c918a91016146f1565b602060405180830381865afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d919061486c565b60405163548cad0960e01b81529091507389407d8034cb9c43854a85ae5588d0b11174e71b9063548cad099061198f9088908b908990899089906004016148b6565b60006040518083038186803b1580156119a757600080fd5b505af41580156119bb573d6000803e3d6000fd5b505050506119c8856124a1565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac906119f69089908590600401614950565b600060405180830381600087803b158015611a1057600080fd5b505af1158015611a24573d6000803e3d6000fd5b505050600386015460405163b3f1c93d60e01b81526001600160a01b038716925063b3f1c93d91611a67918a91829187916001600160801b031690600401614885565b6020604051808303816000875af1158015611a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaa9190614969565b50611ab985888460008061255f565b856001600160a01b0316876001600160a01b03167f9f439ae0c81e41a04d3fdfe07aed54e6a179fb0db15be7702eb66fa8ef6f530060405160405180910390a350505050505050565b6001600160a01b038116600090815260356020526040812061082890613739565b6060600060385467ffffffffffffffff811115611b4257611b4261479d565b604051908082528060200260200182016040528015611b6b578160200160208202803683370190505b50905060005b603854811015611bca5760008181526037602052604090205482516001600160a01b0390911690839083908110611baa57611baa614a36565b6001600160a01b0390921660209283029190910190910152600101611b71565b50919050565b611bd86120ca565b611be0612107565b6001600160a01b03868116600090815260356020526040902060040154163314611c34576040805180820182526002815261363360f01b6020820152905162461bcd60e51b815261075e919060040161476a565b611ce085603560366000896001600160a01b03166001600160a01b031681526020019081526020016000206037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdb9190614705565b613795565b6001600160a01b03868116600090815260356020526040902060070154600160a01b900460ff169085811690871614611ddd57611d1d8484614a1f565b611d77576001600160a01b038616600090815260366020526040812090611d47908290849061224d565b866001600160a01b0316886001600160a01b0316600080516020614ccf83398151915260405160405180910390a3505b81158015611d8457508315155b15611ddd576001600160a01b0385166000908152603660205260409020611dad8183600161224d565b856001600160a01b0316886001600160a01b0316600080516020614cef83398151915260405160405180910390a3505b50505050505050565b611dee6120ca565b611df6612107565b6001600160a01b038416600090815260356020526040908190209051630eca322b60e01b815260048101829052602481018590527389407d8034cb9c43854a85ae5588d0b11174e71b90630eca322b9060440160006040518083038186803b158015611e6157600080fd5b505af4158015611e75573d6000803e3d6000fd5b5050505060048101546001600160a01b0316611e90826124a1565b611e9e82878388600061255f565b611eb36001600160a01b0387163383886136d9565b6040516370a0823160e01b81526001600160a01b038216906370a0823190611edf9087906004016146f1565b602060405180830381865afa158015611efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f20919061486c565b611f855760078201546001600160a01b0385166000908152603660205260409020611f5691600160a01b900460ff16600161224d565b836001600160a01b0316866001600160a01b0316600080516020614cef83398151915260405160405180910390a35b604051638d42e7b960e01b815260048101839052602481018690527389407d8034cb9c43854a85ae5588d0b11174e71b90638d42e7b99060440160006040518083038186803b158015611fd757600080fd5b505af4158015611feb573d6000803e3d6000fd5b505050506001820154604051630ab714fb60e11b81526001600160a01b0383169163156e29f69161202c9188918a916001600160801b031690600401614986565b6020604051808303816000875af115801561204b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206f9190614969565b508261ffff16846001600160a01b0316876001600160a01b03167fde6857219544bb5b7746f48ed30be6386fefc61b2f864cacf559893bf50fd95133896040516120ba929190614950565b60405180910390a4505050505050565b60395460ff16156121055760408051808201825260028152610d8d60f21b6020820152905162461bcd60e51b815261075e919060040161476a565b565b603954610100900460ff1615612105576040516306756ca560e21b815260040160405180910390fd5b603454604080516385c858b160e01b8152905133926001600160a01b0316916385c858b19160048083019260209291908290030181865afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d9190614705565b6001600160a01b031614612105576040805180820182526002815261323760f01b6020820152905162461bcd60e51b815261075e919060040161476a565b600381015460009064ffffffffff600160801b909104811690421681141561221657505060010154600160801b90046001600160801b031690565b600183015460028401546000916117b9916001600160801b03600160801b9283900481169261224792041685613801565b9061380e565b604080518082019091526002815261373760f01b6020820152608083106122875760405162461bcd60e51b815260040161075e919061476a565b50612293826002614a4c565b61229e906001614a07565b816122aa5760006122ad565b60015b60ff16901b6122bd836002614a4c565b6122c8906001614a07565b8454600190911b1916179092555050565b600060385467ffffffffffffffff8111156122f6576122f661479d565b60405190808252806020026020018201604052801561231f578160200160208202803683370190505b50905060005b6038548110156123865760008181526037602052604090205482516001600160a01b039091169083908390811061235e5761235e614a36565b6001600160a01b039092166020928302919091019091015261237f81614a6b565b9050612325565b50600060405180608001604052806000815260200160008152602001838152602001603460009054906101000a90046001600160a01b03166001600160a01b0316635e80f9466040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241f9190614705565b6001600160a01b0316905260405163330c8dcf60e01b8152909150736bc8594327f606be004ae6770370f42b8b01499d9063330c8dcf9061246b90879087908690603590600401614a86565b60006040518083038186803b15801561248357600080fd5b505af4158015612497573d6000803e3d6000fd5b5050505050505050565b60068101546040805163b1bf962d60e01b815290516000926001600160a01b03169163b1bf962d9160048083019260209291908290030181865afa1580156124ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612511919061486c565b60018301546003840154919250600160801b8082046001600160801b03908116939216910464ffffffffff1660008061254d87878688876138c7565b91509150611ddd878787858588613a24565b6125b060405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60058601546001600160a01b031680825260408051637b98f4df60e11b8152815163f731e9be926004808401939192918290030181865afa1580156125f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261d9190614b2a565b60c083015260408083019190915260018701546006880154825163b1bf962d60e01b815292516126b393600160801b9093046001600160801b0316926001600160a01b039092169163b1bf962d9160048083019260209291908290030181865afa15801561268f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612247919061486c565b60e082018190526007870154604083015160c08401516001600160a01b03909216926329db497d92899289928992899291906126f78f5461ffff60409190911c1690565b6040516001600160e01b031960e08b901b1681526001600160a01b03988916600482015297909616602488015260448701949094526064860192909252608485015260a484015260c483015260e482015261010401606060405180830381865afa158015612769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278d9190614b4e565b60a0840152608083015260608201819052604080518082019091526002815261353360f01b6020820152906001600160801b0310156127df5760405162461bcd60e51b815260040161075e919061476a565b506080810151604080518082019091526002815261353560f01b6020820152906001600160801b0310156128265760405162461bcd60e51b815260040161075e919061476a565b5060a08101516040805180820190915260028152610d4d60f21b6020820152906001600160801b03101561286d5760405162461bcd60e51b815260040161075e919061476a565b5060608181015160808084015160038a0180546001600160801b0319166001600160801b038084169190911790915560a080870151828616600160801b82851681029190911760028f015560018e015460408051988952602089019690965294870191909152838316968601969096529490910416908201526001600160a01b038716917f804c9b842b2748a22bb64b345453a3de7ca54a6ca45ce00d415894979e22897a910160405180910390a2505050505050565b603854603c54811115612961576040805180820182526002815261363560f01b6020820152905162461bcd60e51b815261075e919060040161476a565b6001600160a01b038216600090815260356020526040812060070154600160a01b900460ff161515806129c957506000805260376020527fa0a618d80eda9243166be83cb7421d97e9dab6ddddd3c70ac7a6b4440256e8e7546001600160a01b038481169116145b9050806109f9576001600160a01b0383166000818152603560209081526040808320600701805460ff60a01b1916600160a01b60ff8916021790558583526037909152902080546001600160a01b0319169091179055612a2a826001614a07565b603855505050565b60058101546040516370a0823160e01b815260009182916001600160a01b03909116906370a0823190612a699087906004016146f1565b602060405180830381865afa158015612a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aaa919061486c565b60068401546040516370a0823160e01b81526001600160a01b03909116906370a0823190612adc9088906004016146f1565b602060405180830381865afa158015612af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1d919061486c565b915091509250929050565b80516001600160a01b0390811660009081526035602090815260408083208186015185168452603683528184206034548351631f94a27560e31b81529351929691959491169263fca513a892600480830193928290030181865afa158015612b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb89190614705565b835490915060009060301c60ff16612bd190600a614c60565b6060860151865160405163b3596f0760e01b81526001600160a01b0386169163b3596f0791612c0391906004016146f1565b602060405180830381865afa158015612c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c44919061486c565b612c4e9190614a4c565b612c589190614c6c565b8551604080880151606089015160808a0151603a54603854945163721a92f960e01b81526001600160a01b039687166004820152602481018c9052938616604485015260648401929092526084830186905260a483015260c4820152603560e4820152610104810187905260376101248201526101448101919091529084166101648201529091507389407d8034cb9c43854a85ae5588d0b11174e71b9063721a92f9906101840160006040518083038186803b158015612d1857600080fd5b505af4158015612d2c573d6000803e3d6000fd5b50505050612d39846124a1565b6060850151604051635f9e3b6b60e01b81527389407d8034cb9c43854a85ae5588d0b11174e71b91635f9e3b6b91612d7e918891600401918252602082015260400190565b60006040518083038186803b158015612d9657600080fd5b505af4158015612daa573d6000803e3d6000fd5b50600092508291506001905087608001516002811115612dcc57612dcc6148e4565b6002811115612ddd57612ddd6148e4565b1415612e92576003860154600587015460208901516040808b015160608c0151915163b3f1c93d60e01b81526001600160a01b039384166004820152908316602482015260448101919091526001600160801b03909316606484018190529450169063b3f1c93d906084016020604051808303816000875af1158015612e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8b9190614969565b9050612f32565b600686015460208801516040808a015160608b015160018b0154925163b3f1c93d60e01b81526001600160a01b039095169463b3f1c93d94612eec9490939291600160801b9091046001600160801b031690600401614885565b6020604051808303816000875af1158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614969565b90505b8015612f54576007860154612f54908690600160a01b900460ff166001613674565b612f8387600001518860a0015160008a60e00151612f73576000612f79565b8a606001515b8a9392919061255f565b8660e001511561300c578660a001516001600160a01b0316634efecaa5886020015189606001516040518363ffffffff1660e01b8152600401612fc7929190614950565b6020604051808303816000875af1158015612fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300a919061486c565b505b8660c0015161ffff1687604001516001600160a01b031688600001516001600160a01b03167fc6a898309e823ee50bac64e45ca8adba6690e99e7841c45d754e2a38e9019d9b8a602001518b606001518c6080015160016002811115613074576130746148e4565b8e60800151600281111561308a5761308a6148e4565b600281111561309b5761309b6148e4565b146130ba5760028d0154600160801b90046001600160801b03166130bc565b885b604080516001600160a01b039095168552602085019390935291830152606082015260800160405180910390a450505050505050565b6000806000806000613197604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b89516131b6576000806000806000199550955095509550955050613632565b600060e08201525b878160e0015110156135915760e08101516131da908b90613c39565b6131e357613579565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d90529020613240815461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b506080860181905260c08601929092525060a084019190915261326490600a614c60565b60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f079161329a91906004016146f1565b602060405180830381865afa1580156132b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132db919061486c565b825260c0820151158015906132fb575060e08201516132fb908c90613c94565b15613410578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040161334391906146f1565b602060405180830381865afa158015613360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613384919061486c565b60408301819052602083015183516000926133a992916133a391613cfa565b90613d06565b6101208401519091506133bc9082613d12565b61012084015260a08301516133e2906133d6908390613cfa565b61016085015190613d12565b61016084015260c0830151613408906133fc908390613cfa565b61018085015190613d12565b610180840152505b60e0820151613420908c90613d1e565b15613577578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040161346891906146f1565b602060405180830381865afa158015613485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a9919061486c565b8260600181815250506135448160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016134f891906146f1565b602060405180830381865afa158015613515573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613539919061486c565b606084015190613d12565b60608301819052602083015183516135709261356492916133a391613cfa565b61014084015190613d12565b6101408301525b505b60e0810180519061358982614a6b565b9052506131be565b6000816101200151116135a55760006135ba565b6101208101516101608201516135ba91613d06565b6101608201526101208101516135d15760006135e6565b6101208101516101808201516135e691613d06565b610180820181905261012082015161014083015161360392613d69565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b60008061364d8584613d8d565b905083811015613661576000915050610d4c565b61366b8185613e16565b95945050505050565b604080518082019091526002815261373760f01b6020820152608083106136ae5760405162461bcd60e51b815260040161075e919061476a565b506136ba826002614a4c565b816136c65760006136c9565b60015b60ff16901b6122c8836002614a4c565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052613733908590613e22565b50505050565b600381015460009064ffffffffff600160801b909104811690421681141561376d575050600101546001600160801b031690565b600183015460028401546000916117b9916001600160801b0391821691612247911685613ef7565b6040805160208101909152845481526000906137b790889088908787876130f2565b945050505050670de0b6b3a7640000811015604051806040016040528060018152602001601b60f91b815250906124975760405162461bcd60e51b815260040161075e919061476a565b6000610d4c838342613f3b565b600082158061381b575081155b1561382857506000610828565b8161383f6002676765c793fa10079d601b1b614c6c565b61384b90600019614a1f565b6138559190614c6c565b83111560405180604001604052806002815260200161068760f31b815250906138915760405162461bcd60e51b815260040161075e919061476a565b50676765c793fa10079d601b1b6138a9600282614c6c565b6138b38486614a4c565b6138bd9190614a07565b610d4c9190614c6c565b600285015460009081906001600160801b0316858582156139f55760006138ee8488613ef7565b90506138fa818a61380e565b604080518082019091526002815261353160f01b60208201529093506001600160801b0384111561393e5760405162461bcd60e51b815260040161075e919061476a565b5060018b0180546001600160801b0319166001600160801b03851617905589156139f35760028b015460009061398490600160801b90046001600160801b031689613801565b9050613990818a61380e565b6040805180820190915260028152611a9960f11b60208201529093506001600160801b038411156139d45760405162461bcd60e51b815260040161075e919061476a565b505060018b0180546001600160801b03808516600160801b0291161790555b505b600399909901805464ffffffffff60801b1916600160801b4264ffffffffff1602179055989650505050505050565b613a8860405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff1681525090565b865460401c61ffff166101208201819052613aa3575061127a565b8660050160009054906101000a90046001600160a01b03166001600160a01b031663797743386040518163ffffffff1660e01b8152600401608060405180830381865afa158015613af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1c9190614c8e565b64ffffffffff1661014085015260a084015282526020820152613b3f868661380e565b6080820152613b4e868461380e565b606082015260a0810151610140820151613b70919064ffffffffff8516613f3b565b60c082018190526020820151613b859161380e565b60408201819052608082015182516060840151613bb09392613baa9290918391613d12565b90613e16565b60e08201819052610120820151613bc79190613d8d565b610100820181905215611ddd57600487810154610100830151604051637df5bd3b60e01b815292830152602482018690526001600160a01b031690637df5bd3b90604401600060405180830381600087803b158015613c2557600080fd5b505af11580156107c1573d6000803e3d6000fd5b60006080821060405180604001604052806002815260200161373760f01b81525090613c785760405162461bcd60e51b815260040161075e919061476a565b50613c84826002614a4c565b925190921c600316151592915050565b60006080821060405180604001604052806002815260200161373760f01b81525090613cd35760405162461bcd60e51b815260040161075e919061476a565b50613cdf826002614a4c565b613cea906001614a07565b925190921c600116151592915050565b6000610d4c8284614a4c565b6000610d4c8284614c6c565b6000610d4c8284614a07565b60006080821060405180604001604052806002815260200161373760f01b81525090613d5d5760405162461bcd60e51b815260040161075e919061476a565b50613cea826002614a4c565b600082613d795750600019610d4c565b6117b983613d878685613d8d565b9061403d565b6000821580613d9a575081155b15613da757506000610828565b81613db56002612710614c6c565b613dc190600019614a1f565b613dcb9190614c6c565b83111560405180604001604052806002815260200161068760f31b81525090613e075760405162461bcd60e51b815260040161075e919061476a565b506127106138a9600282614c6c565b6000610d4c8284614a1f565b6000613e77826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661410b9092919063ffffffff16565b9050805160001480613e98575080806020019051810190613e989190614969565b6109f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161075e565b600080613f0b4264ffffffffff8516613e16565b90506117b9676765c793fa10079d601b1b6301e13380613f2b8785613cfa565b613f359190614c6c565b90613d12565b600080613f4f8364ffffffffff8616613e16565b905080613f6a57676765c793fa10079d601b1b915050610d4c565b6000613f77600183614a1f565b9050600060028311613f8a576000613f95565b613f95600284614a1f565b90506000613fa76301e1338089614c6c565b90506000613fb5828061380e565b90506000613fc3828461380e565b905060006002613fdd84613fd78a8a613cfa565b90613cfa565b613fe79190614c6c565b905060006006613ffd84613fd789818d8d613cfa565b6140079190614c6c565b905061402d81613f35848161401c8a8e613cfa565b676765c793fa10079d601b1b613f35565b9c9b505050505050505050505050565b604080518082019091526002815261035360f41b6020820152600090826140775760405162461bcd60e51b815260040161075e919061476a565b506000614085600284614c6c565b9050670de0b6b3a764000061409c82600019614a1f565b6140a69190614c6c565b84111560405180604001604052806002815260200161068760f31b815250906140e25760405162461bcd60e51b815260040161075e919061476a565b5082816140f7670de0b6b3a764000087614a4c565b6141019190614a07565b6117b99190614c6c565b60606117b9848460008585600080866001600160a01b03168587604051614132919061474e565b60006040518083038185875af1925050503d806000811461416f576040519150601f19603f3d011682016040523d82523d6000602084013e614174565b606091505b509150915061418587838387614190565b979650505050505050565b606083156141fc5782516141f5576001600160a01b0385163b6141f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161075e565b50816117b9565b6117b983838151156142115781518083602001fd5b8060405162461bcd60e51b815260040161075e919061476a565b6001600160a01b038116811461128057600080fd5b801515811461128057600080fd5b600080600080600060a0868803121561426657600080fd5b85356142718161422b565b945060208601356142818161422b565b935060408601356142918161422b565b92506060860135915060808601356142a881614240565b809150509295509295909350565b600080604083850312156142c957600080fd5b82356142d48161422b565b915060208301356142e48161422b565b809150509250929050565b60006020828403121561430157600080fd5b8135610d4c8161422b565b6001600160801b03169052565b6001600160a01b03169052565b815151815261018081016020830151614342602084018261430c565b506040830151614355604084018261430c565b506060830151614368606084018261430c565b50608083015161437b608084018261430c565b5060a083015161438e60a084018261430c565b5060c08301516143a760c084018264ffffffffff169052565b5060e08301516143ba60e0840182614319565b50610100808401516143ce82850182614319565b5050610120808401516143e382850182614319565b5050610140808401516143f882850182614319565b50506101609283015160ff16919092015290565b6000806040838503121561441f57600080fd5b823561442a8161422b565b915060208301356142e481614240565b60008060006060848603121561444f57600080fd5b833561445a8161422b565b92506020840135915060408401356144718161422b565b809150509250925092565b600080600080600060a0868803121561449457600080fd5b853561449f8161422b565b945060208601356144af8161422b565b935060408601356144bf8161422b565b925060608601356144cf8161422b565b915060808601356142a88161422b565b600080604083850312156144f257600080fd5b82356144fd8161422b565b946020939093013593505050565b60006020828403121561451d57600080fd5b5035919050565b803561ffff8116811461453657600080fd5b919050565b600080600080600060a0868803121561455357600080fd5b853561455e8161422b565b945060208601359350604086013592506144cf60608701614524565b60006020828403121561458c57600080fd5b8135610d4c81614240565b600080600080608085870312156145ad57600080fd5b84356145b88161422b565b9350602085013592506040850135600381106145d357600080fd5b915060608501356145e38161422b565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b8181101561462f5783516001600160a01b03168352928401929184019160010161460a565b50909695505050505050565b60008060008060008060c0878903121561465457600080fd5b863561465f8161422b565b9550602087013561466f8161422b565b9450604087013561467f8161422b565b959894975094956060810135955060808101359460a0909101359350915050565b600080600080608085870312156146b657600080fd5b84356146c18161422b565b93506020850135925060408501356146d88161422b565b91506146e660608601614524565b905092959194509250565b6001600160a01b0391909116815260200190565b60006020828403121561471757600080fd5b8151610d4c8161422b565b60005b8381101561473d578181015183820152602001614725565b838111156137335750506000910152565b60008251614760818460208701614722565b9190910192915050565b6020815260008251806020840152614789816040850160208701614722565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156147c657600080fd5b82519150602083015167ffffffffffffffff808211156147e557600080fd5b818501915085601f8301126147f957600080fd5b81518181111561480b5761480b61479d565b604051601f8201601f19908116603f011681019083821181831017156148335761483361479d565b8160405282815288602084870101111561484c57600080fd5b61485d836020830160208801614722565b80955050505050509250929050565b60006020828403121561487e57600080fd5b5051919050565b6001600160a01b03948516815292909316602083015260408201526001600160801b03909116606082015260800190565b9485526001600160a01b03938416602086015291831660408501528216606084015216608082015260a00190565b634e487b7160e01b600052602160045260246000fd5b6003811061491857634e487b7160e01b600052602160045260246000fd5b9052565b600060a08201905086825285602083015284604083015283606083015261494660808301846148fa565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561497b57600080fd5b8151610d4c81614240565b6001600160a01b0393909316835260208301919091526001600160801b0316604082015260600190565b8681526020810186905260c081016149cb60408301876148fa565b6001600160a01b03949094166060820152608081019290925260a0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614a1a57614a1a6149f1565b500190565b600082821015614a3157614a316149f1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615614a6657614a666149f1565b500290565b6000600019821415614a7f57614a7f6149f1565b5060010190565b600060018060a01b038087168352602081871681850152608060408501526101008401865160808601528187015160a08601526040870151608060c0870152818151808452610120880191508483019350600092505b80831015614afe57835186168252928401926001929092019190840190614adc565b5060608901519450614b1360e0880186614319565b809550505050505082606083015295945050505050565b60008060408385031215614b3d57600080fd5b505080516020909101519092909150565b600080600060608486031215614b6357600080fd5b8351925060208401519150604084015190509250925092565b600181815b80851115614bb7578160001904821115614b9d57614b9d6149f1565b80851615614baa57918102915b93841c9390800290614b81565b509250929050565b600082614bce57506001610828565b81614bdb57506000610828565b8160018114614bf15760028114614bfb57614c17565b6001915050610828565b60ff841115614c0c57614c0c6149f1565b50506001821b610828565b5060208310610133831016604e8410600b8410161715614c3a575081810a610828565b614c448383614b7c565b8060001904821115614c5857614c586149f1565b029392505050565b6000610d4c8383614bbf565b600082614c8957634e487b7160e01b600052601260045260246000fd5b500490565b60008060008060808587031215614ca457600080fd5b845193506020850151925060408501519150606085015164ffffffffff811681146145e357600080fdfe44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd00058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f2a264697066735822122096bdbbd0c93c19665845577e263ae43248491556f9969e62c2922959678b3c5c64736f6c634300080c0033