216 txs
12k calls
constructor
constructor(address _admin, uint256 _buffer, address _tokenManager, address _mintReceiver, address _glpManager, address _rewardRouter, uint256 _maxTokenSupply, uint256 _marginFeeBasisPoints, uint256 _maxMarginFeeBasisPoints)
functions
admin
viewfunction admin() view returns (address)
buffer
viewfunction buffer() view returns (uint256)
glpManager
viewfunction glpManager() view returns (address)
isHandler
viewfunction isHandler(address) view returns (bool)
isKeeper
viewfunction isKeeper(address) view returns (bool)
marginFeeBasisPoints
viewfunction marginFeeBasisPoints() view returns (uint256)
MAX_BUFFER
viewfunction MAX_BUFFER() view returns (uint256)
MAX_FUNDING_RATE_FACTOR
viewfunction MAX_FUNDING_RATE_FACTOR() view returns (uint256)
MAX_LEVERAGE_VALIDATION
viewfunction MAX_LEVERAGE_VALIDATION() view returns (uint256)
maxMarginFeeBasisPoints
viewfunction maxMarginFeeBasisPoints() view returns (uint256)
maxTokenSupply
viewfunction maxTokenSupply() view returns (uint256)
mintReceiver
viewfunction mintReceiver() view returns (address)
pendingActions
viewfunction pendingActions(bytes32) view returns (uint256)
PRICE_PRECISION
viewfunction PRICE_PRECISION() view returns (uint256)
rewardRouter
viewfunction rewardRouter() view returns (address)
shouldToggleIsLeverageEnabled
viewfunction shouldToggleIsLeverageEnabled() view returns (bool)
tokenManager
viewfunction tokenManager() view returns (address)
approve
nonpayablefunction approve(address _token, address _spender, uint256 _amount)
batchSetBonusRewards
nonpayablefunction batchSetBonusRewards(address _vester, address[] _accounts, uint256[] _amounts)
batchWithdrawFees
nonpayablefunction batchWithdrawFees(address _vault, address[] _tokens)
cancelAction
nonpayablefunction cancelAction(bytes32 _action)
clearVaultTokenConfig
nonpayablefunction clearVaultTokenConfig(address _vault, address _token)
disableLeverage
nonpayablefunction disableLeverage(address _vault)
enableLeverage
nonpayablefunction enableLeverage(address _vault)
govSetCodeOwner
nonpayablefunction govSetCodeOwner(address _referralStorage, bytes32 _code, address _newAccount)
initGlpManager
nonpayablefunction initGlpManager()
initRewardRouter
nonpayablefunction initRewardRouter()
processMint
nonpayablefunction processMint(address _token, address _receiver, uint256 _amount)
redeemUsdg
nonpayablefunction redeemUsdg(address _vault, address _token, uint256 _amount)
removeAdmin
nonpayablefunction removeAdmin(address _token, address _account)
setAdmin
nonpayablefunction setAdmin(address _admin)
setBuffer
nonpayablefunction setBuffer(uint256 _buffer)
setContractHandler
nonpayablefunction setContractHandler(address _handler, bool _isActive)
setExternalAdmin
nonpayablefunction setExternalAdmin(address _target, address _admin)
setFees
nonpayablefunction setFees(address _vault, uint256 _taxBasisPoints, uint256 _stableTaxBasisPoints, uint256 _mintBurnFeeBasisPoints, uint256 _swapFeeBasisPoints, uint256 _stableSwapFeeBasisPoints, uint256 _marginFeeBasisPoints, uint256 _liquidationFeeUsd, uint256 _minProfitTime, bool _hasDynamicFees)
setFundingRate
nonpayablefunction setFundingRate(address _vault, uint256 _fundingInterval, uint256 _fundingRateFactor, uint256 _stableFundingRateFactor)
setGlpCooldownDuration
nonpayablefunction setGlpCooldownDuration(uint256 _cooldownDuration)
setGov
nonpayablefunction setGov(address _target, address _gov)
setHandler
nonpayablefunction setHandler(address _target, address _handler, bool _isActive)
setInPrivateLiquidationMode
nonpayablefunction setInPrivateLiquidationMode(address _vault, bool _inPrivateLiquidationMode)
setInPrivateTransferMode
nonpayablefunction setInPrivateTransferMode(address _token, bool _inPrivateTransferMode)
setIsLeverageEnabled
nonpayablefunction setIsLeverageEnabled(address _vault, bool _isLeverageEnabled)
setIsSwapEnabled
nonpayablefunction setIsSwapEnabled(address _vault, bool _isSwapEnabled)
setKeeper
nonpayablefunction setKeeper(address _keeper, bool _isActive)
setLiquidator
nonpayablefunction setLiquidator(address _vault, address _liquidator, bool _isActive)
setMarginFeeBasisPoints
nonpayablefunction setMarginFeeBasisPoints(uint256 _marginFeeBasisPoints, uint256 _maxMarginFeeBasisPoints)
setMaxGasPrice
nonpayablefunction setMaxGasPrice(address _vault, uint256 _maxGasPrice)
setMaxGlobalShortSize
nonpayablefunction setMaxGlobalShortSize(address _vault, address _token, uint256 _amount)
setMaxLeverage
nonpayablefunction setMaxLeverage(address _vault, uint256 _maxLeverage)
setPriceFeed
nonpayablefunction setPriceFeed(address _vault, address _priceFeed)
setReferrerTier
nonpayablefunction setReferrerTier(address _referralStorage, address _referrer, uint256 _tierId)
setShortsTrackerAveragePriceWeight
nonpayablefunction setShortsTrackerAveragePriceWeight(uint256 _shortsTrackerAveragePriceWeight)
setShouldToggleIsLeverageEnabled
nonpayablefunction setShouldToggleIsLeverageEnabled(bool _shouldToggleIsLeverageEnabled)
setSwapFees
nonpayablefunction setSwapFees(address _vault, uint256 _taxBasisPoints, uint256 _stableTaxBasisPoints, uint256 _mintBurnFeeBasisPoints, uint256 _swapFeeBasisPoints, uint256 _stableSwapFeeBasisPoints)
setTier
nonpayablefunction setTier(address _referralStorage, uint256 _tierId, uint256 _totalRebate, uint256 _discountShare)
setTokenConfig
nonpayablefunction setTokenConfig(address _vault, address _token, uint256 _tokenWeight, uint256 _minProfitBps, uint256 _maxUsdgAmount, uint256 _bufferAmount, uint256 _usdgAmount)
setUsdgAmounts
nonpayablefunction setUsdgAmounts(address _vault, address[] _tokens, uint256[] _usdgAmounts)
setVaultUtils
nonpayablefunction setVaultUtils(address _vault, address _vaultUtils)
signalApprove
nonpayablefunction signalApprove(address _token, address _spender, uint256 _amount)
signalClearVaultTokenConfig
nonpayablefunction signalClearVaultTokenConfig(address _vault, address _token)
signalMint
nonpayablefunction signalMint(address _token, address _receiver, uint256 _amount)
signalRedeemUsdg
nonpayablefunction signalRedeemUsdg(address _vault, address _token, uint256 _amount)
signalSetGov
nonpayablefunction signalSetGov(address _target, address _gov)
signalSetHandler
nonpayablefunction signalSetHandler(address _target, address _handler, bool _isActive)
signalSetPriceFeed
nonpayablefunction signalSetPriceFeed(address _vault, address _priceFeed)
signalVaultSetTokenConfig
nonpayablefunction signalVaultSetTokenConfig(address _vault, address _token, uint256 _tokenDecimals, uint256 _tokenWeight, uint256 _minProfitBps, uint256 _maxUsdgAmount, bool _isStable, bool _isShortable)
signalWithdrawToken
nonpayablefunction signalWithdrawToken(address _target, address _token, address _receiver, uint256 _amount)
transferIn
nonpayablefunction transferIn(address _sender, address _token, uint256 _amount)
updateUsdgSupply
nonpayablefunction updateUsdgSupply(uint256 usdgAmount)
vaultSetTokenConfig
nonpayablefunction vaultSetTokenConfig(address _vault, address _token, uint256 _tokenDecimals, uint256 _tokenWeight, uint256 _minProfitBps, uint256 _maxUsdgAmount, bool _isStable, bool _isShortable)
withdrawFees
nonpayablefunction withdrawFees(address _vault, address _token, address _receiver)
withdrawToken
nonpayablefunction withdrawToken(address _target, address _token, address _receiver, uint256 _amount)
events
ClearAction
event ClearAction(bytes32 action)
SignalApprove
event SignalApprove(address token, address spender, uint256 amount, bytes32 action)
SignalClearVaultTokenConfig
event SignalClearVaultTokenConfig(address vault, address token, bytes32 action)
SignalMint
event SignalMint(address token, address receiver, uint256 amount, bytes32 action)
SignalPendingAction
event SignalPendingAction(bytes32 action)
SignalRedeemUsdg
event SignalRedeemUsdg(address vault, address token, uint256 amount)
SignalSetGov
event SignalSetGov(address target, address gov, bytes32 action)
SignalSetHandler
event SignalSetHandler(address target, address handler, bool isActive, bytes32 action)
SignalSetPriceFeed
event SignalSetPriceFeed(address vault, address priceFeed, bytes32 action)
SignalVaultSetTokenConfig
event SignalVaultSetTokenConfig(address vault, address token, uint256 tokenDecimals, uint256 tokenWeight, uint256 minProfitBps, uint256 maxUsdgAmount, bool isStable, bool isShortable)
SignalWithdrawToken
event SignalWithdrawToken(address target, address token, address receiver, uint256 amount, bytes32 action)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162005fc938038062005fc983398181016040526101208110156200003857600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e08801516101009098015196979596949593949293919290919062069780881115620000cd576040805162461bcd60e51b815260206004820152601960248201527f54696d656c6f636b3a20696e76616c6964205f62756666657200000000000000604482015290519081900360640190fd5b600180546001600160a01b03199081166001600160a01b039b8c16179091556000988955600280548216988b1698909817909755600380548816968a169690961790955560048054871694891694909417909355600580549095169190961617909255600693909355600755600891909155615e799081906200015090396000f3fe608060405234801561001057600080fd5b50600436106103375760003560e01c80629a698e1461033c5780630191c2371461047157806309cc9a08146104a75780630e0dc426146104dd5780630e9587f31461052b5780631154e80814610563578063117cf2041461059b578063185051c1146105c95780631cf72367146105f7578063204bbc541461062557806321754d9e1461065b57806321bd059214610697578063227f03eb146106c557806323aaad12146106fd57806324ccbe3014610719578063268959e5146107515780632a709b141461077f5780632ba3725a146107a3578063318bc689146107bd57806346ea87af146107c557806347de43e2146107eb5780634cd23f3b146108235780634f5f6b5e1461085f57806350f7c2041461087c57806351a6de0d1461088457806355818294146108b257806355ef1395146108ea5780635a3bb989146109185780635b05348b1461092057806361d075691461093d5780636ba42aaa146109455780636d63c1d01461096b5780636e5227d414610991578063704b6c02146109f257806370ac0a9314610a1857806376e1128614610a4e578063781cc3d314610a7c5780637b6f775a14610a995780637e43c62d14610ac557806380894d6214610acd57806381774b3d14610afb57806386803c7214610b185780638a39735a14610b465780638bf22c4614610b4e5780638e34c98f14610b7a57806395082d2514610b99578063996a7a1e14610ba1578063996e2bc914610bcf5780639b53ad2214610bd7578063adc7ea3714610d0a578063afd14deb14610d27578063bc476dfd14610d2f578063bc8a8ab914610d5d578063c142940a14610d93578063c7bb26a014610dc9578063cd2b123014610dd1578063d1b9e85314610dff578063d3c87bbb14610e2d578063da76231614610e53578063db1c844114610e97578063dce6e18d14610ef0578063ddde76ea14610f26578063df3a66d914610f54578063e1f21c6714610f8a578063e21b459114610fc0578063e30569e514610fe3578063e3cbeb0f14611000578063e4652f4914611059578063e8ae22711461108f578063edaafe2014611140578063f851a44014611148578063fa6db1bc14611150575b600080fd5b61046f6004803603606081101561035257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460208302840111600160201b831117156103af57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103fe57600080fd5b82018360208201111561041057600080fd5b803590602001918460208302840111600160201b8311171561043157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611158945050505050565b005b61046f6004803603606081101561048757600080fd5b506001600160a01b038135811691602081013590911690604001356113b4565b61046f600480360360608110156104bd57600080fd5b506001600160a01b038135811691602081013590911690604001356114b2565b61046f600480360360e08110156104f357600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060c001356115b1565b61046f6004803603606081101561054157600080fd5b506001600160a01b038135811691602081013582169160409091013516611a2a565b61046f6004803603606081101561057957600080fd5b506001600160a01b038135811691602081013590911690604001351515611b08565b61046f600480360360408110156105b157600080fd5b506001600160a01b0381351690602001351515611c39565b61046f600480360360408110156105df57600080fd5b506001600160a01b0381351690602001351515611d1e565b61046f6004803603604081101561060d57600080fd5b506001600160a01b0381358116916020013516611d96565b61046f6004803603606081101561063b57600080fd5b506001600160a01b03813581169160208101359160409091013516611e9f565b61046f6004803603608081101561067157600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611f77565b61046f600480360360408110156106ad57600080fd5b506001600160a01b03813516906020013515156120c2565b61046f600480360360808110156106db57600080fd5b506001600160a01b038135169060208101359060408101359060600135612157565b6107056122ac565b604080519115158252519081900360200190f35b61046f6004803603606081101561072f57600080fd5b506001600160a01b0381358116916020810135909116906040013515156122b5565b61046f6004803603604081101561076757600080fd5b506001600160a01b03813581169160200135166123be565b61078761245a565b604080516001600160a01b039092168252519081900360200190f35b6107ab612469565b60408051918252519081900360200190f35b6107ab612470565b610705600480360360208110156107db57600080fd5b50356001600160a01b0316612476565b61046f6004803603606081101561080157600080fd5b506001600160a01b03813581169160208101359091169060400135151561248b565b61046f6004803603608081101561083957600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135612531565b61046f6004803603602081101561087557600080fd5b503561264c565b6107ab6126f8565b61046f6004803603604081101561089a57600080fd5b506001600160a01b03813581169160200135166126fe565b61046f600480360360808110156108c857600080fd5b506001600160a01b0381351690602081013590604081013590606001356127f8565b61046f6004803603604081101561090057600080fd5b506001600160a01b03813581169160200135166128cf565b6107876129c5565b61046f6004803603602081101561093657600080fd5b50356129d4565b6107ab612aac565b6107056004803603602081101561095b57600080fd5b50356001600160a01b0316612ab3565b61046f6004803603602081101561098157600080fd5b50356001600160a01b0316612ac8565b61046f60048036036101408110156109a857600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e0810135906101008101359061012001351515612f7e565b61046f60048036036020811015610a0857600080fd5b50356001600160a01b03166130ae565b61046f60048036036060811015610a2e57600080fd5b506001600160a01b0381358116916020810135909116906040013561311d565b61046f60048036036040811015610a6457600080fd5b506001600160a01b038135811691602001351661351b565b61046f60048036036020811015610a9257600080fd5b503561361a565b61046f60048036036040811015610aaf57600080fd5b506001600160a01b038135169060200135613673565b61046f61375d565b61046f60048036036040811015610ae357600080fd5b506001600160a01b0381358116916020013516613a21565b61046f60048036036020811015610b1157600080fd5b5035613b17565b61046f60048036036040811015610b2e57600080fd5b506001600160a01b0381351690602001351515613e48565b6107ab613edd565b61046f60048036036040811015610b6457600080fd5b506001600160a01b038135169060200135613ee2565b61046f60048036036020811015610b9057600080fd5b50351515613fc5565b6107ab61403f565b61046f60048036036040811015610bb757600080fd5b506001600160a01b038135811691602001351661404f565b6107ab614140565b61046f60048036036060811015610bed57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610c1757600080fd5b820183602082011115610c2957600080fd5b803590602001918460208302840111600160201b83111715610c4a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c9957600080fd5b820183602082011115610cab57600080fd5b803590602001918460208302840111600160201b83111715610ccc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614146945050505050565b61046f60048036036020811015610d2057600080fd5b503561427a565b61046f614360565b61046f60048036036040811015610d4557600080fd5b506001600160a01b03813581169160200135166145b6565b61046f60048036036060811015610d7357600080fd5b506001600160a01b03813581169160208101359091169060400135614652565b61046f60048036036060811015610da957600080fd5b506001600160a01b0381358116916020810135909116906040013561470e565b6107876147e6565b61046f60048036036040811015610de757600080fd5b506001600160a01b03813516906020013515156147f5565b61046f60048036036040811015610e1557600080fd5b506001600160a01b03813516906020013515156148a4565b61046f60048036036020811015610e4357600080fd5b50356001600160a01b031661491c565b61046f600480360360c0811015610e6957600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a00135614c56565b61046f6004803603610100811015610eae57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060c081013515159060e001351515614ec7565b61046f60048036036060811015610f0657600080fd5b506001600160a01b03813581169160208101359091169060400135615024565b61046f60048036036040811015610f3c57600080fd5b506001600160a01b0381358116916020013516615126565b61046f60048036036060811015610f6a57600080fd5b506001600160a01b03813581169160208101359091169060400135615226565b61046f60048036036060811015610fa057600080fd5b506001600160a01b038135811691602081013590911690604001356152ca565b61046f60048036036040811015610fd657600080fd5b50803590602001356153ff565b6107ab60048036036020811015610ff957600080fd5b5035615471565b61046f600480360361010081101561101757600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060c081013515159060e001351515615483565b61046f6004803603606081101561106f57600080fd5b506001600160a01b03813581169160208101359091169060400135615608565b61046f600480360360408110156110a557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156110cf57600080fd5b8201836020820111156110e157600080fd5b803590602001918460208302840111600160201b8311171561110257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506156ae945050505050565b6107ab6157ea565b6107876157f0565b6107876157ff565b6001546001600160a01b03163314806111805750336000908152600b602052604090205460ff165b8061119a5750336000908152600c602052604090205460ff165b6111d9576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b805182511461122b576040805162461bcd60e51b815260206004820152601960248201527854696d656c6f636b3a20696e76616c6964206c656e6774687360381b604482015290519081900360640190fd5b60408051639cb7de4b60e01b81523060048201526001602482015290516001600160a01b03851691639cb7de4b91604480830192600092919082900301818387803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b5050505060005b825181101561134a5760008382815181106112ab57fe5b6020026020010151905060008383815181106112c357fe5b60200260200101519050856001600160a01b03166341f2272483836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b50506001909401935061129492505050565b5060408051639cb7de4b60e01b815230600482015260006024820181905291516001600160a01b03861692639cb7de4b926044808201939182900301818387803b15801561139757600080fd5b505af11580156113ab573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b03163314611401576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516972656465656d5573646760b01b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e830152605280830185905283518084039091018152607290920190925280519101206114628161580e565b604080516001600160a01b0380871682528516602082015280820184905290517fe6bd553b6ef21f3a22ebc877b3aaedc30fe15826b8156d4e8c8b373ebf11d78b9181900360600190a150505050565b6001546001600160a01b031633146114ff576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60408051631b5a5b9d60e21b6020808301919091526001600160601b0319606087811b8216602485015286901b166038830152604c80830185905283518084039091018152606c909201909252805191012061155a8161580e565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f23d37bec99db82564427c9bbfe48ad7434bccf413a40fd357fb838c90a0d68289181900360800190a150505050565b6001546001600160a01b03163314806115d95750336000908152600b602052604090205460ff165b806115f35750336000908152600c602052604090205460ff165b611632576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6101f4841115611689576040805162461bcd60e51b815260206004820152601f60248201527f54696d656c6f636b3a20696e76616c6964205f6d696e50726f66697442707300604482015290519081900360640190fd5b60408051630daf9c2160e41b81526001600160a01b0388811660048301529151899283169163daf9c210916024808301926020929190829003018186803b1580156116d357600080fd5b505afa1580156116e7573d6000803e3d6000fd5b505050506040513d60208110156116fd57600080fd5b505161173a5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d6e6023913960400191505060405180910390fd5b6000816001600160a01b0316638ee573ac896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561178957600080fd5b505afa15801561179d573d6000803e3d6000fd5b505050506040513d60208110156117b357600080fd5b5051604080516342b60b0360e01b81526001600160a01b038b811660048301529151929350600092918516916342b60b0391602480820192602092909190829003018186803b15801561180557600080fd5b505afa158015611819573d6000803e3d6000fd5b505050506040513d602081101561182f57600080fd5b50516040805163db3555fb60e01b81526001600160a01b038c8116600483015291519293506000929186169163db3555fb91602480820192602092909190829003018186803b15801561188157600080fd5b505afa158015611895573d6000803e3d6000fd5b505050506040513d60208110156118ab57600080fd5b505160408051633c5a6e3560e01b81526001600160a01b038d8116600483015260248201879052604482018d9052606482018c9052608482018b905285151560a483015283151560c48301529151929350908d1691633c5a6e359160e48082019260009290919082900301818387803b15801561192757600080fd5b505af115801561193b573d6000803e3d6000fd5b505050508a6001600160a01b0316638585f4d28b886040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561199657600080fd5b505af11580156119aa573d6000803e3d6000fd5b505050508a6001600160a01b031663d66b000d8b876040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b505050505050505050505050505050565b6001546001600160a01b03163314611a77576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b826001600160a01b031663f255527883836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050602060405180830381600087803b158015611ad757600080fd5b505af1158015611aeb573d6000803e3d6000fd5b505050506040513d6020811015611b0157600080fd5b5050505050565b6001546001600160a01b03163314611b55576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b60528301528251603381840301815260539092019092528051910120611bb9816158b2565b611bc28161595e565b836001600160a01b0316639cb7de4b84846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015611c1b57600080fd5b505af1158015611c2f573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b0316331480611c615750336000908152600b602052604090205460ff165b80611c7b5750336000908152600c602052604090205460ff165b611cba576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b03166330455ede826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015611d0257600080fd5b505af1158015611d16573d6000803e3d6000fd5b505050505050565b6001546001600160a01b03163314611d6b576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611de3576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6040805174636c6561725661756c74546f6b656e436f6e66696760581b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d9092019092528051910120611e47816158b2565b611e508161595e565b826001600160a01b031663e67f59a7836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b0316331480611ec75750336000908152600b602052604090205460ff165b80611ee15750336000908152600c602052604090205460ff165b611f20576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b826001600160a01b031663dfcfa25083836040518363ffffffff1660e01b815260040180838152602001826001600160a01b0316815260200192505050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b03163314611fc4576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b16605583015260698083018590528351808403909101815260899092019092528051910120612032816158b2565b61203b8161595e565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b1580156120a357600080fd5b505af11580156120b7573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b0316331461210f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b031663f07bbf77826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015611d0257600080fd5b6001546001600160a01b031633148061217f5750336000908152600b602052604090205460ff165b806121995750336000908152600c602052604090205460ff165b6121d8576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60c882106122175760405162461bcd60e51b8152600401808060200182810382526024815260200180615d056024913960400191505060405180910390fd5b60c881106122565760405162461bcd60e51b815260040180806020018281038252602a815260200180615e1a602a913960400191505060405180910390fd5b836001600160a01b0316638a27d4688484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611c1b57600080fd5b60095460ff1681565b6001546001600160a01b03163314612302576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b605283015282516033818403018152605390920190925280519101206123668161580e565b604080516001600160a01b03808716825285166020820152831515818301526060810183905290517f1929c4e13b0dbbad7856b9ce1fc9dca98c7bf7cedd56e22c04dd60ad1d34fe4b9181900360800190a150505050565b6001546001600160a01b0316331461240b576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b0316631785f53c826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015611d0257600080fd5b6002546001600160a01b031681565b620493e081565b60075481565b600b6020526000908152604090205460ff1681565b6001546001600160a01b031633146124d8576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b826001600160a01b0316634453a37483836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b0316331461257e576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206125ec8161580e565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b03163314612699576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60048054604080516327afb5af60e11b8152928301849052516001600160a01b0390911691634f5f6b5e91602480830192600092919082900301818387803b1580156126e457600080fd5b505af1158015611b01573d6000803e3d6000fd5b60065481565b6001546001600160a01b0316331461274b576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e90920190925280519101206127a0816158b2565b6127a98161595e565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b03163314806128205750336000908152600b602052604090205460ff165b8061283a5750336000908152600c602052604090205460ff165b612879576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b836001600160a01b031663836a01878484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611c1b57600080fd5b6001546001600160a01b0316331461291c576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6001600160a01b038216301415612976576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015611d0257600080fd5b6005546001600160a01b031681565b6001546001600160a01b03163314612a21576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b611c208110612a615760405162461bcd60e51b8152600401808060200182810382526023815260200180615d296023913960400191505060405180910390fd5b600480546040805163966be07560e01b8152928301849052516001600160a01b039091169163966be07591602480830192600092919082900301818387803b1580156126e457600080fd5b6206978081565b600c6020526000908152604090205460ff1681565b6001546001600160a01b0316331480612af05750336000908152600b602052604090205460ff165b612b2f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b600954819060ff1615612b9d5760408051637c2eb9f760e01b81526001600482015290516001600160a01b03831691637c2eb9f791602480830192600092919082900301818387803b158015612b8457600080fd5b505af1158015612b98573d6000803e3d6000fd5b505050505b806001600160a01b03166340eb3802826001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612be557600080fd5b505afa158015612bf9573d6000803e3d6000fd5b505050506040513d6020811015612c0f57600080fd5b505160408051630875ab6160e11b815290516001600160a01b038616916310eb56c2916004808301926020929190829003018186803b158015612c5157600080fd5b505afa158015612c65573d6000803e3d6000fd5b505050506040513d6020811015612c7b57600080fd5b505160408051631351ecc160e21b815290516001600160a01b03871691634d47b304916004808301926020929190829003018186803b158015612cbd57600080fd5b505afa158015612cd1573d6000803e3d6000fd5b505050506040513d6020811015612ce757600080fd5b50516040805163511791c960e11b815290516001600160a01b0388169163a22f2392916004808301926020929190829003018186803b158015612d2957600080fd5b505afa158015612d3d573d6000803e3d6000fd5b505050506040513d6020811015612d5357600080fd5b50516040805163df73a26760e01b815290516001600160a01b0389169163df73a267916004808301926020929190829003018186803b158015612d9557600080fd5b505afa158015612da9573d6000803e3d6000fd5b505050506040513d6020811015612dbf57600080fd5b5051600754604080516305d349a560e21b815290516001600160a01b038b169163174d2694916004808301926020929190829003018186803b158015612e0457600080fd5b505afa158015612e18573d6000803e3d6000fd5b505050506040513d6020811015612e2e57600080fd5b50516040805163d9ac422560e01b815290516001600160a01b038c169163d9ac4225916004808301926020929190829003018186803b158015612e7057600080fd5b505afa158015612e84573d6000803e3d6000fd5b505050506040513d6020811015612e9a57600080fd5b505160408051639f392eb360e01b815290516001600160a01b038d1691639f392eb3916004808301926020929190829003018186803b158015612edc57600080fd5b505afa158015612ef0573d6000803e3d6000fd5b505050506040513d6020811015612f0657600080fd5b5051604080516001600160e01b031960e08d901b168152600481019a909a5260248a019890985260448901969096526064880194909452608487019290925260a486015260c485015260e484015215156101048301525161012480830192600092919082900301818387803b158015611d0257600080fd5b6001546001600160a01b0316331480612fa65750336000908152600b602052604090205460ff165b80612fc05750336000908152600c602052604090205460ff165b612fff576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6007849055600854604080516320759c0160e11b8152600481018c9052602481018b9052604481018a9052606481018990526084810188905260a481019290925260c4820185905260e48201849052821515610104830152516001600160a01b038c16916340eb38029161012480830192600092919082900301818387803b15801561308a57600080fd5b505af115801561309e573d6000803e3d6000fd5b5050505050505050505050505050565b6002546001600160a01b031633146130fb576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461316a576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516972656465656d5573646760b01b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e830152605280830185905283518084039091018152607290920190925280519101206131cb816158b2565b6131d48161595e565b6000846001600160a01b031663f5b91b7b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561320f57600080fd5b505afa158015613223573d6000803e3d6000fd5b505050506040513d602081101561323957600080fd5b5051604080516352f4877760e11b81523060048201526001602482015290519192506001600160a01b0387169163a5e90eee9160448082019260009290919082900301818387803b15801561328d57600080fd5b505af11580156132a1573d6000803e3d6000fd5b5050604080516312b5ad0160e11b815230600482015290516001600160a01b038516935063256b5a029250602480830192600092919082900301818387803b1580156132ec57600080fd5b505af1158015613300573d6000803e3d6000fd5b5050604080516340c10f1960e01b81523060048201526024810187905290516001600160a01b03851693506340c10f199250604480830192600092919082900301818387803b15801561335257600080fd5b505af1158015613366573d6000803e3d6000fd5b50505050806001600160a01b031663a9059cbb86856040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156133c157600080fd5b505af11580156133d5573d6000803e3d6000fd5b505050506040513d60208110156133eb57600080fd5b505060035460408051630711e61960e41b81526001600160a01b038781166004830152928316602482015290519187169163711e6190916044808201926020929091908290030181600087803b15801561344457600080fd5b505af1158015613458573d6000803e3d6000fd5b505050506040513d602081101561346e57600080fd5b5050604080516352f4877760e11b815230600482015260006024820181905291516001600160a01b0388169263a5e90eee926044808201939182900301818387803b1580156134bc57600080fd5b505af11580156134d0573d6000803e3d6000fd5b50506040805163ceb68c2360e01b815230600482015290516001600160a01b038516935063ceb68c239250602480830192600092919082900301818387803b1580156120a357600080fd5b6001546001600160a01b03163314613568576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516b1cd95d141c9a58d95199595960a21b6020808301919091526001600160601b0319606086811b8216602c85015285901b168284015282516034818403018152605490920190925280519101206135c2816158b2565b6135cb8161595e565b826001600160a01b031663724e78da836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b03163314613667576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6136708161595e565b50565b6001546001600160a01b031633146136c0576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b620493e08111613717576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20696e76616c6964205f6d61784c657665726167650000604482015290519081900360640190fd5b816001600160a01b031663d3127e63826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0257600080fd5b6001546001600160a01b031633146137aa576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6004805460408051633c5103f760e11b815290516001600160a01b039092169260009284926378a207ee9281810192602092909190829003018186803b1580156137f357600080fd5b505afa158015613807573d6000803e3d6000fd5b505050506040513d602081101561381d57600080fd5b5051600480546040805163cf456ae760e01b81526001600160a01b0392831693810193909352600160248401525192935083169163cf456ae79160448082019260009290919082900301818387803b15801561387857600080fd5b505af115801561388c573d6000803e3d6000fd5b505050506000826001600160a01b031663f5b91b7b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138cb57600080fd5b505afa1580156138df573d6000803e3d6000fd5b505050506040513d60208110156138f557600080fd5b505160048054604080516312b5ad0160e11b81526001600160a01b03928316938101939093525192935083169163256b5a029160248082019260009290919082900301818387803b15801561394957600080fd5b505af115801561395d573d6000803e3d6000fd5b505050506000836001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561399c57600080fd5b505afa1580156139b0573d6000803e3d6000fd5b505050506040513d60208110156139c657600080fd5b505160048054604080516352f4877760e11b81526001600160a01b0392831693810193909352600160248401525192935083169163a5e90eee9160448082019260009290919082900301818387803b158015611c1b57600080fd5b6001546001600160a01b03163314613a6e576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516b1cd95d141c9a58d95199595960a21b6020808301919091526001600160601b0319606086811b8216602c85015285901b16828401528251603481840301815260549092019092528051910120613ac88161580e565b604080516001600160a01b0380861682528416602082015280820183905290517fb878dd4b5762f4118ad54995be907dd2bcd915d942e4ac75580fba9b4ee4727f9181900360600190a1505050565b6001546001600160a01b0316331480613b3f5750336000908152600b602052604090205460ff165b80613b595750336000908152600c602052604090205460ff165b613b98576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6000600460009054906101000a90046001600160a01b03166001600160a01b031663f5b91b7b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613be857600080fd5b505afa158015613bfc573d6000803e3d6000fd5b505050506040513d6020811015613c1257600080fd5b505160048054604080516370a0823160e01b81526001600160a01b039283169381019390935251929350600092908416916370a08231916024808301926020929190829003018186803b158015613c6857600080fd5b505afa158015613c7c573d6000803e3d6000fd5b505050506040513d6020811015613c9257600080fd5b5051604080516312b5ad0160e11b815230600482015290519192506001600160a01b0384169163256b5a029160248082019260009290919082900301818387803b158015613cdf57600080fd5b505af1158015613cf3573d6000803e3d6000fd5b5050505080831115613d82576000613d0b8483615a03565b60048054604080516340c10f1960e01b81526001600160a01b039283169381019390935260248301849052519293508516916340c10f199160448082019260009290919082900301818387803b158015613d6457600080fd5b505af1158015613d78573d6000803e3d6000fd5b5050505050613e01565b6000613d8e8285615a03565b6004805460408051632770a7eb60e21b81526001600160a01b03928316938101939093526024830184905251929350851691639dc29fac9160448082019260009290919082900301818387803b158015613de757600080fd5b505af1158015613dfb573d6000803e3d6000fd5b50505050505b6040805163ceb68c2360e01b815230600482015290516001600160a01b0384169163ceb68c2391602480830192600092919082900301818387803b15801561139757600080fd5b6001546001600160a01b03163314613e95576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b0316635a47a1a7826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015611d0257600080fd5b60c881565b6001546001600160a01b03163314613f2f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b64012a05f2008111613f7f576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964205f6d6178476173507269636560601b604482015290519081900360640190fd5b816001600160a01b031663d2fa635e826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0257600080fd5b6001546001600160a01b0316331480613fed5750336000908152600b602052604090205460ff165b61402c576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6009805460ff1916911515919091179055565b68327cb2734119d3b7a9601e1b81565b6001546001600160a01b0316331461409c576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e90920190925280519101206140f18161580e565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b60085481565b6001546001600160a01b031633148061416e5750336000908152600b602052604090205460ff165b806141885750336000908152600c602052604090205460ff165b6141c7576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60005b825181101561427457836001600160a01b031663d66b000d8483815181106141ee57fe5b602002602001015184848151811061420257fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561425057600080fd5b505af1158015614264573d6000803e3d6000fd5b5050600190920191506141ca9050565b50505050565b6001546001600160a01b031633146142c7576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6206978081111561431b576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b600054811161435b5760405162461bcd60e51b8152600401808060200182810382526024815260200180615db56024913960400191505060405180910390fd5b600055565b6001546001600160a01b031633146143ad576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6005546040805163e1c363b760e01b815290516001600160a01b0390921691829163e1c363b7916004808301926020929190829003018186803b1580156143f357600080fd5b505afa158015614407573d6000803e3d6000fd5b505050506040513d602081101561441d57600080fd5b505160055460408051639cb7de4b60e01b81526001600160a01b0392831660048201526001602482015290519190921691639cb7de4b91604480830192600092919082900301818387803b15801561447457600080fd5b505af1158015614488573d6000803e3d6000fd5b50505050806001600160a01b031663af394d006040518163ffffffff1660e01b815260040160206040518083038186803b1580156144c557600080fd5b505afa1580156144d9573d6000803e3d6000fd5b505050506040513d60208110156144ef57600080fd5b505160055460408051639cb7de4b60e01b81526001600160a01b0392831660048201526001602482015290519190921691639cb7de4b91604480830192600092919082900301818387803b15801561454657600080fd5b505af115801561455a573d6000803e3d6000fd5b50506004805460055460408051639cb7de4b60e01b81526001600160a01b0392831694810194909452600160248501525191169350639cb7de4b9250604480830192600092919082900301818387803b1580156126e457600080fd5b6001546001600160a01b03163314614603576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b03166371089f4d826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015611d0257600080fd5b6001546001600160a01b0316331461469f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60408051631b5a5b9d60e21b6020808301919091526001600160601b0319606087811b8216602485015286901b166038830152604c80830185905283518084039091018152606c90920190925280519101206146fa816158b2565b6147038161595e565b614274848484615a4c565b6001546001600160a01b03163314806147365750336000908152600b602052604090205460ff165b806147505750336000908152600c602052604090205460ff165b61478f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b826001600160a01b0316633fb8b32383836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561139757600080fd5b6003546001600160a01b031681565b6001546001600160a01b031633148061481d5750336000908152600b602052604090205460ff165b61485c576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b816001600160a01b0316637c2eb9f7826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015611d0257600080fd5b6001546001600160a01b031633146148f1576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314806149445750336000908152600b602052604090205460ff165b614983576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b600954819060ff16156149ef5760408051637c2eb9f760e01b815260006004820181905291516001600160a01b03841692637c2eb9f7926024808201939182900301818387803b1580156149d657600080fd5b505af11580156149ea573d6000803e3d6000fd5b505050505b806001600160a01b03166340eb3802826001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015614a3757600080fd5b505afa158015614a4b573d6000803e3d6000fd5b505050506040513d6020811015614a6157600080fd5b505160408051630875ab6160e11b815290516001600160a01b038616916310eb56c2916004808301926020929190829003018186803b158015614aa357600080fd5b505afa158015614ab7573d6000803e3d6000fd5b505050506040513d6020811015614acd57600080fd5b505160408051631351ecc160e21b815290516001600160a01b03871691634d47b304916004808301926020929190829003018186803b158015614b0f57600080fd5b505afa158015614b23573d6000803e3d6000fd5b505050506040513d6020811015614b3957600080fd5b50516040805163511791c960e11b815290516001600160a01b0388169163a22f2392916004808301926020929190829003018186803b158015614b7b57600080fd5b505afa158015614b8f573d6000803e3d6000fd5b505050506040513d6020811015614ba557600080fd5b50516040805163df73a26760e01b815290516001600160a01b0389169163df73a267916004808301926020929190829003018186803b158015614be757600080fd5b505afa158015614bfb573d6000803e3d6000fd5b505050506040513d6020811015614c1157600080fd5b5051600854604080516305d349a560e21b815290516001600160a01b038b169163174d2694916004808301926020929190829003018186803b158015612e0457600080fd5b6001546001600160a01b0316331480614c7e5750336000908152600b602052604090205460ff165b80614c985750336000908152600c602052604090205460ff165b614cd7576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6000869050806001600160a01b03166340eb38028787878787600854886001600160a01b031663174d26946040518163ffffffff1660e01b815260040160206040518083038186803b158015614d2c57600080fd5b505afa158015614d40573d6000803e3d6000fd5b505050506040513d6020811015614d5657600080fd5b50516040805163d9ac422560e01b815290516001600160a01b038c169163d9ac4225916004808301926020929190829003018186803b158015614d9857600080fd5b505afa158015614dac573d6000803e3d6000fd5b505050506040513d6020811015614dc257600080fd5b505160408051639f392eb360e01b815290516001600160a01b038d1691639f392eb3916004808301926020929190829003018186803b158015614e0457600080fd5b505afa158015614e18573d6000803e3d6000fd5b505050506040513d6020811015614e2e57600080fd5b5051604080516001600160e01b031960e08d901b168152600481019a909a5260248a019890985260448901969096526064880194909452608487019290925260a486015260c485015260e484015215156101048301525161012480830192600092919082900301818387803b158015614ea657600080fd5b505af1158015614eba573d6000803e3d6000fd5b5050505050505050505050565b6001546001600160a01b03163314614f14576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60408051727661756c74536574546f6b656e436f6e66696760681b6020808301919091526001600160601b031960608c811b821660338501528b901b166047830152605b8201899052607b8201889052609b820187905260bb820186905284151560f890811b60db840152841515901b60dc830152825160bd81840301815260dd9092019092528051910120614fa98161580e565b604080516001600160a01b03808c1682528a166020820152808201899052606081018890526080810187905260a0810186905284151560c082015283151560e082015290517f3510e9d8245371c6c1061c33781ce16bd0eafa03cd3d0781865036520af4c743918190036101000190a1505050505050505050565b6001546001600160a01b03163314615071576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206150cf8161580e565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b03163314615173576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6040805174636c6561725661756c74546f6b656e436f6e66696760581b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d90920190925280519101206151d78161580e565b604080516001600160a01b0380861682528416602082015280820183905290517fd040ddc7e10e718462de1cf110420396edb98ae587a5eba9ee907cc61fe3782b9181900360600190a1505050565b6001546001600160a01b03163314615273576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b826001600160a01b031663efa10a6e83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561139757600080fd5b6001546001600160a01b03163314615317576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f9092019092528051910120615375816158b2565b61537e8161595e565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156153d557600080fd5b505af11580156153e9573d6000803e3d6000fd5b505050506040513d6020811015611d1657600080fd5b6001546001600160a01b03163314806154275750336000908152600b602052604090205460ff165b615466576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b600791909155600855565b600a6020526000908152604090205481565b6001546001600160a01b031633146154d0576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60408051727661756c74536574546f6b656e436f6e66696760681b6020808301919091526001600160601b031960608c811b821660338501528b901b166047830152605b8201899052607b8201889052609b820187905260bb820186905284151560f890811b60db840152841515901b60dc830152825160bd81840301815260dd9092019092528051910120615565816158b2565b61556e8161595e565b60408051633c5a6e3560e01b81526001600160a01b038a81166004830152602482018a905260448201899052606482018890526084820187905285151560a483015284151560c48301529151918b1691633c5a6e359160e48082019260009290919082900301818387803b1580156155e557600080fd5b505af11580156155f9573d6000803e3d6000fd5b50505050505050505050505050565b6001546001600160a01b03163314615655576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b158015611ad757600080fd5b6001546001600160a01b03163314806156d65750336000908152600b602052604090205460ff165b806156f05750336000908152600c602052604090205460ff165b61572f576040805162461bcd60e51b81526020600482015260136024820152600080516020615dd9833981519152604482015290519081900360640190fd5b60005b81518110156157e557826001600160a01b031663f255527883838151811061575657fe5b602090810291909101810151600154604080516001600160e01b031960e087901b1681526001600160a01b03938416600482015292909116602483015251604480830193928290030181600087803b1580156157b157600080fd5b505af11580156157c5573d6000803e3d6000fd5b505050506040513d60208110156157db57600080fd5b5050600101615732565b505050565b60005481565b6001546001600160a01b031681565b6004546001600160a01b031681565b6000818152600a6020526040902054156158595760405162461bcd60e51b8152600401808060200182810382526022815260200180615d4c6022913960400191505060405180910390fd5b600054615867904290615c15565b6000828152600a602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b6000818152600a6020526040902054615912576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b6000818152600a602052604090205442116136705760405162461bcd60e51b8152600401808060200182810382526024815260200180615d916024913960400191505060405180910390fd5b6000818152600a60205260409020546159ba576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b6000818152600a6020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b6000615a4583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615c6d565b9392505050565b6040805163cf456ae760e01b815230600482015260016024820152905184916001600160a01b0383169163cf456ae79160448082019260009290919082900301818387803b158015615a9d57600080fd5b505af1158015615ab1573d6000803e3d6000fd5b50505050806001600160a01b03166340c10f1984846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015615b0c57600080fd5b505af1158015615b20573d6000803e3d6000fd5b50505050600654846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015615b6057600080fd5b505afa158015615b74573d6000803e3d6000fd5b505050506040513d6020811015615b8a57600080fd5b50511115615bc95760405162461bcd60e51b8152600401808060200182810382526021815260200180615df96021913960400191505060405180910390fd5b6040805163cf456ae760e01b815230600482015260006024820181905291516001600160a01b0384169263cf456ae7926044808201939182900301818387803b158015611c1b57600080fd5b600082820183811015615a45576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008184841115615cfc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615cc1578181015183820152602001615ca9565b50505050905090810190601f168015615cee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe54696d656c6f636b3a20696e76616c6964205f66756e64696e6752617465466163746f7254696d656c6f636b3a20696e76616c6964205f636f6f6c646f776e4475726174696f6e54696d656c6f636b3a20616374696f6e20616c7265616479207369676e616c6c656454696d656c6f636b3a20746f6b656e206e6f74207965742077686974656c697374656454696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656454696d656c6f636b3a20666f7262696464656e0000000000000000000000000054696d656c6f636b3a206d6178546f6b656e537570706c7920657863656564656454696d656c6f636b3a20696e76616c6964205f737461626c6546756e64696e6752617465466163746f72a264697066735822122053e8b5b927bccf74d3e58defb1efe1289b24bc158bcb672ced9c61f9e4638b8764736f6c634300060c0033000000000000000000000000b1dd2fdb023cb54b7cc2a0f5d9e8d47a9f7723ce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e02fb5c70af32f80aa7f9e8775fe7f12550348ec000000000000000000000000e02fb5c70af32f80aa7f9e8775fe7f12550348ec0000000000000000000000009fac7b75f367d5b35a6d6d0a09572efcc3d406c50000000000000000000000006456039168d3fe3bc5fcd9e46f3b716c1abd4ff4000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000001f4