0 txs
0 calls
constructor
constructor(address _router)
functions
beneficiary
viewfunction beneficiary() view returns (address)
chosenProviders
viewfunction chosenProviders(address) view returns (uint256)
deposits
viewfunction deposits(address) view returns (uint256)
earned
viewfunction earned(address _token) view returns (address profit, uint256 amount)
frozen
viewfunction frozen() view returns (bool)
isAdmin
viewfunction isAdmin(address) view returns (bool)
MAXIMAL_RATIO
viewfunction MAXIMAL_RATIO() view returns (uint256)
MINIMAL_RATIO
viewfunction MINIMAL_RATIO() view returns (uint256)
owner
viewfunction owner() view returns (address)
providers
viewfunction providers(uint256) view returns (address vault, address token, bool enable, uint256 accProfit)
providersLength
viewfunction providersLength() view returns (uint256)
reservesRatios
viewfunction reservesRatios(address) view returns (uint256)
router
viewfunction router() view returns (address)
TOTAL_RATIO_SHARES
viewfunction TOTAL_RATIO_SHARES() view returns (uint256)
addAdmin
nonpayablefunction addAdmin(address _admin)
addProvider
nonpayablefunction addProvider(address _token, address _vault) returns (uint256)
changeBeneficiary
nonpayablefunction changeBeneficiary(address _beneficiary)
changeReservesRatio
nonpayablefunction changeReservesRatio(address _token, uint256 _reservesRatio)
changeRouter
nonpayablefunction changeRouter(address _router)
chooseProvider
nonpayablefunction chooseProvider(address _token, uint256 _providerId)
disableProvider
nonpayablefunction disableProvider(uint256 _providerId)
emergencePause
nonpayablefunction emergencePause()
emergenceTrigger
payablefunction emergenceTrigger(address target, uint256 value, string signature, bytes data) payable
emergenceTriggerProvider
nonpayablefunction emergenceTriggerProvider(uint256 providerId, address target, uint256 value, string signature, bytes data)
emergenceWithdraw
nonpayablefunction emergenceWithdraw(address _token, uint256 providerId, uint256 _amount, address _to)
emergenceWithdrawETH
nonpayablefunction emergenceWithdrawETH(uint256 providerId, uint256 _amount, address _to)
enableProvider
nonpayablefunction enableProvider(uint256 _providerId)
harvest
nonpayablefunction harvest(address _token)
reBalance
nonpayablefunction reBalance(address _token)
removeAdmin
nonpayablefunction removeAdmin(address _admin)
renounceOwnership
nonpayablefunction renounceOwnership()
start
nonpayablefunction start()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(address _token, uint256 _amount)
withdrawWithReBalance
nonpayablefunction withdrawWithReBalance(address _token, uint256 _amount)
events
AdminAdded
event AdminAdded(address admin)
AdminRemoved
event AdminRemoved(address admin)
Harvested
event Harvested(address, address, uint256)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProviderAdded
event ProviderAdded(address indexed token, address provider, uint256 providerId)
ProviderDisabled
event ProviderDisabled(uint256 providerId)
ProviderEnabled
event ProviderEnabled(uint256 providerId)
ProviderSwitched
event ProviderSwitched(address indexed token, address provider, uint256 providerId)
ReBalancedReserves
event ReBalancedReserves(address)
ReservesRatiosChanged
event ReservesRatiosChanged(address indexed token, uint256 reservesRatio)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200366338038062003663833981810160405260208110156200003757600080fd5b5051600062000045620001ad565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b03199081166001600160a01b0393841617825560038054600160a01b60ff60a01b19918216811784168355336000908152600260209081526040808320805460ff191689179055805160808101825283815291820183815290820183815260608301848152600780549a8b01815590945291517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889890960297880180548816968a169690961790955593517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c689870180549551959096169716969096179091169115150217905590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a90910155620001b1565b3390565b6134a280620001c16000396000f3fe6080604052600436106102035760003560e01c80636e54c66411610118578063be9a6555116100a0578063f2fde38b1161006f578063f2fde38b14610898578063f3fef3a3146108cb578063f7434ccd14610904578063f887ea4014610a42578063fc7e286d14610a5757610203565b8063be9a6555146106cb578063ccc6461b146106e0578063dc07065714610832578063e403d4111461086557610203565b80638da5cb5b116100e75780638da5cb5b146106035780639755f5be146106185780639b13859914610653578063ad0b8b9d1461068c578063ad23fe73146106b657610203565b80636e54c66414610552578063704802751461057c578063715018a6146105af5780637adea6bf146105c457610203565b80632d829c8f1161019b5780633992f7251161016a5780633992f725146104675780633f1f3e59146104ae5780634140c93f1461032857806350f3fc81146104c35780636acfc0741461051f57610203565b80632d829c8f14610397578063340ac20f146103ca57806338af3eed146103fd578063395353041461042e57610203565b80631785f53c116101d75780631785f53c146102f55780631a058bca1461032857806324b81cdf1461034f57806324d7806c1461036457610203565b80628cc26214610208578063054f7d9c1461025e5780630e5c011e146102875780631268754f146102bc575b600080fd5b34801561021457600080fd5b5061023b6004803603602081101561022b57600080fd5b50356001600160a01b0316610a8a565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561026a57600080fd5b50610273610beb565b604080519115158252519081900360200190f35b34801561029357600080fd5b506102ba600480360360208110156102aa57600080fd5b50356001600160a01b0316610bfb565b005b3480156102c857600080fd5b506102ba600480360360408110156102df57600080fd5b506001600160a01b038135169060200135610e9e565b34801561030157600080fd5b506102ba6004803603602081101561031857600080fd5b50356001600160a01b0316610f93565b34801561033457600080fd5b5061033d611043565b60408051918252519081900360200190f35b34801561035b57600080fd5b5061033d611049565b34801561037057600080fd5b506102736004803603602081101561038757600080fd5b50356001600160a01b031661104e565b3480156103a357600080fd5b506102ba600480360360208110156103ba57600080fd5b50356001600160a01b0316611063565b3480156103d657600080fd5b506102ba600480360360208110156103ed57600080fd5b50356001600160a01b031661139d565b34801561040957600080fd5b50610412611417565b604080516001600160a01b039092168252519081900360200190f35b34801561043a57600080fd5b506102ba6004803603604081101561045157600080fd5b506001600160a01b038135169060200135611426565b34801561047357600080fd5b506102ba6004803603608081101561048a57600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611881565b3480156104ba57600080fd5b506102ba6119b0565b3480156104cf57600080fd5b506104ed600480360360208110156104e657600080fd5b5035611a16565b604080516001600160a01b03958616815293909416602084015290151582840152606082015290519081900360800190f35b34801561052b57600080fd5b5061033d6004803603602081101561054257600080fd5b50356001600160a01b0316611a5f565b34801561055e57600080fd5b506102ba6004803603602081101561057557600080fd5b5035611a71565b34801561058857600080fd5b506102ba6004803603602081101561059f57600080fd5b50356001600160a01b0316611be5565b3480156105bb57600080fd5b506102ba611c98565b3480156105d057600080fd5b506102ba600480360360608110156105e757600080fd5b50803590602081013590604001356001600160a01b0316611d3a565b34801561060f57600080fd5b50610412611e60565b34801561062457600080fd5b5061033d6004803603604081101561063b57600080fd5b506001600160a01b0381358116916020013516611e6f565b34801561065f57600080fd5b506102ba6004803603604081101561067657600080fd5b506001600160a01b0381351690602001356121a2565b34801561069857600080fd5b506102ba600480360360208110156106af57600080fd5b50356122d8565b3480156106c257600080fd5b5061033d612445565b3480156106d757600080fd5b506102ba61244b565b3480156106ec57600080fd5b506102ba600480360360a081101561070357600080fd5b8135916001600160a01b036020820135169160408201359190810190608081016060820135600160201b81111561073957600080fd5b82018360208201111561074b57600080fd5b803590602001918460018302840111600160201b8311171561076c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156107be57600080fd5b8201836020820111156107d057600080fd5b803590602001918460018302840111600160201b831117156107f157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506124b2945050505050565b34801561083e57600080fd5b506102ba6004803603602081101561085557600080fd5b50356001600160a01b03166126b4565b34801561087157600080fd5b5061033d6004803603602081101561088857600080fd5b50356001600160a01b031661272e565b3480156108a457600080fd5b506102ba600480360360208110156108bb57600080fd5b50356001600160a01b0316612740565b3480156108d757600080fd5b506102ba600480360360408110156108ee57600080fd5b506001600160a01b038135169060200135612838565b6102ba6004803603608081101561091a57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561094957600080fd5b82018360208201111561095b57600080fd5b803590602001918460018302840111600160201b8311171561097c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156109ce57600080fd5b8201836020820111156109e057600080fd5b803590602001918460018302840111600160201b83111715610a0157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612a5a945050505050565b348015610a4e57600080fd5b50610412612c2c565b348015610a6357600080fd5b5061033d60048036036020811015610a7a57600080fd5b50356001600160a01b0316612c3b565b6001600160a01b0381166000908152600660205260408120548190610aad61335c565b60078281548110610aba57fe5b60009182526020918290206040805160808101825260039390930290910180546001600160a01b03908116808552600183015491821685870152600160a01b90910460ff16151584840152600290910154606084015281516366d16cc360e01b81529151929450926366d16cc392600480840193829003018186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d6020811015610b6c57600080fd5b5051815160408051636b78c93160e11b815290519296506001600160a01b039091169163d6f1926291600480820192602092909190829003018186803b158015610bb557600080fd5b505afa158015610bc9573d6000803e3d6000fd5b505050506040513d6020811015610bdf57600080fd5b50519395939450505050565b600354600160a01b900460ff1681565b600354600160a01b900460ff1615610c44576040805162461bcd60e51b8152602060048201526007602482015266232927ad22a71760c91b604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205480610ca6576040805162461bcd60e51b8152602060048201526014602482015273283937bb34b232b9103737ba1031b437b9b2b71760611b604482015290519081900360640190fd5b600060078281548110610cb557fe5b600091825260208083206003909202909101805460408051634641257d60e01b815290519295506001600160a01b0390911692634641257d9260048084019382900301818787803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d6020811015610d3357600080fd5b505190508015610e98578154604080516366d16cc360e01b815290516000926001600160a01b0316916366d16cc3916004808301926020929190829003018186803b158015610d8157600080fd5b505afa158015610d95573d6000803e3d6000fd5b505050506040513d6020811015610dab57600080fd5b5051600284018054840190556003549091506001600160a01b031615610e4c57600354610de5906001600160a01b03838116911684612c4d565b600354604080516363453ae160e01b81526001600160a01b038481166004830152915191909216916363453ae191602480830192600092919082900301818387803b158015610e3357600080fd5b505af1158015610e47573d6000803e3d6000fd5b505050505b604080516001600160a01b0380881682528316602082015280820184905290517fd58d3254a9f6b81d7107d95df18a30e7cadd385d1644ae44761b6a6f2b0a11459181900360600190a1505b50505050565b6001546001600160a01b03163314610eeb576040805162461bcd60e51b815260206004820152600b60248201526a2737ba103937baba32b91760a91b604482015290519081900360640190fd5b600354600160a01b900460ff1615610f34576040805162461bcd60e51b8152602060048201526007602482015266232927ad22a71760c91b604482015290519081900360640190fd5b600080610f4084612ca4565b509150915080821015610f5657610f5684611063565b6001600160a01b03841660009081526004602052604081205490848211610f7d5781610f7f565b845b9050610f8b8682612838565b505050505050565b610f9b612dd4565b6000546001600160a01b03908116911614610feb576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260026020908152604091829020805460ff19169055815192835290517fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f9281900390910190a150565b61271081565b600181565b60026020526000908152604090205460ff1681565b600354600160a01b900460ff16156110ac576040805162461bcd60e51b8152602060048201526007602482015266232927ad22a71760c91b604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020548061110e576040805162461bcd60e51b8152602060048201526014602482015273283937bb34b232b9103737ba1031b437b9b2b71760611b604482015290519081900360640190fd5b61111661335c565b6007828154811061112357fe5b600091825260208083206040805160808101825260039490940290910180546001600160a01b039081168552600182015490811693850193909352600160a01b90920460ff161515908301526002015460608201529150808061118586612ca4565b9250925092508183101561124657600061119f8385612dd8565b905084600001516001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156111eb57600080fd5b505af11580156111ff573d6000803e3d6000fd5b505060015461121d92506001600160a01b038a811692501683612c4d565b6112278282612dd8565b6001600160a01b03881660009081526004602052604090205550611359565b8183111561135957600061125a8484612dd8565b60015460408051630a43004160e31b81526001600160a01b038b8116600483015260248201859052915193945091169163521802089160448082019260009290919082900301818387803b1580156112b157600080fd5b505af11580156112c5573d6000803e3d6000fd5b5050505084600001516001600160a01b031663b6b55f25826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b5050505061133e8183612e2190919063ffffffff16565b6001600160a01b038816600090815260046020526040902055505b604080516001600160a01b038816815290517f2d996eec1a258adebd9c1f9a9ffde58c855c550e10ed816d16c6d924d06df3159181900360200190a1505050505050565b6113a5612dd4565b6000546001600160a01b039081169116146113f5576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b3360009081526002602052604090205460ff16611477576040805162461bcd60e51b815260206004820152600a6024820152692737ba1030b236b4b71760b11b604482015290519081900360640190fd5b60075481106114c3576040805162461bcd60e51b8152602060048201526013602482015272283937bb34b232b9103737ba1030b23232b21760691b604482015290519081900360640190fd5b6000600782815481106114d257fe5b6000918252602090912060039091020160018101549091506001600160a01b0384811691161461153e576040805162461bcd60e51b81526020600482015260126024820152712a37b5b2b7103737ba1036b0ba31b432b21760711b604482015290519081900360640190fd5b6001810154600160a01b900460ff16611593576040805162461bcd60e51b8152602060048201526012602482015271283937bb34b232b9103234b9b0b13632b21760711b604482015290519081900360640190fd5b6001600160a01b03831660009081526006602052604090205482811415611601576040805162461bcd60e51b815260206004820152601860248201527f50726f766964657220616c72656164792063686f73656e2e0000000000000000604482015290519081900360640190fd5b6001820154825460408051636eb1769f60e11b81523060048201526001600160a01b0392831660248201529051919092169163dd62ed3e916044808301926020929190829003018186803b15801561165857600080fd5b505afa15801561166c573d6000803e3d6000fd5b505050506040513d602081101561168257600080fd5b50516116a857815460018301546116a8916001600160a01b039182169116600019612e7b565b801561181f576116b784610bfb565b6000600782815481106116c657fe5b60009182526020808320600390920290910180546040805163429c145b60e11b815290519295506001600160a01b039091169263853828b69260048084019382900301818787803b15801561171a57600080fd5b505af115801561172e573d6000803e3d6000fd5b505050506040513d602081101561174457600080fd5b50516001600160a01b038716600090815260046020526040902054909150808210156117b7576040805162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776974686472617720616d6f756e742e000000604482015290519081900360640190fd5b84546040805163b6b55f2560e01b81526004810184905290516001600160a01b039092169163b6b55f259160248082019260009290919082900301818387803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050505050505b6001600160a01b0380851660008181526006602090815260409182902087905585548251941684528301869052805191927fac81d0962e006dff42fdf4b06763b55b883e007b85c34d6ee6200c8311f00a1c929081900390910190a250505050565b611889612dd4565b6000546001600160a01b039081169116146118d9576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6118e161335c565b600784815481106118ee57fe5b600091825260208083206040805160808101825260039490940290910180546001600160a01b03908116808652600183015480831695870195909552600160a01b90940460ff16151585840152600290910154606085015281516317d5759960e31b81528a821660048201529087166024820152604481018890529051929450909263beabacc89260648084019382900301818387803b15801561199157600080fd5b505af11580156119a5573d6000803e3d6000fd5b505050505050505050565b3360009081526002602052604090205460ff16611a01576040805162461bcd60e51b815260206004820152600a6024820152692737ba1030b236b4b71760b11b604482015290519081900360640190fd5b6003805460ff60a01b1916600160a01b179055565b60078181548110611a2357fe5b60009182526020909120600390910201805460018201546002909201546001600160a01b03918216935090821691600160a01b900460ff169084565b60066020526000908152604090205481565b611a79612dd4565b6000546001600160a01b03908116911614611ac9576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6007548110611b16576040805162461bcd60e51b8152602060048201526014602482015273283937bb34b232b9103737ba1032bc34b9ba399760611b604482015290519081900360640190fd5b600060078281548110611b2557fe5b906000526020600020906003020190508060010160149054906101000a900460ff1615611b99576040805162461bcd60e51b815260206004820152601960248201527f50726f766964657220616c726561647920656e61626c65642e00000000000000604482015290519081900360640190fd5b60018101805460ff60a01b1916600160a01b1790556040805183815290517f4037576c567bca2905d4a9000a516b7e286204d25e21adcc379d86e31456f8829181900360200190a15050565b611bed612dd4565b6000546001600160a01b03908116911614611c3d576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260026020908152604091829020805460ff19166001179055815192835290517f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e3399281900390910190a150565b611ca0612dd4565b6000546001600160a01b03908116911614611cf0576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611d42612dd4565b6000546001600160a01b03908116911614611d92576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b611d9a61335c565b60078481548110611da757fe5b600091825260208083206040805160808101825260039490940290910180546001600160a01b03908116808652600183015480831695870195909552600160a01b90940460ff1615158584015260029091015460608501528151637b1a490960e01b815290871660048201526024810188905290519294509092637b1a49099260448084019382900301818387803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031690565b6000611e79612dd4565b6000546001600160a01b03908116911614611ec9576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b604080516080810182526001600160a01b0380851680835286821660208085019182526001858701818152600060608801818152600780549485018155909152965160039092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549388166001600160a01b031994851617905593517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6898501805492511515600160a01b0260ff60a01b19929098169290931691909117169490941790935592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a90930192909255825163f77c479160e01b81529251309363f77c4791926004808301939192829003018186803b158015611fee57600080fd5b505afa158015612002573d6000803e3d6000fd5b505050506040513d602081101561201857600080fd5b50516001600160a01b031614612075576040805162461bcd60e51b815260206004820152601760248201527f436f6e74726f6c6c6572206e6f74206d6174636865642e000000000000000000604482015290519081900360640190fd5b826001600160a01b0316826001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156120b857600080fd5b505afa1580156120cc573d6000803e3d6000fd5b505050506040513d60208110156120e257600080fd5b50516001600160a01b031614612134576040805162461bcd60e51b81526020600482015260126024820152712a37b5b2b7103737ba1036b0ba31b432b21760711b604482015290519081900360640190fd5b600754600090612145906001612dd8565b9050836001600160a01b03167fb58c1155ce603c11717c452373e5d304917add1c5612ed5a562e2a57b4392ae5848360405180836001600160a01b031681526020018281526020019250505060405180910390a290505b92915050565b3360009081526002602052604090205460ff166121f3576040805162461bcd60e51b815260206004820152600a6024820152692737ba1030b236b4b71760b11b604482015290519081900360640190fd5b80600181101561223b576040805162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b2103930ba34b79760911b604482015290519081900360640190fd5b612710811115612283576040805162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b2103930ba34b79760911b604482015290519081900360640190fd5b6001600160a01b038316600081815260056020908152604091829020859055815185815291517f922e909b4dc383e7613763ba1887c7fb3254f36aa386915f61a28df6c25400ae9281900390910190a2505050565b6122e0612dd4565b6000546001600160a01b03908116911614612330576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b600754811061237d576040805162461bcd60e51b8152602060048201526014602482015273283937bb34b232b9103737ba1032bc34b9ba399760611b604482015290519081900360640190fd5b60006007828154811061238c57fe5b906000526020600020906003020190508060010160149054906101000a900460ff166123ff576040805162461bcd60e51b815260206004820152601a60248201527f50726f766964657220616c72656164792064697361626c65642e000000000000604482015290519081900360640190fd5b60018101805460ff60a01b191690556040805183815290517f3d2932f53dea1d2ac13eb5e2486d828aa633d604fcf164056fe8b1adc71a13c89181900360200190a15050565b60075490565b612453612dd4565b6000546001600160a01b039081169116146124a3576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6003805460ff60a01b19169055565b6124ba612dd4565b6000546001600160a01b0390811691161461250a576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b61251261335c565b6007868154811061251f57fe5b600091825260208083206040805160808082018352600390950290920180546001600160a01b0390811680855260018301548083168688015260ff600160a01b9091041615158585015260029092015460608501529151632224fa2560e01b8152918b1660048301908152602483018b9052604483019586528951608484015289519397509095632224fa25958c958c958c958c9594606482019360a49092019291880191908190849084905b838110156125e45781810151838201526020016125cc565b50505050905090810190601f1680156126115780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561264457818101518382015260200161262c565b50505050905090810190601f1680156126715780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b15801561269457600080fd5b505af11580156126a8573d6000803e3d6000fd5b50505050505050505050565b6126bc612dd4565b6000546001600160a01b0390811691161461270c576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60056020526000908152604090205481565b612748612dd4565b6000546001600160a01b03908116911614612798576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6001600160a01b0381166127dd5760405162461bcd60e51b81526004018080602001828103825260268152602001806133846026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314612885576040805162461bcd60e51b815260206004820152600b60248201526a2737ba103937baba32b91760a91b604482015290519081900360640190fd5b600354600160a01b900460ff16156128ce576040805162461bcd60e51b8152602060048201526007602482015266232927ad22a71760c91b604482015290519081900360640190fd5b6001600160a01b03821660009081526004602052604090205481811015612932576040805162461bcd60e51b81526020600482015260136024820152722232b837b9b4ba103737ba1032b737bab3b41760691b604482015290519081900360640190fd5b6001600160a01b03831660009081526006602052604090205480612994576040805162461bcd60e51b8152602060048201526014602482015273283937bb34b232b9103737ba1031b437b9b2b71760611b604482015290519081900360640190fd5b6000600782815481106129a357fe5b600091825260208220600390910201805460408051632e1a7d4d60e01b81526004810189905290519294506001600160a01b0390911692632e1a7d4d9260248084019382900301818387803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b5050600154612a2d92506001600160a01b0388811692501686612c4d565b612a378385612dd8565b6001600160a01b0390951660009081526004602052604090209490945550505050565b612a62612dd4565b6000546001600160a01b03908116911614612ab2576040805162461bcd60e51b815260206004820181905260248201526000805160206133ed833981519152604482015290519081900360640190fd5b6060825160001415612ac5575080612b48565b82805190602001208260405160200180836001600160e01b031916815260040182805190602001908083835b60208310612b105780518252601f199092019160209182019101612af1565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b6000856001600160a01b031685836040518082805190602001908083835b60208310612b855780518252601f199092019160209182019101612b66565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612be7576040519150601f19603f3d011682016040523d82523d6000602084013e612bec565b606091505b5050905080610f8b5760405162461bcd60e51b81526004018080602001828103825260228152602001806133cb6022913960400191505060405180910390fd5b6001546001600160a01b031681565b60046020526000908152604090205481565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612c9f908490612f8a565b505050565b6001600160a01b0381166000908152600560205260408120548190819080612d13576040805162461bcd60e51b815260206004820152601a60248201527f5265736572766573526174696f73206e6f74206578697374732e000000000000604482015290519081900360640190fd5b600154604080516370a0823160e01b81526001600160a01b0392831660048201529051918716916370a0823191602480820192602092909190829003018186803b158015612d6057600080fd5b505afa158015612d74573d6000803e3d6000fd5b505050506040513d6020811015612d8a57600080fd5b50516001600160a01b0386166000908152600460205260409020549094509150612dca612710612dc483612dbe8887612e21565b9061303b565b90613094565b9250509193909250565b3390565b6000612e1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130d6565b9392505050565b600082820183811015612e1a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b801580612f01575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015612ed357600080fd5b505afa158015612ee7573d6000803e3d6000fd5b505050506040513d6020811015612efd57600080fd5b5051155b612f3c5760405162461bcd60e51b81526004018080602001828103825260368152602001806134376036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052612c9f9084905b6060612fdf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661316d9092919063ffffffff16565b805190915015612c9f57808060200190516020811015612ffe57600080fd5b5051612c9f5760405162461bcd60e51b815260040180806020018281038252602a81526020018061340d602a913960400191505060405180910390fd5b60008261304a5750600061219c565b8282028284828161305757fe5b0414612e1a5760405162461bcd60e51b81526004018080602001828103825260218152602001806133aa6021913960400191505060405180910390fd5b6000612e1a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613184565b600081848411156131655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312a578181015183820152602001613112565b50505050905090810190601f1680156131575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b606061317c84846000856131e9565b949350505050565b600081836131d35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312a578181015183820152602001613112565b5060008385816131df57fe5b0495945050505050565b60606131f485613356565b613245576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106132845780518252601f199092019160209182019101613265565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146132e6576040519150601f19603f3d011682016040523d82523d6000602084013e6132eb565b606091505b509150915081156132ff57915061317c9050565b80511561330f5780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561312a578181015183820152602001613112565b3b151590565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456d657267656e63655472696767657220657865637574696f6e206661696c65642e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212209b5b90fb736b8556ac2fb8cb00c184a8c02ed7e1fda8f3b41ce640dbfe677b0264736f6c634300060c003300000000000000000000000024cefa86fc1826fd31b4cb911034907735f8085a