0 txs
7 calls
constructor
No constructor.
functions
_getExtensionFunctions
purefunction _getExtensionFunctions() pure returns (bytes4[] functionSelectors)
accrualBlockNumber
viewfunction accrualBlockNumber() view returns (uint256)
adminFeeMantissa
viewfunction adminFeeMantissa() view returns (uint256)
ap
viewfunction ap() view returns (address)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
contractType
purefunction contractType() pure returns (string)
decimals
viewfunction decimals() view returns (uint8)
delegateType
purefunction delegateType() pure returns (uint8)
feeSeizeShareMantissa
viewfunction feeSeizeShareMantissa() view returns (uint256)
getCash
viewfunction getCash() view returns (uint256)
interestRateModel
viewfunction interestRateModel() view returns (address)
ionicAdmin
viewfunction ionicAdmin() view returns (address)
ionicFeeMantissa
viewfunction ionicFeeMantissa() view returns (uint256)
name
viewfunction name() view returns (string)
protocolSeizeShareMantissa
viewfunction protocolSeizeShareMantissa() view returns (uint256)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalAdminFees
viewfunction totalAdminFees() view returns (uint256)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalIonicFees
viewfunction totalIonicFees() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_becomeImplementation
nonpayablefunction _becomeImplementation(bytes)
_withdrawAdminFees
nonpayablefunction _withdrawAdminFees(uint256 withdrawAmount) returns (uint256)
_withdrawIonicFees
nonpayablefunction _withdrawIonicFees(uint256 withdrawAmount) returns (uint256)
borrow
nonpayablefunction borrow(uint256 borrowAmount) returns (uint256)
claim
nonpayablefunction claim(address morphoURD, address rewardToken, uint256 claimable, bytes32[] proof)
liquidateBorrow
nonpayablefunction liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns (uint256)
mint
nonpayablefunction mint(uint256 mintAmount) returns (uint256)
redeem
nonpayablefunction redeem(uint256 redeemTokens) returns (uint256)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 redeemAmount) returns (uint256)
repayBorrow
nonpayablefunction repayBorrow(uint256 repayAmount) returns (uint256)
repayBorrowBehalf
nonpayablefunction repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)
seize
nonpayablefunction seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
selfTransferIn
nonpayablefunction selfTransferIn(address from, uint256 amount) returns (uint256)
selfTransferOut
nonpayablefunction selfTransferOut(address to, uint256 amount)
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewAdminFee
event NewAdminFee(uint256 oldAdminFeeMantissa, uint256 newAdminFeeMantissa)
NewIonicFee
event NewIonicFee(uint256 oldIonicFeeMantissa, uint256 newIonicFeeMantissa)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
RewardsClaimedAndSet
event RewardsClaimedAndSet(address indexed account, address indexed reward, uint256 claimedAmount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
CallerIsNotEOA
error CallerIsNotEOA()
InteractionNotAllowed
error InteractionNotAllowed()
creation bytecode
0x608060405234801561001057600080fd5b50615fde80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c806389f8132e11610130578063b2a02ff1116100b8578063cb2ef6f71161007c578063cb2ef6f71461045d578063db006a7514610487578063f3fdb15a1461049a578063f5e3c462146104ad578063fabed412146104c057600080fd5b8063b2a02ff11461040c578063be99f1191461041f578063c3bf11cd1461042e578063c5ebeaec14610437578063c91a424f1461044a57600080fd5b80639826394b116100ff5780639826394b146103c1578063a0712d68146103ca578063a7b820df146103dd578063aa5af0fd146103f0578063b0d58e49146103f957600080fd5b806389f8132e146103925780638d02d9a1146103a75780638f840ddd146103b057806395d89b41146103b957600080fd5b80633b1d21a2116101be57806361feacff1161018257806361feacff1461034c5780636752e702146103555780636c540baf146103635780636f307dc31461036c578063852a12e31461037f57600080fd5b80633b1d21a2146102e55780633c4f743c146102ed57806347bd37181461031857806356e67728146103215780635fe3b5671461033457600080fd5b8063173b990411610205578063173b99041461029e57806318160ddd146102a75780632608f818146102b05780632c436e5b146102c3578063313ce567146102d857600080fd5b8063067db1b31461023757806306fdde031461024c5780630e7527021461026a578063135f13341461028b575b600080fd5b61024a6102453660046158b5565b6104d3565b005b61025461051d565b6040516102619190615905565b60405180910390f35b61027d610278366004615938565b6105ab565b604051908152602001610261565b61027d6102993660046158b5565b6107cb565b61027d60085481565b61027d600f5481565b61027d6102be3660046158b5565b610817565b60055b60405160ff9091168152602001610261565b6003546102c69060ff1681565b61027d610a47565b601454610300906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b61027d600b5481565b61024a61032f366004615998565b610a56565b6003546103009061010090046001600160a01b031681565b61027d600d5481565b61027d666379da05b6000081565b61027d60095481565b601354610300906001600160a01b031681565b61027d61038d366004615938565b610aa8565b61039a610cbe565b6040516102619190615a2d565b61027d60065481565b61027d600c5481565b610254610e20565b61027d600e5481565b61027d6103d8366004615938565b610e2d565b61027d6103eb366004615938565b61103a565b61027d600a5481565b61027d610407366004615938565b6113c8565b61027d61041a366004615a7b565b611687565b61027d67016345785d8a000081565b61027d60075481565b61027d610445366004615938565b611821565b600054610300906001600160a01b031681565b60408051808201909152600e81526d43457263323044656c656761746560901b6020820152610254565b61027d610495366004615938565b611a28565b600454610300906001600160a01b031681565b61027d6104bb366004615abc565b611c2f565b61024a6104ce366004615afe565b61248e565b33301461050f5760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064015b60405180910390fd5b61051982826126ee565b5050565b6001805461052a90615bd3565b80601f016020809104026020016040519081016040528092919081815260200182805461055690615bd3565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b505050505081565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926105f89261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015610615573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106399190615c3a565b6106555760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061068490600401615c84565b602060405180830381865afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190615cb0565b90506001600160a01b0381166106e95760006106e08461276f565b50949350505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561072c57600080fd5b505af1158015610740573d6000803e3d6000fd5b5050333203915061076290505760006107588561276f565b5095945050505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906107909032903390600401615ccd565b60006040518083038186803b1580156107a857600080fd5b505afa1580156107bc573d6000803e3d6000fd5b5050505060006107588561276f565b60003330146108045760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610506565b61080e8383612800565b90505b92915050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926108649261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015610881573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a59190615c3a565b6108c15760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906108f090600401615c84565b602060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109319190615cb0565b90506001600160a01b03811661095757600061094d85856129d3565b5092505050610811565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561099a57600080fd5b505af11580156109ae573d6000803e3d6000fd5b505033320391506109d290505760006109c786866129d3565b509350505050610811565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610a009032903390600401615ccd565b60006040518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506000610a3c86866129d3565b509695505050505050565b6000610a51612a66565b905090565b33301480610a675750610a67612ad3565b610aa55760405162461bcd60e51b815260206004820152600f60248201526e10b9b2b633103e3e1010b0b236b4b760891b6044820152606401610506565b50565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610af59261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190615c3a565b610b525760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610b8190600401615c84565b602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc29190615cb0565b90506001600160a01b038116610be257610bdb83612c50565b9392505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b50503332039150610c57905057610c4f84612c50565b949350505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610c859032903390600401615ccd565b60006040518083038186803b158015610c9d57600080fd5b505afa158015610cb1573d6000803e3d6000fd5b50505050610c4f84612c50565b606060016000610ccc612cd8565b90508160ff168151610cde9190615cfd565b67ffffffffffffffff811115610cf657610cf6615951565b604051908082528060200260200182016040528015610d1f578160200160208202803683370190505b50925060005b8151811015610d7b57818181518110610d4057610d40615d10565b6020026020010151848281518110610d5a57610d5a615d10565b6001600160e01b031990921660209283029190910190910152600101610d25565b508051637d5f6a0960e11b908490610d9285615d26565b9450610da19060ff8616615cfd565b81518110610db157610db1615d10565b6001600160e01b03199092166020928302919091019091015260ff821615610e1b5760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610506565b505090565b6002805461052a90615bd3565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610e7a9261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190615c3a565b610ed75760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610f0690600401615c84565b602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190615cb0565b90506001600160a01b038116610f625760006106e084612e48565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015610fa557600080fd5b505af1158015610fb9573d6000803e3d6000fd5b50503332039150610fd1905057600061075885612e48565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610fff9032903390600401615ccd565b60006040518083038186803b15801561101757600080fd5b505afa15801561102b573d6000803e3d6000fd5b50505050600061075885612e48565b60008061104681612ec5565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061107590600401615c84565b602060405180830381865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b69190615cb0565b90506001600160a01b03811661120e57306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a9190615d43565b50436009541461114757611140600a6039612f89565b9250611208565b83611150612a66565b101561116257611140600e6038612f89565b600d54841115611178576111406002603a612f89565b83600d546111869190615d5c565b600d55600354604080516303e1469160e61b815290516112039261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa1580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd9190615cb0565b856126ee565b600092505b506113b9565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b9061123e9032903390600401615ccd565b60006040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506112753090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156112b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d89190615d43565b5043600954146112f5576112ee600a6039612f89565b93506113b6565b846112fe612a66565b1015611310576112ee600e6038612f89565b600d54851115611326576112ee6002603a612f89565b84600d546113349190615d5c565b600d55600354604080516303e1469160e61b815290516113b19261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab9190615cb0565b866126ee565b600093505b50505b6113c281613002565b50919050565b6000806113d481612ec5565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061140390600401615c84565b602060405180830381865afa158015611420573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114449190615cb0565b90506001600160a01b03811661153857306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b89190615d43565b5043600954146114ce57611140600a6035612f89565b836114d7612a66565b10156114e957611140600e6034612f89565b600e548411156114ff5761114060026036612f89565b600084600e5461150f9190615d5c565b600e81905560005490915061152d906001600160a01b0316866126ee565b6000935050506113b9565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b906115689032903390600401615ccd565b60006040518083038186803b15801561158057600080fd5b505afa158015611594573d6000803e3d6000fd5b5050505061159f3090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156115de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116029190615d43565b504360095414611618576112ee600a6035612f89565b84611621612a66565b1015611633576112ee600e6034612f89565b600e54851115611649576112ee60026036612f89565b600085600e546116599190615d5c565b600e819055600054909150611677906001600160a01b0316876126ee565b600094505050506113c281613002565b6000600161169481612ec5565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906116c390600401615c84565b602060405180830381865afa1580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190615cb0565b90506001600160a01b0381166117285761172033878787613085565b925050611810565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561176b57600080fd5b505af115801561177f573d6000803e3d6000fd5b505033320391506117a190505761179833888888613085565b93505050611810565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906117cf9032903390600401615ccd565b60006040518083038186803b1580156117e757600080fd5b505afa1580156117fb573d6000803e3d6000fd5b5050505061180b33888888613085565b935050505b61181981613002565b509392505050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb89261186e9261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190615c3a565b6118cb5760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906118fa90600401615c84565b602060405180830381865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190615cb0565b90506001600160a01b03811661195457610bdb836135ce565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561199757600080fd5b505af11580156119ab573d6000803e3d6000fd5b505033320391506119c1905057610c4f846135ce565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906119ef9032903390600401615ccd565b60006040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b50505050610c4f846135ce565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611a759261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015611a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab69190615c3a565b611ad25760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611b0190600401615c84565b602060405180830381865afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190615cb0565b90506001600160a01b038116611b5b57610bdb83613649565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611b9e57600080fd5b505af1158015611bb2573d6000803e3d6000fd5b50503332039150611bc8905057610c4f84613649565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90611bf69032903390600401615ccd565b60006040518083038186803b158015611c0e57600080fd5b505afa158015611c22573d6000803e3d6000fd5b50505050610c4f84613649565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611c7c9261010090910490911690339030906001600160e01b031988351690600401615c07565b602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190615c3a565b611cd95760405162461bcd60e51b815260040161050690615c5c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611d0890600401615c84565b602060405180830381865afa158015611d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d499190615cb0565b90506001600160a01b038116611f7e5760145460405163bf40fac160e01b815286916000916001600160a01b039091169063bf40fac190611d8c90600401615d85565b602060405180830381865afa158015611da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcd9190615cb0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac190611e0190600401615da7565b602060405180830381865afa158015611e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e429190615cb0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea69190615d43565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d92611edd92899261010090041690600401615ccd565b602060405180830381865afa158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e9190615d43565b1115611f6357336001600160a01b03821614611f4c5760405162461bcd60e51b815260040161050690615dd5565b6000611f598989896136c6565b509550611f759050565b6000611f708989896136c6565b509550505b50505050610bdb565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050333203915061220890505760145460405163bf40fac160e01b815287916000916001600160a01b039091169063bf40fac19061201590600401615d85565b602060405180830381865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120569190615cb0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac19061208a90600401615da7565b602060405180830381865afa1580156120a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cb9190615cb0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f9190615d43565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d9261216692899261010090041690600401615ccd565b602060405180830381865afa158015612183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a79190615d43565b11156121ec57336001600160a01b038216146121d55760405162461bcd60e51b815260040161050690615dd5565b60006121e28a8a8a6136c6565b5096506121fe9050565b60006121f98a8a8a6136c6565b509650505b5050505050610bdb565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906122369032903390600401615ccd565b60006040518083038186803b15801561224e57600080fd5b505afa158015612262573d6000803e3d6000fd5b505060145460405163bf40fac160e01b8152899350600092506001600160a01b039091169063bf40fac19061229990600401615d85565b602060405180830381865afa1580156122b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122da9190615cb0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac19061230e90600401615da7565b602060405180830381865afa15801561232b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234f9190615cb0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b39190615d43565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d926123ea92899261010090041690600401615ccd565b602060405180830381865afa158015612407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242b9190615d43565b111561247057336001600160a01b038216146124595760405162461bcd60e51b815260040161050690615dd5565b60006124668a8a8a6136c6565b5096506124829050565b600061247d8a8a8a6136c6565b509650505b50505050509392505050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169363df595cb8936124d893610100900416913391309190356001600160e01b03191690600401615c07565b602060405180830381865afa1580156124f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125199190615c3a565b6125355760405162461bcd60e51b815260040161050690615c5c565b604051637d5f6a0960e11b81526000906001600160a01b0386169063fabed4129061256a903090889088908890600401615e32565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190615d43565b9050836001600160a01b031663a9059cbb600360019054906101000a90046001600160a01b03166001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126359190615cb0565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015612682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a69190615c3a565b506040518181526001600160a01b0385169030907ffe419fd3f83b80440f2b7ab5329d4879725f0da535d9c47c050f918d3455bdb89060200160405180910390a35050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091018252602080820180516001600160e01b031663a9059cbb60e01b1790528251808401909352601983527f544f4b454e5f5452414e534645525f4f55545f4641494c45440000000000000090830152610519916137c0565b600080600061277d81612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190615d43565b506127ed33338661381e565b925092506127fa81613002565b50915091565b6013546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190615d43565b90506129016323b872dd60e01b85308660405160240161289393929190615e9c565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518060400160405280601881526020017f544f4b454e5f5452414e534645525f494e5f4641494c454400000000000000008152506137c0565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561294a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296e9190615d43565b9050818110156129c05760405162461bcd60e51b815260206004820152601a60248201527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f570000000000006044820152606401610506565b6129ca8282615d5c565b95945050505050565b60008060006129e181612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a459190615d43565b50612a5133868661381e565b92509250612a5e81613002565b509250929050565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190615d43565b600080600360019054906101000a90046001600160a01b03169050806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b509190615cb0565b6001600160a01b0316336001600160a01b0316148015612bcd5750806001600160a01b0316630a755ec26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bcd9190615c3a565b80612c4a57506000546001600160a01b031633148015612c4a5750806001600160a01b031663cf6bfd2d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4a9190615c3a565b91505090565b600080612c5c81612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615d43565b50612ccd33600085613cb2565b91506113c281613002565b606060036000612ce66142fa565b90508160ff168151612cf89190615cfd565b67ffffffffffffffff811115612d1057612d10615951565b604051908082528060200260200182016040528015612d39578160200160208202803683370190505b50925060005b8151811015612d9557818181518110612d5a57612d5a615d10565b6020026020010151848281518110612d7457612d74615d10565b6001600160e01b031990921660209283029190910190910152600101612d3f565b50805163cb2ef6f760e01b908490612dac85615d26565b9450612dbb9060ff8616615cfd565b81518110612dcb57612dcb615d10565b6001600160e01b0319909216602092830291909101909101528051632c436e5b60e01b908490612dfa85615d26565b9450612e099060ff8616615cfd565b81518110612e1957612e19615d10565b6001600160e01b0319909216602092830291909101909101528051630adccee560e31b908490610d9285615d26565b6000806000612e5681612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eba9190615d43565b506127ed33856146c2565b600054600160a01b900460ff16612f0b5760405162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b6044820152606401610506565b80612f7957600360019054906101000a90046001600160a01b03166001600160a01b031663c90c20b16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f6057600080fd5b505af1158015612f74573d6000803e3d6000fd5b505050505b506000805460ff60a01b19169055565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0836011811115612fbe57612fbe615d6f565b836061811115612fd057612fd0615d6f565b60408051928352602083019190915260009082015260600160405180910390a182601181111561080e5761080e615d6f565b6000805460ff60a01b1916600160a01b17905580610aa557600360019054906101000a90046001600160a01b03166001600160a01b031663632e51426040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561306a57600080fd5b505af115801561307e573d6000803e3d6000fd5b5050505050565b60035460405163d02f735160e01b815260009182916101009091046001600160a01b03169063d02f7351906130c69030908a908a908a908a90600401615ec0565b6020604051808303816000875af11580156130e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131099190615d43565b905080156131265761311e6003601d83614acd565b915050610c4f565b846001600160a01b0316846001600160a01b03160361314b5761311e6006601e612f89565b6131b0604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0385166000908152601060205260409020546131d39085614b6f565b60208301819052828260038111156131ed576131ed615d6f565b60038111156131fe576131fe615d6f565b905250600090508151600381111561321857613218615d6f565b146132485761323f6009601c8360000151600381111561323a5761323a615d6f565b614acd565b92505050610c4f565b613267846040518060200160405280666379da05b60000815250614b9a565b6080820152604080516020810190915267016345785d8a0000815261328d908590614b9a565b610140820181905260808201516132a49086615d5c565b6132ae9190615d5c565b6060820152306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133159190615d43565b60c08201908152604080516020810190915290518152608082015161333a9190614bbd565b60a0820152604080516020810190915260c082015181526101408201516133619190614bbd565b61016082015260a0810151600c546133799190615cfd565b60e08201526101408101516080820151600f546133969190615d5c565b6133a09190615d5c565b610120820152610160810151600e546133b99190615cfd565b6101008201526001600160a01b03861660009081526010602052604090205460608201516133e79190614bd5565b604083018190528282600381111561340157613401615d6f565b600381111561341257613412615d6f565b905250600090508151600381111561342c5761342c615d6f565b1461344e5761323f6009601b8360000151600381111561323a5761323a615d6f565b60e0810151600c55610120810151600f55610100810151600e556020808201516001600160a01b0387811660008181526010855260408082209490945583860151928b1680825290849020929092556060850151925192835290929091600080516020615f89833981519152910160405180910390a3306001600160a01b0316856001600160a01b0316600080516020615f8983398151915283608001516040516134fb91815260200190565b60405180910390a360a081015160e08201516040805130815260208101939093528201527fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59060600160405180910390a1600354604051636d35bf9160e01b81526101009091046001600160a01b031690636d35bf91906135889030908b908b908b908b90600401615ec0565b600060405180830381600087803b1580156135a257600080fd5b505af11580156135b6573d6000803e3d6000fd5b50600092506135c3915050565b979650505050505050565b6000806135da81612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561361a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363e9190615d43565b50612ccd3384614bfb565b60008061365581612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190615d43565b50612ccd33846000613cb2565b60008060006136d481612ec5565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137389190615d43565b50836001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379d9190615d43565b506137aa33878787614fc0565b925092506137b781613002565b50935093915050565b6013546000906137da906001600160a01b03168484615468565b80519091501561381957808060200190518101906137f89190615c3a565b82906138175760405162461bcd60e51b81526004016105069190615905565b505b505050565b600354604051631200453160e11b81523060048201526001600160a01b03858116602483015284811660448301526064820184905260009283928392610100909204909116906324008a62906084016020604051808303816000875af115801561388c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b09190615d43565b905080156138d1576138c56003604383614acd565b60009250925050613caa565b43600954146138e6576138c5600a6044612f89565b61392f6040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0386166000908152601260205260409020600101546060820152306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139bd9190615d43565b6080820152600185016139d957608081015160408201526139e1565b604081018590525b6139ef878260400151612800565b60e082018190526080820151613a0491614b6f565b60a0830181905260208301826003811115613a2157613a21615d6f565b6003811115613a3257613a32615d6f565b9052506000905081602001516003811115613a4f57613a4f615d6f565b14613ac25760405162461bcd60e51b815260206004820152603a60248201527f52455041595f424f52524f575f4e45575f4143434f554e545f424f52524f575f60448201527f42414c414e43455f43414c43554c4154494f4e5f4641494c45440000000000006064820152608401610506565b613ad2600b548260e00151614b6f565b60c0830181905260208301826003811115613aef57613aef615d6f565b6003811115613b0057613b00615d6f565b9052506000905081602001516003811115613b1d57613b1d615d6f565b14613b845760405162461bcd60e51b815260206004820152603160248201527f52455041595f424f52524f575f4e45575f544f54414c5f42414c414e43455f43604482015270105310d55310551253d397d19052531151607a1b6064820152608401610506565b60a081810180516001600160a01b03898116600081815260126020908152604091829020948555600a5460019095019490945560c0870151600b81905560e088015195518251948f16855294840192909252820193909352606081019190915260808101919091527f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1910160405180910390a160035460e082015160405163efcb03dd60e01b81523060048201526001600160a01b038a8116602483015289811660448301526064820192909252610100909204169063efcb03dd90608401600060405180830381600087803b158015613c7d57600080fd5b505af1158015613c91573d6000803e3d6000fd5b5060009250613c9e915050565b8160e001519350935050505b935093915050565b6000821580613cbf575081155b613d0b5760405162461bcd60e51b815260206004820152601860248201527f2172656465656d20746f6b656e73206f7220616d6f756e7400000000000000006044820152606401610506565b613d4c6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dae9190615d43565b60408201528315613e715761138884600f54613dca9190615d5c565b1015613dd657600f5493505b6060810184905260408051602081018252908201518152613df790856154fb565b6080830181905260208301826003811115613e1457613e14615d6f565b6003811115613e2557613e25615d6f565b9052506000905081602001516003811115613e4257613e42615d6f565b14613e6c57613e646009602c8360200151600381111561323a5761323a615d6f565b915050610bdb565b613fb8565b6000198303613efe57600354604051630cbb414760e11b81526001600160a01b0387811660048301523060248301526000604483015261010090920490911690631976828e90606401602060405180830381865afa158015613ed7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613efb9190615d43565b92505b6000306001600160a01b0316634aeb3d9a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f629190615d43565b90506103e8613f718583615d5c565b1015613f7b578093505b613f8984836040015161554d565b60608301819052600f546103e891613fa091615d5c565b1015613faf57600f5460608301525b50608081018390525b600354606082015160405163eabe7d9160e01b815260009261010090046001600160a01b03169163eabe7d9191613ff69130918b9190600401615e9c565b6020604051808303816000875af1158015614015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140399190615d43565b905080156140575761404e6003602b83614acd565b92505050610bdb565b436009541461406c5761404e600a602f612f89565b61407c600f548360600151614b6f565b60a084018190526020840182600381111561409957614099615d6f565b60038111156140aa576140aa615d6f565b90525060009050826020015160038111156140c7576140c7615d6f565b146140e95761404e600960318460200151600381111561323a5761323a615d6f565b6001600160a01b03861660009081526010602052604090205460608301516141119190614b6f565b60c084018190526020840182600381111561412e5761412e615d6f565b600381111561413f5761413f615d6f565b905250600090508260200151600381111561415c5761415c615d6f565b1461417e5761404e600960308460200151600381111561323a5761323a615d6f565b816080015161418b612a66565b101561419d5761404e600e6032612f89565b60a0820151600f5560c08201516001600160a01b03871660009081526010602052604090205560808201516141d39087906126ee565b306001600160a01b0316866001600160a01b0316600080516020615f89833981519152846060015160405161420a91815260200190565b60405180910390a36080820151606080840151604080516001600160a01b038b16815260208101949094528301527fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929910160405180910390a1600354608083015160608401516040516351dff98960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906351dff989906084015b600060405180830381600087803b1580156142cf57600080fd5b505af11580156142e3573d6000803e3d6000fd5b50600092506142f0915050565b9695505050505050565b60408051600d8082526101c082019092526060919060009082602082016101a08036833701905050905063140e25ad60e31b8161433684615d26565b93508360ff168151811061434c5761434c615d10565b6001600160e01b03199092166020928302919091019091015263db006a7560e01b8161437784615d26565b93508360ff168151811061438d5761438d615d10565b6001600160e01b03199092166020928302919091019091015263852a12e360e01b816143b884615d26565b93508360ff16815181106143ce576143ce615d10565b6001600160e01b03199092166020928302919091019091015263317afabb60e21b816143f984615d26565b93508360ff168151811061440f5761440f615d10565b6001600160e01b03199092166020928302919091019091015263073a938160e11b8161443a84615d26565b93508360ff168151811061445057614450615d10565b6001600160e01b0319909216602092830291909101909101526304c11f0360e31b8161447b84615d26565b93508360ff168151811061449157614491615d10565b6001600160e01b031990921660209283029190910190910152637af1e23160e11b816144bc84615d26565b93508360ff16815181106144d2576144d2615d10565b6001600160e01b031990921660209283029190910190910152631d8e90d160e11b816144fd84615d26565b93508360ff168151811061451357614513615d10565b6001600160e01b03199092166020928302919091019091015263b2a02ff160e01b8161453e84615d26565b93508360ff168151811061455457614554615d10565b6001600160e01b03199092166020928302919091019091015263067db1b360e01b8161457f84615d26565b93508360ff168151811061459557614595615d10565b6001600160e01b0319909216602092830291909101909101526304d7c4cd60e21b816145c084615d26565b93508360ff16815181106145d6576145d6615d10565b6001600160e01b03199092166020928302919091019091015263b0d58e4960e01b8161460184615d26565b93508360ff168151811061461757614617615d10565b6001600160e01b03199092166020928302919091019091015263a7b820df60e01b8161464284615d26565b93508360ff168151811061465857614658615d10565b6001600160e01b03199092166020928302919091019091015260ff8216156108115760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610506565b600354604051634ef4c3e160e01b81526000918291829161010090046001600160a01b031690634ef4c3e19061470090309089908990600401615e9c565b6020604051808303816000875af115801561471f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147439190615d43565b90508015614764576147586003602183614acd565b60009250925050614ac6565b436009541461477957614758600a6024612f89565b6147ba6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156147f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061481c9190615d43565b604082015261482b8686612800565b60c082018190526040805160208101825290830151815261484c9190615588565b606083018190526020830182600381111561486957614869615d6f565b600381111561487a5761487a615d6f565b905250600090508160200151600381111561489757614897615d6f565b146148e45760405162461bcd60e51b815260206004820181905260248201527f4d494e545f45584348414e47455f43414c43554c4154494f4e5f4641494c45446044820152606401610506565b60008160600151116149385760405162461bcd60e51b815260206004820152601a60248201527f4d494e545f5a45524f5f43544f4b454e535f52454a45435445440000000000006044820152606401610506565b8060600151600f5461494a9190615cfd565b608082015260608101516001600160a01b0387166000908152601060205260409020546149779190615cfd565b60a082018190526080820151600f556001600160a01b0387166000818152601060209081526040918290209390935560c0840151606080860151835194855294840191909152908201929092527f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a1856001600160a01b0316306001600160a01b0316600080516020615f898339815191528360600151604051614a2691815260200190565b60405180910390a360035460c082015160608301516040516341c728b960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906341c728b990608401600060405180830381600087803b158015614a9957600080fd5b505af1158015614aad573d6000803e3d6000fd5b5060009250614aba915050565b8160c001519350935050505b9250929050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0846011811115614b0257614b02615d6f565b846061811115614b1457614b14615d6f565b604080519283526020830191909152810184905260600160405180910390a16003846011811115614b4757614b47615d6f565b14614b6357836011811115614b5e57614b5e615d6f565b610c4f565b610c4f826103e8615cfd565b600080838311614b8e576000614b858486615d5c565b91509150614ac6565b50600390506000614ac6565b6000670de0b6b3a7640000614bb3848460000151615598565b61080e9190615f09565b600080614bca84846155da565b9050610c4f8161560b565b600080838301848110614bed57600092509050614ac6565b600260009250925050614ac6565b60035460405163368f515360e21b815260009182916101009091046001600160a01b03169063da3d454c90614c3890309088908890600401615e9c565b6020604051808303816000875af1158015614c57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c7b9190615d43565b90508015614c9857614c906003601083614acd565b915050610811565b4360095414614cad57614c90600a600c612f89565b6000614cb7612a66565b905083811015614cd657614ccd600e600b612f89565b92505050610811565b614d02604080516080810190915280600081526020016000815260200160008152602001600081525090565b306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa158015614d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d6f9190615d43565b60208201819052614d809086614bd5565b6040830181905282826003811115614d9a57614d9a615d6f565b6003811115614dab57614dab615d6f565b9052506000905081516003811115614dc557614dc5615d6f565b14614df157614de76009600e8360000151600381111561323a5761323a615d6f565b9350505050610811565b6003546040828101519051631de6c8a560e21b815230600482015260248101919091526101009091046001600160a01b03169063779b229490604401602060405180830381865afa158015614e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e6e9190615d43565b92508215614e8357614de76003601085614acd565b614e8f600b5486614bd5565b6060830181905282826003811115614ea957614ea9615d6f565b6003811115614eba57614eba615d6f565b9052506000905081516003811115614ed457614ed4615d6f565b14614ef657614de76009600d8360000151600381111561323a5761323a615d6f565b6040808201516001600160a01b0388166000908152601260205291909120908155600a546001909101556060810151600b55614f3286866126ee565b60408082015160608084015183516001600160a01b038b168152602081018a9052938401929092528201527f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab809060800160405180910390a1600354604051639614b53b60e01b81526101009091046001600160a01b031690639614b53b906142b59030908a90600401615ccd565b600354604051632fe3f38f60e11b81526000918291829161010090046001600160a01b031690635fc7e71e9061500290309088908c908c908c90600401615ec0565b6020604051808303816000875af1158015615021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150459190615d43565b905080156150665761505a6003601483614acd565b6000925092505061545f565b436009541461507b5761505a600a6018612f89565b43846001600160a01b0316636c540baf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156150ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150de9190615d43565b146150ef5761505a600a6013612f89565b866001600160a01b0316866001600160a01b0316036151145761505a60066019612f89565b846000036151285761505a60076017612f89565b600019850361513d5761505a60076016612f89565b60008061514b89898961381e565b909250905081156151805761517282601181111561516b5761516b615d6f565b601a612f89565b60009450945050505061545f565b60035460405163c488847b60e01b815260009182916101009091046001600160a01b03169063c488847b906151bd9030908c908890600401615e9c565b6040805180830381865afa1580156151d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151fd9190615f1d565b9092509050811561526c5760405162461bcd60e51b815260206004820152603360248201527f4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f604482015272105353d5539517d4d152569157d19052531151606a1b6064820152608401610506565b6040516370a0823160e01b81526001600160a01b038b811660048301528291908a16906370a0823190602401602060405180830381865afa1580156152b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906152d99190615d43565b10156153275760405162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d55434800000000000000006044820152606401610506565b6000306001600160a01b038a160361534c57615345308d8d85613085565b90506153c2565b60405163b2a02ff160e01b81526001600160a01b038a169063b2a02ff19061537c908f908f908790600401615e9c565b6020604051808303816000875af115801561539b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153bf9190615d43565b90505b80156153f95760405162461bcd60e51b8152602060048201526006602482015265217365697a6560d01b6044820152606401610506565b604080516001600160a01b038e811682528d811660208301528183018790528b1660608201526080810184905290517f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb529181900360a00190a16000975092955050505050505b94509492505050565b6060600080856001600160a01b0316856040516154859190615f41565b6000604051808303816000865af19150503d80600081146154c2576040519150601f19603f3d011682016040523d82523d6000602084013e6154c7565b606091505b5091509150816129ca578051156154e15780518082602001fd5b8360405162461bcd60e51b81526004016105069190615905565b60008060008061550b8686615623565b9092509050600082600381111561552457615524615d6f565b146155355750915060009050614ac6565b60006155408261560b565b9350935050509250929050565b60008161556284670de0b6b3a7640000615f5d565b61556c9190615f09565b90506155788284615f74565b156108115761080e600182615cfd565b60008060008061550b868661569f565b600061080e83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250615712565b6040805160208101909152600081526040518060200160405280615602856000015185615598565b90529392505050565b805160009061081190670de0b6b3a764000090615f09565b600061563b6040518060200160405280600081525090565b60008061564c866000015186615765565b9092509050600082600381111561566557615665615d6f565b1461568457506040805160208101909152600081529092509050614ac6565b60408051602081019091529081526000969095509350505050565b60006156b76040518060200160405280600081525090565b6000806156cc670de0b6b3a764000087615765565b909250905060008260038111156156e5576156e5615d6f565b1461570457506040805160208101909152600081529092509050614ac6565b6155408186600001516157a7565b600083158061571f575082155b1561572c57506000610bdb565b60006157388486615f5d565b9050836157458683615f09565b1483906106e05760405162461bcd60e51b81526004016105069190615905565b6000808360000361577b57506000905080614ac6565b838302836157898683615f09565b1461579c57600260009250925050614ac6565b600092509050614ac6565b60006157bf6040518060200160405280600081525090565b6000806157d486670de0b6b3a7640000615765565b909250905060008260038111156157ed576157ed615d6f565b1461580c57506040805160208101909152600081529092509050614ac6565b6000806158198388615872565b9092509050600082600381111561583257615832615d6f565b146158555781604051806020016040528060008152509550955050505050614ac6565b604080516020810190915290815260009890975095505050505050565b600080826000036158895750600190506000614ac6565b60006158958486615f09565b915091509250929050565b6001600160a01b0381168114610aa557600080fd5b600080604083850312156158c857600080fd5b82356158d3816158a0565b946020939093013593505050565b60005b838110156158fc5781810151838201526020016158e4565b50506000910152565b60208152600082518060208401526159248160408501602087016158e1565b601f01601f19169190910160400192915050565b60006020828403121561594a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561599057615990615951565b604052919050565b600060208083850312156159ab57600080fd5b823567ffffffffffffffff808211156159c357600080fd5b818501915085601f8301126159d757600080fd5b8135818111156159e9576159e9615951565b6159fb601f8201601f19168501615967565b91508082528684828501011115615a1157600080fd5b8084840185840137600090820190930192909252509392505050565b6020808252825182820181905260009190848201906040850190845b81811015615a6f5783516001600160e01b03191683529284019291840191600101615a49565b50909695505050505050565b600080600060608486031215615a9057600080fd5b8335615a9b816158a0565b92506020840135615aab816158a0565b929592945050506040919091013590565b600080600060608486031215615ad157600080fd5b8335615adc816158a0565b9250602084013591506040840135615af3816158a0565b809150509250925092565b60008060008060808587031215615b1457600080fd5b8435615b1f816158a0565b9350602085810135615b30816158a0565b935060408601359250606086013567ffffffffffffffff80821115615b5457600080fd5b818801915088601f830112615b6857600080fd5b813581811115615b7a57615b7a615951565b8060051b9150615b8b848301615967565b818152918301840191848101908b841115615ba557600080fd5b938501935b83851015615bc357843582529385019390850190615baa565b989b979a50959850505050505050565b600181811c90821680615be757607f821691505b6020821081036113c257634e487b7160e01b600052602260045260246000fd5b6001600160a01b0394851681529284166020840152921660408201526001600160e01b0319909116606082015260800190565b600060208284031215615c4c57600080fd5b81518015158114610bdb57600080fd5b6020808252600e908201526d1b9bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60208082526012908201527148595045524e41544956455f4f5241434c4560701b604082015260600190565b600060208284031215615cc257600080fd5b8151610bdb816158a0565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561081157610811615ce7565b634e487b7160e01b600052603260045260246000fd5b600060ff821680615d3957615d39615ce7565b6000190192915050565b600060208284031215615d5557600080fd5b5051919050565b8181038181111561081157610811615ce7565b634e487b7160e01b600052602160045260246000fd5b602080825260089082015267506f6f6c4c656e7360c01b604082015260600190565b60208082526014908201527324b7b734b1aab734ab19a634b8bab4b230ba37b960611b604082015260600190565b6020808252603e908201527f4865616c746820666163746f72206e6f74206c6f7720656e6f75676820666f7260408201527f206e6f6e2d7065726d697373696f6e6564206c69717569646174696f6e730000606082015260800190565b6001600160a01b03858116825284166020808301919091526040820184905260806060830181905283519083018190526000918481019160a085019190845b81811015615e8d57845184529382019392820192600101615e71565b50919998505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a00190565b634e487b7160e01b600052601260045260246000fd5b600082615f1857615f18615ef3565b500490565b60008060408385031215615f3057600080fd5b505080516020909101519092909150565b60008251615f538184602087016158e1565b9190910192915050565b808202811582820484141761081157610811615ce7565b600082615f8357615f83615ef3565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122016f358ec2fc426d6d56eeb984407e7d4e922b8b5b4be70c5ab19e62007985db964736f6c63430008160033