2 txs
71 calls
constructor
constructor(address pool_, address swapper_, address compRewards_, address rewardToken_, address comet_, string name_)
functions
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
comet
viewfunction comet() view returns (address)
compRewards
viewfunction compRewards() view returns (address)
feeCollector
viewfunction feeCollector() view returns (address)
governor
viewfunction governor() view returns (address)
isReservedToken
viewfunction isReservedToken(address token_) view returns (bool)
keepers
viewfunction keepers() view returns (address[])
NAME
viewfunction NAME() view returns (string)
pool
viewfunction pool() view returns (address)
receiptToken
viewfunction receiptToken() view returns (address)
rewardToken
viewfunction rewardToken() view returns (address)
swapper
viewfunction swapper() view returns (address)
token
viewfunction token() view returns (address)
tvl
viewfunction tvl() view returns (uint256)
VERSION
viewfunction VERSION() view returns (string)
addKeeper
nonpayablefunction addKeeper(address _keeperAddress)
approveToken
nonpayablefunction approveToken(uint256 _approvalAmount)
claimAndSwapRewards
nonpayablefunction claimAndSwapRewards(uint256 _minAmountOut) returns (uint256 _amountOut)
migrate
nonpayablefunction migrate(address _newStrategy)
rebalance
nonpayablefunction rebalance() returns (uint256 _profit, uint256 _loss, uint256 _payback)
removeKeeper
nonpayablefunction removeKeeper(address _keeperAddress)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x6101206040523480156200001257600080fd5b50604051620039813803806200398183398101604081905262000035916200049c565b8585836001600160a01b038316620000945760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016200008b565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200014a57600080fd5b505afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001859190620005e6565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001cc620001b63390565b60036200035560201b62001c6e1790919060201c565b6200020e5760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b60448201526064016200008b565b5050506001600160a01b038216620002695760405162461bcd60e51b815260206004820152601560248201527f636f6d65742d616464726573732d69732d7a65726f000000000000000000000060448201526064016200008b565b6001600160a01b038416620002c15760405162461bcd60e51b815260206004820152601760248201527f726577617264732d616464726573732d69732d7a65726f00000000000000000060448201526064016200008b565b6001600160a01b038316620003195760405162461bcd60e51b815260206004820152601c60248201527f7265776172642d746f6b656e2d616464726573732d69732d7a65726f0000000060448201526064016200008b565b6001600160a01b0380831660c05284811660e052831661010052805162000348906005906020840190620003c7565b505050505050506200064a565b60006200036c836001600160a01b03841662000375565b90505b92915050565b6000818152600183016020526040812054620003be575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200036f565b5060006200036f565b828054620003d5906200060d565b90600052602060002090601f016020900481019282620003f9576000855562000444565b82601f106200041457805160ff191683800117855562000444565b8280016001018555821562000444579182015b828111156200044457825182559160200191906001019062000427565b506200045292915062000456565b5090565b5b8082111562000452576000815560010162000457565b6001600160a01b03811681146200048357600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215620004b657600080fd5b8651620004c3816200046d565b80965050602080880151620004d8816200046d565b6040890151909650620004eb816200046d565b6060890151909550620004fe816200046d565b608089015190945062000511816200046d565b60a08901519093506001600160401b03808211156200052f57600080fd5b818a0191508a601f8301126200054457600080fd5b81518181111562000559576200055962000486565b604051601f8201601f19908116603f0116810190838211818310171562000584576200058462000486565b816040528281528d868487010111156200059d57600080fd5b600093505b82841015620005c15784840186015181850187015292850192620005a2565b82841115620005d35760008684830101525b8096505050505050509295509295509295565b600060208284031215620005f957600080fd5b815162000606816200046d565b9392505050565b600181811c908216806200062257607f821691505b602082108114156200064457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161318d620007f46000396000818161045601528181612092015261294701526000818161027e01526128d80152600081816102d60152818161038f015281816105e00152818161179b015281816118fb01528181611edc01528181611fac0152818161205c015281816122b80152818161289e01528181612b6f01528181612c040152612d540152600081816102310152818161072f015281816109ab01528181610af401528181610c3b01528181610d1001528181610dc30152818161100b015281816110d8015281816112fa015281816114fb015281816120e10152818161217e015281816124750152612ce3015260008181610368015281816103ff0152818161055e0152818161082b015281816108ce01528181610b8101528181610c1901528181610c8701528181610d430152818161127e01528181611704015281816118790152818161198501528181611b5301528181611b9101528181611e7801528181611f7a0152818161203a0152818161221b0152818161239c015281816124f101528181612cc10152612d25015261318d6000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c8063a3f4df7e116100f9578063d8dfeb4511610097578063ee330ee311610071578063ee330ee31461043e578063f7c618c114610451578063fc0c546a14610478578063ffa1ad741461048957600080fd5b8063d8dfeb45146103fd578063e5328e0614610423578063ec78e8321461042b57600080fd5b8063c415b95c116100d3578063c415b95c146103b1578063ce5494bb146103c4578063d2c35ce8146103d7578063d3033c39146103ea57600080fd5b8063a3f4df7e1461034e578063b2016bd414610363578063ba3e9c121461038a57600080fd5b80632e1a7d4d116101665780634032b72b116101405780634032b72b146102b3578063440d7248146102c65780637d7c2a1c14610316578063951dc22c1461033957600080fd5b80632e1a7d4d146102665780632f9cb53e146102795780633ac9fc11146102a057600080fd5b806314ae9f2e1161019757806314ae9f2e1461021957806316f0115b1461022c5780632b3297f91461025357600080fd5b806301681a62146101be5780630c340a24146101d35780631026013a146101f8575b600080fd5b6101d16101cc366004612f2f565b6104ad565b005b6101db61072b565b6040516001600160a01b0390911681526020015b60405180910390f35b61020b610206366004612f4c565b6107c3565b6040519081526020016101ef565b6101d1610227366004612f2f565b6109a9565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6002546101db906001600160a01b031681565b6101d1610274366004612f4c565b610af1565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101d16102ae366004612f4c565b610d6a565b6101d16102c1366004612f2f565b610dc1565b6103066102d4366004612f2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b60405190151581526020016101ef565b61031e610f09565b604080519384526020840192909252908201526060016101ef565b610341610f6e565b6040516101ef9190612f65565b610356610f7a565b6040516101ef9190612fde565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6001546101db906001600160a01b031681565b6101d16103d2366004612f2f565b611008565b6101d16103e5366004612f2f565b6112f8565b6101d16103f8366004612f2f565b6114f9565b7f00000000000000000000000000000000000000000000000000000000000000006101db565b61020b6116ec565b6000546101db906001600160a01b031681565b61020b61044c366004613011565b611827565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03166101db565b610356604051806040016040528060058152602001640352e312e360dc1b81525081565b6104ba335b600390611c8c565b6105045760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064015b60405180910390fd5b6001546001600160a01b031661055c5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d736574000000000000000000000060448201526064016104fb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156105de5760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c0060448201526064016104fb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690821614156106525760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b60448201526064016104fb565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156106905760015461068d906001600160a01b031647611cae565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b1580156106d257600080fd5b505afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a919061303d565b600154909150610727906001600160a01b03848116911683611dcc565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561078657600080fd5b505afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190613056565b905090565b60006107ce336104b2565b6108135760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064016104fb565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561087557600080fd5b505afa158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad919061303d565b90506108b7611e5c565b6040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561091857600080fd5b505afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610950919061303d565b61095a9190613089565b9150828210156109a35760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b60448201526064016104fb565b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190613056565b6001600160a01b0316336001600160a01b031614610a9a5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f7200000000000060448201526064016104fb565b610aa5600382611e9d565b61068d5760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c656400000000000000000000000060448201526064016104fb565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610b695760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c0000000000000060448201526064016104fb565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610bcb57600080fd5b505afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c03919061303d565b9050818110610c60576107276001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084611dcc565b610c72610c6d8284613089565b611eb2565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d09919061303d565b90506107277f0000000000000000000000000000000000000000000000000000000000000000610d39848461200e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611dcc565b610d73336104b2565b610db85760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064016104fb565b61068d81612024565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1a57600080fd5b505afa158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e529190613056565b6001600160a01b0316336001600160a01b031614610eb25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f7200000000000060448201526064016104fb565b610ebd600382611c6e565b61068d5760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c656400000000000000000000000000000060448201526064016104fb565b60008080610f16336104b2565b610f5b5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064016104fb565b610f636120bb565b925092509250909192565b60606107be6003612583565b60058054610f87906130a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb3906130a0565b80156110005780601f10610fd557610100808354040283529160200191611000565b820191906000526020600020905b815481529060010190602001808311610fe357829003601f168201915b505050505081565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146110805760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c0000000000000060448201526064016104fb565b6001600160a01b0381166110d65760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f0000000060448201526064016104fb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561113957600080fd5b505afa15801561114d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111719190613056565b6001600160a01b0316146111c75760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d73747261746567790000000000000000000060448201526064016104fb565b6000546040516370a0823160e01b815230600482015261125b9183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611248919061303d565b6000546001600160a01b03169190611dcc565b6040516370a0823160e01b815230600482015261068d9082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156112c057600080fd5b505afa1580156112d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d39919061303d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190613056565b6001600160a01b0316336001600160a01b0316146113e95760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f7200000000000060448201526064016104fb565b6001600160a01b03811661143f5760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f00000060448201526064016104fb565b6001546001600160a01b038281169116141561149d5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d65000000000000000000000060448201526064016104fb565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561155257600080fd5b505afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613056565b6001600160a01b0316336001600160a01b0316146115ea5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f7200000000000060448201526064016104fb565b6001600160a01b0381166116405760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016104fb565b6002546001600160a01b03828116911614156116905760405162461bcd60e51b815260206004820152600f60248201526e737761707065722d69732d73616d6560881b60448201526064016104fb565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611786919061303d565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156117e557600080fd5b505afa1580156117f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181d919061303d565b6107be91906130d5565b6000611832336104b2565b6118775760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064016104fb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156118f95760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c0060448201526064016104fb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416141561196d5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b60448201526064016104fb565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156119cf57600080fd5b505afa1580156119e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a07919061303d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b158015611a4c57600080fd5b505afa158015611a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a84919061303d565b90508015611b7a57600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0f919061303d565b811115611b4d57600254611b31906001600160a01b0387811691166000612597565b600254611b4d906001600160a01b038781169116600019612597565b611b78857f0000000000000000000000000000000000000000000000000000000000000000836126c2565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611bdb57600080fd5b505afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c13919061303d565b611c1d9190613089565b925083831015611c665760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b60448201526064016104fb565b505092915050565b6000611c83836001600160a01b038416612766565b90505b92915050565b6001600160a01b03811660009081526001830160205260408120541515611c83565b80471015611cfe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016104fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d4b576040519150601f19603f3d011682016040523d82523d6000602084013e611d50565b606091505b5050905080611dc75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016104fb565b505050565b6040516001600160a01b038316602482015260448101829052611dc790849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526127b5565b600080611e67612887565b9092509050801561072757610727827f0000000000000000000000000000000000000000000000000000000000000000836129d5565b6000611c83836001600160a01b038416612a77565b6040516370a0823160e01b8152306004820152600090611f63908390611f5e906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f56919061303d565b611f5e612b6a565b61200e565b60405163f3fef3a360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390529192507f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b158015611ff257600080fd5b505af1158015612006573d6000803e3d6000fd5b505050505050565b600081831061201d5781611c83565b5090919050565b61202d81612cb4565b6120816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612597565b60025461068d906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683612597565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b15801561212357600080fd5b505afa158015612137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215b919061303d565b604051639f2b283360e01b81523060048201529091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639f2b28339060240160206040518083038186803b1580156121c057600080fd5b505afa1580156121d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f8919061303d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561225d57600080fd5b505afa158015612271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612295919061303d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156122fa57600080fd5b505afa15801561230e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612332919061303d565b61233c90836130d5565b905082811115612357576123508382613089565b9650612364565b6123618184613089565b95505b600061237085896130d5565b90508281111561242157612387610c6d8483613089565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156123e657600080fd5b505afa1580156123fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241e919061303d565b92505b61242b838661200e565b955085831161243b57600061244e565b61244e6124488785613089565b8961200e565b6040516302df682360e11b81526004810182905260248101899052604481018890529098507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906305bed04690606401600060405180830381600087803b1580156124c157600080fd5b505af11580156124d5573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015261257992507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a082319060240160206040518083038186803b15801561253c57600080fd5b505afa158015612550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612574919061303d565b612d08565b5050505050909192565b6060600061259083612db3565b9392505050565b8015806126205750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b1580156125e657600080fd5b505afa1580156125fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261e919061303d565b155b6126925760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016104fb565b6040516001600160a01b038316602482015260448101829052611dc790849063095ea7b360e01b90606401611df8565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b15801561272657600080fd5b505af115801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e919061303d565b949350505050565b60008181526001830160205260408120546127ad57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611c86565b506000611c86565b600061280a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e0f9092919063ffffffff16565b805190915015611dc7578080602001905181019061282891906130ed565b611dc75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104fb565b604051635b81a7bf60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301526001604483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063b7034f7e90606401600060405180830381600087803b15801561291c57600080fd5b505af1158015612930573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201527f000000000000000000000000000000000000000000000000000000000000000092506001600160a01b03831691506370a082319060240160206040518083038186803b15801561299557600080fd5b505afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd919061303d565b915091509091565b600254604051636ccb2b0160e01b81526001600160a01b0385811660048301528481166024830152604482018490526001606483015230608483015290911690636ccb2b019060a401602060405180830381600087803b158015612a3857600080fd5b505af1925050508015612a68575060408051601f3d908101601f19168201909252612a659181019061303d565b60015b612a7157505050565b50505050565b60008181526001830160205260408120548015612b60576000612a9b600183613089565b8554909150600090612aaf90600190613089565b9050818114612b14576000866000018281548110612acf57612acf61310f565b9060005260206000200154905080876000018481548110612af257612af261310f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b2557612b25613125565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611c86565b6000915050611c86565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612bc657600080fd5b505afa158015612bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfe919061303d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638285ef406040518163ffffffff1660e01b815260040160206040518083038186803b158015612c5b57600080fd5b505afa158015612c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c93919061303d565b9050808211612ca3576000612cad565b612cad8183613089565b9250505090565b61068d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612597565b801561068d57604051631e573fb760e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2b9fdb890604401600060405180830381600087803b158015612d9857600080fd5b505af1158015612dac573d6000803e3d6000fd5b5050505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612e0357602002820191906000526020600020905b815481526020019060010190808311612def575b50505050509050919050565b606061275e848460008585843b612e685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104fb565b600080866001600160a01b03168587604051612e84919061313b565b60006040518083038185875af1925050503d8060008114612ec1576040519150601f19603f3d011682016040523d82523d6000602084013e612ec6565b606091505b5091509150612ed6828286612ee1565b979650505050505050565b60608315612ef0575081612590565b825115612f005782518084602001fd5b8160405162461bcd60e51b81526004016104fb9190612fde565b6001600160a01b038116811461068d57600080fd5b600060208284031215612f4157600080fd5b813561259081612f1a565b600060208284031215612f5e57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015612fa65783516001600160a01b031683529284019291840191600101612f81565b50909695505050505050565b60005b83811015612fcd578181015183820152602001612fb5565b83811115612a715750506000910152565b6020815260008251806020840152612ffd816040850160208701612fb2565b601f01601f19169190910160400192915050565b6000806040838503121561302457600080fd5b823561302f81612f1a565b946020939093013593505050565b60006020828403121561304f57600080fd5b5051919050565b60006020828403121561306857600080fd5b815161259081612f1a565b634e487b7160e01b600052601160045260246000fd5b60008282101561309b5761309b613073565b500390565b600181811c908216806130b457607f821691505b602082108114156109a357634e487b7160e01b600052602260045260246000fd5b600082198211156130e8576130e8613073565b500190565b6000602082840312156130ff57600080fd5b8151801515811461259057600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000825161314d818460208701612fb2565b919091019291505056fea2646970667358221220f7e1028287ae213b095062cb3c730dea39a1ffc82dbfdc154bc2a6da4440478064736f6c63430008090033000000000000000000000000ccf3d1acf799bae67f6e354d685295557cf64761000000000000000000000000017cbf62b53313d5ee3ad1288daa95cd39aa11fe000000000000000000000000443ea0340cb75a160f31a440722dec7b5bc3c2e90000000000000000000000007e7d4467112689329f7e06571ed0e8cbad4910ee000000000000000000000000e36a30d249f7761327fd973001a32010b521b6fd00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000e436f6d706f756e6456335f455448000000000000000000000000000000000000