18 txs
2.5k calls
constructor
constructor(address _pool, bool _allowToken0, bool _allowToken1, address __owner, uint32 _twapPeriod, uint256 _vaultIndex)
functions
affiliate
viewfunction affiliate() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
allowToken0
viewfunction allowToken0() view returns (bool)
allowToken1
viewfunction allowToken1() view returns (bool)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
baseLower
viewfunction baseLower() view returns (int24)
baseUpper
viewfunction baseUpper() view returns (int24)
currentTick
viewfunction currentTick() view returns (int24 tick)
decimals
viewfunction decimals() view returns (uint8)
deposit0Max
viewfunction deposit0Max() view returns (uint256)
deposit1Max
viewfunction deposit1Max() view returns (uint256)
farmingContract
viewfunction farmingContract() view returns (address)
fee
viewfunction fee() view returns (uint24)
getBasePosition
viewfunction getBasePosition() view returns (uint128 liquidity, uint256 amount0, uint256 amount1)
getLimitPosition
viewfunction getLimitPosition() view returns (uint128 liquidity, uint256 amount0, uint256 amount1)
getTotalAmounts
viewfunction getTotalAmounts() view returns (uint256 total0, uint256 total1)
hysteresis
viewfunction hysteresis() view returns (uint256)
ichiVaultFactory
viewfunction ichiVaultFactory() view returns (address)
limitLower
viewfunction limitLower() view returns (int24)
limitUpper
viewfunction limitUpper() view returns (int24)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pool
viewfunction pool() view returns (address)
PRECISION
viewfunction PRECISION() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token1
viewfunction token1() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
twapPeriod
viewfunction twapPeriod() view returns (uint32)
veRamTokenId
viewfunction veRamTokenId() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
collectRewards
nonpayablefunction collectRewards()
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 deposit0, uint256 deposit1, address to) returns (uint256 shares)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
ramsesV2MintCallback
nonpayablefunction ramsesV2MintCallback(uint256 amount0, uint256 amount1, bytes data)
ramsesV2SwapCallback
nonpayablefunction ramsesV2SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
rebalance
nonpayablefunction rebalance(int24 _baseLower, int24 _baseUpper, int24 _limitLower, int24 _limitUpper, int256 swapQuantity)
renounceOwnership
nonpayablefunction renounceOwnership()
setAffiliate
nonpayablefunction setAffiliate(address _affiliate)
setDepositMax
nonpayablefunction setDepositMax(uint256 _deposit0Max, uint256 _deposit1Max)
setFarmingContract
nonpayablefunction setFarmingContract(address _farmingContract)
setHysteresis
nonpayablefunction setHysteresis(uint256 _hysteresis)
setMaxTotalSupply
nonpayablefunction setMaxTotalSupply(uint256 _maxTotalSupply)
setTwapPeriod
nonpayablefunction setTwapPeriod(uint32 newTwapPeriod)
setVeRamTokenId
nonpayablefunction setVeRamTokenId(uint256 _veRamTokenId)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 shares, address to) returns (uint256 amount0, uint256 amount1)
events
Affiliate
event Affiliate(address indexed sender, address affiliate)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CollectRewards
event CollectRewards(address indexed sender)
DeployICHIVault
event DeployICHIVault(address indexed sender, address indexed pool, bool allowToken0, bool allowToken1, address owner, uint256 twapPeriod)
Deposit
event Deposit(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
DepositMax
event DepositMax(address indexed sender, uint256 deposit0Max, uint256 deposit1Max)
FarmingContract
event FarmingContract(address indexed sender, address farmingContract)
Hysteresis
event Hysteresis(address indexed sender, uint256 hysteresis)
MaxTotalSupply
event MaxTotalSupply(address indexed sender, uint256 maxTotalSupply)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Rebalance
event Rebalance(int24 tick, uint256 totalAmount0, uint256 totalAmount1, uint256 feeAmount0, uint256 feeAmount1, uint256 totalSupply)
SetTwapPeriod
event SetTwapPeriod(address sender, uint32 newTwapPeriod)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
VeRamTokenId
event VeRamTokenId(address indexed sender, uint256 veRamTokenId)
Withdraw
event Withdraw(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
errors
No errors.
creation bytecode
0x6101806040523480156200001257600080fd5b5060405162005da838038062005da8833981810160405260c08110156200003857600080fd5b5080516020808301516040808501516060860151608087015160a09097015183518085018552601481527f49434849205661756c74204c6971756964697479000000000000000000000000968101969096528351639c6dde5360e01b81526004810182905293519697949692959194939092736dc9b390130c96b788ebeb389cb3cba99228953291639c6dde53916024808301926000929190829003018186803b158015620000e657600080fd5b505af4158015620000fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200012557600080fd5b81019080805160405193929190846401000000008211156200014657600080fd5b9083019060208201858111156200015c57600080fd5b82516401000000008111828201881017156200017757600080fd5b82525081516020918201929091019080838360005b83811015620001a65781810151838201526020016200018c565b50505050905090810190601f168015620001d45780820380516001836020036101000a031916815260200191505b5060405250508251620001f091506003906020850190620007fb565b50805162000206906004906020840190620007fb565b50506005805460ff1916601217905550600160065560006200022762000674565b600780546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062005d67833981519152908290a3506001600160a01b038616620002c0576040805162461bcd60e51b815260206004820152601c60248201527f49562e636f6e7374727563746f723a207a65726f206164647265737300000000604482015290519081900360640190fd5b8480620002ca5750835b620003075760405162461bcd60e51b815260040180806020018281038252602181526020018062005d876021913960400191505060405180910390fd5b33606090811b60805286901b6001600160601b03191660a05260408051630dfe168160e01b815290516001600160a01b03881691630dfe1681916004808301926020929190829003018186803b1580156200036157600080fd5b505afa15801562000376573d6000803e3d6000fd5b505050506040513d60208110156200038d57600080fd5b505160601b6001600160601b03191660c0526040805163d21220a760e01b815290516001600160a01b0388169163d21220a7916004808301926020929190829003018186803b158015620003e057600080fd5b505afa158015620003f5573d6000803e3d6000fd5b505050506040513d60208110156200040c57600080fd5b505160601b6001600160601b03191660e0526040805163ddca3f4360e01b815290516001600160a01b0388169163ddca3f43916004808301926020929190829003018186803b1580156200045f57600080fd5b505afa15801562000474573d6000803e3d6000fd5b505050506040513d60208110156200048b57600080fd5b505160e81b6001600160e81b0319166101405284151560f890811b61010052841515901b61012052600f805463ffffffff191663ffffffff8416179055604080516334324e9f60e21b815290516001600160a01b0388169163d0c93a7c916004808301926020929190829003018186803b1580156200050957600080fd5b505afa1580156200051e573d6000803e3d6000fd5b505050506040513d60208110156200053557600080fd5b5051600290810b900b60e81b6101605260408051631aaa22b160e21b815290513391636aa88ac4916004808301926020929190829003018186803b1580156200057d57600080fd5b505afa15801562000592573d6000803e3d6000fd5b505050506040513d6020811015620005a957600080fd5b5051600855620005b98362000678565b6000600d55620005df670de0b6b3a7640000606462000783602090811b620029b817901c565b600e55600019600b819055600c55600a80546001600160a01b031990811690915560098054909116905560408051861515815285151560208201526001600160a01b038581168284015263ffffffff8516606083015291519188169133917f3e708ccf7d0e6de8558e020ea36189511cb3435bbfec54e721a48ee4df0d4f8c919081900360800190a3505050505050620008a7565b3390565b6200068262000674565b6001600160a01b031662000695620007ec565b6001600160a01b031614620006f1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116620007385760405162461bcd60e51b815260040180806020018281038252602681526020018062005d416026913960400191505060405180910390fd5b6007546040516001600160a01b0380841692169060008051602062005d6783398151915290600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000808211620007da576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381620007e457fe5b049392505050565b6007546001600160a01b031690565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200083357600085556200087e565b82601f106200084e57805160ff19168380011785556200087e565b828001600101855582156200087e579182015b828111156200087e57825182559160200191906001019062000861565b506200088c92915062000890565b5090565b5b808211156200088c576000815560010162000891565b60805160601c60a05160601c60c05160601c60e05160601c6101005160f81c6101205160f81c6101405160e81c6101605160e81c61531b62000a26600039806124f25280613dab5280613de75280613e6e5280613eaa5250806126ab52508061104752806118135250806117085280611798525080610b6f5280610c29528061123852806112b2528061157d52806115b15280611c8c5280611d145280611f11528061247b528061251652806142d15280614427528061478a525080610abe5280610bef5280610e9952806111fe528061127752806114f5528061152e5280611c6b5280611cf25280611ed652806123d252806142a9528061439552806146d35280614892525080610cf95280610ecd528061116c52806114575280611a425280611b975280611cd05280611dba5280612be85280612f10528061303e52806136865280613b65528061400752806140fe52806144ea5280614b365280614d755250806126875280612ab15280612b4d5280614281525061531b6000f3fe608060405234801561001057600080fd5b506004361061030b5760003560e01c806370bb45b31161019d578063c4a7761e116100e9578063dd81fa63116100a2578063f2fde38b1161007c578063f2fde38b146108d6578063f6207326146108fc578063f9c95d461461091d578063fa082743146109405761030b565b8063dd81fa6314610888578063ddca3f4314610890578063e7bbf2b2146108b05761030b565b8063c4a7761e146107f9578063d0c93a7c14610801578063d21220a714610809578063d2eabcfc14610811578063d87346aa14610819578063dd62ed3e1461085a5761030b565b80638dbdbe6d11610156578063a457c2d711610130578063a457c2d71461077c578063a9059cbb146107a8578063aaf5eb68146107d4578063b8c06b28146107dc5761030b565b80638dbdbe6d1461071257806395d89b4114610744578063a049de6b1461074c5761030b565b806370bb45b3146106e2578063715018a6146106ea5780637aea5309146106f25780637f7a1eec146106fa578063888a9134146107025780638da5cb5b1461070a5761030b565b806337e41b401161025c5780634d461fbb11610215578063648cab85116101ef578063648cab8514610630578063654b6487146106385780636aa88ac4146106b457806370a08231146106bc5761030b565b80634d461fbb1461060357806351e87af71461060b5780635ffc1ff7146106135761030b565b806337e41b401461050b57806339509351146105135780633e091ee91461053f5780633e48f417146105625780633f3e4c11146105de57806345e05f43146105fb5761030b565b80630f35bcac116102c957806323b872dd116102a357806323b872dd146104875780632ab4d052146104bd5780632bbb56d9146104c5578063313ce567146104ed5761030b565b80630f35bcac1461045d57806316f0115b1461046557806318160ddd1461046d5761030b565b8062f714ce1461031057806302eec56814610355578063065e53601461037957806306fdde0314610398578063095ea7b3146104155780630dfe168114610455575b600080fd5b61033c6004803603604081101561032657600080fd5b50803590602001356001600160a01b0316610948565b6040805192835260208301919091528051918290030190f35b61035d610ce3565b604080516001600160a01b039092168252519081900360200190f35b610381610cf2565b6040805160029290920b8252519081900360200190f35b6103a0610de3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103da5781810151838201526020016103c2565b50505050905090810190601f1680156104075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104416004803603604081101561042b57600080fd5b506001600160a01b038135169060200135610e79565b604080519115158252519081900360200190f35b61035d610e97565b610381610ebb565b61035d610ecb565b610475610eef565b60408051918252519081900360200190f35b6104416004803603606081101561049d57600080fd5b506001600160a01b03813581169160208101359091169060400135610ef5565b610475610f7d565b6104eb600480360360208110156104db57600080fd5b50356001600160a01b0316610f83565b005b6104f561103c565b6040805160ff9092168252519081900360200190f35b610441611045565b6104416004803603604081101561052957600080fd5b506001600160a01b038135169060200135611069565b6104eb6004803603604081101561055557600080fd5b50803590602001356110b7565b6104eb6004803603606081101561057857600080fd5b81359160208101359181019060608101604082013564010000000081111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460018302840111640100000000831117156105d357600080fd5b509092509050611161565b6104eb600480360360208110156105f457600080fd5b50356112e1565b61035d611381565b610475611390565b610381611396565b6104eb6004803603602081101561062957600080fd5b50356113a6565b610475611446565b6104eb6004803603606081101561064e57600080fd5b81359160208101359181019060608101604082013564010000000081111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460018302840111640100000000831117156106a957600080fd5b50909250905061144c565b6104756115d9565b610475600480360360208110156106d257600080fd5b50356001600160a01b03166115df565b6104eb6115fa565b6104eb611654565b610475611700565b610441611706565b61038161172a565b61035d61173a565b6104756004803603606081101561072857600080fd5b50803590602081013590604001356001600160a01b0316611749565b6103a0612073565b6107546120d4565b604080516001600160801b039094168452602084019290925282820152519081900360600190f35b6104416004803603604081101561079257600080fd5b506001600160a01b03813516906020013561216c565b610441600480360360408110156107be57600080fd5b506001600160a01b0381351690602001356121d4565b6104756121e8565b6104eb600480360360208110156107f257600080fd5b50356121f4565b61033c6123a5565b6103816124f0565b61035d612514565b610754612538565b6104eb600480360360a081101561082f57600080fd5b508035600290810b916020810135820b916040820135810b91606081013590910b9060800135612594565b6104756004803603604081101561087057600080fd5b506001600160a01b038135811691602001351661265a565b61035d612685565b6108986126a9565b6040805162ffffff9092168252519081900360200190f35b6104eb600480360360208110156108c657600080fd5b50356001600160a01b03166126cd565b6104eb600480360360208110156108ec57600080fd5b50356001600160a01b0316612786565b610904612889565b6040805163ffffffff9092168252519081900360200190f35b6104eb6004803603602081101561093357600080fd5b503563ffffffff16612895565b6103816129a8565b60008060026006541415610991576040805162461bcd60e51b815260206004820152601f60248201526000805160206150ee833981519152604482015290519081900360640190fd5b6002600655836109de576040805162461bcd60e51b815260206004820152601360248201527249562e77697468647261773a2073686172657360681b604482015290519081900360640190fd5b6001600160a01b038316610a2b576040805162461bcd60e51b815260206004820152600f60248201526e49562e77697468647261773a20746f60881b604482015290519081900360640190fd5b610a33612a1f565b600a546000908190610a6890600160a01b8104600290810b91600160b81b9004900b610a6082828b612e6e565b886000612eae565b600a5491935091506000908190610aa290600160d01b8104600290810b91600160e81b9004900b610a9a82828d612e6e565b8a6000612eae565b915091506000610ab0610eef565b90506000610b6182610b5b8c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d6020811015610b5357600080fd5b5051906130d7565b906129b8565b90506000610bda83610b5b8d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b2957600080fd5b90508115610c1657610c166001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b84613130565b8015610c5057610c506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b83613130565b610c6482610c5e8988613187565b90613187565b9850610c7481610c5e8887613187565b9750610c80338c6131e1565b604080518c8152602081018b90528082018a905290516001600160a01b038c169133917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9181900360600190a35050505050505060016006819055509250929050565b6009546001600160a01b031681565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610d5057600080fd5b505afa158015610d64573d6000803e3d6000fd5b505050506040513d60e0811015610d7a57600080fd5b50602081015160c090910151909250905080610ddd576040805162461bcd60e51b815260206004820152601b60248201527f49562e63757272656e745469636b3a206c6f636b656420706f6f6c0000000000604482015290519081900360640190fd5b50919050565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e6f5780601f10610e4457610100808354040283529160200191610e6f565b820191906000526020600020905b815481529060010190602001808311610e5257829003601f168201915b5050505050905090565b6000610e8d610e866132dd565b84846132e1565b5060015b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160e81b900460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025490565b6000610f028484846133cd565b610f7284610f0e6132dd565b610f6d856040518060600160405280602881526020016151e5602891396001600160a01b038a16600090815260016020526040812090610f4c6132dd565b6001600160a01b031681526020810191909152604001600020549190613528565b6132e1565b5060015b9392505050565b600d5481565b610f8b6132dd565b6001600160a01b0316610f9c61173a565b6001600160a01b031614610fe5576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b600a80546001600160a01b0383166001600160a01b03199091168117909155604080519182525133917f3066ef5dd340e8b2ea28d62f5a8391eb7a82d3ee87532724a1ca4386d34f7523919081900360200190a250565b60055460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e8d6110766132dd565b84610f6d85600160006110876132dd565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490613187565b6110bf6132dd565b6001600160a01b03166110d061173a565b6001600160a01b031614611119576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b600b829055600c8190556040805183815260208101839052815133927fafd3b05a4086b378b6f291200a528d8aed8c5e0317af77436b001f1bec28821a928290030190a25050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111c4576040805162461bcd60e51b815260206004820152600360248201526263623160e81b604482015290519081900360640190fd5b6000828260208110156111d657600080fd5b50356001600160a01b0316905030811415611264578415611225576112256001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163387613130565b831561125f5761125f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163386613130565b6112da565b841561129f5761129f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168233886135bf565b83156112da576112da6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168233876135bf565b5050505050565b6112e96132dd565b6001600160a01b03166112fa61173a565b6001600160a01b031614611343576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b600d81905560408051828152905133917f7423cea36ad2104e8e8c3d9aa1e24288bdf3bfa7b4f37868cfa6d4d34ffdaf3a919081900360200190a250565b600a546001600160a01b031681565b600c5481565b600a54600160d01b900460020b81565b6113ae6132dd565b6001600160a01b03166113bf61173a565b6001600160a01b031614611408576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b600e81905560408051828152905133917f529698f34660760dcb172def5c99d62e1b5b74b444df322e8f7da31f2bd0a86b919081900360200190a250565b600b5481565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114af576040805162461bcd60e51b815260206004820152600360248201526231b11960e91b604482015290519081900360640190fd5b6000828260208110156114c157600080fd5b50356001600160a01b031690506000851315611556576001600160a01b0381163014156115215761151c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163387613130565b61125f565b61125f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168233886135bf565b60008413156112da576001600160a01b0381163014156115a45761125f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163386613130565b6112da6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168233876135bf565b60085481565b6001600160a01b031660009081526020819052604090205490565b60026006541415611640576040805162461bcd60e51b815260206004820152601f60248201526000805160206150ee833981519152604482015290519081900360640190fd5b600260065561164d612a1f565b6001600655565b61165c6132dd565b6001600160a01b031661166d61173a565b6001600160a01b0316146116b6576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600780546001600160a01b0319169055565b600e5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160b81b900460020b81565b6007546001600160a01b031690565b600060026006541415611791576040805162461bcd60e51b815260206004820152601f60248201526000805160206150ee833981519152604482015290519081900360640190fd5b60026006557f0000000000000000000000000000000000000000000000000000000000000000806117c0575083155b611811576040805162461bcd60e51b815260206004820152601e60248201527f49562e6465706f7369743a20746f6b656e30206e6f7420616c6c6f7765640000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000008061183b575082155b61188c576040805162461bcd60e51b815260206004820152601e60248201527f49562e6465706f7369743a20746f6b656e31206e6f7420616c6c6f7765640000604482015290519081900360640190fd5b600084118061189b5750600083115b6118ec576040805162461bcd60e51b815260206004820181905260248201527f49562e6465706f7369743a206465706f73697473206d757374206265203e2030604482015290519081900360640190fd5b600b54841080156118fe5750600c5483105b61194f576040805162461bcd60e51b815260206004820152601e60248201527f49562e6465706f7369743a206465706f7369747320746f6f206c617267650000604482015290519081900360640190fd5b6001600160a01b0382161580159061197057506001600160a01b0382163014155b6119b2576040805162461bcd60e51b815260206004820152600e60248201526d49562e6465706f7369743a20746f60901b604482015290519081900360640190fd5b6119ba612a1f565b600a546000906119df90600160a01b8104600290810b91600160b81b9004900b61361f565b50909150506001600160801b03811615611b0f57600a546040805163a34123a760e01b8152600160a01b8304600290810b810b6004830152600160b81b909304830b90920b60248301526000604483018190528151909283926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263a34123a792606480820193929182900301818787803b158015611a8657600080fd5b505af1158015611a9a573d6000803e3d6000fd5b505050506040513d6040811015611ab057600080fd5b508051602090910151909250905081158015611aca575080155b611b0c576040805162461bcd60e51b815260206004820152600e60248201526d49562e6465706f7369743a20623160901b604482015290519081900360640190fd5b50505b600a54600090611b3490600160d01b8104600290810b91600160e81b9004900b61361f565b50909150506001600160801b03811615611c6457600a546040805163a34123a760e01b8152600160d01b8304600290810b810b6004830152600160e81b909304830b90920b60248301526000604483018190528151909283926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263a34123a792606480820193929182900301818787803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050506040513d6040811015611c0557600080fd5b508051602090910151909250905081158015611c1f575080155b611c61576040805162461bcd60e51b815260206004820152600e60248201526d24ab173232b837b9b4ba1d10311960911b604482015290519081900360640190fd5b50505b6000611cc17f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cb3610cf2565b670de0b6b3a764000061371a565b600f54909150600090611d48907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009063ffffffff16670de0b6b3a764000061384e565b90506000818311611d7857611d7382610b5b670de0b6b3a7640000611d6d8388613a11565b906130d7565b611d92565b611d9283610b5b670de0b6b3a7640000611d6d8387613a11565b9050600e54811115611e8b57736dc9b390130c96b788ebeb389cb3cba99228953263ac2bca427f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e1657600080fd5b505af4158015611e2a573d6000803e3d6000fd5b505050506040513d6020811015611e4057600080fd5b5051611e8b576040805162461bcd60e51b815260206004820152601560248201527424ab173232b837b9b4ba1d103a393c903630ba32b960591b604482015290519081900360640190fd5b600080611e966123a5565b915091506000611ec1670de0b6b3a7640000610b5b878910611eb85787611eba565b885b8f906130d7565b90508b15611efe57611efe6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308f6135bf565b8a15611f3957611f396001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308e6135bf565b611f438b82613187565b9850611f4d610eef565b15611f9e576000611f79670de0b6b3a7640000610b5b888a11611f705788611f72565b895b87906130d7565b9050611f9a611f888285613187565b610b5b611f93610eef565b8d906130d7565b9950505b611fa88a8a613a6e565b604080518a8152602081018e90528082018d905290516001600160a01b038c169133917f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f69181900360600190a3600d54158061200d5750600d5461200a610eef565b11155b61205e576040805162461bcd60e51b815260206004820152601a60248201527f49562e6465706f7369743a206d6178546f74616c537570706c79000000000000604482015290519081900360640190fd5b50506001600655509498975050505050505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e6f5780601f10610e4457610100808354040283529160200191610e6f565b600080600080600080612105600a601a9054906101000a900460020b600a601d9054906101000a900460020b61361f565b600a54929550909350915061213090600160d01b8104600290810b91600160e81b9004900b85613b5e565b9396509450919250849161214d856001600160801b038416613187565b9450612162846001600160801b038316613187565b9350505050909192565b6000610e8d6121796132dd565b84610f6d856040518060600160405280602581526020016152c160259139600160006121a36132dd565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613528565b6000610e8d6121e16132dd565b84846133cd565b670de0b6b3a764000081565b6002600654141561223a576040805162461bcd60e51b815260206004820152601f60248201526000805160206150ee833981519152604482015290519081900360640190fd5b60026006556122476132dd565b6001600160a01b031661225861173a565b6001600160a01b0316146122a1576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b8060085414156122e0576040805162461bcd60e51b81526020600482015260056024820152641a59195b9d60da1b604482015290519081900360640190fd5b6008819055600a54600160a01b8104600290810b810b600160d01b909204810b900b14158061232a5750600a54600160b81b8104600290810b810b600160e81b909204810b900b14155b1561236757600a5461236790600160a01b8104600290810b91600160b81b8104820b91600160d01b8204810b91600160e81b9004900b6000613d99565b60408051828152905133917f3ee13e0b2f6b34268876fada8907fbe4fd0dd35479e5dd726e73b8dd4a4e0863919081900360200190a2506001600655565b6000806000806123b3612538565b92509250506000806123c36120d4565b925092505061246f82610c5e867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d602081101561246757600080fd5b505190613187565b95506124e681610c5e857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561243d57600080fd5b9450505050509091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600080600080612569600a60149054906101000a900460020b600a60179054906101000a900460020b61361f565b600a54929550909350915061213090600160a01b8104600290810b91600160b81b9004900b85613b5e565b600260065414156125da576040805162461bcd60e51b815260206004820152601f60248201526000805160206150ee833981519152604482015290519081900360640190fd5b60026006556125e76132dd565b6001600160a01b03166125f861173a565b6001600160a01b031614612641576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b61264e8585858585613d99565b50506001600655505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6126d56132dd565b6001600160a01b03166126e661173a565b6001600160a01b03161461272f576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b600980546001600160a01b0383166001600160a01b03199091168117909155604080519182525133917f52879d117cfbdc2394606bb3ec87af61be311fea7f1fe0ad192d4058ed7d18fa919081900360200190a250565b61278e6132dd565b6001600160a01b031661279f61173a565b6001600160a01b0316146127e8576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b6001600160a01b03811661282d5760405162461bcd60e51b81526004018080602001828103825260268152602001806151306026913960400191505060405180910390fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b600f5463ffffffff1681565b61289d6132dd565b6001600160a01b03166128ae61173a565b6001600160a01b0316146128f7576040805162461bcd60e51b8152602060048201819052602482015260008051602061520d833981519152604482015290519081900360640190fd5b60008163ffffffff1611612952576040805162461bcd60e51b815260206004820181905260248201527f49562e73657454776170506572696f643a206d697373696e6720706572696f64604482015290519081900360640190fd5b600f805463ffffffff191663ffffffff831690811790915560408051338152602081019290925280517fe4c60f4984caeb7f45b0cfe6d4233c115601ab11d141bc2cbf68b48346cdef389281900390910190a150565b600a54600160a01b900460020b81565b6000808211612a0e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612a1757fe5b049392505050565b6009546001600160a01b03161580612a3a5750600019600854145b80612a6c5750600a54600160a01b9004600290810b900b158015612a6c5750600a54600160b81b9004600290810b900b155b80612a9e5750600a54600160d01b9004600290810b900b158015612a9e5750600a54600160e81b9004600290810b900b155b80612b3f575060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f63ccea26040518163ffffffff1660e01b815260040160206040518083038186803b158015612b0857600080fd5b505afa158015612b1c573d6000803e3d6000fd5b505050506040513d6020811015612b3257600080fd5b50516001600160a01b0316145b15612b4957612e6c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f63ccea26040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d6020811015612bce57600080fd5b50516040805163b1c6f0e960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529151919092169163b1c6f0e9916024808301926020929190829003018186803b158015612c3a57600080fd5b505afa158015612c4e573d6000803e3d6000fd5b505050506040513d6020811015612c6457600080fd5b505190506001600160a01b038116612c7c5750612e6c565b6000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cb757600080fd5b505afa158015612ccb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612cf457600080fd5b8101908080516040519392919084640100000000821115612d1457600080fd5b908301906020820185811115612d2957600080fd5b8251866020820283011164010000000082111715612d4657600080fd5b82525081516020918201928201910280838360005b83811015612d73578181015183820152602001612d5b565b505050509050016040525050509050600062093a804281612d9057fe5b600a549190049150612dc19084906000198401908590600160a01b8104600290810b91600160b81b9004900b614934565b600a54612ded9084906000198401908590600160d01b8104600290810b91600160e81b9004900b614934565b600a54612e1590849083908590600160a01b8104600290810b91600160b81b9004900b614934565b600a54612e3d90849083908590600160d01b8104600290810b91600160e81b9004900b614934565b60405133907f6d6b2f775aa16c68df093db6462bd09b075250025cbd10acede7a113bf8d3ee790600090a25050505b565b600080612e7b858561361f565b50509050612ea5612ea0612e8d610eef565b610b5b6001600160801b038516876130d7565b614a35565b95945050505050565b6000806001600160801b038516156130cd5760408051631c7f367360e31b815260006004820181905260028a810b602484015289900b60448301526001600160801b038816606483015260001960848301528251909283926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e3f9b3989260a48084019391929182900301818787803b158015612f5557600080fd5b505af1158015612f69573d6000803e3d6000fd5b505050506040513d6040811015612f7f57600080fd5b5080516020909101519092509050600085612fa257612f9d83614a35565b612fab565b6001600160801b035b9050600086612fc257612fbd83614a35565b612fcb565b6001600160801b035b90506000826001600160801b03161180612fee57506000816001600160801b0316115b156130c857604080516309e3d67b60e31b81526001600160a01b038a8116600483015260028e810b60248401528d900b60448301526001600160801b0385811660648401528416608483015282517f000000000000000000000000000000000000000000000000000000000000000090911692634f1eb3d89260a480820193918290030181600087803b15801561308457600080fd5b505af1158015613098573d6000803e3d6000fd5b505050506040513d60408110156130ae57600080fd5b5080516020909101516001600160801b0391821697501694505b505050505b9550959350505050565b6000826130e657506000610e91565b828202828482816130f357fe5b0414610f765760405162461bcd60e51b81526004018080602001828103825260218152602001806151c46021913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052613182908490614a80565b505050565b600082820183811015610f76576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0382166132265760405162461bcd60e51b815260040180806020018281038252602181526020018061522d6021913960400191505060405180910390fd5b61323282600083613182565b61326f8160405180606001604052806022815260200161510e602291396001600160a01b0385166000908152602081905260409020549190613528565b6001600160a01b0383166000908152602081905260409020556002546132959082613a11565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b3390565b6001600160a01b0383166133265760405162461bcd60e51b81526004018080602001828103825260248152602001806152736024913960400191505060405180910390fd5b6001600160a01b03821661336b5760405162461bcd60e51b81526004018080602001828103825260228152602001806151566022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166134125760405162461bcd60e51b815260040180806020018281038252602581526020018061524e6025913960400191505060405180910390fd5b6001600160a01b0382166134575760405162461bcd60e51b81526004018080602001828103825260238152602001806150cb6023913960400191505060405180910390fd5b613462838383613182565b61349f81604051806060016040528060268152602001615178602691396001600160a01b0386166000908152602081905260409020549190613528565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546134ce9082613187565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052613619908590614a80565b50505050565b604080513060601b602080830191909152600060348301819052600286810b60e890811b60548601529086900b901b60578401528351603a818503018152605a84018086528151919093012063514ea4bf60e01b909252605e8301829052925183928392917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163514ea4bf91607e8083019260c0929190829003018186803b1580156136d457600080fd5b505afa1580156136e8573d6000803e3d6000fd5b505050506040513d60c08110156136fe57600080fd5b5080516060820151608090920151909891975095509350505050565b6000736dc9b390130c96b788ebeb389cb3cba9922895326343c57a2784736dc9b390130c96b788ebeb389cb3cba99228953263809fdd33866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561378657600080fd5b505af415801561379a573d6000803e3d6000fd5b505050506040513d60208110156137b057600080fd5b5051604080516001600160e01b031960e086901b16815260029390930b60048401526001600160801b0390911660248301526001600160a01b03808a16604484015288166064830152516084808301926020929190829003018186803b15801561381957600080fd5b505af415801561382d573d6000803e3d6000fd5b505050506040513d602081101561384357600080fd5b505195945050505050565b600080736dc9b390130c96b788ebeb389cb3cba992289532638241348988866040518363ffffffff1660e01b815260040180836001600160a01b031681526020018263ffffffff1681526020019250505060206040518083038186803b1580156138b757600080fd5b505af41580156138cb573d6000803e3d6000fd5b505050506040513d60208110156138e157600080fd5b50516040805163809fdd3360e01b815260048101869052905160029290920b9250736dc9b390130c96b788ebeb389cb3cba992289532916343c57a27918491849163809fdd33916024808301926020929190829003018186803b15801561394757600080fd5b505af415801561395b573d6000803e3d6000fd5b505050506040513d602081101561397157600080fd5b5051604080516001600160e01b031960e086901b16815260029390930b60048401526001600160801b0390911660248301526001600160a01b03808b16604484015289166064830152516084808301926020929190829003018186803b1580156139da57600080fd5b505af41580156139ee573d6000803e3d6000fd5b505050506040513d6020811015613a0457600080fd5b5051979650505050505050565b600082821115613a68576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216613ac9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b613ad560008383613182565b600254613ae29082613187565b6002556001600160a01b038216600090815260208190526040902054613b089082613187565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015613bbc57600080fd5b505afa158015613bd0573d6000803e3d6000fd5b505050506040513d60e0811015613be657600080fd5b50516040805163986cfba360e01b8152600289900b60048201529051919250736dc9b390130c96b788ebeb389cb3cba9922895329163c72e160b918491849163986cfba3916024808301926020929190829003018186803b158015613c4a57600080fd5b505af4158015613c5e573d6000803e3d6000fd5b505050506040513d6020811015613c7457600080fd5b50516040805163986cfba360e01b815260028b900b60048201529051736dc9b390130c96b788ebeb389cb3cba9922895329163986cfba3916024808301926020929190829003018186803b158015613ccb57600080fd5b505af4158015613cdf573d6000803e3d6000fd5b505050506040513d6020811015613cf557600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529284166024840152921660448201526001600160801b0388166064820152815160848083019392829003018186803b158015613d5757600080fd5b505af4158015613d6b573d6000803e3d6000fd5b505050506040513d6040811015613d8157600080fd5b5080516020909101519093509150505b935093915050565b8360020b8560020b128015613dde57507f000000000000000000000000000000000000000000000000000000000000000060020b8560020b81613dd857fe5b0760020b155b8015613e1a57507f000000000000000000000000000000000000000000000000000000000000000060020b8460020b81613e1457fe5b0760020b155b613e5c576040805162461bcd60e51b815260206004820152600e60248201526d24ab173932b11d1031381034b73b60911b604482015290519081900360640190fd5b8160020b8360020b128015613ea157507f000000000000000000000000000000000000000000000000000000000000000060020b8360020b81613e9b57fe5b0760020b155b8015613edd57507f000000000000000000000000000000000000000000000000000000000000000060020b8260020b81613ed757fe5b0760020b155b613f1f576040805162461bcd60e51b815260206004820152600e60248201526d24ab173932b11d1036381034b73b60911b604482015290519081900360640190fd5b8260020b8560020b141580613f3a57508160020b8460020b14155b613f7b576040805162461bcd60e51b815260206004820152600d60248201526c12558b9c99588e881a59195b9d609a1b604482015290519081900360640190fd5b613f83612a1f565b600a54600090613fa890600160a01b8104600290810b91600160b81b9004900b61361f565b50909150506001600160801b0381161561407a57600a546040805163a34123a760e01b8152600160a01b8304600290810b810b6004830152600160b81b909304830b90920b602483015260006044830181905281516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169363a34123a7936064808301949193928390030190829087803b15801561404d57600080fd5b505af1158015614061573d6000803e3d6000fd5b505050506040513d604081101561407757600080fd5b50505b600a5460009061409f90600160d01b8104600290810b91600160e81b9004900b61361f565b50909150506001600160801b0381161561417157600a546040805163a34123a760e01b8152600160d01b8304600290810b810b6004830152600160e81b909304830b90920b602483015260006044830181905281516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169363a34123a7936064808301949193928390030190829087803b15801561414457600080fd5b505af1158015614158573d6000803e3d6000fd5b505050506040513d604081101561416e57600080fd5b50505b600a54600090819061419890600160a01b8104600290810b91600160b81b9004900b61361f565b600a546001600160801b039283169550911692506000915081906141d190600160d01b8104600290810b91600160e81b9004900b61361f565b6001600160801b039182169450169150600090506141ef8584613187565b905060006141fd8584613187565b600a5490915061422690600160a01b8104600290810b91600160b81b9004900b8a306001612eae565b5050600a5461424e90600160d01b8104600290810b91600160e81b9004900b89306001612eae565b5050600a546040805163f854d45360e01b815260048101859052602481018490526001600160a01b0392831660448201527f0000000000000000000000000000000000000000000000000000000000000000831660648201527f0000000000000000000000000000000000000000000000000000000000000000831660848201527f000000000000000000000000000000000000000000000000000000000000000090921660a483015251736dc9b390130c96b788ebeb389cb3cba9922895329163f854d4539160c4808301926000929190829003018186803b15801561433457600080fd5b505af4158015614348573d6000803e3d6000fd5b505050507fbc4c20ad04f161d631d9ce94d27659391196415aa3c42f6a71c62e905ece782d614375610cf2565b604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b1580156143db57600080fd5b505afa1580156143ef573d6000803e3d6000fd5b505050506040513d602081101561440557600080fd5b5051604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b15801561446d57600080fd5b505afa158015614481573d6000803e3d6000fd5b505050506040513d602081101561449757600080fd5b505185856144a3610eef565b6040805160029790970b87526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190a1881561466a576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663128acb083060008c1380614522578c600003614524565b8c5b60008e136145465773fffd8963efd1fc6a506488495d951d5263988d2561454d565b6401000276a45b3060405160200180826001600160a01b031681526020019150506040516020818303038152906040526040518663ffffffff1660e01b815260040180866001600160a01b031681526020018515158152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145ee5781810151838201526020016145d6565b50505050905090810190601f16801561461b5780820380516001836020036101000a031916815260200191505b5096505050505050506040805180830381600087803b15801561463d57600080fd5b505af1158015614651573d6000803e3d6000fd5b505050506040513d604081101561466757600080fd5b50505b8c600a60146101000a81548162ffffff021916908360020b62ffffff1602179055508b600a60176101000a81548162ffffff021916908360020b62ffffff160217905550614801600a60149054906101000a900460020b600a60179054906101000a900460020b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561473e57600080fd5b505afa158015614752573d6000803e3d6000fd5b505050506040513d602081101561476857600080fd5b5051604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b1580156147d057600080fd5b505afa1580156147e4573d6000803e3d6000fd5b505050506040513d60208110156147fa57600080fd5b5051614b31565b600a5490985061482790600160a01b8104600290810b91600160b81b9004900b8a614d61565b50508a600a601a6101000a81548162ffffff021916908360020b62ffffff16021790555089600a601d6101000a81548162ffffff021916908360020b62ffffff1602179055506148fd600a601a9054906101000a900460020b600a601d9054906101000a900460020b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561473e57600080fd5b600a5490975061492390600160d01b8104600290810b91600160e81b9004900b89614d61565b505050505050505050505050505050565b846001600160a01b03166329b2f63785853060008787600960009054906101000a90046001600160a01b03166040518863ffffffff1660e01b81526004018088815260200180602001876001600160a01b031681526020018681526020018560020b81526020018460020b8152602001836001600160a01b03168152602001828103825288818151815260200191508051906020019060200280838360005b838110156149eb5781810151838201526020016149d3565b5050505090500198505050505050505050600060405180830381600087803b158015614a1657600080fd5b505af1158015614a2a573d6000803e3d6000fd5b505050505050505050565b60006001600160801b03821115614a7c576040805162461bcd60e51b815260206004820152600660248201526518991c2fa7a360d11b604482015290519081900360640190fd5b5090565b6000614ad5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614eec9092919063ffffffff16565b80519091501561318257808060200190516020811015614af457600080fd5b50516131825760405162461bcd60e51b815260040180806020018281038252602a815260200180615297602a913960400191505060405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015614b8d57600080fd5b505afa158015614ba1573d6000803e3d6000fd5b505050506040513d60e0811015614bb757600080fd5b50516040805163986cfba360e01b8152600289900b60048201529051919250736dc9b390130c96b788ebeb389cb3cba99228953291636098fd4a918491849163986cfba3916024808301926020929190829003018186803b158015614c1b57600080fd5b505af4158015614c2f573d6000803e3d6000fd5b505050506040513d6020811015614c4557600080fd5b50516040805163986cfba360e01b815260028b900b60048201529051736dc9b390130c96b788ebeb389cb3cba9922895329163986cfba3916024808301926020929190829003018186803b158015614c9c57600080fd5b505af4158015614cb0573d6000803e3d6000fd5b505050506040513d6020811015614cc657600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529284166024840152921660448201526064810188905260848101879052905160a4808301926020929190829003018186803b158015614d2b57600080fd5b505af4158015614d3f573d6000803e3d6000fd5b505050506040513d6020811015614d5557600080fd5b50519695505050505050565b6000806001600160801b03831615613d91577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a418e9e03060008888886008543060405160200180826001600160a01b031681526020019150506040516020818303038152906040526040518863ffffffff1660e01b815260040180886001600160a01b031681526020018781526020018660020b81526020018560020b8152602001846001600160801b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614e5c578181015183820152602001614e44565b50505050905090810190601f168015614e895780820380516001836020036101000a031916815260200191505b50985050505050505050506040805180830381600087803b158015614ead57600080fd5b505af1158015614ec1573d6000803e3d6000fd5b505050506040513d6040811015614ed757600080fd5b50805160209091015190969095509350505050565b6060614efb8484600085614f03565b949350505050565b606082471015614f445760405162461bcd60e51b815260040180806020018281038252602681526020018061519e6026913960400191505060405180910390fd5b614f4d8561505e565b614f9e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310614fdc5780518252601f199092019160209182019101614fbd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461503e576040519150601f19603f3d011682016040523d82523d6000602084013e615043565b606091505b5091509150615053828286615064565b979650505050505050565b3b151590565b60608315615073575081610f76565b8251156150835782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561357c57818101518382015260200161356456fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122069c84e7e2542a35251e69bfbc66795448b6d55db9c963f9a7d46d5eb76e9500964736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573738be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e049562e636f6e7374727563746f723a206e6f20616c6c6f77656420746f6b656e7300000000000000000000000030afbcf9458c3131a6d051c621e307e6278e411000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000508c3daa571854247726ba26949f182086ff89b00000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000000009