1 tx
4 calls
constructor
constructor(address initialTokenTransferAddress, address initialSwapRouter, address definitivetokenP, address definitiveParallelizer, address initialAuthority, address definitiveFlashloan)
functions
authority
viewfunction authority() view returns (address)
budget
viewfunction budget(address) view returns (uint256)
CALLBACK_SUCCESS
viewfunction CALLBACK_SUCCESS() view returns (bytes32)
computeRebalanceAmount
viewfunction computeRebalanceAmount(address yieldBearingAsset) view returns (uint8 increase, uint256 amount)
flashloan
viewfunction flashloan() view returns (address)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
isTrusted
viewfunction isTrusted(address) view returns (bool)
maxTokenSlippage
viewfunction maxTokenSlippage(address) view returns (uint96)
parallelizer
viewfunction parallelizer() view returns (address)
swapRouter
viewfunction swapRouter() view returns (address)
tokenP
viewfunction tokenP() view returns (address)
tokenTransferAddress
viewfunction tokenTransferAddress() view returns (address)
yieldBearingData
viewfunction yieldBearingData(address) view returns (address asset, uint64 targetExposure, uint64 maxExposure, uint64 minExposure, uint64 overrideExposures, uint96 maxSlippage)
addBudget
nonpayablefunction addBudget(uint256 amount, address receiver)
harvest
nonpayablefunction harvest(address yieldBearingAsset, uint256 scale, bytes extraData)
onFlashLoan
nonpayablefunction onFlashLoan(address initiator, address, uint256 amount, uint256 fee, bytes data) returns (bytes32)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, uint256 amountToRecover, address to)
removeBudget
nonpayablefunction removeBudget(uint256 amount, address receiver)
setAuthority
nonpayablefunction setAuthority(address newAuthority)
setMaxSlippage
nonpayablefunction setMaxSlippage(address yieldBearingAsset, uint96 newMaxSlippage)
setSwapRouter
nonpayablefunction setSwapRouter(address newSwapRouter)
setTargetExposure
nonpayablefunction setTargetExposure(address yieldBearingAsset, uint64 targetExposure)
setTokenTransferAddress
nonpayablefunction setTokenTransferAddress(address newTokenTransferAddress)
setYieldBearingAssetData
nonpayablefunction setYieldBearingAssetData(address yieldBearingAsset, address asset, uint64 targetExposure, uint64 minExposure, uint64 maxExposure, uint64 overrideExposures, uint96 maxSlippage)
toggleTrusted
nonpayablefunction toggleTrusted(address trusted)
updateLimitExposuresYieldAsset
nonpayablefunction updateLimitExposuresYieldAsset(address yieldBearingAsset)
events
AuthorityUpdated
event AuthorityUpdated(address authority)
Recovered
event Recovered(address token, uint256 amount, address to)
SwapRouterUpdated
event SwapRouterUpdated(address newSwapRouter)
TokenTransferAddressUpdated
event TokenTransferAddressUpdated(address newTokenTransferAddress)
TrustedToggled
event TrustedToggled(address trusted, bool status)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
InvalidParam
error InvalidParam()
NotTrusted
error NotTrusted()
NotTrustedOrGuardian
error NotTrustedOrGuardian()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SwapError
error SwapError()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60e080604052346101e95760c08161278a803803809161001f828561020f565b8339810103126101e95761003281610246565b9061003f60208201610246565b6040820151926001600160a01b038416918285036101e95760608401516001600160a01b03811681036101e95760a061007a60808701610246565b950151956001600160a01b038716958688036101e9575f80546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a160a052608052600480546001600160a01b039283166001600160a01b0319918216179091556005805493909216921691909117905581156102005760446020925f9460c052604051948593849263095ea7b360e01b84526004840152811960248401525af180156101f5576101b9575b60405161252f908161025b823960805181818161027601528181610ce401528181610e1b01528181611d1901526120ab015260a0518181816103bf0152818161066a01528181610e480152818161155201526115d9015260c05181818161040701528181610d5901526115960152f35b6020813d6020116101ed575b816101d26020938361020f565b810103126101e95751801515036101e9575f610149565b5f80fd5b3d91506101c5565b6040513d5f823e3d90fd5b63d92e233d60e01b5f5260045ffd5b601f909101601f19168101906001600160401b0382119082101761023257604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101e95756fe60806040526004361015610011575f80fd5b5f5f3560e01c80630dd3932d1461164357806313047520146115fd5780631978a5ed146115ba5780631b89b61a14611577578063212c8fb1146114be57806323e30c8b14610d0857806335b37d1a14610cc55780634127365714610c435780635a7cb38f14610c1d578063641bd50314610b6b5780637a9e5e4b14610a9d5780637ee8434914610a0c5780638195001d146109eb5780638237e538146109b15780638fb360371461093e57806396d64879146109015780639ae784861461082c578063b51609b4146107a5578063bf7e214f14610780578063c31c9c071461075a578063c5e6d5ea146106c9578063c9c6667414610691578063d2d0ec1014610628578063da94e205146105af578063e234b903146105005763edf0ef0314610138575f80fd5b346104ac5760603660031901126104ac57610151611899565b60243560443567ffffffffffffffff81116104ac576101749036906004016118c5565b9290633b9aca0083116104d8578161018d600293611a0c565b6001600160a01b03811690815f5283602052633b9aca0061022c61022460405f206bffffffffffffffffffffffff6040519889926101ca8461194b565b67ffffffffffffffff81546001600160a01b038116865260a01c16602085015267ffffffffffffffff60018201548181166040870152818160401c16606087015260801c1660808501520154169460a08201958652611d0c565b979097611a52565b049586156104b0578301926040818503126104ac5780359360028510156104ac57602082013567ffffffffffffffff81116104ac5761026b92016119b9565b936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156104ac575f80916024604051809481937f1cb44dfc0000000000000000000000000000000000000000000000000000000083528960048401525af1610490575b506001600160a01b036bffffffffffffffffffffffff915116915116633b9aca00036bffffffffffffffffffffffff811161047c5760ff946103fa97946103849460209894633b9aca0061033e6bffffffffffffffffffffffff61037697168a611a52565b0491604051998a97338d8a01521660408801526060870152608086015260a085015260c084015260e0808401526101008301906122e5565b03601f19810184528361197b565b60405193849283927f5cffe9de0000000000000000000000000000000000000000000000000000000084523060048501526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602485015260448401526080606484015260848301906122e5565b0381856001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561047157610437575080f35b6020813d602011610469575b816104506020938361197b565b810103126104655761046190612309565b5080f35b5080fd5b3d9150610443565b6040513d84823e3d90fd5b602488634e487b7160e01b81526011600452fd5b61049d9198505f9061197b565b5f966001600160a01b036102d9565b5f80fd5b7f1f2a2005000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fd2529034000000000000000000000000000000000000000000000000000000005f5260045ffd5b346104ac5760203660031901126104ac576001600160a01b03610521611899565b6105343361052f3633611a65565b6118f3565b168015610587576020817ffd238617dbf7bc2e2e9c11b00a61a76432989bf0d6ca3a5aa34381a8752db4039273ffffffffffffffffffffffffffffffffffffffff196005541617600555604051908152a1005b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346104ac5760403660031901126104ac576105c8611899565b602435906bffffffffffffffffffffffff82168092036104ac576105f03361052f3633611a65565b633b9aca0082116104d8576001600160a01b03165f52600160205260405f20906bffffffffffffffffffffffff198254161790555f80f35b346104ac5760403660031901126104ac5761068f6004356106476118af565b335f52600660205260405f2061065e8382546119ff565b90556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661228e565b005b346104ac5760203660031901126104ac576001600160a01b036106b2611899565b165f526006602052602060405f2054604051908152f35b346104ac5760203660031901126104ac576001600160a01b036106ea611899565b165f52600260205260c060405f2080549067ffffffffffffffff6bffffffffffffffffffffffff60026001840154930154169181604051946001600160a01b038116865260a01c1660208501528181166040850152818160401c16606085015260801c16608083015260a0820152f35b346104ac575f3660031901126104ac5760206001600160a01b0360045416604051908152f35b346104ac575f3660031901126104ac5760206001600160a01b035f5416604051908152f35b346104ac5760603660031901126104ac576107be611899565b6024356044356001600160a01b0381168082036104ac577fb197f0a554c4d7840105e6ae65f0e275e9e8605a969dffa8caa7f1f118a2e1f5606061068f9561080a3361052f3633611a65565b6001600160a01b036040519116938482528660208301526040820152a161228e565b346104ac5760403660031901126104ac57610845611899565b60243567ffffffffffffffff811681036104ac57335f52600360205260ff60405f20541615806108f0575b6108c8576001600160a01b0361068f92165f52600260205260405f20907fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff60a01b83549260a01b169116179055565b7f0dcc030f000000000000000000000000000000000000000000000000000000005f5260045ffd5b506108fb3633611a65565b15610870565b346104ac5760203660031901126104ac576001600160a01b03610922611899565b165f526003602052602060ff60405f2054166040519015158152f35b346104ac575f3660031901126104ac575f5460a01c60ff16156109a95760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61097f565b346104ac575f3660031901126104ac5760206040517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b346104ac5760203660031901126104ac5761068f610a07611899565b611a0c565b346104ac5760203660031901126104ac576001600160a01b03610a2d611899565b610a3b3361052f3633611a65565b16805f5260036020527f7628ea5f6112a16b36a8239aa208395a8e8f221688cfb3a5461faffb9700abcd604060ff815f20541681519084825215156020820152a15f908152600360205260409020805460ff818116151660ff19909116179055005b346104ac5760203660031901126104ac57610ab6611899565b5f54906001600160a01b0382163303610b5957803b15610b245773ffffffffffffffffffffffffffffffffffffffff197f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad926001600160a01b036020931691829116175f55604051908152a1005b6001600160a01b03907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b62d1953b60e31b5f523360045260245ffd5b346104ac5760203660031901126104ac576040610c0e610b89611899565b6001600160a01b0381165f526002602052825f20906bffffffffffffffffffffffff6002855193610bb98561194b565b67ffffffffffffffff81546001600160a01b038116875260a01c16602086015267ffffffffffffffff60018201548181168988015281818a1c16606088015260801c16608086015201541660a0830152611d0c565b60ff8351921682526020820152f35b346104ac575f3660031901126104ac5760206001600160a01b0360055416604051908152f35b346104ac5760203660031901126104ac576001600160a01b03610c64611899565b610c723361052f3633611a65565b168015610587576020817f36db479a3b4d3672bd6f5fca4484283f60b5ac70647b1ceec13ecbb1d030a2df9273ffffffffffffffffffffffffffffffffffffffff196004541617600455604051908152a1005b346104ac575f3660031901126104ac5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104ac5760a03660031901126104ac57610d21611899565b610d296118af565b5060443560843567ffffffffffffffff81116104ac57610d4d9036906004016118c5565b90926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314908115916114aa575b50801561149f575b6114775782019060e0838303126104ac57610da683611937565b92610db360408201611937565b610dbf60608301611937565b60a08301359460028610156104ac5760c08401359067ffffffffffffffff82116104ac57610df96001600160a01b039291839287016119b9565b9216921694600160208501351495865f146114715792915b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169687926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001694604051926301db50ff60e51b84528960048501525f602485015286604485015260208460c4815f6001600160a01b0387169a8b60648401523060848401524260a48401525af19384156110c6575f9461143d575b505f926001810361129957505050506001600160a01b03851690604051936370a0823160e01b8552306004860152602085602481865afa9485156110c6575f95611265575b50604093845192610f13868561197b565b60018452601f1986019283366020870137610f2d8561206b565b52855191610f3b878461197b565b600183525f5b8481106112545750610f528361206b565b52610f5c8261206b565b50855192610f6a878561197b565b60018452366020850137610f7d8361206b565b528251925f5b84811061111957505050505060206024918351928380926370a0823160e01b82523060048301525afa91821561111057505f916110d1575b5060809660c4936001600160a01b03610fd960209897955f956119ff565b945b610fe6868583611c6b565b6040519a8b9889976301db50ff60e51b895260048901520135602487015216604485015260648401523060848401524260a48401525af19182156110c6575f92611092575b5081811161105e575b60206040517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b6001600160a01b0391611070916119ff565b91165f52600660205261108860405f209182546119ff565b9055808080611034565b9091506020813d6020116110be575b816110ae6020938361197b565b810103126104ac5751908361102b565b3d91506110a1565b6040513d5f823e3d90fd5b905060209493919294813d602011611108575b816110f16020938361197b565b810103126104ac5751929390929091906080610fbb565b3d91506110e4565b513d5f823e3d90fd5b6001600160a01b0361112b828461208c565b51166001600160a01b036005541690611144838761208c565b518951636eb1769f60e11b81523060048201526001600160a01b03841660248201529290602084604481865afa93841561124a575f94611217575b508084106111fb575b505050505f80611198838661208c565b516001600160a01b036004541682602083519301915af16111b7612316565b90156111c65750600101610f83565b805190816111f6577f7c3eb9ca000000000000000000000000000000000000000000000000000000005f5260045ffd5b602001fd5b61120e93611208916119ff565b916123b2565b8e808080611188565b9093506020813d8211611242575b816112326020938361197b565b810103126104ac5751925f61117f565b3d9150611225565b8b513d5f823e3d90fd5b806060602080938701015201610f41565b9094506020813d602011611291575b816112816020938361197b565b810103126104ac5751938b610f02565b3d9150611274565b90919394505f9a979592989a50156112c9575b50505050925f6080969360c4936001600160a01b03602097610fdb565b93965091928692901561139357506112e2918391611c6b565b604051907f6e553f6500000000000000000000000000000000000000000000000000000000825260048201523060248201526020816044815f6001600160a01b0389165af19081156110c6575f91611359575b50925f6080969360c4936001600160a01b036020975b9750829699508195506112ac565b95929390506020863d60201161138b575b816113776020938361197b565b810103126104ac579451919492915f611335565b3d915061136a565b90506020915060645f9360405194859384927fba08765200000000000000000000000000000000000000000000000000000000845260048401523060248401523060448401525af19081156110c6575f91611403575b50925f6080969360c4936001600160a01b0360209761134b565b95929390506020863d602011611435575b816114216020938361197b565b810103126104ac579451919492915f6113e9565b3d9150611414565b9093506020813d602011611469575b816114596020938361197b565b810103126104ac5751928c610ebd565b3d915061144c565b91610e11565b7fc22a648e000000000000000000000000000000000000000000000000000000005f5260045ffd5b506064351515610d8c565b6001600160a01b0316301415905084610d84565b346104ac5760403660031901126104ac5761068f6004356001600160a01b036114e56118af565b165f52600660205260405f206114fc828254611916565b9055604051907f23b872dd00000000000000000000000000000000000000000000000000000000602083015233602483015230604483015260648201526064815261154860848261197b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016612345565b346104ac575f3660031901126104ac5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104ac575f3660031901126104ac5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104ac5760203660031901126104ac576001600160a01b0361161e611899565b165f52600160205260206bffffffffffffffffffffffff60405f205416604051908152f35b346104ac5760e03660031901126104ac5761165c611899565b6116646118af565b6044359167ffffffffffffffff8316918284036104ac576064359267ffffffffffffffff8416918285036104ac576084359567ffffffffffffffff87168097036104ac5760a4359467ffffffffffffffff8616908187036104ac5760c435906bffffffffffffffffffffffff82168092036104ac576001600160a01b03906116f03361052f3633611a65565b165f526002602052633b9aca0060405f20956001600160a01b03861673ffffffffffffffffffffffffffffffffffffffff1988541617875510156104d857633b9aca008110156104d85761177d60019386907fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff60a01b83549260a01b169116179055565b828501967fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000089549260801b16911617875560028501906bffffffffffffffffffffffff19825416179055145f1461185157505083633b9aca00811091821592611846575b50506104d85761068f9267ffffffffffffffff19825416178155906fffffffffffffffff0000000000000000196fffffffffffffffff000000000000000083549260401b169116179055565b1015905083856117fa565b929150925061068f93507002000000000000000000000000000000007fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff8254161790556120a0565b600435906001600160a01b03821682036104ac57565b602435906001600160a01b03821682036104ac57565b9181601f840112156104ac5782359167ffffffffffffffff83116104ac57602083818601950101116104ac57565b156118fb5750565b6001600160a01b039062d1953b60e31b5f521660045260245ffd5b9190820180921161192357565b634e487b7160e01b5f52601160045260245ffd5b35906001600160a01b03821682036104ac57565b60c0810190811067ffffffffffffffff82111761196757604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761196757604052565b67ffffffffffffffff811161196757601f01601f191660200190565b81601f820112156104ac578035906119d08261199d565b926119de604051948561197b565b828452602083830101116104ac57815f926020809301838601378301015290565b9190820391821161192357565b6001600160a01b03165f52600260205260405f20600267ffffffffffffffff600183015460801c1614611a3c5750565b806001600160a01b03611a509254166120a0565b565b8181029291811591840414171561192357565b905f915f54916001600160a01b03831692816004116104ac575f5f905f80604051966001600160a01b0360208901917fb700961300000000000000000000000000000000000000000000000000000000835216978860248201523060448201527fffffffff00000000000000000000000000000000000000000000000000000000833516606482015260648152611afd60848261197b565b5190895afa611b0a612316565b90611bf2575b5015611b22575b505050505050600190565b63ffffffff1615611be95760ff60a01b191674010000000000000000000000000000000000000000175f55823b156104ac576064925f92836040519586809581947f94c7d7ee0000000000000000000000000000000000000000000000000000000083526004830152604060248301528060448301528084848401378181018301849052601f01601f191681010301925af180156110c657611bd6575b5060ff60a01b1981541690555f8080808080611b17565b611be291505f9061197b565b5f5f611bbf565b50505050505f90565b80519092909160408310611c3457505081604091810103126104ac576040611c1c60208301612309565b91015163ffffffff811681036104ac57905b5f611b10565b916020819492941015611c49575b5050611c2e565b81925090602091810103126104ac576020611c649101612309565b5f80611c42565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152909391169190602084604481865afa9384156110c6575f94611cc2575b508310611cb757505050565b611a509219916123b2565b9093506020813d602011611cee575b81611cde6020938361197b565b810103126104ac5751925f611cab565b3d9150611cd1565b91908260409103126104ac576020825192015190565b915f926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906001600160a01b0360405191634a71aecf60e11b8352166004820152604081602481855afa9081156110c6575f905f92611f28575b5060406001600160a01b038651166024825180968193634a71aecf60e11b835260048301525afa9283156110c6575f93611ef6575b50611dbd8267ffffffffffffffff602088015116611a52565b633b9aca008202828104633b9aca00148315171561192357811015611e6d576040611dfc611e059493633b9aca0067ffffffffffffffff9404906119ff565b96015116611a52565b633b9aca008202828104633b9aca00148315171561192357811015611e2b57505f925050565b611e358483611916565b633b9aca00810290808204633b9aca001490151715611923578110611e58575050565b611e6a929350633b9aca0090046119ff565b90565b95509067ffffffffffffffff6060611dfc611e9094633b9aca0060019a046119ff565b633b9aca008202828104633b9aca0014831517156119235781811015611eb857505f93505050565b633b9aca008502858104633b9aca00148615171561192357611eda9083611916565b11611ee3575050565b611e6a929350633b9aca009004906119ff565b611f1991935060403d604011611f21575b611f11818361197b565b810190611cf6565b50915f611da4565b503d611f07565b9050611f43915060403d604011611f2157611f11818361197b565b905f611d6f565b67ffffffffffffffff81116119675760051b60200190565b91906040838203126104ac57825167ffffffffffffffff81116104ac57830181601f820112156104ac578051611f9781611f4a565b91611fa5604051938461197b565b81835260208084019260051b820101908482116104ac57602001915b81831061204a575050509260208101519067ffffffffffffffff82116104ac57019080601f830112156104ac57815190611ffa82611f4a565b92612008604051948561197b565b82845260208085019360051b8201019182116104ac57602001915b8183106120305750505090565b82518060070b81036104ac57815260209283019201612023565b825167ffffffffffffffff811681036104ac57815260209283019201611fc1565b8051156120785760200190565b634e487b7160e01b5f52603260045260245ffd5b80518210156120785760209160051b010190565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916001600160a01b03604051917fb85780bc000000000000000000000000000000000000000000000000000000008352168060048301525f82602481875afa9182156110c6575f92612271575b5081516001811161222b575060018301805467ffffffffffffffff1916633b9aca001790555f91505b6024604051809581937f847da7be00000000000000000000000000000000000000000000000000000000835260048301525afa9182156110c6575f92612206575b50815191600183116121ac575060010180546fffffffffffffffff00000000000000001916905550565b60011983019283116119235767ffffffffffffffff6121d0611a509460019361208c565b51169101906fffffffffffffffff0000000000000000196fffffffffffffffff000000000000000083549260401b169116179055565b6122239192503d805f833e61221b818361197b565b810190611f62565b50905f612182565b60011981019081116119235761224b67ffffffffffffffff915f9461208c565b511667ffffffffffffffff60018501911667ffffffffffffffff19825416179055612141565b6122869192503d805f833e61221b818361197b565b50905f612118565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b0390921660248301526044820192909252611a50916122e08260648101610376565b612345565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b519081151582036104ac57565b3d15612340573d906123278261199d565b91612335604051938461197b565b82523d5f602084013e565b606090565b905f602091828151910182855af1156110c6575f513d6123a957506001600160a01b0381163b155b6123745750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6001141561236d565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152929392821692602082604481875afa80156110c6575f906124c5575b6123fb9250611916565b9160205f60405194612446866124388582019363095ea7b360e01b85528a60248401602090939291936001600160a01b0360408201951681520152565b03601f19810188528761197b565b85519082865af1903d5f5190836124a6575b5050501561246557505050565b6122e0611a50936001600160a01b036040519163095ea7b360e01b60208401521660248201525f6044820152604481526124a060648261197b565b82612345565b919250906124bb57503b15155b5f8080612458565b60019150146124b3565b506020823d6020116124f1575b816124df6020938361197b565b810103126104ac576123fb91516123f1565b3d91506124d256fea2646970667358221220ec283012c4b4807e318035ba023be8591bf414e2388206dea6cd585b6cb7364064736f6c634300081c0033000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b0772559000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b07725590000000000000000000000009b3a8f7cec208e247d97dee13313690977e244590000000000000000000000006efeddf9269c3683ba516cb0e2124fe335f262a200000000000000000000000094ea8800444017695345156319e96bdb1e355f7a000000000000000000000000c9b6279baa19dbb8bcc3250c89caa093aaba0bfc