5 txs
12 calls
constructor
constructor(address pool_, address swapper_, string name_)
functions
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
crvLp
viewfunction crvLp() view returns (address)
CURVE_ADDRESS_PROVIDER
viewfunction CURVE_ADDRESS_PROVIDER() 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[])
lpBalanceHere
viewfunction lpBalanceHere() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
pool
viewfunction pool() view returns (address)
receiptToken
viewfunction receiptToken() 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)
reportEarning
nonpayablefunction reportEarning() returns (uint256 _profit, uint256 _loss, uint256 _payback)
reportLoss
nonpayablefunction reportLoss(uint256 lossAmount_)
swapExactInput
nonpayablefunction swapExactInput(uint256 amountIn_, uint256 minAmountOut_, address[9] route_, uint256[3][4] params_, address[4] pools_) returns (uint256 _amountOut)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
swapTokenToCollateral
nonpayablefunction swapTokenToCollateral(address tokenIn_, uint256 amountIn_, uint256 minCollateralOut_) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
withdrawAndReportEarning
nonpayablefunction withdrawAndReportEarning(uint256 lpToBurn_, uint256 minDolaOut_, uint256 minFraxPyusdOut_, uint256 minFraxOut_, uint256 minPyusdOut_)
withdrawFromCurve
nonpayablefunction withdrawFromCurve(uint256 lpToBurn_, uint256 minDolaOut_, uint256 minFraxPyusdOut_, uint256 minFraxOut_, uint256 minPyusdOut_) returns (uint256 _dolaOut, uint256 _fraxPyusdOut, uint256 _fraxOut, uint256 _pyusdOut)
events
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b506040516200427e3803806200427e83398101604081905262000034916200038a565b828273ef484de8c07b6e2d732a92b5f78e81b38f99f95e6001600160a01b038316620000a75760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000ff5760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016200009e565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200015d57600080fd5b505afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000198919062000494565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001df620001c93390565b60036200024360201b6200255f1790919060201c565b620002215760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b60448201526064016200009e565b505081516200023991506005906020840190620002b5565b50505050620004f8565b60006200025a836001600160a01b03841662000263565b90505b92915050565b6000818152600183016020526040812054620002ac575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200025d565b5060006200025d565b828054620002c390620004bb565b90600052602060002090601f016020900481019282620002e7576000855562000332565b82601f106200030257805160ff191683800117855562000332565b8280016001018555821562000332579182015b828111156200033257825182559160200191906001019062000315565b506200034092915062000344565b5090565b5b8082111562000340576000815560010162000345565b6001600160a01b03811681146200037157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215620003a057600080fd5b8351620003ad816200035b565b80935050602080850151620003c2816200035b565b60408601519093506001600160401b0380821115620003e057600080fd5b818701915087601f830112620003f557600080fd5b8151818111156200040a576200040a62000374565b604051601f8201601f19908116603f0116810190838211818310171562000435576200043562000374565b816040528281528a868487010111156200044e57600080fd5b600093505b8284101562000472578484018601518185018701529285019262000453565b82841115620004845760008684830101525b8096505050505050509250925092565b600060208284031215620004a757600080fd5b8151620004b4816200035b565b9392505050565b600181811c90821680620004d057607f821691505b60208210811415620004f257634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051613c3a62000644600039600081816102a6015281816107b201528181610a8501528181610e2d01528181610f7401528181611044015281816110ec015281816116ac01528181611779015281816119a401528181611ba201528181611d9201528181611e9601528181611f8001528181612e0e01528181612e590152612fbd01526000818161034e0152818161041e015281816104a1015281816105e101528181610663015281816108a30152818161093e01528181610c0f01528181610eba01528181610f5201528181610fbb015281816110770152818161128c01528181611330015281816113e301528181611928015281816120970152818161216a015281816121ec0152818161227601528181612444015281816124820152818161275801528181612a6c01528181612dec01528181612ef601526130370152613c3a6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80637d7c2a1c1161011a578063d2c35ce8116100ad578063e5328e061161007c578063e5328e06146104d8578063ec78e832146104e0578063ee330ee3146104f3578063fc0c546a14610506578063ffa1ad741461051757600080fd5b8063d2c35ce814610479578063d3033c391461048c578063d8dfeb451461049f578063ddd6d260146104c557600080fd5b8063b2016bd4116100e9578063b2016bd414610419578063c083ada314610440578063c415b95c14610453578063ce5494bb1461046657600080fd5b80637d7c2a1c146103cc5780637f44579b146103d4578063951dc22c146103ef578063a3f4df7e1461040457600080fd5b80632e1a7d4d11610192578063440d724811610161578063440d72481461033e5780636596f75a1461038e578063795dae66146103a15780637a75cc4c146103a957600080fd5b80632e1a7d4d146102ee5780633ac9fc11146103015780633d9bb179146103145780634032b72b1461032b57600080fd5b806314ae9f2e116101ce57806314ae9f2e1461028e57806316f0115b146102a15780632b3297f9146102c85780632bb4186c146102db57600080fd5b806301681a62146102005780630c340a24146102155780631026013a1461023a578063117c41eb1461025b575b600080fd5b61021361020e3660046136a9565b61053b565b005b61021d6107ae565b6040516001600160a01b0390911681526020015b60405180910390f35b61024d6102483660046136c6565b610846565b604051908152602001610231565b61026e6102693660046136df565b610a19565b604080519485526020850193909352918301526060820152608001610231565b61021361029c3660046136a9565b610a83565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b60025461021d906001600160a01b031681565b61024d6102e936600461371a565b610bc8565b6102136102fc3660046136c6565b610e2a565b61021361030f3660046136c6565b61109e565b61021d6f22d53366457f9d5e68ec105046fc438381565b6102136103393660046136a9565b6110ea565b61037e61034c3660046136a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610231565b61024d61039c36600461378b565b61122f565b61024d61147a565b6103b16114ff565b60408051938452602084019290925290820152606001610231565b6103b1611559565b61021d73ef484de8c07b6e2d732a92b5f78e81b38f99f95e81565b6103f76115a9565b60405161023191906137c0565b61040c6115b5565b6040516102319190613839565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021361044e3660046136df565b611643565b60015461021d906001600160a01b031681565b6102136104743660046136a9565b6116a9565b6102136104873660046136a9565b6119a2565b61021361049a3660046136a9565b611ba0565b7f000000000000000000000000000000000000000000000000000000000000000061021d565b6102136104d33660046136c6565b611d90565b61024d611fe8565b60005461021d906001600160a01b031681565b61024d61050136600461386c565b612123565b6000546001600160a01b031661021d565b61040c604051806040016040528060058152602001640352e322e360dc1b81525081565b610548335b60039061257d565b6105875760405162461bcd60e51b81526020600482015260166024820152600080516020613be583398151915260448201526064015b60405180910390fd5b6001546001600160a01b03166105df5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d7365740000000000000000000000604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156106615760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690821614156106d55760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161057e565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561071357600154610710906001600160a01b03164761259f565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078d9190613898565b6001549091506107aa906001600160a01b038481169116836126bd565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561080957600080fd5b505afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906138b1565b905090565b600061085133610540565b61088b5760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156108ed57600080fd5b505afa158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190613898565b90506040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561098857600080fd5b505afa15801561099c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190613898565b6109ca91906138e4565b915082821015610a135760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161057e565b50919050565b6000808080610a2733610540565b610a615760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b610a6e8989898989612735565b93509350935093505b95509550955095915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610adc57600080fd5b505afa158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1491906138b1565b6001600160a01b0316336001600160a01b031614610b715760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b604482015260640161057e565b610b7c600382612b8e565b6107105760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c6564000000000000000000000000604482015260640161057e565b6000610bd333610540565b610c0d5760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4460208601866136a9565b6001600160a01b03161415610c9b5760405162461bcd60e51b815260206004820152601560248201527f746f6b656e496e2d69732d636f6c6c61746572616c0000000000000000000000604482015260640161057e565b600060085b6000868260098110610cb457610cb46138fb565b602002016020810190610cc791906136a9565b6001600160a01b031614610d0157858160098110610ce757610ce76138fb565b602002016020810190610cfa91906136a9565b9150610d11565b610d0a81613911565b9050610ca0565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610d5457600080fd5b505afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190613898565b9050610d9b8888888888612ba3565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b158015610ddc57600080fd5b505afa158015610df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e149190613898565b610e1e91906138e4565b98975050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610ea25760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161057e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c9190613898565b9050818110610f99576107aa6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846126bd565b610fa661071082846138e4565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561100557600080fd5b505afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190613898565b90506107aa7f000000000000000000000000000000000000000000000000000000000000000061106d8484612dc9565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906126bd565b6110a733610540565b6110e15760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b61071081612ddf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561114357600080fd5b505afa158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b91906138b1565b6001600160a01b0316336001600160a01b0316146111d85760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b604482015260640161057e565b6111e360038261255f565b6107105760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c6564000000000000000000000000000000604482015260640161057e565b600061123a33610540565b6112745760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190613898565b600254604051636ccb2b0160e01b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301526044820188905260648201879052306084830152929350911690636ccb2b019060a401602060405180830381600087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cb9190613898565b506040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190613898565b61146f91906138e4565b9150505b9392505050565b6040516370a0823160e01b815230600482015260009073ef484de8c07b6e2d732a92b5f78e81b38f99f95e906370a082319060240160206040518083038186803b1580156114c757600080fd5b505afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108419190613898565b6000808061150c33610540565b6115465760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b61154e612e33565b925092509250909192565b6000808061156633610540565b6115a05760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b6000808061154e565b60606108416003613028565b600580546115c290613928565b80601f01602080910402602001604051908101604052809291908181526020018280546115ee90613928565b801561163b5780601f106116105761010080835404028352916020019161163b565b820191906000526020600020905b81548152906001019060200180831161161e57829003601f168201915b505050505081565b61164c33610540565b6116865760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b6116938585858585612735565b5050505061169f612e33565b5050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146117215760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161057e565b6001600160a01b0381166117775760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f00000000604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117da57600080fd5b505afa1580156117ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181291906138b1565b6001600160a01b0316146118685760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d737472617465677900000000000000000000604482015260640161057e565b61187181613035565b6000546040516370a0823160e01b81523060048201526119059183916001600160a01b03909116906370a082319060240160206040518083038186803b1580156118ba57600080fd5b505afa1580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f29190613898565b6000546001600160a01b031691906126bd565b6040516370a0823160e01b81523060048201526107109082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561196a57600080fd5b505afa15801561197e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106d9190613898565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3391906138b1565b6001600160a01b0316336001600160a01b031614611a905760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b604482015260640161057e565b6001600160a01b038116611ae65760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f000000604482015260640161057e565b6001546001600160a01b0382811691161415611b445760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d650000000000000000000000604482015260640161057e565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf957600080fd5b505afa158015611c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3191906138b1565b6001600160a01b0316336001600160a01b031614611c8e5760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b604482015260640161057e565b6001600160a01b038116611ce45760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f000000000000000000604482015260640161057e565b6002546001600160a01b0382811691161415611d345760405162461bcd60e51b815260206004820152600f60248201526e737761707065722d69732d73616d6560881b604482015260640161057e565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611de957600080fd5b505afa158015611dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2191906138b1565b6001600160a01b0316336001600160a01b031614611e7e5760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b604482015260640161057e565b604051636a9eee1360e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d53ddc269060240160206040518083038186803b158015611ee057600080fd5b505afa158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f189190613898565b905080821115611f6a5760405162461bcd60e51b815260206004820152601860248201527f6c6f73732d69732d6869676865722d7468616e2d646562740000000000000000604482015260640161057e565b6040516306eeb69360e51b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ddd6d26090602401600060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050505050565b600073ef484de8c07b6e2d732a92b5f78e81b38f99f95e63cc2b27d761200c61147a565b6040516001600160e01b031960e084901b16815260048101919091526001602482015260440160206040518083038186803b15801561204a57600080fd5b505afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120829190613898565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156120e157600080fd5b505afa1580156120f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121199190613898565b610841919061395d565b600061212e33610540565b6121685760405162461bcd60e51b81526020600482015260166024820152600080516020613be5833981519152604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156121ea5760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161057e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416141561225e5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161057e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156122c057600080fd5b505afa1580156122d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f89190613898565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b15801561233d57600080fd5b505afa158015612351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123759190613898565b9050801561246b57600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b1580156123c857600080fd5b505afa1580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124009190613898565b81111561243e57600254612422906001600160a01b0387811691166000613126565b60025461243e906001600160a01b038781169116600019613126565b612469857f000000000000000000000000000000000000000000000000000000000000000083613251565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156124cc57600080fd5b505afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125049190613898565b61250e91906138e4565b9250838310156125575760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161057e565b505092915050565b6000612574836001600160a01b0384166132f5565b90505b92915050565b6001600160a01b03811660009081526001830160205260408120541515612574565b804710156125ef5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161057e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461263c576040519150601f19603f3d011682016040523d82523d6000602084013e612641565b606091505b50509050806126b85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161057e565b505050565b6040516001600160a01b0383166024820152604481018290526126b890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152613344565b60008080808815610a77576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156127a257600080fd5b505afa1580156127b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127da9190613898565b90506127e4613676565b898152602081018990526040516316cd8e2760e21b815273ef484de8c07b6e2d732a92b5f78e81b38f99f95e90635b36389c90612827908e908590600401613975565b600060405180830381600087803b15801561284157600080fd5b505af1158015612855573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015273865377367054516e17014ccded1e7d814edc9ce492506370a08231915060240160206040518083038186803b1580156128a357600080fd5b505afa1580156128b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128db9190613898565b6040516370a0823160e01b815230600482015290965073a5588f7cdf560811710a2d82d3c9c99769db1dcb906370a082319060240160206040518083038186803b15801561292857600080fd5b505afa15801561293c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129609190613898565b6040805160028082526060820183529297506000929091602083019080368337019050509050888160008151811061299a5761299a6138fb565b60200260200101818152505087816001815181106129ba576129ba6138fb565b602090810291909101015260405163350376e360e21b815273a5588f7cdf560811710a2d82d3c9c99769db1dcb9063d40ddb8c906129fe90899085906004016139c3565b600060405180830381600087803b158015612a1857600080fd5b505af1158015612a2c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a549190810190613a11565b506040516370a0823160e01b815230600482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015612ab657600080fd5b505afa158015612aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aee9190613898565b612af891906138e4565b6040516370a0823160e01b8152306004820152909550736c3ea9036406852006290770bedfcaba0e23a0e8906370a082319060240160206040518083038186803b158015612b4557600080fd5b505afa158015612b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7d9190613898565b935050505095509550955095915050565b6000612574836001600160a01b03841661341c565b60405163124fd3dd60e21b8152600260048201526000906f22d53366457f9d5e68ec105046fc43839063493f4f749060240160206040518083038186803b158015612bed57600080fd5b505afa158015612c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2591906138b1565b90506000612c3660208601866136a9565b60405163095ea7b360e01b81526001600160a01b038481166004830152600060248301529192509082169063095ea7b390604401602060405180830381600087803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbc9190613ac3565b5060405163095ea7b360e01b81526001600160a01b0383811660048301526024820189905282169063095ea7b390604401602060405180830381600087803b158015612d0757600080fd5b505af1158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190613ac3565b50604051634eda7bd560e11b81526001600160a01b03831690639db4f7aa90600090612d7790899089908d908d908b90600401613b1b565b6020604051808303818588803b158015612d9057600080fd5b505af1158015612da4573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061169f9190613898565b6000818310612dd85781612574565b5090919050565b6107106001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083613126565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b158015612e9b57600080fd5b505afa158015612eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed39190613898565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015612f3857600080fd5b505afa158015612f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f709190613898565b9050612f7c8183612dc9565b9250828111612f8c576000612f96565b612f9683826138e4565b6040516302df682360e11b81526004810182905260248101869052604481018590529095507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906305bed04690606401600060405180830381600087803b15801561300957600080fd5b505af115801561301d573d6000803e3d6000fd5b505050505050909192565b606060006114738361350f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b15801561309857600080fd5b505afa1580156130ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d091906138b1565b6001600160a01b0316146107105760405162461bcd60e51b815260206004820152601660248201527f77726f6e672d636f6c6c61746572616c2d746f6b656e00000000000000000000604482015260640161057e565b8015806131af5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b15801561317557600080fd5b505afa158015613189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ad9190613898565b155b6132215760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161057e565b6040516001600160a01b0383166024820152604481018290526126b890849063095ea7b360e01b906064016126e9565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b1580156132b557600080fd5b505af11580156132c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ed9190613898565b949350505050565b600081815260018301602052604081205461333c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612577565b506000612577565b6000613399826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661356b9092919063ffffffff16565b8051909150156126b857808060200190518101906133b79190613ac3565b6126b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161057e565b50505050565b600081815260018301602052604081205480156135055760006134406001836138e4565b8554909150600090613454906001906138e4565b90508181146134b9576000866000018281548110613474576134746138fb565b9060005260206000200154905080876000018481548110613497576134976138fb565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806134ca576134ca613bb2565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612577565b6000915050612577565b60608160000180548060200260200160405190810160405280929190818152602001828054801561355f57602002820191906000526020600020905b81548152602001906001019080831161354b575b50505050509050919050565b60606132ed848460008585843b6135c45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161057e565b600080866001600160a01b031685876040516135e09190613bc8565b60006040518083038185875af1925050503d806000811461361d576040519150601f19603f3d011682016040523d82523d6000602084013e613622565b606091505b509150915061363282828661363d565b979650505050505050565b6060831561364c575081611473565b82511561365c5782518084602001fd5b8160405162461bcd60e51b815260040161057e9190613839565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811461071057600080fd5b6000602082840312156136bb57600080fd5b813561147381613694565b6000602082840312156136d857600080fd5b5035919050565b600080600080600060a086880312156136f757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600080600061036080878903121561373457600080fd5b863595506020870135945061016087018881111561375157600080fd5b6040880194506102e088018981111561376957600080fd5b81945089838a01111561377b57600080fd5b8093505050509295509295909350565b6000806000606084860312156137a057600080fd5b83356137ab81613694565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b818110156138015783516001600160a01b0316835292840192918401916001016137dc565b50909695505050505050565b60005b83811015613828578181015183820152602001613810565b838111156134165750506000910152565b602081526000825180602084015261385881604085016020870161380d565b601f01601f19169190910160400192915050565b6000806040838503121561387f57600080fd5b823561388a81613694565b946020939093013593505050565b6000602082840312156138aa57600080fd5b5051919050565b6000602082840312156138c357600080fd5b815161147381613694565b634e487b7160e01b600052601160045260246000fd5b6000828210156138f6576138f66138ce565b500390565b634e487b7160e01b600052603260045260246000fd5b600081613920576139206138ce565b506000190190565b600181811c9082168061393c57607f821691505b60208210811415610a1357634e487b7160e01b600052602260045260246000fd5b60008219821115613970576139706138ce565b500190565b8281526060810160208083018460005b60028110156139a257815183529183019190830190600101613985565b505050509392505050565b634e487b7160e01b600052604160045260246000fd5b6000604082018483526020604081850152818551808452606086019150828701935060005b81811015613a04578451835293830193918301916001016139e8565b5090979650505050505050565b60006020808385031215613a2457600080fd5b825167ffffffffffffffff80821115613a3c57600080fd5b818501915085601f830112613a5057600080fd5b815181811115613a6257613a626139ad565b8060051b604051601f19603f83011681018181108582111715613a8757613a876139ad565b604052918252848201925083810185019188831115613aa557600080fd5b938501935b82851015610e1e57845184529385019392850192613aaa565b600060208284031215613ad557600080fd5b8151801515811461147357600080fd5b8060005b6004811015613416578135613afd81613694565b6001600160a01b031684526020938401939190910190600101613ae9565b610360810181876000805b6009811015613b58578235613b3a81613694565b6001600160a01b031684526020938401939290920191600101613b26565b5061012085019250889150805b6004811015613b8857606080848637938401828152939290920191600101613b65565b50505050846102a0830152836102c0830152613ba86102e0830184613ae5565b9695505050505050565b634e487b7160e01b600052603160045260246000fd5b60008251613bda81846020870161380d565b919091019291505056fe63616c6c65722d69732d6e6f742d612d6b656570657200000000000000000000a26469706673582212201382bf1f962c8bd9d7b07ec6f1cbc581d770020248482cea9010dd5437402a0c64736f6c63430008090033000000000000000000000000c14900dfb1aa54e7674e1ecf9ce02b3b35157ba5000000000000000000000000229f19942612a8dbdec3643cb23f88685ccd56a500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000022436f6e766578466f72467261785f446f6c614672617850797573645f465241585f32000000000000000000000000000000000000000000000000000000000000