0 txs
0 calls
constructor
constructor()
functions
_borrowGuardianPaused
viewfunction _borrowGuardianPaused() view returns (bool)
_mintGuardianPaused
viewfunction _mintGuardianPaused() view returns (bool)
accountAssets
viewfunction accountAssets(address, uint256) view returns (address)
admin
viewfunction admin() view returns (address)
allMarkets
viewfunction allMarkets(uint256) view returns (address)
borrowCapGuardian
viewfunction borrowCapGuardian() view returns (address)
borrowCaps
viewfunction borrowCaps(address) view returns (uint256)
borrowGuardianPaused
viewfunction borrowGuardianPaused(address) view returns (bool)
checkMembership
viewfunction checkMembership(address account, address cToken) view returns (bool)
closeFactorMantissa
viewfunction closeFactorMantissa() view returns (uint256)
comptrollerImplementation
viewfunction comptrollerImplementation() view returns (address)
creditLimits
viewfunction creditLimits(address, address) view returns (uint256)
flashloanGuardianPaused
viewfunction flashloanGuardianPaused(address) view returns (bool)
getAccountLiquidity
viewfunction getAccountLiquidity(address account) view returns (uint256, uint256, uint256)
getAllMarkets
viewfunction getAllMarkets() view returns (address[])
getAssetsIn
viewfunction getAssetsIn(address account) view returns (address[])
getBlockNumber
viewfunction getBlockNumber() view returns (uint256)
getHypotheticalAccountLiquidity
viewfunction getHypotheticalAccountLiquidity(address account, address cTokenModify, uint256 redeemTokens, uint256 borrowAmount) view returns (uint256, uint256, uint256)
isComptroller
viewfunction isComptroller() view returns (bool)
isCreditAccount
viewfunction isCreditAccount(address account, address cToken) view returns (bool)
isMarketListed
viewfunction isMarketListed(address cTokenAddress) view returns (bool)
liquidateCalculateSeizeTokens
viewfunction liquidateCalculateSeizeTokens(address cTokenBorrowed, address cTokenCollateral, uint256 actualRepayAmount) view returns (uint256, uint256)
liquidationIncentiveMantissa
viewfunction liquidationIncentiveMantissa() view returns (uint256)
liquidityMining
viewfunction liquidityMining() view returns (address)
markets
viewfunction markets(address) view returns (bool isListed, uint256 collateralFactorMantissa, uint8 version)
mintGuardianPaused
viewfunction mintGuardianPaused(address) view returns (bool)
oracle
viewfunction oracle() view returns (address)
pauseGuardian
viewfunction pauseGuardian() view returns (address)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
pendingComptrollerImplementation
viewfunction pendingComptrollerImplementation() view returns (address)
seizeGuardianPaused
viewfunction seizeGuardianPaused() view returns (bool)
supplyCapGuardian
viewfunction supplyCapGuardian() view returns (address)
supplyCaps
viewfunction supplyCaps(address) view returns (uint256)
transferGuardianPaused
viewfunction transferGuardianPaused() view returns (bool)
_become
nonpayablefunction _become(address unitroller)
_delistMarket
nonpayablefunction _delistMarket(address cToken)
_setBorrowCapGuardian
nonpayablefunction _setBorrowCapGuardian(address newBorrowCapGuardian)
_setBorrowPaused
nonpayablefunction _setBorrowPaused(address cToken, bool state) returns (bool)
_setCloseFactor
nonpayablefunction _setCloseFactor(uint256 newCloseFactorMantissa) returns (uint256)
_setCollateralFactor
nonpayablefunction _setCollateralFactor(address cToken, uint256 newCollateralFactorMantissa) returns (uint256)
_setCreditLimit
nonpayablefunction _setCreditLimit(address protocol, address market, uint256 creditLimit)
_setFlashloanPaused
nonpayablefunction _setFlashloanPaused(address cToken, bool state) returns (bool)
_setLiquidationIncentive
nonpayablefunction _setLiquidationIncentive(uint256 newLiquidationIncentiveMantissa) returns (uint256)
_setLiquidityMining
nonpayablefunction _setLiquidityMining(address newLiquidityMining)
_setMarketBorrowCaps
nonpayablefunction _setMarketBorrowCaps(address[] cTokens, uint256[] newBorrowCaps)
_setMarketSupplyCaps
nonpayablefunction _setMarketSupplyCaps(address[] cTokens, uint256[] newSupplyCaps)
_setMintPaused
nonpayablefunction _setMintPaused(address cToken, bool state) returns (bool)
_setPauseGuardian
nonpayablefunction _setPauseGuardian(address newPauseGuardian) returns (uint256)
_setPriceOracle
nonpayablefunction _setPriceOracle(address newOracle) returns (uint256)
_setSeizePaused
nonpayablefunction _setSeizePaused(bool state) returns (bool)
_setSupplyCapGuardian
nonpayablefunction _setSupplyCapGuardian(address newSupplyCapGuardian)
_setTransferPaused
nonpayablefunction _setTransferPaused(bool state) returns (bool)
_supportMarket
nonpayablefunction _supportMarket(address cToken, uint8 version) returns (uint256)
borrowAllowed
nonpayablefunction borrowAllowed(address cToken, address borrower, uint256 borrowAmount) returns (uint256)
borrowVerify
nonpayablefunction borrowVerify(address cToken, address borrower, uint256 borrowAmount)
enterMarkets
nonpayablefunction enterMarkets(address[] cTokens) returns (uint256[])
exitMarket
nonpayablefunction exitMarket(address cTokenAddress) returns (uint256)
flashloanAllowed
nonpayablefunction flashloanAllowed(address cToken, address receiver, uint256 amount, bytes params)
liquidateBorrowAllowed
nonpayablefunction liquidateBorrowAllowed(address cTokenBorrowed, address cTokenCollateral, address liquidator, address borrower, uint256 repayAmount) returns (uint256)
liquidateBorrowVerify
nonpayablefunction liquidateBorrowVerify(address cTokenBorrowed, address cTokenCollateral, address liquidator, address borrower, uint256 actualRepayAmount, uint256 seizeTokens)
mintAllowed
nonpayablefunction mintAllowed(address cToken, address minter, uint256 mintAmount) returns (uint256)
mintVerify
nonpayablefunction mintVerify(address cToken, address minter, uint256 actualMintAmount, uint256 mintTokens)
redeemAllowed
nonpayablefunction redeemAllowed(address cToken, address redeemer, uint256 redeemTokens) returns (uint256)
redeemVerify
nonpayablefunction redeemVerify(address cToken, address redeemer, uint256 redeemAmount, uint256 redeemTokens)
repayBorrowAllowed
nonpayablefunction repayBorrowAllowed(address cToken, address payer, address borrower, uint256 repayAmount) returns (uint256)
repayBorrowVerify
nonpayablefunction repayBorrowVerify(address cToken, address payer, address borrower, uint256 actualRepayAmount, uint256 borrowerIndex)
seizeAllowed
nonpayablefunction seizeAllowed(address cTokenCollateral, address cTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
seizeVerify
nonpayablefunction seizeVerify(address cTokenCollateral, address cTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens)
transferAllowed
nonpayablefunction transferAllowed(address cToken, address src, address dst, uint256 transferTokens) returns (uint256)
transferVerify
nonpayablefunction transferVerify(address cToken, address src, address dst, uint256 transferTokens)
updateCTokenVersion
nonpayablefunction updateCTokenVersion(address cToken, uint8 newVersion)
events
ActionPaused
event ActionPaused(address cToken, string action, bool pauseState)
ActionPaused
event ActionPaused(string action, bool pauseState)
CreditLimitChanged
event CreditLimitChanged(address protocol, address market, uint256 creditLimit)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
MarketDelisted
event MarketDelisted(address cToken)
MarketEntered
event MarketEntered(address cToken, address account)
MarketExited
event MarketExited(address cToken, address account)
MarketListed
event MarketListed(address cToken)
NewBorrowCap
event NewBorrowCap(address indexed cToken, uint256 newBorrowCap)
NewBorrowCapGuardian
event NewBorrowCapGuardian(address oldBorrowCapGuardian, address newBorrowCapGuardian)
NewCloseFactor
event NewCloseFactor(uint256 oldCloseFactorMantissa, uint256 newCloseFactorMantissa)
NewCollateralFactor
event NewCollateralFactor(address cToken, uint256 oldCollateralFactorMantissa, uint256 newCollateralFactorMantissa)
NewCTokenVersion
event NewCTokenVersion(address cToken, uint8 oldVersion, uint8 newVersion)
NewLiquidationIncentive
event NewLiquidationIncentive(uint256 oldLiquidationIncentiveMantissa, uint256 newLiquidationIncentiveMantissa)
NewLiquidityMining
event NewLiquidityMining(address oldLiquidityMining, address newLiquidityMining)
NewPauseGuardian
event NewPauseGuardian(address oldPauseGuardian, address newPauseGuardian)
NewPriceOracle
event NewPriceOracle(address oldPriceOracle, address newPriceOracle)
NewSupplyCap
event NewSupplyCap(address indexed cToken, uint256 newSupplyCap)
NewSupplyCapGuardian
event NewSupplyCapGuardian(address oldSupplyCapGuardian, address newSupplyCapGuardian)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055614e97806100326000396000f3fe608060405234801561001057600080fd5b506004361061041c5760003560e01c80635fc7e71e1161022b578063bb82aa5e11610130578063dcfbc0c7116100b8578063ea5d010411610087578063ea5d01041461109e578063eabe7d91146110c4578063ede4edd0146110fa578063f349760014611120578063f851a440146111465761041c565b8063dcfbc0c71461105a578063e4028eee14611062578063e6653f3d1461108e578063e8755446146110965761041c565b8063d02f7351116100ff578063d02f735114610f56578063d672d3e214610f9c578063d84f6aeb14610fc2578063da3d454c14610ff8578063dce154491461102e5761041c565b8063bb82aa5e14610e22578063bdcdc25814610e2a578063c299823814610e66578063c488847b14610f075761041c565b80638e8f294b116101b3578063abfceffc11610182578063abfceffc14610ce0578063ac0b0bb714610d56578063b0772d0b14610d5e578063b1ab78e614610d66578063b1e1af2414610df45761041c565b80638e8f294b14610c2f5780638ebf636414610c8b578063929fe9a114610caa578063a979f0c514610cd85761041c565b80636d35bf91116101fa5780636d35bf9114610bab578063731f0c2b14610bf15780637dc0d1d014610c1757806385b2d53514610c1f57806387f7630314610c275761041c565b80635fc7e71e14610a45578063607ef6c114610a8b5780636a56947e14610b495780636d154ea514610b855761041c565b80633c94786f116103315780634ef4c3e1116102b957806352d84d1e1161028857806352d84d1e1461098057806355ee1fe11461099d5780635c778605146109c35780635ec88c79146109f95780635f5af1aa14610a1f5761041c565b80634ef4c3e1146108335780634fd42e171461086957806351a485e41461088657806351dff989146109445761041c565b806344e3de731161030057806344e3de731461073057806347ef3b3b1461075f5780634a584432146107ab5780634ada90af146107d15780634e79238f146107d95761041c565b80633c94786f146106be5780633d98a1e5146106c657806341c728b9146106ec57806342cbb15c146107285761041c565b806324a3d622116103b457806336bdd0871161038357806336bdd087146105e757806338b8f4c314610616578063391957d71461063c5780633b3af257146106625780633bcf7ec1146106905761041c565b806324a3d6221461059b57806326782247146105a35780632d70db78146105ab578063317b0b77146105ca5761041c565b80631d504dc6116103f05780631d504dc6146104d15780631ededc91146104f957806321af45691461053b57806324008a621461055f5761041c565b80627e3dd21461042157806302c3bcbb1461043d5780630445254d1461047557806318c882a5146104a3575b600080fd5b61042961114e565b604080519115158252519081900360200190f35b6104636004803603602081101561045357600080fd5b50356001600160a01b0316611153565b60408051918252519081900360200190f35b6104636004803603604081101561048b57600080fd5b506001600160a01b0381358116916020013516611165565b610429600480360360408110156104b957600080fd5b506001600160a01b0381351690602001351515611182565b6104f7600480360360208110156104e757600080fd5b50356001600160a01b0316611311565b005b6104f7600480360360a081101561050f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135611470565b610543611477565b604080516001600160a01b039092168252519081900360200190f35b6104636004803603608081101561057557600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611486565b6105436114ab565b6105436114ba565b610429600480360360208110156105c157600080fd5b503515156114c9565b610463600480360360208110156105e057600080fd5b5035611603565b610463600480360360408110156105fd57600080fd5b5080356001600160a01b0316906020013560ff16611676565b6104f76004803603602081101561062c57600080fd5b50356001600160a01b0316611861565b6104f76004803603602081101561065257600080fd5b50356001600160a01b031661190d565b6104296004803603604081101561067857600080fd5b506001600160a01b03813581169160200135166119b9565b610429600480360360408110156106a657600080fd5b506001600160a01b03813516906020013515156119e6565b610429611b70565b610429600480360360208110156106dc57600080fd5b50356001600160a01b0316611b80565b6104f76004803603608081101561070257600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611b9e565b610463611ba4565b6104f76004803603604081101561074657600080fd5b5080356001600160a01b0316906020013560ff16611ba9565b6104f7600480360360c081101561077557600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a00135611cb4565b610463600480360360208110156107c157600080fd5b50356001600160a01b0316611cbc565b610463611cce565b610815600480360360808110156107ef57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611cd4565b60408051938452602084019290925282820152519081900360600190f35b6104636004803603606081101561084957600080fd5b506001600160a01b03813581169160208101359091169060400135611d0e565b6104636004803603602081101561087f57600080fd5b503561202b565b6104f76004803603604081101561089c57600080fd5b810190602081018135600160201b8111156108b657600080fd5b8201836020820111156108c857600080fd5b803590602001918460208302840111600160201b831117156108e957600080fd5b919390929091602081019035600160201b81111561090657600080fd5b82018360208201111561091857600080fd5b803590602001918460208302840111600160201b8311171561093957600080fd5b509092509050612094565b6104f76004803603608081101561095a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612224565b6105436004803603602081101561099657600080fd5b5035612278565b610463600480360360208110156109b357600080fd5b50356001600160a01b031661229f565b6104f7600480360360608110156109d957600080fd5b506001600160a01b03813581169160208101359091169060400135612324565b61081560048036036020811015610a0f57600080fd5b50356001600160a01b0316612329565b61046360048036036020811015610a3557600080fd5b50356001600160a01b031661235e565b610463600480360360a0811015610a5b57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013590911690608001356123e2565b6104f760048036036040811015610aa157600080fd5b810190602081018135600160201b811115610abb57600080fd5b820183602082011115610acd57600080fd5b803590602001918460208302840111600160201b83111715610aee57600080fd5b919390929091602081019035600160201b811115610b0b57600080fd5b820183602082011115610b1d57600080fd5b803590602001918460208302840111600160201b83111715610b3e57600080fd5b50909250905061257d565b6104f760048036036080811015610b5f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611b9e565b61042960048036036020811015610b9b57600080fd5b50356001600160a01b0316612704565b6104f7600480360360a0811015610bc157600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135611470565b61042960048036036020811015610c0757600080fd5b50356001600160a01b0316612719565b61054361272e565b61054361273d565b61042961274c565b610c5560048036036020811015610c4557600080fd5b50356001600160a01b031661275c565b6040518084151515158152602001838152602001826002811115610c7557fe5b60ff168152602001935050505060405180910390f35b61042960048036036020811015610ca157600080fd5b50351515612782565b61042960048036036040811015610cc057600080fd5b506001600160a01b03813581169160200135166128bb565b6105436128ee565b610d0660048036036020811015610cf657600080fd5b50356001600160a01b03166128fd565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610d42578181015183820152602001610d2a565b505050509050019250505060405180910390f35b610429612986565b610d06612996565b6104f760048036036080811015610d7c57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b811115610db657600080fd5b820183602082011115610dc857600080fd5b803590602001918460018302840111600160201b83111715610de957600080fd5b5090925090506129f8565b61042960048036036040811015610e0a57600080fd5b506001600160a01b0381351690602001351515612a5c565b610543612beb565b61046360048036036080811015610e4057600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135612bfa565b610d0660048036036020811015610e7c57600080fd5b810190602081018135600160201b811115610e9657600080fd5b820183602082011115610ea857600080fd5b803590602001918460208302840111600160201b83111715610ec957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ca2945050505050565b610f3d60048036036060811015610f1d57600080fd5b506001600160a01b03813581169160208101359091169060400135612d39565b6040805192835260208301919091528051918290030190f35b610463600480360360a0811015610f6c57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135612f61565b61042960048036036020811015610fb257600080fd5b50356001600160a01b031661312e565b6104f760048036036060811015610fd857600080fd5b506001600160a01b03813581169160208101359091169060400135613143565b6104636004803603606081101561100e57600080fd5b506001600160a01b03813581169160208101359091169060400135613254565b6105436004803603604081101561104457600080fd5b506001600160a01b038135169060200135613589565b6105436135be565b6104636004803603604081101561107857600080fd5b506001600160a01b0381351690602001356135cd565b61042961377d565b61046361378d565b6104f7600480360360208110156110b457600080fd5b50356001600160a01b0316613793565b610463600480360360608110156110da57600080fd5b506001600160a01b038135811691602081013590911690604001356138ff565b6104636004803603602081101561111057600080fd5b50356001600160a01b031661390c565b6104f76004803603602081101561113657600080fd5b50356001600160a01b0316613cad565b610543613fc8565b600181565b60116020526000908152604090205481565b601260209081526000928352604080842090915290825290205481565b600061118d83611b80565b6111c85760405162461bcd60e51b8152600401808060200182810382526028815260200180614c796028913960400191505060405180910390fd5b6009546001600160a01b03163314806111eb57506000546001600160a01b031633145b6112265760405162461bcd60e51b8152600401808060200182810382526027815260200180614d246027913960400191505060405180910390fd5b6000546001600160a01b031633148061124157506001821515145b61128b576040805162461bcd60e51b81526020600482015260166024820152756f6e6c792061646d696e2063616e20756e706175736560501b604482015290519081900360640190fd5b6001600160a01b0383166000818152600b6020908152604091829020805486151560ff199091168117909155825193845283830152606090830181905260069083015265426f72726f7760d01b6080830152517f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09181900360a00190a150805b92915050565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b15801561134a57600080fd5b505afa15801561135e573d6000803e3d6000fd5b505050506040513d602081101561137457600080fd5b50516001600160a01b031633146113bc5760405162461bcd60e51b8152600401808060200182810382526027815260200180614e3c6027913960400191505060405180910390fd5b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113f757600080fd5b505af115801561140b573d6000803e3d6000fd5b505050506040513d602081101561142157600080fd5b50511561146d576040805162461bcd60e51b815260206004820152601560248201527418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b604482015290519081900360640190fd5b50565b5050505050565b600e546001600160a01b031681565b600061149185611b80565b61149d575060096114a3565b60005b90505b949350505050565b6009546001600160a01b031681565b6001546001600160a01b031681565b6009546000906001600160a01b03163314806114ef57506000546001600160a01b031633145b61152a5760405162461bcd60e51b8152600401808060200182810382526027815260200180614d246027913960400191505060405180910390fd5b6000546001600160a01b031633148061154557506001821515145b61158f576040805162461bcd60e51b81526020600482015260166024820152756f6e6c792061646d696e2063616e20756e706175736560501b604482015290519081900360640190fd5b60098054831515600160b81b810260ff60b81b1990921691909117909155604080516020810192909252808252600582820152645365697a6560d81b6060830152517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de09181900360800190a150805b919050565b600080546001600160a01b031633146116295761162260016004613fd7565b90506115fe565b6005805490839055604080518281526020810185905281517f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9929181900390910190a160005b9392505050565b600080546001600160a01b031633146116d6576040805162461bcd60e51b815260206004820152601d60248201527f6f6e6c792061646d696e206d617920737570706f7274206d61726b6574000000604482015290519081900360640190fd5b6116df83611b80565b15611729576040805162461bcd60e51b81526020600482015260156024820152741b585c9ad95d08185b1c9958591e481b1a5cdd1959605a1b604482015290519081900360640190fd5b826001600160a01b031663fe9c44ae6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176257600080fd5b505afa158015611776573d6000803e3d6000fd5b505050506040513d602081101561178c57600080fd5b50506040805160608101825260018152600060208201529081018360028111156117b257fe5b90526001600160a01b0384166000908152600860209081526040918290208351815490151560ff199182161782559184015160018083019190915592840151600382018054929491939092169083600281111561180b57fe5b021790555090505061181c8361403d565b604080516001600160a01b038516815290517fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f9181900360200190a160009392505050565b6000546001600160a01b031633146118aa5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d946026913960400191505060405180910390fd5b601080546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935281517fb0d3622c24ac9bd967d8f37a25808b3e668fe7ed4f3075bbe82842d3e287c044929181900390910190a15050565b6000546001600160a01b031633146119565760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4b6026913960400191505060405180910390fd5b600e80546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935281517feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29929181900390910190a15050565b6001600160a01b039182166000908152601260209081526040808320939094168252919091522054151590565b60006119f183611b80565b611a2c5760405162461bcd60e51b8152600401808060200182810382526028815260200180614c796028913960400191505060405180910390fd5b6009546001600160a01b0316331480611a4f57506000546001600160a01b031633145b611a8a5760405162461bcd60e51b8152600401808060200182810382526027815260200180614d246027913960400191505060405180910390fd5b6000546001600160a01b0316331480611aa557506001821515145b611aef576040805162461bcd60e51b81526020600482015260166024820152756f6e6c792061646d696e2063616e20756e706175736560501b604482015290519081900360640190fd5b6001600160a01b0383166000818152600a6020908152604091829020805486151560ff199091168117909155825193845283830152606090830181905260049083015263135a5b9d60e21b6080830152517f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09181900360a00190a150919050565b600954600160a01b900460ff1681565b6001600160a01b031660009081526008602052604090205460ff1690565b50505050565b435b90565b336001600160a01b03831614611bf05760405162461bcd60e51b8152600401808060200182810382526024815260200180614ca16024913960400191505060405180910390fd5b611bf982611b80565b15611cb0576001600160a01b0382166000908152600860205260409020600301805460ff811691839160ff19166001836002811115611c3457fe5b02179055507f98dee10aa964316ab03f317c320c9dafb4f29c7f9de510cb35196f727a4d2f0383828460405180846001600160a01b03166001600160a01b03168152602001836002811115611c8557fe5b60ff168152602001826002811115611c9957fe5b60ff168152602001935050505060405180910390a1505b5050565b505050505050565b600f6020526000908152604090205481565b60065481565b600080600080600080611ce98a8a8a8a61411b565b925092509250826011811115611cfb57fe5b95509093509150505b9450945094915050565b6001600160a01b0383166000908152600a602052604081205460ff1615611d6d576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d081a5cc81c185d5cd95960921b604482015290519081900360640190fd5b611d7783856119b9565b15611dc9576040805162461bcd60e51b815260206004820152601a60248201527f637265646974206163636f756e742063616e6e6f74206d696e74000000000000604482015290519081900360640190fd5b611dd284611b80565b611de05760095b905061166f565b6001600160a01b038416600090815260116020526040902054801561201f576000856001600160a01b0316633b1d21a26040518163ffffffff1660e01b815260040160206040518083038186803b158015611e3a57600080fd5b505afa158015611e4e573d6000803e3d6000fd5b505050506040513d6020811015611e6457600080fd5b5051604080516308f7a6e360e31b815290519192506000916001600160a01b038916916347bd3718916004808301926020929190829003018186803b158015611eac57600080fd5b505afa158015611ec0573d6000803e3d6000fd5b505050506040513d6020811015611ed657600080fd5b505160408051638f840ddd60e01b815290519192506000916001600160a01b038a1691638f840ddd916004808301926020929190829003018186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d6020811015611f4857600080fd5b50519050600080611f5a858585614553565b90925090506000826003811115611f6d57fe5b14611fb6576040805162461bcd60e51b81526020600482015260146024820152731d1bdd185b14dd5c1c1b1a595cc819985a5b195960621b604482015290519081900360640190fd5b6000611fc2828a61459f565b9050868110612018576040805162461bcd60e51b815260206004820152601960248201527f6d61726b657420737570706c7920636170207265616368656400000000000000604482015290519081900360640190fd5b5050505050505b60005b95945050505050565b600080546001600160a01b0316331461204a576116226001600b613fd7565b6006805490839055604080518281526020810185905281517faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec1316929181900390910190a1600061166f565b6000546001600160a01b03163314806120b757506010546001600160a01b031633145b6120f25760405162461bcd60e51b8152600401808060200182810382526035815260200180614cc56035913960400191505060405180910390fd5b8281811580159061210257508082145b612143576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b604482015290519081900360640190fd5b60005b8281101561221b5784848281811061215a57fe5b905060200201356011600089898581811061217157fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055508686828181106121b157fe5b905060200201356001600160a01b03166001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f88686848181106121f757fe5b905060200201356040518082815260200191505060405180910390a2600101612146565b50505050505050565b801580156122325750600082115b15611b9e576040805162461bcd60e51b815260206004820152601160248201527072656465656d546f6b656e73207a65726f60781b604482015290519081900360640190fd5b600d818154811061228557fe5b6000918252602090912001546001600160a01b0316905081565b600080546001600160a01b031633146122be5761162260016010613fd7565b600480546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e22929181900390910190a1600061166f565b505050565b60008060008060008061234087600080600061411b565b92509250925082601181111561235257fe5b97919650945092505050565b600080546001600160a01b0316331461237d5761162260016013613fd7565b600980546001600160a01b038481166001600160a01b0319831617928390556040805192821680845293909116602083015280517f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9281900390910190a1600061166f565b60006123ee83876119b9565b15612440576040805162461bcd60e51b815260206004820152601f60248201527f63616e6e6f74206c697175696461746520637265646974206163636f756e7400604482015290519081900360640190fd5b61244986611b80565b158061245b575061245985611b80565b155b1561246a5760095b9050612022565b600080612476856145d5565b9193509091506000905082601181111561248c57fe5b146124a65781601181111561249d57fe5b92505050612022565b806124b257600361249d565b6000886001600160a01b03166395dd9193876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561250a57600080fd5b505afa15801561251e573d6000803e3d6000fd5b505050506040513d602081101561253457600080fd5b50516040805160208101909152600554815290915060009061255690836145f5565b90508086111561256d576011945050505050612022565b5060009998505050505050505050565b6000546001600160a01b03163314806125a05750600e546001600160a01b031633145b6125db5760405162461bcd60e51b8152600401808060200182810382526035815260200180614de26035913960400191505060405180910390fd5b828181158015906125eb57508082145b61262c576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b604482015290519081900360640190fd5b60005b8281101561221b5784848281811061264357fe5b90506020020135600f600089898581811061265a57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000208190555086868281811061269a57fe5b905060200201356001600160a01b03166001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f68686848181106126e057fe5b905060200201356040518082815260200191505060405180910390a260010161262f565b600b6020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b6004546001600160a01b031681565b6013546001600160a01b031681565b600954600160b01b900460ff1681565b60086020526000908152604090208054600182015460039092015460ff91821692911683565b6009546000906001600160a01b03163314806127a857506000546001600160a01b031633145b6127e35760405162461bcd60e51b8152600401808060200182810382526027815260200180614d246027913960400191505060405180910390fd5b6000546001600160a01b03163314806127fe57506001821515145b612848576040805162461bcd60e51b81526020600482015260166024820152756f6e6c792061646d696e2063616e20756e706175736560501b604482015290519081900360640190fd5b60098054831515600160b01b810260ff60b01b1990921691909117909155604080516020810192909252808252600882820152672a3930b739b332b960c11b6060830152517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de09181900360800190a15090565b6001600160a01b038082166000908152600860209081526040808320938616835260029093019052205460ff1692915050565b6010546001600160a01b031681565b60608060076000846001600160a01b03166001600160a01b0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561297957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161295b575b5093979650505050505050565b600954600160b81b900460ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156129ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116129d0575b5050505050905090565b6001600160a01b0385166000908152600c602052604090205460ff1615611470576040805162461bcd60e51b8152602060048201526013602482015272199b185cda1b1bd85b881a5cc81c185d5cd959606a1b604482015290519081900360640190fd5b6000612a6783611b80565b612aa25760405162461bcd60e51b8152600401808060200182810382526028815260200180614c796028913960400191505060405180910390fd5b6009546001600160a01b0316331480612ac557506000546001600160a01b031633145b612b005760405162461bcd60e51b8152600401808060200182810382526027815260200180614d246027913960400191505060405180910390fd5b6000546001600160a01b0316331480612b1b57506001821515145b612b65576040805162461bcd60e51b81526020600482015260166024820152756f6e6c792061646d696e2063616e20756e706175736560501b604482015290519081900360640190fd5b6001600160a01b0383166000818152600c6020908152604091829020805486151560ff199091168117909155825193845283830152606090830181905260099083015268233630b9b43637b0b760b91b6080830152517f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09181900360a00190a150919050565b6002546001600160a01b031681565b600954600090600160b01b900460ff1615612c51576040805162461bcd60e51b81526020600482015260126024820152711d1c985b9cd9995c881a5cc81c185d5cd95960721b604482015290519081900360640190fd5b612c5b83866119b9565b15612c975760405162461bcd60e51b8152600401808060200182810382526023815260200180614d716023913960400191505060405180910390fd5b6114a0858584614614565b6060600082519050606081604051908082528060200260200182016040528015612cd6578160200160208202803883390190505b50905060005b82811015612d31576000858281518110612cf257fe5b60200260200101519050612d0681336146af565b6011811115612d1157fe5b838381518110612d1d57fe5b602090810291909101015250600101612cdc565b509392505050565b600480546040805163fc57d4df60e01b81526001600160a01b038781169482019490945290516000938493849391169163fc57d4df91602480820192602092909190829003018186803b158015612d8f57600080fd5b505afa158015612da3573d6000803e3d6000fd5b505050506040513d6020811015612db957600080fd5b5051600480546040805163fc57d4df60e01b81526001600160a01b038a8116948201949094529051939450600093929091169163fc57d4df91602480820192602092909190829003018186803b158015612e1257600080fd5b505afa158015612e26573d6000803e3d6000fd5b505050506040513d6020811015612e3c57600080fd5b50519050811580612e4b575080155b15612e6057600d935060009250612f59915050565b6000866001600160a01b031663182df0f56040518163ffffffff1660e01b815260040160206040518083038186803b158015612e9b57600080fd5b505afa158015612eaf573d6000803e3d6000fd5b505050506040513d6020811015612ec557600080fd5b50519050612ed1614bb9565b612ef96040518060200160405280600654815250604051806020016040528087815250614845565b9050612f03614bb9565b612f29604051806020016040528086815250604051806020016040528086815250614845565b9050612f33614bb9565b612f3d8383614884565b90506000612f4b828b6145f5565b600099509750505050505050505b935093915050565b600954600090600160b81b900460ff1615612fb5576040805162461bcd60e51b815260206004820152600f60248201526e1cd95a5e99481a5cc81c185d5cd959608a1b604482015290519081900360640190fd5b612fbf83866119b9565b15613011576040805162461bcd60e51b815260206004820181905260248201527f63616e6e6f74207369657a652066726f6d20637265646974206163636f756e74604482015290519081900360640190fd5b61301a86611b80565b158061302c575061302a85611b80565b155b15613038576009612463565b846001600160a01b0316635fe3b5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561307157600080fd5b505afa158015613085573d6000803e3d6000fd5b505050506040513d602081101561309b57600080fd5b505160408051635fe3b56760e01b815290516001600160a01b0392831692891691635fe3b567916004808301926020929190829003018186803b1580156130e157600080fd5b505afa1580156130f5573d6000803e3d6000fd5b505050506040513d602081101561310b57600080fd5b50516001600160a01b031614613122576002612463565b60009695505050505050565b600c6020526000908152604090205460ff1681565b6000546001600160a01b0316331461318c5760405162461bcd60e51b8152600401808060200182810382526028815260200180614dba6028913960400191505060405180910390fd5b600061319883856146af565b60118111156131a357fe5b146131e6576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081b585c9ad95d60921b604482015290519081900360640190fd5b6001600160a01b03808416600081815260126020908152604080832094871680845294825291829020859055815192835282019290925280820183905290517fd2430896b2083037d8bf873ee97e05de0442c7137b4c9413b9e928f7212869e99181900360600190a1505050565b6001600160a01b0383166000908152600b602052604081205460ff16156132b5576040805162461bcd60e51b815260206004820152601060248201526f189bdc9c9bddc81a5cc81c185d5cd95960821b604482015290519081900360640190fd5b6132be84611b80565b6132c9576009611dd9565b6001600160a01b038085166000908152600860209081526040808320938716835260029093019052205460ff166133b957336001600160a01b0385161461334f576040805162461bcd60e51b815260206004820152601560248201527439b2b73232b91036bab9ba1031329031aa37b5b2b760591b604482015290519081900360640190fd5b600061335b85856146af565b9050600081601181111561336b57fe5b146133845780601181111561337c57fe5b91505061166f565b6001600160a01b038086166000908152600860209081526040808320938816835260029093019052205460ff166133b757fe5b505b600480546040805163fc57d4df60e01b81526001600160a01b03888116948201949094529051929091169163fc57d4df91602480820192602092909190829003018186803b15801561340a57600080fd5b505afa15801561341e573d6000803e3d6000fd5b505050506040513d602081101561343457600080fd5b505161344157600d611dd9565b6001600160a01b0384166000908152600f6020526040902054801561352e576000856001600160a01b03166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b15801561349b57600080fd5b505afa1580156134af573d6000803e3d6000fd5b505050506040513d60208110156134c557600080fd5b5051905060006134d5828661459f565b905082811061352b576040805162461bcd60e51b815260206004820152601960248201527f6d61726b657420626f72726f7720636170207265616368656400000000000000604482015290519081900360640190fd5b50505b60008061353e868860008861411b565b9193509091506000905082601181111561355457fe5b1461356f5781601181111561356557fe5b935050505061166f565b801561357c576004613565565b6000979650505050505050565b600760205281600052604060002081815481106135a257fe5b6000918252602090912001546001600160a01b03169150829050565b6003546001600160a01b031681565b600080546001600160a01b031633146135f3576135ec60016006613fd7565b905061130b565b6001600160a01b0383166000908152600860205260409020805460ff166136285761362060096007613fd7565b91505061130b565b613630614bb9565b506040805160208101909152838152613647614bb9565b506040805160208101909152670c7d713b49da0000815261366881836148c0565b156136835761367960066008613fd7565b935050505061130b565b841580159061370c5750600480546040805163fc57d4df60e01b81526001600160a01b038a8116948201949094529051929091169163fc57d4df91602480820192602092909190829003018186803b1580156136de57600080fd5b505afa1580156136f2573d6000803e3d6000fd5b505050506040513d602081101561370857600080fd5b5051155b1561371d57613679600d6009613fd7565b60018301805490869055604080516001600160a01b03891681526020810183905280820188905290517f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc59181900360600190a16000979650505050505050565b600954600160a81b900460ff1681565b60055481565b6000546001600160a01b031633146137dc5760405162461bcd60e51b815260040180806020018281038252602a815260200180614cfa602a913960400191505060405180910390fd5b306001600160a01b0316816001600160a01b0316635fe3b5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561381f57600080fd5b505afa158015613833573d6000803e3d6000fd5b505050506040513d602081101561384957600080fd5b50516001600160a01b03161461389d576040805162461bcd60e51b815260206004820152601460248201527336b4b9b6b0ba31b41031b7b6b83a3937b63632b960611b604482015290519081900360640190fd5b601380546001600160a01b038381166001600160a01b0319831617928390556040805192821680845293909116602083015280517f4247a233ab0926daf14619c57e7d333975443a34cc5e1a30478bc4e7e716c8a29281900390910190a15050565b60006114a3848484614614565b6000808290506000806000836001600160a01b031663c37f68e2336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060806040518083038186803b15801561396d57600080fd5b505afa158015613981573d6000803e3d6000fd5b505050506040513d608081101561399757600080fd5b5080516020820151604090920151909450909250905082156139ea5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e176025913960400191505060405180910390fd5b8015613a07576139fc600c6002613fd7565b9450505050506115fe565b6000613a14873385614614565b90508015613a3557613a29600e6003836148c7565b955050505050506115fe565b6001600160a01b03871660009081526008602052604090206001600382015460ff166002811115613a6257fe5b1415613ac85760408051638b35776b60e01b815233600482015290516001600160a01b038a1691638b35776b91602480830192600092919082900301818387803b158015613aaf57600080fd5b505af1158015613ac3573d6000803e3d6000fd5b505050505b33600090815260028201602052604090205460ff16613af057600096505050505050506115fe565b3360009081526002820160209081526040808320805460ff191690556007825291829020805483518184028101840190945280845260609392830182828015613b6257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613b44575b5050835193945083925060009150505b82811015613bb757896001600160a01b0316848281518110613b9057fe5b60200260200101516001600160a01b03161415613baf57809150613bb7565b600101613b72565b50818110613bc157fe5b3360009081526007602052604090208054600019018214613c4757805481906000198101908110613bee57fe5b9060005260206000200160009054906101000a90046001600160a01b0316818381548110613c1857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8054613c57826000198301614bcc565b50604080516001600160a01b038c16815233602082015281517fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d929181900390910190a160009c9b505050505050505050505050565b6000546001600160a01b03163314613d0c576040805162461bcd60e51b815260206004820152601c60248201527f6f6e6c792061646d696e206d61792064656c697374206d61726b657400000000604482015290519081900360640190fd5b613d1581611b80565b613d5a576040805162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b604482015290519081900360640190fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d9357600080fd5b505afa158015613da7573d6000803e3d6000fd5b505050506040513d6020811015613dbd57600080fd5b505115613e04576040805162461bcd60e51b815260206004820152601060248201526f6d61726b6574206e6f7420656d70747960801b604482015290519081900360640190fd5b806001600160a01b031663fe9c44ae6040518163ffffffff1660e01b815260040160206040518083038186803b158015613e3d57600080fd5b505afa158015613e51573d6000803e3d6000fd5b505050506040513d6020811015613e6757600080fd5b50506001600160a01b0381166000908152600860205260408120805460ff199081168255600182018390556003909101805490911690555b600d54811015613f8857816001600160a01b0316600d8281548110613ec057fe5b6000918252602090912001546001600160a01b03161415613f8057600d80546000198101908110613eed57fe5b600091825260209091200154600d80546001600160a01b039092169183908110613f1357fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600d80546000198101908110613f4e57fe5b600091825260209091200180546001600160a01b0319169055600d805490613f7a906000198301614bcc565b50613f88565b600101613e9f565b50604080516001600160a01b038316815290517f9710c341258431a6380fd1febe8985e6b6221e8398c287ea971f2ba85a6e1a109181900360200190a150565b6000546001600160a01b031681565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601181111561400657fe5b83601381111561401257fe5b604080519283526020830191909152600082820152519081900360600190a182601181111561166f57fe5b60005b600d548110156140c857816001600160a01b0316600d828154811061406157fe5b6000918252602090912001546001600160a01b031614156140c0576040805162461bcd60e51b81526020600482015260146024820152731b585c9ad95d08185b1c9958591e48185919195960621b604482015290519081900360640190fd5b600101614040565b50600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000614128614bf0565b6001600160a01b0388166000908152600760209081526040808320805482518185028101850190935280835260609383018282801561419057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614172575b50939450600093505050505b81518110156145145760008282815181106141b357fe5b60200260200101519050806001600160a01b031663c37f68e28d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060806040518083038186803b15801561421357600080fd5b505afa158015614227573d6000803e3d6000fd5b505050506040513d608081101561423d57600080fd5b508051602082015160408084015160609485015160808b01529389019390935291870191909152935083156142825750600f965060009550859450611d049350505050565b6001600160a01b03808d166000908152601260209081526040808320938516835292905220548015614380578560600151811015614303576040805162461bcd60e51b81526020600482015260196024820152781a5b9cdd59999a58da595b9d0818dc99591a5d081b1a5b5a5d603a1b604482015290519081900360640190fd5b8b6001600160a01b0316826001600160a01b0316141561437b5761432b86606001518b61459f565b81101561437b576040805162461bcd60e51b81526020600482015260196024820152781a5b9cdd59999a58da595b9d0818dc99591a5d081b1a5b5a5d603a1b604482015290519081900360640190fd5b61450a565b60408051602080820183526001600160a01b0380861660008181526008845285902060010154845260c08b01939093528351808301855260808b0151815260e08b015260048054855163fc57d4df60e01b815291820194909452935192169263fc57d4df9260248083019392829003018186803b15801561440057600080fd5b505afa158015614414573d6000803e3d6000fd5b505050506040513d602081101561442a57600080fd5b505160a0870181905261444e5750600d975060009650869550611d04945050505050565b604080516020810190915260a0870151815261010087015260c086015160e08701516144889161447d91614845565b876101000151614845565b6101208701819052604087015187516144a292919061492d565b8652610100860151606087015160208801516144bf92919061492d565b60208701526001600160a01b03828116908d16141561450a576144ec8661012001518c886020015161492d565b60208701819052610100870151614504918c9061492d565b60208701525b505060010161419c565b5060208301518351111561453a5750506020810151905160009450039150829050611d04565b5050805160209091015160009450849350039050611d04565b6000806000806145638787614955565b9092509050600082600381111561457657fe5b146145875750915060009050612f59565b614591818661497e565b935093505050935093915050565b600061166f8383604051806040016040528060118152602001706164646974696f6e206f766572666c6f7760781b8152506149a1565b60008060006145e884600080600061411b565b9250925092509193909250565b60006145ff614bb9565b6146098484614a3c565b90506114a381614a5d565b600061461f84611b80565b61462a576009611dd9565b6001600160a01b038085166000908152600860209081526040808320938716835260029093019052205460ff16614662576000611dd9565b600080614672858786600061411b565b9193509091506000905082601181111561468857fe5b146146a25781601181111561469957fe5b9250505061166f565b8015613122576004614699565b6001600160a01b0382166000908152600860205260408120805460ff166146da57600991505061130b565b6001600382015460ff1660028111156146ef57fe5b141561477a57836001600160a01b0316638897bd85846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561474d57600080fd5b505af1158015614761573d6000803e3d6000fd5b505050506040513d602081101561477757600080fd5b50505b6001600160a01b038316600090815260028201602052604090205460ff161515600114156147ac57600091505061130b565b6001600160a01b0380841660008181526002840160209081526040808320805460ff19166001908117909155600783528184208054918201815584529282902090920180549489166001600160a01b031990951685179055815193845283019190915280517f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59281900390910190a15060009392505050565b61484d614bb9565b6040518060200160405280670de0b6b3a764000061487386600001518660000151614a6c565b8161487a57fe5b0490529392505050565b61488c614bb9565b60405180602001604052806148b76148b08660000151670de0b6b3a7640000614a6c565b8551614aae565b90529392505050565b5190511090565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08460118111156148f657fe5b84601381111561490257fe5b604080519283526020830191909152818101859052519081900360600190a18360118111156114a357fe5b6000614937614bb9565b6149418585614a3c565b905061202261494f82614a5d565b8461459f565b60008083830184811061496d57600092509050614977565b5060029150600090505b9250929050565b600080838311614995575060009050818303614977565b50600390506000614977565b60008383018285821015614a335760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156149f85781810151838201526020016149e0565b50505050905090810190601f168015614a255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50949350505050565b614a44614bb9565b60405180602001604052806148b7856000015185614a6c565b51670de0b6b3a7640000900490565b600061166f83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250614ae1565b600061166f83836040518060400160405280600e81526020016d646976696465206279207a65726f60901b815250614b57565b6000831580614aee575082155b15614afb5750600061166f565b83830283858281614b0857fe5b04148390614a335760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156149f85781810151838201526020016149e0565b60008183614ba65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156149f85781810151838201526020016149e0565b50828481614bb057fe5b04949350505050565b6040518060200160405280600081525090565b81548183558181111561232457600083815260209020612324918101908301614c5a565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001614c2e614bb9565b8152602001614c3b614bb9565b8152602001614c48614bb9565b8152602001614c55614bb9565b905290565b611ba691905b80821115614c745760008155600101614c60565b509056fe63616e6e6f742070617573652061206d61726b65742074686174206973206e6f74206c69737465646f6e6c792063546f6b656e20636f756c6420757064617465206974732076657273696f6e6f6e6c792061646d696e206f7220737570706c792063617020677561726469616e2063616e2073657420737570706c7920636170736f6e6c792061646d696e2063616e20736574206c6971756964697479206d696e696e67206d6f64756c656f6e6c7920706175736520677561726469616e20616e642061646d696e2063616e2070617573656f6e6c792061646d696e2063616e2073657420626f72726f772063617020677561726469616e63616e6e6f74207472616e7366657220746f206120637265646974206163636f756e746f6e6c792061646d696e2063616e2073657420737570706c792063617020677561726469616e6f6e6c792061646d696e2063616e207365742070726f746f636f6c20637265646974206c696d69746f6e6c792061646d696e206f7220626f72726f772063617020677561726469616e2063616e2073657420626f72726f772063617073657869744d61726b65743a206765744163636f756e74536e617073686f74206661696c65646f6e6c7920756e6974726f6c6c65722061646d696e2063616e206368616e676520627261696e73a265627a7a723158206738d74ec12cfb61a23f75633849b8ff59620991fb22f3ebdc821f480840ba7664736f6c63430005110032