0 txs
0 calls
constructor
constructor(address _vault, address _tradeFactory, uint256 _harvestProfitMinInUsdc, uint256 _harvestProfitMaxInUsdc, address _prismaVault, address _prismaReceiver)
functions
apiVersion
purefunction apiVersion() pure returns (string)
balanceOfWant
viewfunction balanceOfWant() view returns (uint256)
baseFeeOracle
viewfunction baseFeeOracle() view returns (address)
claimableProfitInUsdc
viewfunction claimableProfitInUsdc() view returns (uint256)
claimsAreMaxBoosted
viewfunction claimsAreMaxBoosted() view returns (bool)
convexToken
viewfunction convexToken() view returns (address)
convexVoter
viewfunction convexVoter() view returns (address)
creditThreshold
viewfunction creditThreshold() view returns (uint256)
crv
viewfunction crv() view returns (address)
curveVoter
viewfunction curveVoter() view returns (address)
delegatedAssets
viewfunction delegatedAssets() view returns (uint256)
doHealthCheck
viewfunction doHealthCheck() view returns (bool)
emergencyExit
viewfunction emergencyExit() view returns (bool)
estimatedTotalAssets
viewfunction estimatedTotalAssets() view returns (uint256)
ethToWant
viewfunction ethToWant(uint256 _ethAmount) view returns (uint256)
forceClaimOnce
viewfunction forceClaimOnce() view returns (bool)
forceHarvestTriggerOnce
viewfunction forceHarvestTriggerOnce() view returns (bool)
harvestProfitMaxInUsdc
viewfunction harvestProfitMaxInUsdc() view returns (uint256)
harvestProfitMinInUsdc
viewfunction harvestProfitMinInUsdc() view returns (uint256)
harvestTrigger
viewfunction harvestTrigger(uint256 callCostinEth) view returns (bool)
healthCheck
viewfunction healthCheck() view returns (address)
isActive
viewfunction isActive() view returns (bool)
isBaseFeeAcceptable
viewfunction isBaseFeeAcceptable() view returns (bool)
isOriginal
viewfunction isOriginal() view returns (bool)
keeper
viewfunction keeper() view returns (address)
localKeepCRV
viewfunction localKeepCRV() view returns (uint256)
localKeepCVX
viewfunction localKeepCVX() view returns (uint256)
localKeepYPrisma
viewfunction localKeepYPrisma() view returns (uint256)
maxReportDelay
viewfunction maxReportDelay() view returns (uint256)
metadataURI
viewfunction metadataURI() view returns (string)
minReportDelay
viewfunction minReportDelay() view returns (uint256)
name
viewfunction name() view returns (string)
prismaReceiver
viewfunction prismaReceiver() view returns (address)
prismaVault
viewfunction prismaVault() view returns (address)
rewards
viewfunction rewards() view returns (address)
stakedBalance
viewfunction stakedBalance() view returns (uint256)
strategist
viewfunction strategist() view returns (address)
tendTrigger
viewfunction tendTrigger(uint256 callCostInWei) view returns (bool)
tradeFactory
viewfunction tradeFactory() view returns (address)
vault
viewfunction vault() view returns (address)
want
viewfunction want() view returns (address)
yPrisma
viewfunction yPrisma() view returns (address)
yprismaVoter
viewfunction yprismaVoter() view returns (address)
claimRewards
nonpayablefunction claimRewards()
cloneStrategyPrismaConvex
nonpayablefunction cloneStrategyPrismaConvex(address _vault, address _strategist, address _rewards, address _keeper, address _tradeFactory, uint256 _harvestProfitMinInUsdc, uint256 _harvestProfitMaxInUsdc, address _prismaVault, address _prismaReceiver) returns (address newStrategy)
harvest
nonpayablefunction harvest()
initialize
nonpayablefunction initialize(address _vault, address _strategist, address _rewards, address _keeper, address _tradeFactory, uint256 _harvestProfitMinInUsdc, uint256 _harvestProfitMaxInUsdc, address _prismaVault, address _prismaReceiver)
migrate
nonpayablefunction migrate(address _newStrategy)
removeTradeFactoryPermissions
nonpayablefunction removeTradeFactoryPermissions(bool _disableTf)
setBaseFeeOracle
nonpayablefunction setBaseFeeOracle(address _baseFeeOracle)
setCreditThreshold
nonpayablefunction setCreditThreshold(uint256 _creditThreshold)
setDoHealthCheck
nonpayablefunction setDoHealthCheck(bool _doHealthCheck)
setEmergencyExit
nonpayablefunction setEmergencyExit()
setForceClaimOnce
nonpayablefunction setForceClaimOnce(bool _forceClaimOnce)
setForceHarvestTriggerOnce
nonpayablefunction setForceHarvestTriggerOnce(bool _forceHarvestTriggerOnce)
setHarvestTriggerParams
nonpayablefunction setHarvestTriggerParams(uint256 _harvestProfitMinInUsdc, uint256 _harvestProfitMaxInUsdc)
setHealthCheck
nonpayablefunction setHealthCheck(address _healthCheck)
setKeeper
nonpayablefunction setKeeper(address _keeper)
setLocalKeepCrvs
nonpayablefunction setLocalKeepCrvs(uint256 _keepCrv, uint256 _keepCvx, uint256 _keepYPrisma)
setMaxReportDelay
nonpayablefunction setMaxReportDelay(uint256 _delay)
setMetadataURI
nonpayablefunction setMetadataURI(string _metadataURI)
setMinReportDelay
nonpayablefunction setMinReportDelay(uint256 _delay)
setRewards
nonpayablefunction setRewards(address _rewards)
setStrategist
nonpayablefunction setStrategist(address _strategist)
setVoters
nonpayablefunction setVoters(address _curveVoter, address _convexVoter, address _yprismaVoter)
sweep
nonpayablefunction sweep(address _token)
tend
nonpayablefunction tend()
updateTradeFactory
nonpayablefunction updateTradeFactory(address _newTradeFactory)
withdraw
nonpayablefunction withdraw(uint256 _amountNeeded) returns (uint256 _loss)
events
Cloned
event Cloned(address indexed clone)
EmergencyExitEnabled
event EmergencyExitEnabled()
ForcedHarvestTrigger
event ForcedHarvestTrigger(bool triggerState)
Harvested
event Harvested(uint256 profit, uint256 loss, uint256 debtPayment, uint256 debtOutstanding)
SetDoHealthCheck
event SetDoHealthCheck(bool)
SetHealthCheck
event SetHealthCheck(address)
UpdatedBaseFeeOracle
event UpdatedBaseFeeOracle(address baseFeeOracle)
UpdatedCreditThreshold
event UpdatedCreditThreshold(uint256 creditThreshold)
UpdatedKeeper
event UpdatedKeeper(address newKeeper)
UpdatedMaxReportDelay
event UpdatedMaxReportDelay(uint256 delay)
UpdatedMetadataURI
event UpdatedMetadataURI(string metadataURI)
UpdatedMinReportDelay
event UpdatedMinReportDelay(uint256 delay)
UpdatedRewards
event UpdatedRewards(address rewards)
UpdatedStrategist
event UpdatedStrategist(address newStrategist)
errors
No errors.
creation bytecode
0x6080604052600b805474e3668873d944e4a949da05fc8bde419eff54388200610100600160a81b03199091161790556016805460ff60a81b1916600160a81b1790553480156200004e57600080fd5b506040516200549438038062005494833981016040819052620000719162000c23565b8562000080813380806200009c565b50620000908585858585620002fb565b50505050505062000eab565b6006546001600160a01b031615620000fb5760405162461bcd60e51b815260206004820152601c60248201527f537472617465677920616c726561647920696e697469616c697a65640000000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b03861690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801562000155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017b919062000c92565b600680546001600160a01b0319166001600160a01b03929092169182179055620001a9908560001962000537565b600380546001600160a01b038086166001600160a01b031992831617909255600480548584169083161781556005805485851693169290921790915562278d006008556002546040805163313ce56760e01b81529051919093169263313ce56792818101926020929091908290030181865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000254919062000cb7565b6200026190600a62000de6565b6200027090620f424062000df4565b600a556002546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015620002ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f4919062000e0e565b5050505050565b6001600160a01b038216620003475760405162461bcd60e51b8152602060048201526011602482015270139bdb8b5e995c9bc81c995c5d5a5c9959607a1b6044820152606401620000f2565b6012546001600160a01b031615620003a25760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401620000f2565b601380546001600160a01b03199081166001600160a01b0384811691821790935560128054831686851617905560168054909216888416179091556014869055601585905560065460405163095ea7b360e01b8152600481019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af115801562000434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045a919062000e0e565b506301e13380600855690a968163f0a57b400000600a5560135460408051635fcbd28560e01b815290516001600160a01b0390921691635fcbd285916004808201926020929091908290030181865afa158015620004bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e2919062000c92565b6006546001600160a01b039081169116146200052d5760405162461bcd60e51b81526020600482015260096024820152682bb937b7339026281760b91b6044820152606401620000f2565b620002f462000686565b801580620005b55750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156200058d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b3919062000cb7565b155b620006295760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620000f2565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620006819185916200098e16565b505050565b60165460065460405163095ea7b360e01b81526001600160a01b03928316600482018190526000196024830152929091169073d533a949740bb3306d119cc777fa900ba034cd529063095ea7b3906044016020604051808303816000875af1158015620006f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200071d919062000e0e565b5060405163095ea7b360e01b81526001600160a01b03831660048201526000196024820152734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b9063095ea7b3906044016020604051808303816000875af115801562000781573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007a7919062000e0e565b50600b5460405163095ea7b360e01b81526001600160a01b03848116600483015260001960248301526101009092049091169063095ea7b3906044016020604051808303816000875af115801562000803573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000829919062000e0e565b50604051632642a09360e11b8152734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b60048201526001600160a01b038281166024830152839190821690634c85412690604401600060405180830381600087803b1580156200088b57600080fd5b505af1158015620008a0573d6000803e3d6000fd5b5050604051632642a09360e11b815273d533a949740bb3306d119cc777fa900ba034cd5260048201526001600160a01b03858116602483015284169250634c8541269150604401600060405180830381600087803b1580156200090257600080fd5b505af115801562000917573d6000803e3d6000fd5b5050600b54604051632642a09360e11b81526101009091046001600160a01b039081166004830152858116602483015284169250634c8541269150604401600060405180830381600087803b1580156200097057600080fd5b505af115801562000985573d6000803e3d6000fd5b50505050505050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490820152600090620009dd906001600160a01b03851690849062000a62565b905080516000148062000a0157508080602001905181019062000a01919062000e0e565b620006815760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620000f2565b606062000a73848460008562000a7b565b949350505050565b60608247101562000ade5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620000f2565b600080866001600160a01b0316858760405162000afc919062000e58565b60006040518083038185875af1925050503d806000811462000b3b576040519150601f19603f3d011682016040523d82523d6000602084013e62000b40565b606091505b50909250905062000b548783838762000b5f565b979650505050505050565b6060831562000bd357825160000362000bcb576001600160a01b0385163b62000bcb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620000f2565b508162000a73565b62000a73838381511562000bea5781518083602001fd5b8060405162461bcd60e51b8152600401620000f2919062000e76565b80516001600160a01b038116811462000c1e57600080fd5b919050565b60008060008060008060c0878903121562000c3d57600080fd5b62000c488762000c06565b955062000c586020880162000c06565b9450604087015193506060870151925062000c766080880162000c06565b915062000c8660a0880162000c06565b90509295509295509295565b60006020828403121562000ca557600080fd5b62000cb08262000c06565b9392505050565b60006020828403121562000cca57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000d2857816000190482111562000d0c5762000d0c62000cd1565b8085161562000d1a57918102915b93841c939080029062000cec565b509250929050565b60008262000d415750600162000de0565b8162000d505750600062000de0565b816001811462000d69576002811462000d745762000d94565b600191505062000de0565b60ff84111562000d885762000d8862000cd1565b50506001821b62000de0565b5060208310610133831016604e8410600b841016171562000db9575081810a62000de0565b62000dc5838362000ce7565b806000190482111562000ddc5762000ddc62000cd1565b0290505b92915050565b600062000cb0838362000d30565b808202811582820484141762000de05762000de062000cd1565b60006020828403121562000e2157600080fd5b8151801515811462000cb057600080fd5b60005b8381101562000e4f57818101518382015260200162000e35565b50506000910152565b6000825162000e6c81846020870162000e32565b9190910192915050565b602081526000825180602084015262000e9781604085016020870162000e32565b601f01601f19169190910160400192915050565b6145d98062000ebb6000396000f3fe608060405234801561001057600080fd5b50600436106104075760003560e01c8063780022a011610220578063c66cfed411610130578063ec38a862116100b8578063f017c92f11610087578063f017c92f1461085d578063fa4e2df914610870578063fbfa77cf14610879578063fcf2d0ad1461088c578063fe2508a61461089457600080fd5b8063ec38a8621461081c578063ed882c2b1461082f578063ee6497f114610842578063efbb5cb01461085557600080fd5b8063e09575a4116100ff578063e09575a4146107c0578063e3a937fe146107d3578063e59d7653146107db578063e5e19b4a146107ee578063e89133b21461080157600080fd5b8063c66cfed414610774578063c7b9d53014610787578063ce5494bb1461079a578063d8c658c2146107ad57600080fd5b8063a763cf5b116101b3578063b084e97b11610182578063b084e97b14610726578063b252720b14610739578063b4ef5af414610751578063b576211414610764578063c1a3d44c1461076c57600080fd5b8063a763cf5b146106ea578063aa5480cf146106f7578063ac00ff2614610700578063aced16611461071357600080fd5b806395e80c50116101ef57806395e80c50146106a857806397f72f8f146106b15780639ec5a894146106c45780639f450b5a146106d757600080fd5b8063780022a014610673578063826cddf6146106815780638e6350e21461069957806395326e2d146106a057600080fd5b80633e2ece131161031b5780636718835f116102ae5780636f392ce71161027d5780636f392ce71461061d57806370f7e3fb1461063157806373fd827f14610644578063748747e61461064d578063750521f51461066057600080fd5b80636718835f146105d95780636a4874a1146105e65780636a727f41146106015780636d208c451461061457600080fd5b806358aea918116102ea57806358aea918146105975780635b9f0016146105aa578063650d1880146105b257806365d2ebbf146105c657600080fd5b80633e2ece1314610562578063440368a31461057a5780634641257d146105825780635641ec031461058a57600080fd5b80631fe4a6861161039e57806328f30a4c1161036d57806328f30a4c146105175780632a99c9df146105205780632e1a7d4d14610534578063372500ab1461054757806339a172a81461054f57600080fd5b80631fe4a686146104c257806322f3e2d4146104d557806325829410146104ed57806328b7ccf71461050e57600080fd5b8063090c4922116103da578063090c49221461045a5780630ada4dab1461047157806311bc8245146104845780631f1fcd511461049757600080fd5b806301681a621461040c57806303ee438c14610421578063042c50dd1461043f57806306fdde0314610452575b600080fd5b61041f61041a366004613cb9565b6108a7565b005b610429610a52565b6040516104369190613d01565b60405180910390f35b61041f61044d366004613d34565b610ae0565b610429610b04565b61046360145481565b604051908152602001610436565b61041f61047f366004613dec565b610b9a565b61041f610492366004613cb9565b610bea565b6006546104aa906001600160a01b031681565b6040516001600160a01b039091168152602001610436565b6003546104aa906001600160a01b031681565b6104dd610c56565b6040519015158152602001610436565b60408051808201909152600581526418171a171b60d91b6020820152610429565b61046360085481565b610463600d5481565b6016546104dd90600160a01b900460ff1681565b610463610542366004613e09565b610ce4565b61041f610d58565b61041f61055d366004613e09565b610d6a565b600b546104aa9061010090046001600160a01b031681565b61041f610da7565b61041f610e23565b6009546104dd9060ff1681565b61041f6105a5366004613e22565b6111d1565b610463611277565b6104dd6105c0366004613e09565b50600090565b600f546104aa906001600160a01b031681565b6001546104dd9060ff1681565b6104aa73d533a949740bb3306d119cc777fa900ba034cd5281565b6011546104aa906001600160a01b031681565b610463600e5481565b6016546104dd90600160a81b900460ff1681565b61041f61063f366004613dec565b6112e5565b610463600c5481565b61041f61065b366004613cb9565b61130b565b61041f61066e366004613e4e565b611374565b6104636105c0366004613e09565b6009546104aa9061010090046001600160a01b031681565b6000610463565b6104dd6113c7565b61046360075481565b61041f6106bf366004613ec0565b61145c565b6004546104aa906001600160a01b031681565b61041f6106e5366004613cb9565b6114a3565b600b546104dd9060ff1681565b610463600a5481565b61041f61070e366004613dec565b611501565b6005546104aa906001600160a01b031681565b6010546104aa906001600160a01b031681565b6001546104aa9061010090046001600160a01b031681565b6013546104aa906001600160a01b031681565b610463611551565b610463611916565b6104aa610782366004613d34565b611947565b61041f610795366004613cb9565b611ac1565b61041f6107a8366004613cb9565b611b2a565b61041f6107bb366004613cb9565b611c55565b61041f6107ce366004613dec565b611ce0565b6104dd611cf1565b6012546104aa906001600160a01b031681565b6016546104aa906001600160a01b031681565b6104aa734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b81565b61041f61082a366004613cb9565b611df5565b6104dd61083d366004613e09565b611f4f565b61041f610850366004613f0b565b61212d565b610463612140565b61041f61086b366004613e09565b61215c565b61046360155481565b6002546104aa906001600160a01b031681565b61041f612199565b61041f6108a2366004613e09565b6122b8565b6108af6122f5565b6006546001600160a01b03908116908216036108fa5760405162461bcd60e51b8152602060048201526005602482015264085dd85b9d60da1b60448201526064015b60405180910390fd5b6002546001600160a01b03908116908216036109425760405162461bcd60e51b81526020600482015260076024820152662173686172657360c81b60448201526064016108f1565b606060005b81518110156109c95781818151811061096257610962613f2d565b60200260200101516001600160a01b0316836001600160a01b0316036109b75760405162461bcd60e51b815260206004820152600a602482015269085c1c9bdd1958dd195960b21b60448201526064016108f1565b806109c181613f59565b915050610947565b50610a4e6109d561231a565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3d9190613f72565b6001600160a01b0385169190612388565b5050565b60008054610a5f90613f8b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b90613f8b565b8015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b505050505081565b610aec898989896123e3565b610af9858585858561262a565b505050505050505050565b600654604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b419160048083019260009291908290030181865afa158015610b4e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b769190810190613fff565b604051602001610b8691906140a1565b604051602081830303815290604052905090565b610ba261284c565b600b805460ff19168215159081179091556040519081527f6ad28df1b554fa6cacd46ae82fa811748d53798feeb437ddf234bf3083953319906020015b60405180910390a150565b610bf261284c565b6040516001600160a01b03821681527fc8db9c35f716b87af1fbb83f03c78646061931269301fd7ba6dcf189b4cdc2fc9060200160405180910390a1600180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6002546040516339ebf82360e01b815230600482015260009182916001600160a01b03909116906339ebf8239060240161012060405180830381865afa158015610ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc891906140e6565b604001511180610cdf57506000610cdd612140565b115b905090565b6002546000906001600160a01b03163314610d2a5760405162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b60448201526064016108f1565b6000610d35836128ee565b600654909350909150610d52906001600160a01b03163383612388565b50919050565b610d6061284c565b610d686129dd565b565b610d72612af5565b60078190556040518181527fbb2c369a0355a34b02ab5fce0643150c87e1c8dfe7c918d465591879f57948b190602001610bdf565b610daf612b11565b6002546040805163bf3759b560e01b81529051610d68926001600160a01b03169163bf3759b59160048083019260209291908290030181865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190613f72565b612c66565b610e2b612b11565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b031663bf3759b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea79190613f72565b60095490915060009060ff1615610f04576000610ec2612cfb565b905082811015610edd57610ed68184614161565b9350610ef2565b82811115610ef257610eef8382614161565b94505b610efc8484614161565b915050610f15565b610f0d82612d93565b919550935090505b600b805460ff19169055604051600081527f6ad28df1b554fa6cacd46ae82fa811748d53798feeb437ddf234bf30839533199060200160405180910390a16002546040516339ebf82360e01b81523060048201526000916001600160a01b0316906339ebf8239060240161012060405180830381865afa158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc191906140e6565b60c001516002546040516328766ebf60e21b81526004810188905260248101879052604481018590529192506001600160a01b03169063a1d9bafc906064016020604051808303816000875af115801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190613f72565b925061104e83612c66565b60015460ff16801561106f575060015461010090046001600160a01b031615155b156111415760015460405163c70fa00b60e01b815260048101879052602481018690526044810184905260648101859052608481018390526101009091046001600160a01b03169063c70fa00b9060a401602060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111019190614174565b61113c5760405162461bcd60e51b815260206004820152600c60248201526b216865616c7468636865636b60a01b60448201526064016108f1565b611182565b604051600181527ff769f6bf659bbbdabf212d830720ce893eedc57f25ebb8e44edf5b300618a35b9060200160405180910390a16001805460ff1916811790555b6040805186815260208101869052908101839052606081018490527f4c0f499ffe6befa0ca7c826b0916cf87bea98de658013e76938489368d60d5099060800160405180910390a15050505050565b6111d96122f5565b6127108311806111ea575061271082115b806111f6575061271081115b1561120057600080fd5b6000831180156112195750600f546001600160a01b0316155b1561122357600080fd5b60008211801561123c57506010546001600160a01b0316155b1561124657600080fd5b60008111801561125f57506011546001600160a01b0316155b1561126957600080fd5b600c92909255600d55600e55565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190613f72565b6112ed61284c565b60168054911515600160a01b0260ff60a01b19909216919091179055565b611313612af5565b6001600160a01b03811661132657600080fd5b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f202ddb4a2e345f6323ed90f8fc8559d770a7abbbeee84dde8aca3351fe715490602001610bdf565b61137c612af5565b60006113898284836141df565b507f300e67d5a415b6d015a471d9c7b95dd58f3e8290af965e84e0f845de2996dda682826040516113bb92919061429f565b60405180910390a15050565b60095460009061010090046001600160a01b03166113e55750600190565b600960019054906101000a90046001600160a01b03166001600160a01b03166334a9e75c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611438573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190614174565b6114646122f5565b600f80546001600160a01b039485166001600160a01b031991821617909155601080549385169382169390931790925560118054919093169116179055565b6114ab61284c565b60098054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f711be97287cb9ec921887b9be36e148e1a27c6b158547b22b9704ffc54447a0f90602001610bdf565b61150961284c565b60405181151581527ff769f6bf659bbbdabf212d830720ce893eedc57f25ebb8e44edf5b300618a35b9060200160405180910390a16001805460ff1916911515919091179055565b60135460405163e950342560e01b81523060048201526000918291829182916001600160a01b039091169063e950342590602401606060405180830381865afa1580156115a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c691906142ce565b60405163bcfd032d60e01b815292955090935091506000907347fb2585d2c56fe188d0e6ec628a38b74fceeedf9063bcfd032d906116209073d533a949740bb3306d119cc777fa900ba034cd5290610348906004016142fc565b60a060405180830381865afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190614335565b505060405163bcfd032d60e01b8152919350600092507347fb2585d2c56fe188d0e6ec628a38b74fceeedf9163bcfd032d91506116ba90734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b90610348906004016142fc565b60a060405180830381865afa1580156116d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fb9190614335565b5050509150506000735f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117799190613f72565b9050600073322135dd9cbae8afa84727d9ae1434b5b3eba44b6001600160a01b03166386fc88d36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f39190613f72565b905060007369833361991ed76f9e8dbbcdf9ea1520febfb4a76001600160a01b03166386fc88d36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190613f72565b90506000670de0b6b3a7640000826305f5e10061188a8688614385565b611894919061439c565b61189e9190614385565b6118a8919061439c565b90506c0c9f2c9cd04674edea400000006118c28a83614385565b6118cc919061439c565b68056bc75e2d631000006118e08988614385565b6118ea8b8a614385565b6118f491906143be565b6118fe919061439c565b61190891906143be565b995050505050505050505090565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024016112a4565b601654600090600160a81b900460ff166119985760405162461bcd60e51b815260206004820152601260248201527143616e7420636c6f6e65206120636c6f6e6560701b60448201526064016108f1565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81523060601b601482018190526e5af43d82803e903d91602b57fd5bf360881b6028830152906037816000f060405163042c50dd60e01b81526001600160a01b038e811660048301528d811660248301528c811660448301528b811660648301528a8116608483015260a482018a905260c4820189905287811660e4830152868116610104830152919450908416915063042c50dd9061012401600060405180830381600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b50506040516001600160a01b03851692507f783540fb4221a3238720dc7038937d0d79982bcf895274aa6ad179f82cf0d53c9150600090a2509998505050505050505050565b611ac9612af5565b6001600160a01b038116611adc57600080fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f352ececae6d7d1e6d26bcf2c549dfd55be1637e9b22dc0cf3b71ddb36097a6b490602001610bdf565b6002546001600160a01b03163314611b4157600080fd5b6002546040805163fbfa77cf60e01b815290516001600160a01b039283169284169163fbfa77cf9160048083019260209291908290030181865afa158015611b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb191906143d1565b6001600160a01b031614611bc457600080fd5b611bcd81613101565b6006546040516370a0823160e01b8152306004820152611c529183916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3f9190613f72565b6006546001600160a01b03169190612388565b50565b611c5d6122f5565b6001600160a01b038116611cb35760405162461bcd60e51b815260206004820152601e60248201527f43616e742072656d6f7665207769746820746869732066756e6374696f6e000060448201526064016108f1565b611cbd60016132cb565b601680546001600160a01b0319166001600160a01b038316179055611c526135e5565b611ce861284c565b611c52816132cb565b60135460405163e950342560e01b815230600482015260009182916001600160a01b039091169063e950342590602401606060405180830381865afa158015611d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6291906142ce565b5050601254604051634d431a3b60e11b81527390be6dfea8c80c184c442a36e17cb2439aae25a760048201529192506000916001600160a01b0390911690639a863476906024016040805180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de991906143ee565b50919091101592915050565b611dfd6138cd565b6001600160a01b038116611e1057600080fd5b6002546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b393611e47939091169160009101614412565b6020604051808303816000875af1158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8a9190614174565b50600480546001600160a01b0319166001600160a01b03838116918217835560025460405163095ea7b360e01b815291169263095ea7b392611ed29290916000199101614412565b6020604051808303816000875af1158015611ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f159190614174565b506040516001600160a01b03821681527fafbb66abf8f3b719799940473a4052a3717cdd8e40fb6c8a3faadab316b1a06990602001610bdf565b6000611f59610c56565b611f6557506000919050565b6000611f6f611551565b9050601554811115611f845750600192915050565b611f8c6113c7565b611f995750600092915050565b600b5460ff1615611fad5750600192915050565b60145481118015611fd55750611fc1611cf1565b80611fd55750601654600160a01b900460ff165b15611fe35750600192915050565b6002546040516339ebf82360e01b81523060048201526000916001600160a01b0316906339ebf8239060240161012060405180830381865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205191906140e6565b90506008548160a00151426120669190614161565b11801561208a5750612076611cf1565b8061208a5750601654600160a01b900460ff165b15612099575060019392505050565b600a54600260009054906101000a90046001600160a01b03166001600160a01b031663112c1f9b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121139190613f72565b1115612123575060019392505050565b5060009392505050565b61213561284c565b601491909155601555565b600061214a611277565b612152611916565b610cdf91906143be565b612164612af5565b60088190556040518181527f5430e11864ad7aa9775b07d12657fe52df9aa2ba734355bd8ef8747be2c800c590602001610bdf565b6121a1613906565b6009805460ff191660011790556002546040516339ebf82360e01b81523060048201526001600160a01b03909116906339ebf8239060240161012060405180830381865afa1580156121f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221b91906140e6565b604001511561228d57600260009054906101000a90046001600160a01b03166001600160a01b031663a0e4af9a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561227457600080fd5b505af1158015612288573d6000803e3d6000fd5b505050505b6040517f97e963041e952738788b9d4871d854d282065b8f90a464928d6528f2e9a4fd0b90600090a1565b6122c061284c565b600a8190556040518181527fe5ef7832c564a10cbe7b4f1e01ac33a406cb63fcf430a97a9af8616d150af5f390602001610bdf565b6122fd61231a565b6001600160a01b0316336001600160a01b031614610d6857600080fd5b60025460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e6759160048083019260209291908290030181865afa158015612364573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906143d1565b6123de8363a9059cbb60e01b84846040516024016123a7929190614412565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613922565b505050565b6006546001600160a01b03161561243c5760405162461bcd60e51b815260206004820152601c60248201527f537472617465677920616c726561647920696e697469616c697a65640000000060448201526064016108f1565b600280546001600160a01b0319166001600160a01b03861690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa158015612495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b991906143d1565b600680546001600160a01b0319166001600160a01b039290921691821790556124e590856000196139f7565b600380546001600160a01b038086166001600160a01b031992831617909255600480548584169083161781556005805485851693169290921790915562278d006008556002546040805163313ce56760e01b81529051919093169263313ce56792818101926020929091908290030181865afa158015612569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258d9190613f72565b61259890600a61450f565b6125a590620f4240614385565b600a556002546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b3936125e093909116916000199101614412565b6020604051808303816000875af11580156125ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126239190614174565b5050505050565b6001600160a01b0382166126745760405162461bcd60e51b8152602060048201526011602482015270139bdb8b5e995c9bc81c995c5d5a5c9959607a1b60448201526064016108f1565b6012546001600160a01b0316156126c35760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016108f1565b601380546001600160a01b038084166001600160a01b031992831617909255601280548584169083161790556016805488841692169190911790556014859055601584905560065460405163095ea7b360e01b815291169063095ea7b39061273390849060001990600401614412565b6020604051808303816000875af1158015612752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127769190614174565b506301e13380600855690a968163f0a57b400000600a5560135460408051635fcbd28560e01b815290516001600160a01b0390921691635fcbd285916004808201926020929091908290030181865afa1580156127d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fb91906143d1565b6006546001600160a01b039081169116146128445760405162461bcd60e51b81526020600482015260096024820152682bb937b7339026281760b91b60448201526064016108f1565b6126236135e5565b600260009054906101000a90046001600160a01b03166001600160a01b03166388a8d6026040518163ffffffff1660e01b8152600401602060405180830381865afa15801561289f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c391906143d1565b6001600160a01b0316336001600160a01b031614806128e557506122fd61231a565b610d6857600080fd5b60008060006128fb611916565b9050808411156129cc57600061290f611277565b905080156129a85781850360006129268383613afa565b905080156129a55760135460405163f3fef3a360e01b81526001600160a01b039091169063f3fef3a3906129609030908590600401614412565b6020604051808303816000875af115801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a39190614174565b505b50505b60006129b2611916565b90506129be8682613afa565b9450848603935050506129d7565b509192600092509050565b50915091565b601654600160a01b900460ff166129f2611cf1565b806129fa5750805b15611c525760408051600180825281830190925260009160208083019080368337505060135482519293506001600160a01b031691839150600090612a4157612a41613f2d565b6001600160a01b039283166020918202929092010152601254604051639e27a51b60e01b8152911690639e27a51b90612a9a907390be6dfea8c80c184c442a36e17cb2439aae25a790819086906127109060040161451b565b6020604051808303816000875af1158015612ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612add9190614174565b508115610a4e576016805460ff60a01b191690555050565b6003546001600160a01b03163314806128e557506122fd61231a565b6005546001600160a01b0316331480612b3457506003546001600160a01b031633145b80612b575750612b4261231a565b6001600160a01b0316336001600160a01b0316145b80612be95750600260009054906101000a90046001600160a01b03166001600160a01b031663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd491906143d1565b6001600160a01b0316336001600160a01b0316145b806128e55750600260009054906101000a90046001600160a01b03166001600160a01b03166388a8d6026040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c42573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fd91906143d1565b60095460ff1615612c745750565b6000612c7e611916565b90508015610a4e576013546040516311f9fbc960e21b81526001600160a01b03909116906347e7ef2490612cb89030908590600401614412565b6020604051808303816000875af1158015612cd7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190614174565b600080612d06611277565b90508015612d855760135460405163f3fef3a360e01b81526001600160a01b039091169063f3fef3a390612d409030908590600401614412565b6020604051808303816000875af1158015612d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d839190614174565b505b612d8d611916565b91505090565b6000806000612da06129dd565b600c54600f546001600160a01b031660008215801590612dc857506001600160a01b03821615155b15612e75576040516370a0823160e01b815230600482015260009073d533a949740bb3306d119cc777fa900ba034cd52906370a0823190602401602060405180830381865afa158015612e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e439190613f72565b90506127108482020491508115612e7357612e7373d533a949740bb3306d119cc777fa900ba034cd528484612388565b505b600d546010546001600160a01b03168115801590612e9b57506001600160a01b03811615155b15612f48576040516370a0823160e01b8152306004820152600090734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b906370a0823190602401602060405180830381865afa158015612ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f169190613f72565b90506127108382020493508315612f4657612f46734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8386612388565b505b600e546011546001600160a01b03168115801590612f6e57506001600160a01b03811615155b1561301457600b546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe59190613f72565b9050612710838202049550851561301257600b546130129061010090046001600160a01b03168388612388565b505b600061301e612140565b6002546040516339ebf82360e01b81523060048201529192506000916001600160a01b03909116906339ebf8239060240161012060405180830381865afa15801561306d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309191906140e6565b60c0015190508082106130eb578082039b508c995060006130b28b8e6143be565b905060006130bf826128ee565b509050808211156130e457808c11156130de57809b5060009d506130e4565b8b81039d505b50506130f1565b8181039a505b5050505050505050509193909250565b600061310b611277565b9050801561318a5760135460405163f3fef3a360e01b81526001600160a01b039091169063f3fef3a3906131459030908590600401614412565b6020604051808303816000875af1158015613164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131889190614174565b505b6040516370a0823160e01b815230600482015260009073d533a949740bb3306d119cc777fa900ba034cd52906370a0823190602401602060405180830381865afa1580156131dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132009190613f72565b6040516370a0823160e01b8152306004820152909150600090734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b906370a0823190602401602060405180830381865afa158015613255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132799190613f72565b905081156132a0576132a073d533a949740bb3306d119cc777fa900ba034cd528584612388565b80156132c5576132c5734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8583612388565b50505050565b6016546001600160a01b0316806132e0575050565b60065460405163095ea7b360e01b815282916001600160a01b03169073d533a949740bb3306d119cc777fa900ba034cd529063095ea7b390613329908590600090600401614412565b6020604051808303816000875af1158015613348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336c9190614174565b5083156133e857604051639cd38be560e01b81526001600160a01b03831690639cd38be5906133b59073d533a949740bb3306d119cc777fa900ba034cd529085906004016142fc565b600060405180830381600087803b1580156133cf57600080fd5b505af11580156133e3573d6000803e3d6000fd5b505050505b60405163095ea7b360e01b8152734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b9063095ea7b390613422908690600090600401614412565b6020604051808303816000875af1158015613441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134659190614174565b5083156134e157604051639cd38be560e01b81526001600160a01b03831690639cd38be5906134ae90734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b9085906004016142fc565b600060405180830381600087803b1580156134c857600080fd5b505af11580156134dc573d6000803e3d6000fd5b505050505b600b5460405163095ea7b360e01b81526101009091046001600160a01b03169063095ea7b390613518908690600090600401614412565b6020604051808303816000875af1158015613537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355b9190614174565b5083156135cf57600b54604051639cd38be560e01b81526001600160a01b0380851692639cd38be59261359c926101009092049091169085906004016142fc565b600060405180830381600087803b1580156135b657600080fd5b505af11580156135ca573d6000803e3d6000fd5b505050505b5050601680546001600160a01b03191690555050565b60165460065460405163095ea7b360e01b81526001600160a01b03928316929091169073d533a949740bb3306d119cc777fa900ba034cd529063095ea7b39061363690859060001990600401614412565b6020604051808303816000875af1158015613655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136799190614174565b5060405163095ea7b360e01b8152734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b9063095ea7b3906136b590859060001990600401614412565b6020604051808303816000875af11580156136d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f89190614174565b50600b5460405163095ea7b360e01b81526101009091046001600160a01b03169063095ea7b39061373190859060001990600401614412565b6020604051808303816000875af1158015613750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137749190614174565b50604051632642a09360e11b815282906001600160a01b03821690634c854126906137b990734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b9086906004016142fc565b600060405180830381600087803b1580156137d357600080fd5b505af11580156137e7573d6000803e3d6000fd5b5050604051632642a09360e11b81526001600160a01b0384169250634c854126915061382d9073d533a949740bb3306d119cc777fa900ba034cd529086906004016142fc565b600060405180830381600087803b15801561384757600080fd5b505af115801561385b573d6000803e3d6000fd5b5050600b54604051632642a09360e11b81526001600160a01b038086169450634c8541269350613896926101009004169086906004016142fc565b600060405180830381600087803b1580156138b057600080fd5b505af11580156138c4573d6000803e3d6000fd5b50505050505050565b6138d561231a565b6001600160a01b0316336001600160a01b031614806128e557506003546001600160a01b03163314610d6857600080fd5b6003546001600160a01b0316331480612b575750612b4261231a565b6000613977826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b149092919063ffffffff16565b90508051600014806139985750808060200190518101906139989190614174565b6123de5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108f1565b801580613a705750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90613a2d90309086906004016142fc565b602060405180830381865afa158015613a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6e9190613f72565b155b613adb5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016108f1565b6123de8363095ea7b360e01b84846040516024016123a7929190614412565b6000818310613b095781613b0b565b825b90505b92915050565b6060613b238484600085613b2b565b949350505050565b606082471015613b8c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108f1565b600080866001600160a01b03168587604051613ba89190614587565b60006040518083038185875af1925050503d8060008114613be5576040519150601f19603f3d011682016040523d82523d6000602084013e613bea565b606091505b5091509150613bfb87838387613c06565b979650505050505050565b60608315613c75578251600003613c6e576001600160a01b0385163b613c6e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108f1565b5081613b23565b613b238383815115613c8a5781518083602001fd5b8060405162461bcd60e51b81526004016108f19190613d01565b6001600160a01b0381168114611c5257600080fd5b600060208284031215613ccb57600080fd5b8135613cd681613ca4565b9392505050565b60005b83811015613cf8578181015183820152602001613ce0565b50506000910152565b6020815260008251806020840152613d20816040850160208701613cdd565b601f01601f19169190910160400192915050565b60008060008060008060008060006101208a8c031215613d5357600080fd5b8935613d5e81613ca4565b985060208a0135613d6e81613ca4565b975060408a0135613d7e81613ca4565b965060608a0135613d8e81613ca4565b955060808a0135613d9e81613ca4565b945060a08a0135935060c08a0135925060e08a0135613dbc81613ca4565b91506101008a0135613dcd81613ca4565b809150509295985092959850929598565b8015158114611c5257600080fd5b600060208284031215613dfe57600080fd5b8135613cd681613dde565b600060208284031215613e1b57600080fd5b5035919050565b600080600060608486031215613e3757600080fd5b505081359360208301359350604090920135919050565b60008060208385031215613e6157600080fd5b823567ffffffffffffffff80821115613e7957600080fd5b818501915085601f830112613e8d57600080fd5b813581811115613e9c57600080fd5b866020828501011115613eae57600080fd5b60209290920196919550909350505050565b600080600060608486031215613ed557600080fd5b8335613ee081613ca4565b92506020840135613ef081613ca4565b91506040840135613f0081613ca4565b809150509250925092565b60008060408385031215613f1e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613f6b57613f6b613f43565b5060010190565b600060208284031215613f8457600080fd5b5051919050565b600181811c90821680613f9f57607f821691505b602082108103610d5257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715613ff957613ff9613fbf565b60405290565b60006020828403121561401157600080fd5b815167ffffffffffffffff8082111561402957600080fd5b818401915084601f83011261403d57600080fd5b81518181111561404f5761404f613fbf565b604051601f8201601f19908116603f0116810190838211818310171561407757614077613fbf565b8160405282815287602084870101111561409057600080fd5b613bfb836020830160208801613cdd565b7f5374726174656779507269736d61436f6e766578466163746f72792d000000008152600082516140d981601c850160208701613cdd565b91909101601c0192915050565b600061012082840312156140f957600080fd5b614101613fd5565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b81810381811115613b0e57613b0e613f43565b60006020828403121561418657600080fd5b8151613cd681613dde565b601f8211156123de57600081815260208120601f850160051c810160208610156141b85750805b601f850160051c820191505b818110156141d7578281556001016141c4565b505050505050565b67ffffffffffffffff8311156141f7576141f7613fbf565b61420b836142058354613f8b565b83614191565b6000601f84116001811461423f57600085156142275750838201355b600019600387901b1c1916600186901b178355612623565b600083815260209020601f19861690835b828110156142705786850135825560209485019460019092019101614250565b508682101561428d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000806000606084860312156142e357600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0392831681529116602082015260400190565b805169ffffffffffffffffffff8116811461433057600080fd5b919050565b600080600080600060a0868803121561434d57600080fd5b61435686614316565b945060208601519350604086015192506060860151915061437960808701614316565b90509295509295909350565b8082028115828204841417613b0e57613b0e613f43565b6000826143b957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115613b0e57613b0e613f43565b6000602082840312156143e357600080fd5b8151613cd681613ca4565b6000806040838503121561440157600080fd5b505080516020909101519092909150565b6001600160a01b03929092168252602082015260400190565b600181815b8085111561446657816000190482111561444c5761444c613f43565b8085161561445957918102915b93841c9390800290614430565b509250929050565b60008261447d57506001613b0e565b8161448a57506000613b0e565b81600181146144a057600281146144aa576144c6565b6001915050613b0e565b60ff8411156144bb576144bb613f43565b50506001821b613b0e565b5060208310610133831016604e8410600b84101617156144e9575081810a613b0e565b6144f3838361442b565b806000190482111561450757614507613f43565b029392505050565b6000613b0b838361446e565b60006080820160018060a01b0380881684526020818816818601526080604086015282875180855260a087019150828901945060005b8181101561456f578551851683529483019491830191600101614551565b50508094505050505082606083015295945050505050565b60008251614599818460208701613cdd565b919091019291505056fea2646970667358221220a8fe2d80ba1a0c6acc13357ddb551daa40087a7d06d8dfb170b64dea442cdab164736f6c63430008130033000000000000000000000000ba61baa1d96c2f4e25205b331306507bcaea4677000000000000000000000000b634316e06cc0b358437cbadd4dc94f1d3a92b3b000000000000000000000000000000000000000000000000000000007735940000000000000000000000000000000000000000000000000000000005d21dba0000000000000000000000000006bdf212c290473dcacea9793890c5024c7eb02c000000000000000000000000b8fa880840a64c25318989b907ccb58fd7a324df