0 txs
1 call
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)
cTokenMinter
viewfunction cTokenMinter() view returns (address)
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)
morphoURD
viewfunction morphoURD() view returns (address)
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)
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)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
CallerIsNotEOA
error CallerIsNotEOA()
InteractionNotAllowed
error InteractionNotAllowed()
creation bytecode
0x608060405234801561001057600080fd5b50615b7480620000216000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80637c4c96521161013b578063b0d58e49116100b8578063c91a424f1161007c578063c91a424f1461047b578063cb2ef6f71461048e578063db006a75146104b8578063f3fdb15a146104cb578063f5e3c462146104de57600080fd5b8063b0d58e491461042a578063b2a02ff11461043d578063be99f11914610450578063c3bf11cd1461045f578063c5ebeaec1461046857600080fd5b806395d89b41116100ff57806395d89b41146103ea5780639826394b146103f2578063a0712d68146103fb578063a7b820df1461040e578063aa5af0fd1461042157600080fd5b80637c4c96521461039d578063852a12e3146103b057806389f8132e146103c35780638d02d9a1146103d85780638f840ddd146103e157600080fd5b8063313ce567116101c95780635fe3b5671161018d5780635fe3b5671461035257806361feacff1461036a5780636752e702146103735780636c540baf146103815780636f307dc31461038a57600080fd5b8063313ce5671461030e5780633b1d21a21461031b5780633c4f743c1461032357806347bd37181461033657806356e677281461033f57600080fd5b8063173b990411610210578063173b9904146102a957806318160ddd146102b25780632608f818146102bb578063275e8732146102ce5780632c436e5b146102f957600080fd5b8063067db1b31461024257806306fdde03146102575780630e75270214610275578063135f133414610296575b600080fd5b61025561025036600461559f565b6104f1565b005b61025f61053b565b60405161026c91906155ef565b60405180910390f35b610288610283366004615622565b6105c9565b60405190815260200161026c565b6102886102a436600461559f565b6107e9565b61028860085481565b610288600f5481565b6102886102c936600461559f565b610835565b6016546102e1906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b60015b60405160ff909116815260200161026c565b6003546102fc9060ff1681565b610288610a65565b6014546102e1906001600160a01b031681565b610288600b5481565b61025561034d366004615651565b610a74565b6003546102e19061010090046001600160a01b031681565b610288600d5481565b610288666379da05b6000081565b61028860095481565b6013546102e1906001600160a01b031681565b6015546102e1906001600160a01b031681565b6102886103be366004615622565b610ac6565b6103cb610cdc565b60405161026c9190615702565b61028860065481565b610288600c5481565b61025f610eda565b610288600e5481565b610288610409366004615622565b610ee7565b61028861041c366004615622565b6110f4565b610288600a5481565b610288610438366004615622565b611482565b61028861044b366004615750565b611741565b61028867016345785d8a000081565b61028860075481565b610288610476366004615622565b6118db565b6000546102e1906001600160a01b031681565b60408051808201909152600e81526d43457263323044656c656761746560901b602082015261025f565b6102886104c6366004615622565b611ae2565b6004546102e1906001600160a01b031681565b6102886104ec366004615791565b611ce9565b33301461052d5760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064015b60405180910390fd5b6105378282612548565b5050565b60018054610548906157d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610574906157d3565b80156105c15780601f10610596576101008083540402835291602001916105c1565b820191906000526020600020905b8154815290600101906020018083116105a457829003601f168201915b505050505081565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926106169261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610657919061583a565b6106735760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906106a290600401615884565b602060405180830381865afa1580156106bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e391906158b0565b90506001600160a01b0381166107075760006106fe846125c9565b50949350505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b505033320391506107809050576000610776856125c9565b5095945050505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906107ae90329033906004016158cd565b60006040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506000610776856125c9565b60003330146108225760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610524565b61082c838361265a565b90505b92915050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926108829261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c3919061583a565b6108df5760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061090e90600401615884565b602060405180830381865afa15801561092b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094f91906158b0565b90506001600160a01b03811661097557600061096b858561282d565b509250505061082f565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b505033320391506109f090505760006109e5868661282d565b50935050505061082f565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610a1e90329033906004016158cd565b60006040518083038186803b158015610a3657600080fd5b505afa158015610a4a573d6000803e3d6000fd5b505050506000610a5a868661282d565b509695505050505050565b6000610a6f6128c0565b905090565b33301480610a855750610a8561292d565b610ac35760405162461bcd60e51b815260206004820152600f60248201526e10b9b2b633103e3e1010b0b236b4b760891b6044820152606401610524565b50565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610b139261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015610b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b54919061583a565b610b705760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610b9f90600401615884565b602060405180830381865afa158015610bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be091906158b0565b90506001600160a01b038116610c0057610bf983612aaa565b9392505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015610c4357600080fd5b505af1158015610c57573d6000803e3d6000fd5b50503332039150610c75905057610c6d84612aaa565b949350505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610ca390329033906004016158cd565b60006040518083038186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b50505050610c6d84612aaa565b606060036000610cea612b32565b90508160ff168151610cfc91906158fd565b67ffffffffffffffff811115610d1457610d1461563b565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50925060005b8151811015610d9957818181518110610d5e57610d5e615910565b6020026020010151848281518110610d7857610d78615910565b6001600160e01b031990921660209283029190910190910152600101610d43565b50805163cb2ef6f760e01b908490610db085615926565b9450610dbf9060ff86166158fd565b81518110610dcf57610dcf615910565b6001600160e01b0319909216602092830291909101909101528051632c436e5b60e01b908490610dfe85615926565b9450610e0d9060ff86166158fd565b81518110610e1d57610e1d615910565b6001600160e01b0319909216602092830291909101909101528051630adccee560e31b908490610e4c85615926565b9450610e5b9060ff86166158fd565b81518110610e6b57610e6b615910565b6001600160e01b03199092166020928302919091019091015260ff821615610ed55760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610524565b505090565b60028054610548906157d3565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610f349261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015610f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f75919061583a565b610f915760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610fc090600401615884565b602060405180830381865afa158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100191906158b0565b90506001600160a01b03811661101c5760006106fe84612efa565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b5050333203915061108b905057600061077685612efa565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906110b990329033906004016158cd565b60006040518083038186803b1580156110d157600080fd5b505afa1580156110e5573d6000803e3d6000fd5b50505050600061077685612efa565b60008061110081612f77565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061112f90600401615884565b602060405180830381865afa15801561114c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117091906158b0565b90506001600160a01b0381166112c857306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e49190615943565b504360095414611201576111fa600a603961303b565b92506112c2565b8361120a6128c0565b101561121c576111fa600e603861303b565b600d54841115611232576111fa6002603a61303b565b83600d54611240919061595c565b600d55600354604080516303e1469160e61b815290516112bd9261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b791906158b0565b85612548565b600092505b50611473565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b906112f890329033906004016158cd565b60006040518083038186803b15801561131057600080fd5b505afa158015611324573d6000803e3d6000fd5b5050505061132f3090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561136e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190615943565b5043600954146113af576113a8600a603961303b565b9350611470565b846113b86128c0565b10156113ca576113a8600e603861303b565b600d548511156113e0576113a86002603a61303b565b84600d546113ee919061595c565b600d55600354604080516303e1469160e61b8152905161146b9261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa158015611441573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146591906158b0565b86612548565b600093505b50505b61147c816130b4565b50919050565b60008061148e81612f77565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906114bd90600401615884565b602060405180830381865afa1580156114da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fe91906158b0565b90506001600160a01b0381166115f257306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561154e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115729190615943565b504360095414611588576111fa600a603561303b565b836115916128c0565b10156115a3576111fa600e603461303b565b600e548411156115b9576111fa6002603661303b565b600084600e546115c9919061595c565b600e8190556000549091506115e7906001600160a01b031686612548565b600093505050611473565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b9061162290329033906004016158cd565b60006040518083038186803b15801561163a57600080fd5b505afa15801561164e573d6000803e3d6000fd5b505050506116593090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bc9190615943565b5043600954146116d2576113a8600a603561303b565b846116db6128c0565b10156116ed576113a8600e603461303b565b600e54851115611703576113a86002603661303b565b600085600e54611713919061595c565b600e819055600054909150611731906001600160a01b031687612548565b6000945050505061147c816130b4565b6000600161174e81612f77565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061177d90600401615884565b602060405180830381865afa15801561179a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117be91906158b0565b90506001600160a01b0381166117e2576117da33878787613137565b9250506118ca565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561182557600080fd5b505af1158015611839573d6000803e3d6000fd5b5050333203915061185b90505761185233888888613137565b935050506118ca565b604051633108c13b60e01b81526001600160a01b03821690633108c13b9061188990329033906004016158cd565b60006040518083038186803b1580156118a157600080fd5b505afa1580156118b5573d6000803e3d6000fd5b505050506118c533888888613137565b935050505b6118d3816130b4565b509392505050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926119289261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015611945573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611969919061583a565b6119855760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906119b490600401615884565b602060405180830381865afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f591906158b0565b90506001600160a01b038116611a0e57610bf983613680565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611a5157600080fd5b505af1158015611a65573d6000803e3d6000fd5b50503332039150611a7b905057610c6d84613680565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90611aa990329033906004016158cd565b60006040518083038186803b158015611ac157600080fd5b505afa158015611ad5573d6000803e3d6000fd5b50505050610c6d84613680565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611b2f9261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b70919061583a565b611b8c5760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611bbb90600401615884565b602060405180830381865afa158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc91906158b0565b90506001600160a01b038116611c1557610bf9836136fb565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b50503332039150611c82905057610c6d846136fb565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90611cb090329033906004016158cd565b60006040518083038186803b158015611cc857600080fd5b505afa158015611cdc573d6000803e3d6000fd5b50505050610c6d846136fb565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611d369261010090910490911690339030906001600160e01b031988351690600401615807565b602060405180830381865afa158015611d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d77919061583a565b611d935760405162461bcd60e51b81526004016105249061585c565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611dc290600401615884565b602060405180830381865afa158015611ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0391906158b0565b90506001600160a01b0381166120385760145460405163bf40fac160e01b815286916000916001600160a01b039091169063bf40fac190611e4690600401615985565b602060405180830381865afa158015611e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8791906158b0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac190611ebb906004016159a7565b602060405180830381865afa158015611ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efc91906158b0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f609190615943565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d92611f97928992610100900416906004016158cd565b602060405180830381865afa158015611fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd89190615943565b111561201d57336001600160a01b038216146120065760405162461bcd60e51b8152600401610524906159d5565b6000612013898989613778565b50955061202f9050565b600061202a898989613778565b509550505b50505050610bf9565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561207b57600080fd5b505af115801561208f573d6000803e3d6000fd5b505033320391506122c290505760145460405163bf40fac160e01b815287916000916001600160a01b039091169063bf40fac1906120cf90600401615985565b602060405180830381865afa1580156120ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211091906158b0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac190612144906004016159a7565b602060405180830381865afa158015612161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218591906158b0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e99190615943565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d92612220928992610100900416906004016158cd565b602060405180830381865afa15801561223d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122619190615943565b11156122a657336001600160a01b0382161461228f5760405162461bcd60e51b8152600401610524906159d5565b600061229c8a8a8a613778565b5096506122b89050565b60006122b38a8a8a613778565b509650505b5050505050610bf9565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906122f090329033906004016158cd565b60006040518083038186803b15801561230857600080fd5b505afa15801561231c573d6000803e3d6000fd5b505060145460405163bf40fac160e01b8152899350600092506001600160a01b039091169063bf40fac19061235390600401615985565b602060405180830381865afa158015612370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239491906158b0565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac1906123c8906004016159a7565b602060405180830381865afa1580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240991906158b0565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615943565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d926124a4928992610100900416906004016158cd565b602060405180830381865afa1580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e59190615943565b111561252a57336001600160a01b038216146125135760405162461bcd60e51b8152600401610524906159d5565b60006125208a8a8a613778565b50965061253c9050565b60006125378a8a8a613778565b509650505b50505050509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091018252602080820180516001600160e01b031663a9059cbb60e01b1790528251808401909352601983527f544f4b454e5f5452414e534645525f4f55545f4641494c4544000000000000009083015261053791613872565b60008060006125d781612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190615943565b506126473333866138d0565b92509250612654816130b4565b50915091565b6013546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb9190615943565b905061275b6323b872dd60e01b8530866040516024016126ed93929190615a32565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518060400160405280601881526020017f544f4b454e5f5452414e534645525f494e5f4641494c45440000000000000000815250613872565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156127a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c89190615943565b90508181101561281a5760405162461bcd60e51b815260206004820152601a60248201527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f570000000000006044820152606401610524565b612824828261595c565b95945050505050565b600080600061283b81612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561287b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289f9190615943565b506128ab3386866138d0565b925092506128b8816130b4565b509250929050565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612909573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f9190615943565b600080600360019054906101000a90046001600160a01b03169050806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129aa91906158b0565b6001600160a01b0316336001600160a01b0316148015612a275750806001600160a01b0316630a755ec26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a27919061583a565b80612aa457506000546001600160a01b031633148015612aa45750806001600160a01b031663cf6bfd2d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa4919061583a565b91505090565b600080612ab681612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1a9190615943565b50612b2733600085613d64565b915061147c816130b4565b60408051600d8082526101c082019092526060919060009082602082016101a08036833701905050905063140e25ad60e31b81612b6e84615926565b93508360ff1681518110612b8457612b84615910565b6001600160e01b03199092166020928302919091019091015263db006a7560e01b81612baf84615926565b93508360ff1681518110612bc557612bc5615910565b6001600160e01b03199092166020928302919091019091015263852a12e360e01b81612bf084615926565b93508360ff1681518110612c0657612c06615910565b6001600160e01b03199092166020928302919091019091015263317afabb60e21b81612c3184615926565b93508360ff1681518110612c4757612c47615910565b6001600160e01b03199092166020928302919091019091015263073a938160e11b81612c7284615926565b93508360ff1681518110612c8857612c88615910565b6001600160e01b0319909216602092830291909101909101526304c11f0360e31b81612cb384615926565b93508360ff1681518110612cc957612cc9615910565b6001600160e01b031990921660209283029190910190910152637af1e23160e11b81612cf484615926565b93508360ff1681518110612d0a57612d0a615910565b6001600160e01b031990921660209283029190910190910152631d8e90d160e11b81612d3584615926565b93508360ff1681518110612d4b57612d4b615910565b6001600160e01b03199092166020928302919091019091015263b2a02ff160e01b81612d7684615926565b93508360ff1681518110612d8c57612d8c615910565b6001600160e01b03199092166020928302919091019091015263067db1b360e01b81612db784615926565b93508360ff1681518110612dcd57612dcd615910565b6001600160e01b0319909216602092830291909101909101526304d7c4cd60e21b81612df884615926565b93508360ff1681518110612e0e57612e0e615910565b6001600160e01b03199092166020928302919091019091015263b0d58e4960e01b81612e3984615926565b93508360ff1681518110612e4f57612e4f615910565b6001600160e01b03199092166020928302919091019091015263a7b820df60e01b81612e7a84615926565b93508360ff1681518110612e9057612e90615910565b6001600160e01b03199092166020928302919091019091015260ff82161561082f5760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610524565b6000806000612f0881612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6c9190615943565b5061264733856143ac565b600054600160a01b900460ff16612fbd5760405162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b6044820152606401610524565b8061302b57600360019054906101000a90046001600160a01b03166001600160a01b031663c90c20b16040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561301257600080fd5b505af1158015613026573d6000803e3d6000fd5b505050505b506000805460ff60a01b19169055565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08360118111156130705761307061596f565b8360618111156130825761308261596f565b60408051928352602083019190915260009082015260600160405180910390a182601181111561082c5761082c61596f565b6000805460ff60a01b1916600160a01b17905580610ac357600360019054906101000a90046001600160a01b03166001600160a01b031663632e51426040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561311c57600080fd5b505af1158015613130573d6000803e3d6000fd5b5050505050565b60035460405163d02f735160e01b815260009182916101009091046001600160a01b03169063d02f7351906131789030908a908a908a908a90600401615a56565b6020604051808303816000875af1158015613197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bb9190615943565b905080156131d8576131d06003601d836147b7565b915050610c6d565b846001600160a01b0316846001600160a01b0316036131fd576131d06006601e61303b565b613262604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0385166000908152601060205260409020546132859085614859565b602083018190528282600381111561329f5761329f61596f565b60038111156132b0576132b061596f565b90525060009050815160038111156132ca576132ca61596f565b146132fa576132f16009601c836000015160038111156132ec576132ec61596f565b6147b7565b92505050610c6d565b613319846040518060200160405280666379da05b60000815250614884565b6080820152604080516020810190915267016345785d8a0000815261333f908590614884565b61014082018190526080820151613356908661595c565b613360919061595c565b6060820152306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c79190615943565b60c0820190815260408051602081019091529051815260808201516133ec91906148a7565b60a0820152604080516020810190915260c0820151815261014082015161341391906148a7565b61016082015260a0810151600c5461342b91906158fd565b60e08201526101408101516080820151600f54613448919061595c565b613452919061595c565b610120820152610160810151600e5461346b91906158fd565b6101008201526001600160a01b038616600090815260106020526040902054606082015161349991906148bf565b60408301819052828260038111156134b3576134b361596f565b60038111156134c4576134c461596f565b90525060009050815160038111156134de576134de61596f565b14613500576132f16009601b836000015160038111156132ec576132ec61596f565b60e0810151600c55610120810151600f55610100810151600e556020808201516001600160a01b0387811660008181526010855260408082209490945583860151928b1680825290849020929092556060850151925192835290929091600080516020615b1f833981519152910160405180910390a3306001600160a01b0316856001600160a01b0316600080516020615b1f83398151915283608001516040516135ad91815260200190565b60405180910390a360a081015160e08201516040805130815260208101939093528201527fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59060600160405180910390a1600354604051636d35bf9160e01b81526101009091046001600160a01b031690636d35bf919061363a9030908b908b908b908b90600401615a56565b600060405180830381600087803b15801561365457600080fd5b505af1158015613668573d6000803e3d6000fd5b5060009250613675915050565b979650505050505050565b60008061368c81612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156136cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f09190615943565b50612b2733846148e5565b60008061370781612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376b9190615943565b50612b2733846000613d64565b600080600061378681612f77565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156137c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ea9190615943565b50836001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561382b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384f9190615943565b5061385c33878787614caa565b92509250613869816130b4565b50935093915050565b60135460009061388c906001600160a01b03168484615152565b8051909150156138cb57808060200190518101906138aa919061583a565b82906138c95760405162461bcd60e51b815260040161052491906155ef565b505b505050565b600354604051631200453160e11b81523060048201526001600160a01b03858116602483015284811660448301526064820184905260009283928392610100909204909116906324008a62906084016020604051808303816000875af115801561393e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139629190615943565b905080156139835761397760036043836147b7565b60009250925050613d5c565b436009541461399857613977600a604461303b565b6139e16040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0386166000908152601260205260409020600101546060820152306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa158015613a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6f9190615943565b608082015260018501613a8b5760808101516040820152613a93565b604081018590525b613aa187826040015161265a565b60e082018190526080820151613ab691614859565b60a0830181905260208301826003811115613ad357613ad361596f565b6003811115613ae457613ae461596f565b9052506000905081602001516003811115613b0157613b0161596f565b14613b745760405162461bcd60e51b815260206004820152603a60248201527f52455041595f424f52524f575f4e45575f4143434f554e545f424f52524f575f60448201527f42414c414e43455f43414c43554c4154494f4e5f4641494c45440000000000006064820152608401610524565b613b84600b548260e00151614859565b60c0830181905260208301826003811115613ba157613ba161596f565b6003811115613bb257613bb261596f565b9052506000905081602001516003811115613bcf57613bcf61596f565b14613c365760405162461bcd60e51b815260206004820152603160248201527f52455041595f424f52524f575f4e45575f544f54414c5f42414c414e43455f43604482015270105310d55310551253d397d19052531151607a1b6064820152608401610524565b60a081810180516001600160a01b03898116600081815260126020908152604091829020948555600a5460019095019490945560c0870151600b81905560e088015195518251948f16855294840192909252820193909352606081019190915260808101919091527f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1910160405180910390a160035460e082015160405163efcb03dd60e01b81523060048201526001600160a01b038a8116602483015289811660448301526064820192909252610100909204169063efcb03dd90608401600060405180830381600087803b158015613d2f57600080fd5b505af1158015613d43573d6000803e3d6000fd5b5060009250613d50915050565b8160e001519350935050505b935093915050565b6000821580613d71575081155b613dbd5760405162461bcd60e51b815260206004820152601860248201527f2172656465656d20746f6b656e73206f7220616d6f756e7400000000000000006044820152606401610524565b613dfe6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e609190615943565b60408201528315613f235761138884600f54613e7c919061595c565b1015613e8857600f5493505b6060810184905260408051602081018252908201518152613ea990856151e5565b6080830181905260208301826003811115613ec657613ec661596f565b6003811115613ed757613ed761596f565b9052506000905081602001516003811115613ef457613ef461596f565b14613f1e57613f166009602c836020015160038111156132ec576132ec61596f565b915050610bf9565b61406a565b6000198303613fb057600354604051630cbb414760e11b81526001600160a01b0387811660048301523060248301526000604483015261010090920490911690631976828e90606401602060405180830381865afa158015613f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fad9190615943565b92505b6000306001600160a01b0316634aeb3d9a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140149190615943565b90506103e8614023858361595c565b101561402d578093505b61403b848360400151615237565b60608301819052600f546103e8916140529161595c565b101561406157600f5460608301525b50608081018390525b600354606082015160405163eabe7d9160e01b815260009261010090046001600160a01b03169163eabe7d91916140a89130918b9190600401615a32565b6020604051808303816000875af11580156140c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140eb9190615943565b90508015614109576141006003602b836147b7565b92505050610bf9565b436009541461411e57614100600a602f61303b565b61412e600f548360600151614859565b60a084018190526020840182600381111561414b5761414b61596f565b600381111561415c5761415c61596f565b90525060009050826020015160038111156141795761417961596f565b1461419b5761410060096031846020015160038111156132ec576132ec61596f565b6001600160a01b03861660009081526010602052604090205460608301516141c39190614859565b60c08401819052602084018260038111156141e0576141e061596f565b60038111156141f1576141f161596f565b905250600090508260200151600381111561420e5761420e61596f565b146142305761410060096030846020015160038111156132ec576132ec61596f565b816080015161423d6128c0565b101561424f57614100600e603261303b565b60a0820151600f5560c08201516001600160a01b0387166000908152601060205260409020556080820151614285908790612548565b306001600160a01b0316866001600160a01b0316600080516020615b1f83398151915284606001516040516142bc91815260200190565b60405180910390a36080820151606080840151604080516001600160a01b038b16815260208101949094528301527fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929910160405180910390a1600354608083015160608401516040516351dff98960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906351dff989906084015b600060405180830381600087803b15801561438157600080fd5b505af1158015614395573d6000803e3d6000fd5b50600092506143a2915050565b9695505050505050565b600354604051634ef4c3e160e01b81526000918291829161010090046001600160a01b031690634ef4c3e1906143ea90309089908990600401615a32565b6020604051808303816000875af1158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061442d9190615943565b9050801561444e5761444260036021836147b7565b600092509250506147b0565b436009541461446357614442600a602461303b565b6144a46040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156144e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145069190615943565b6040820152614515868661265a565b60c08201819052604080516020810182529083015181526145369190615272565b60608301819052602083018260038111156145535761455361596f565b60038111156145645761456461596f565b90525060009050816020015160038111156145815761458161596f565b146145ce5760405162461bcd60e51b815260206004820181905260248201527f4d494e545f45584348414e47455f43414c43554c4154494f4e5f4641494c45446044820152606401610524565b60008160600151116146225760405162461bcd60e51b815260206004820152601a60248201527f4d494e545f5a45524f5f43544f4b454e535f52454a45435445440000000000006044820152606401610524565b8060600151600f5461463491906158fd565b608082015260608101516001600160a01b03871660009081526010602052604090205461466191906158fd565b60a082018190526080820151600f556001600160a01b0387166000818152601060209081526040918290209390935560c0840151606080860151835194855294840191909152908201929092527f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a1856001600160a01b0316306001600160a01b0316600080516020615b1f833981519152836060015160405161471091815260200190565b60405180910390a360035460c082015160608301516040516341c728b960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906341c728b990608401600060405180830381600087803b15801561478357600080fd5b505af1158015614797573d6000803e3d6000fd5b50600092506147a4915050565b8160c001519350935050505b9250929050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08460118111156147ec576147ec61596f565b8460618111156147fe576147fe61596f565b604080519283526020830191909152810184905260600160405180910390a160038460118111156148315761483161596f565b1461484d578360118111156148485761484861596f565b610c6d565b610c6d826103e86158fd565b60008083831161487857600061486f848661595c565b915091506147b0565b506003905060006147b0565b6000670de0b6b3a764000061489d848460000151615282565b61082c9190615a9f565b6000806148b484846152c4565b9050610c6d816152f5565b6000808383018481106148d7576000925090506147b0565b6002600092509250506147b0565b60035460405163368f515360e21b815260009182916101009091046001600160a01b03169063da3d454c9061492290309088908890600401615a32565b6020604051808303816000875af1158015614941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149659190615943565b905080156149825761497a60036010836147b7565b91505061082f565b43600954146149975761497a600a600c61303b565b60006149a16128c0565b9050838110156149c0576149b7600e600b61303b565b9250505061082f565b6149ec604080516080810190915280600081526020016000815260200160008152602001600081525090565b306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa158015614a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a599190615943565b60208201819052614a6a90866148bf565b6040830181905282826003811115614a8457614a8461596f565b6003811115614a9557614a9561596f565b9052506000905081516003811115614aaf57614aaf61596f565b14614adb57614ad16009600e836000015160038111156132ec576132ec61596f565b935050505061082f565b6003546040828101519051631de6c8a560e21b815230600482015260248101919091526101009091046001600160a01b03169063779b229490604401602060405180830381865afa158015614b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b589190615943565b92508215614b6d57614ad160036010856147b7565b614b79600b54866148bf565b6060830181905282826003811115614b9357614b9361596f565b6003811115614ba457614ba461596f565b9052506000905081516003811115614bbe57614bbe61596f565b14614be057614ad16009600d836000015160038111156132ec576132ec61596f565b6040808201516001600160a01b0388166000908152601260205291909120908155600a546001909101556060810151600b55614c1c8686612548565b60408082015160608084015183516001600160a01b038b168152602081018a9052938401929092528201527f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab809060800160405180910390a1600354604051639614b53b60e01b81526101009091046001600160a01b031690639614b53b906143679030908a906004016158cd565b600354604051632fe3f38f60e11b81526000918291829161010090046001600160a01b031690635fc7e71e90614cec90309088908c908c908c90600401615a56565b6020604051808303816000875af1158015614d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d2f9190615943565b90508015614d5057614d4460036014836147b7565b60009250925050615149565b4360095414614d6557614d44600a601861303b565b43846001600160a01b0316636c540baf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614dc89190615943565b14614dd957614d44600a601361303b565b866001600160a01b0316866001600160a01b031603614dfe57614d446006601961303b565b84600003614e1257614d446007601761303b565b6000198503614e2757614d446007601661303b565b600080614e358989896138d0565b90925090508115614e6a57614e5c826011811115614e5557614e5561596f565b601a61303b565b600094509450505050615149565b60035460405163c488847b60e01b815260009182916101009091046001600160a01b03169063c488847b90614ea79030908c908890600401615a32565b6040805180830381865afa158015614ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ee79190615ab3565b90925090508115614f565760405162461bcd60e51b815260206004820152603360248201527f4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f604482015272105353d5539517d4d152569157d19052531151606a1b6064820152608401610524565b6040516370a0823160e01b81526001600160a01b038b811660048301528291908a16906370a0823190602401602060405180830381865afa158015614f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fc39190615943565b10156150115760405162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d55434800000000000000006044820152606401610524565b6000306001600160a01b038a16036150365761502f308d8d85613137565b90506150ac565b60405163b2a02ff160e01b81526001600160a01b038a169063b2a02ff190615066908f908f908790600401615a32565b6020604051808303816000875af1158015615085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150a99190615943565b90505b80156150e35760405162461bcd60e51b8152602060048201526006602482015265217365697a6560d01b6044820152606401610524565b604080516001600160a01b038e811682528d811660208301528183018790528b1660608201526080810184905290517f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb529181900360a00190a16000975092955050505050505b94509492505050565b6060600080856001600160a01b03168560405161516f9190615ad7565b6000604051808303816000865af19150503d80600081146151ac576040519150601f19603f3d011682016040523d82523d6000602084013e6151b1565b606091505b509150915081612824578051156151cb5780518082602001fd5b8360405162461bcd60e51b815260040161052491906155ef565b6000806000806151f5868661530d565b9092509050600082600381111561520e5761520e61596f565b1461521f57509150600090506147b0565b600061522a826152f5565b9350935050509250929050565b60008161524c84670de0b6b3a7640000615af3565b6152569190615a9f565b90506152628284615b0a565b1561082f5761082c6001826158fd565b6000806000806151f58686615389565b600061082c83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f770000000000000000008152506153fc565b60408051602081019091526000815260405180602001604052806152ec856000015185615282565b90529392505050565b805160009061082f90670de0b6b3a764000090615a9f565b60006153256040518060200160405280600081525090565b60008061533686600001518661544f565b9092509050600082600381111561534f5761534f61596f565b1461536e575060408051602081019091526000815290925090506147b0565b60408051602081019091529081526000969095509350505050565b60006153a16040518060200160405280600081525090565b6000806153b6670de0b6b3a76400008761544f565b909250905060008260038111156153cf576153cf61596f565b146153ee575060408051602081019091526000815290925090506147b0565b61522a818660000151615491565b6000831580615409575082155b1561541657506000610bf9565b60006154228486615af3565b90508361542f8683615a9f565b1483906106fe5760405162461bcd60e51b815260040161052491906155ef565b60008083600003615465575060009050806147b0565b838302836154738683615a9f565b14615486576002600092509250506147b0565b6000925090506147b0565b60006154a96040518060200160405280600081525090565b6000806154be86670de0b6b3a764000061544f565b909250905060008260038111156154d7576154d761596f565b146154f6575060408051602081019091526000815290925090506147b0565b600080615503838861555c565b9092509050600082600381111561551c5761551c61596f565b1461553f57816040518060200160405280600081525095509550505050506147b0565b604080516020810190915290815260009890975095505050505050565b6000808260000361557357506001905060006147b0565b600061557f8486615a9f565b915091509250929050565b6001600160a01b0381168114610ac357600080fd5b600080604083850312156155b257600080fd5b82356155bd8161558a565b946020939093013593505050565b60005b838110156155e65781810151838201526020016155ce565b50506000910152565b602081526000825180602084015261560e8160408501602087016155cb565b601f01601f19169190910160400192915050565b60006020828403121561563457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561566357600080fd5b813567ffffffffffffffff8082111561567b57600080fd5b818401915084601f83011261568f57600080fd5b8135818111156156a1576156a161563b565b604051601f8201601f19908116603f011681019083821181831017156156c9576156c961563b565b816040528281528760208487010111156156e257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020808252825182820181905260009190848201906040850190845b818110156157445783516001600160e01b0319168352928401929184019160010161571e565b50909695505050505050565b60008060006060848603121561576557600080fd5b83356157708161558a565b925060208401356157808161558a565b929592945050506040919091013590565b6000806000606084860312156157a657600080fd5b83356157b18161558a565b92506020840135915060408401356157c88161558a565b809150509250925092565b600181811c908216806157e757607f821691505b60208210810361147c57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0394851681529284166020840152921660408201526001600160e01b0319909116606082015260800190565b60006020828403121561584c57600080fd5b81518015158114610bf957600080fd5b6020808252600e908201526d1b9bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60208082526012908201527148595045524e41544956455f4f5241434c4560701b604082015260600190565b6000602082840312156158c257600080fd5b8151610bf98161558a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561082f5761082f6158e7565b634e487b7160e01b600052603260045260246000fd5b600060ff821680615939576159396158e7565b6000190192915050565b60006020828403121561595557600080fd5b5051919050565b8181038181111561082f5761082f6158e7565b634e487b7160e01b600052602160045260246000fd5b602080825260089082015267506f6f6c4c656e7360c01b604082015260600190565b60208082526014908201527324b7b734b1aab734ab19a634b8bab4b230ba37b960611b604082015260600190565b6020808252603e908201527f4865616c746820666163746f72206e6f74206c6f7720656e6f75676820666f7260408201527f206e6f6e2d7065726d697373696f6e6564206c69717569646174696f6e730000606082015260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a00190565b634e487b7160e01b600052601260045260246000fd5b600082615aae57615aae615a89565b500490565b60008060408385031215615ac657600080fd5b505080516020909101519092909150565b60008251615ae98184602087016155cb565b9190910192915050565b808202811582820484141761082f5761082f6158e7565b600082615b1957615b19615a89565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200c60aca38f3a500867c0772fccd5ec4ae4e6c9aa7bfb2b515f22d009024ae1c564736f6c63430008160033