0 txs
1 call
constructor
constructor(address _router, address _quoter, address _balancerV2Vault, address _balancerQueries)
functions
BALANCER_QUERIES
viewfunction BALANCER_QUERIES() view returns (address)
BALANCER_VAULT
viewfunction BALANCER_VAULT() view returns (address)
calculatePriceDifferenceBps
purefunction calculatePriceDifferenceBps(tuple amountA, tuple amountB) pure returns (uint256 priceDifferenceBps)
getQuoteAmounts
viewfunction getQuoteAmounts(uint8 direction, address baseToken, address quoteToken, uint256 quoteSize, tuple params) view returns (uint256 baseTokens, uint256 quoteTokens)
quoter
viewfunction quoter() view returns (address)
router
viewfunction router() view returns (address)
version
viewfunction version() view returns (string)
call
nonpayablefunction call(address[] vaults, address baseToken, address quoteToken, uint8 flavor, bytes flavorParams, tuple orderBookParams) returns (tuple)
getQuoteAmounts
nonpayablefunction getQuoteAmounts(uint8 direction, address baseToken, address quoteToken, uint256 quoteSize, tuple params) returns (uint256 baseTokens, uint256 quoteTokens)
getQuoteAmounts
nonpayablefunction getQuoteAmounts(uint8 direction, address exactToken, address otherToken, uint256 baseTokenAmount, tuple[] swapParams) returns (uint256 exactTokens, uint256 otherTokens)
events
No events.
errors
InvalidBaseTokenAmount
error InvalidBaseTokenAmount()
OutputTokenIsNotQuoteToken
error OutputTokenIsNotQuoteToken()
PathIsEmpty
error PathIsEmpty()
ZeroAddress
error ZeroAddress()
creation bytecode
0x610100806040523461023857608081612df58038038091610020828561039c565b8339810103126102385780516001600160a01b0381169190828103610238576020820151906001600160a01b038216908183036102385761006f6060610068604087016103bf565b95016103bf565b9460405163c45a015560e01b8152602081600481855afa908115610357575f91610362575b506001600160a01b0316151590816102e2575b501561029d575f9182916080526040518260208201916312a9293f60e21b8352600481526100d660248261039c565b51925af13d15610295573d906001600160401b0382116102815760405191610108601f8201601f19166020018461039c565b82523d5f602084013e5b1561023c5760208180518101031261023857602001516001600160a01b0381169081900361023857156101e75760a0526001600160a01b038116156101d8576001600160a01b038216156101d85760e05260c052604051612a2190816103d482396080518181816101de0152818161032701528181610403015261171e015260a05181818161022201528181610f630152818161100501528181611ba80152611e37015260c0518181816104da01526109fc015260e05181818161026601526106470152f35b63d92e233d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602360248201527f556e69563351756f74657256323a204d6973636f6e666967757265642051756f6044820152623a32b960e91b6064820152608490fd5b5f80fd5b60405162461bcd60e51b815260206004820152601f60248201527f556e69563351756f74657256323a20496e636f72726563742051756f746572006044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b606090610112565b60405162461bcd60e51b815260206004820152601b60248201527f556e6956324c65676163793a20496e76616c696420726f7574657200000000006044820152606490fd5b6040516315ab88c960e31b81529150602090829060049082905afa908115610357575f9161031d575b506001600160a01b031615155f6100a7565b90506020813d60201161034f575b816103386020938361039c565b8101031261023857610349906103bf565b5f61030b565b3d915061032b565b6040513d5f823e3d90fd5b90506020813d602011610394575b8161037d6020938361039c565b810103126102385761038e906103bf565b5f610094565b3d9150610370565b601f909101601f19168101906001600160401b0382119082101761028157604052565b51906001600160a01b03821682036102385756fe60c0806040526004361015610012575f80fd5b5f3560e01c908163472b5297146111d45750806354fd4d50146111a15780637364caaf14610c755780637f6a8c95146105095780639b6d6bbb146104c5578063afb66d3f14610295578063bc16384614610251578063c6bbd5a71461020d578063f887ea40146101c95763fa57bb0b1461008a575f80fd5b346101c5573660031901608081126101c5576040136101c5576040516100af816121e5565b60043581526020810190602435825260406043193601126101c557604051906100d7826121e5565b60443582526020820192606435845281511580156101bc575b15610106575050505060205f195b604051908152f35b51670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561019a5761013391519061248c565b9151670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561019a5761016191519061248c565b81818111156101ae5790610174916125f3565b612710810290808204612710149015171561019a576020916101959161248c565b6100fe565b634e487b7160e01b5f52601160045260245ffd5b6101b7916125f3565b610174565b508251156100f0565b5f80fd5b346101c5575f3660031901126101c5576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c5575f3660031901126101c5576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c5575f3660031901126101c5576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c55760a03660031901126101c55760043560028110156101c5576102ba6120d3565b906102c36120e9565b91606435916084356001600160401b0381116101c5576102e79036906004016123c2565b906102f1816124aa565b806103c05750610323935f9392610307926128fa565b60405163d06ca61f60e01b815293849283929060048401612685565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103b5575f91610393575b5061036981612410565b5181515f1981019290831161019a576040926103849161241d565b51905b82519182526020820152f35b6103af91503d805f833e6103a7818361221b565b81019061265d565b8161035f565b6040513d5f823e3d90fd5b9192916001906103cf816124aa565b03610480576103ff935f936103e39261285a565b6040516307c0329d60e21b815293849283929060048401612685565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103b5575f91610466575b5061044581612410565b5181515f1981019290831161019a576040926104609161241d565b51610387565b61047a91503d805f833e6103a7818361221b565b8161043b565b60405162461bcd60e51b815260206004820152601c60248201527f556e6956324c65676163793a2057524f4e475f444952454354494f4e000000006044820152606490fd5b346101c5575f3660031901126101c5576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c55760a03660031901126101c55760043560028110156101c55761052e6120d3565b906105376120e9565b90606435608435936001600160401b0385116101c557366023860112156101c557846004013561056681612260565b95610574604051978861221b565b8187526024602088019260061b820101903682116101c557602401915b818310610c2e575050505f60606040516105aa81612180565b8281528260208201528260408201520152845115610c1f578115610c10578451906105d482612260565b916105e2604051938461221b565b8083526105f1601f1991612260565b015f5b818110610bda5750508551936001850180951161019a57909461062f61061986612260565b95610627604051978861221b565b808752612260565b602086019690601f1901368837610645836124aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925f9260209282159290855b8c51811015610919579081868e61069c6004969560018060a01b039261241d565b5151166040519586809263038fff2d60e41b82525afa9384156103b5575f946108ea575b50604051631f29a8cd60e31b8152600481018590525f816024818d5afa9283156103b5578d915f94610823575b506001600160a01b03169061070390839061241d565b528d861561081c5750600181019384821161019a578e945b87156108075782935b6001600160a01b03906107489060ff8c61073e888c61241d565b510151169061241d565b511695515f19810190811161019a578314806107f4575b6107e557600183019384841161019a57868f60019661077d9161241d565b52836107de578d905b604051926107948c8561221b565b5f84528c368d860137604051946107aa866121ca565b85528b8501526040840152606083015260808201526107c9828c61241d565b526107d4818b61241d565b500191909161067b565b5f90610786565b632757a36f60e21b5f5260045ffd5b506001600160a01b03871686141561075f565b60018301955085831161019a578f9593610724565b938161071b565b915092503d805f833e610836818361221b565b81016060828203126101c55781516001600160401b0381116101c557820181601f820112156101c55780519061086b82612260565b91610879604051938461221b565b8083528b8084019160051b830101918483116101c5578c01905b8282106108cb5750505089830151906001600160401b0382116101c5578f936107039386936108c29201612600565b509491506106ed565b81516001600160a01b03811681036101c5578152908c01908c01610893565b9093508681813d8311610912575b610902818361221b565b810103126101c55751928e6106c0565b503d6108f8565b888387878f8f8215610bd257600190955b60405161093681612180565b3081528581015f8152604082019130835260608101935f8552886040519b8c97637c26833760e11b895260e489019061096e816124aa565b60048a015260e060248a01528351809152610104890190836101048260051b8c01019501915f905b828210610b6a575050505087830360031901604489015251808352910196905f5b8a828210610b4a57505091516001600160a01b03908116606488015292511515608487015250509051811660a48401529051151560c48301525f9282900390829084907f0000000000000000000000000000000000000000000000000000000000000000165af19384156103b5575f94610ab8575b50610a36836124aa565b8015610aa557610a57610a51610a4b86612410565b516125e3565b936124aa565b15610a835782515f1981019390841161019a57604093610a769161241d565b51905b8351928352820152f35b82515f19810190811161019a57610a4b610a9f9160409561241d565b90610a79565b610a57610ab185612410565b51936124aa565b9093503d805f833e610aca818361221b565b81019082818303126101c5578051906001600160401b0382116101c557019080601f830112156101c5578151610aff81612260565b92610b0d604051948561221b565b818452848085019260051b8201019283116101c55784809101915b838310610b3a57505050509284610a2c565b8251815291810191859101610b28565b83516001600160a01b03168a52988901988d9850909201916001016109b7565b92969798999a94610bbc81929597600194976101031990820301865260a060808b5180518452858101518685015260408101516040850152606081015160608501520151918160808201520190612113565b970192019201928c938f9a999897969593610996565b5f909561092a565b602090604051610be9816121ca565b5f81525f838201525f60408201525f606082015260606080820152828287010152016105f4565b63a0be088b60e01b5f5260045ffd5b630b5b36c560e41b5f5260045ffd5b6040833603126101c55760405190610c45826121e5565b610c4e846120ff565b825260208401359060ff821682036101c55782602092836040950152815201920191610591565b346101c55760a03660031901126101c55760043560028110156101c557610c9a6120d3565b610ca26120e9565b916064356084356001600160401b0381116101c557610cc59036906004016122dc565b5191610ccf61278c565b506020830193845151801515908161118a575b501561114f578351516002810180911161019a57610cff906127a5565b95610d0861278c565b50845151958051516001880180891161019a57810361111057610d2c8897986127a5565b97610d3682612260565b97610d44604051998a61221b565b828952601f19610d5384612260565b013660208b01375f198101818111925f5b8381106110dd5750505050505f5f19820192828411915b8381106110a857505050505060405195610d94876121e5565b865260208601948552610da687612410565b6001600160a01b03909116905285515f19810190811161019a57610dca908761241d565b6001600160a01b0390911690525f5b84518051821015610e1a576001600160a01b0390610df890839061241d565b511690600181019182821161019a57610e136001938961241d565b5201610dd9565b505091516040519285610e2c856121e5565b845260208401918252610e46610e41856129c3565b6127d7565b610e52610e41856129c3565b602093604051610e62868261221b565b5f8152601f1986013687830137915f925b845151841015610ee657610ede600191610e8e86865161241d565b5190610e9b87895161241d565b5160405160609390931b6bffffffffffffffffffffffff19168b84015260e81b6001600160e81b031916603483015260178252610ed960378361221b565b61281a565b930192610e73565b82518051889288925f19830192831161019a57610f2d92610f069161241d565b5190604051916001600160601b03199060601b168583015260148252610ed960348361221b565b92610f37816124aa565b80610fce57505f81610f5e94604051958692839263cdca175360e01b8452600484016125c7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156103b5576040935f91610fa9575b50918351928352820152f35b610fc591503d805f833e610fbd818361221b565b8101906124b4565b50505084610f9d565b600190610fda816124aa565b03611063575f81611000946040519586928392632f80bb1d60e01b8452600484016125c7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156103b5576040935f91611046575b5091610a79565b61105a91503d805f833e610fbd818361221b565b5050508461103f565b60405162461bcd60e51b815260048101839052601e60248201527f556e69563351756f74657256323a2057524f4e475f444952454354494f4e00006044820152606490fd5b8151908361019a5762ffffff6110ca6001936110c4848a6125f3565b9061241d565b51166110d6828d61241d565b5201610d7b565b8151908561019a578d61110982600194611101868060a01b03916110c4848b6125f3565b51169261241d565b5201610d64565b60405162461bcd60e51b8152602060048201526017602482015276556e6956333a204241445f504154485f4c454e4754485360481b6044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272556e695633506174683a204241445f5056494160681b6044820152606490fd5b8551515f198201925090821161019a571487610ce2565b346101c5575f3660031901126101c5576111d06111bc61223c565b604051918291602083526020830190612113565b0390f35b346101c5576101003660031901126101c5576001600160401b03600435116101c5573660236004350112156101c5576001600160401b0360043560040135116101c557602460043501903660246004356004013560051b6004350101116101c55761123d6120d3565b6112456120e9565b916003606435101592836101c5576001600160401b03608435116101c5573660236084350112156101c55760843560040135916001600160401b0383116101c557366024846084350101116101c55760603660a31901126101c5576112a981612180565b606081526040516112b9816121af565b60608152606060208201525f604082015260208201526040516112db816121af565b6040516112e7816121e5565b5f81525f60208201528152606060208201525f60408201526040820152606060405191611313836121ca565b5f83525f60208401525f60408401525f828401525f6080840152015260043560040135156120bf57611344856123fc565b6040516370a0823160e01b81526001600160a01b03918216600482015295906020908790602490829088165afa9586156103b5575f96612089575b50611389906123fc565b6040516370a0823160e01b81526001600160a01b039182166004820152906020908290602490829086165afa9081156103b5575f91612057575b50604051956113d1876121e5565b865260208601526113e760043560040135612260565b926113f5604051948561221b565b60048035013580855261140790612260565b601f19013660208601375f5b600435600401358110156114495760019061143760248260051b60043501016123fc565b31611442828861241d565b5201611413565b50859461145760a435612431565b9260c4359261146760a435612431565b955f945b60a43586106116bd578989896114896114838b6126dc565b916126dc565b9161149261223c565b926040516020810190604082526114d3816114c56114b36060830189612137565b828103601f1901604084015286612137565b03601f19810183528261221b565b51902090604051936114e4856121af565b845260208401526040830152604051602081019060808101865183526020870151604083015260608083015283518091528160a0810160208601925f5b8181106116a457505061153d925003601f19810183528261221b565b519020906040519461154e866121af565b85526020850152604084015260405192611567846121ca565b4284524360208501524660408501524860608501524560808501526040519261158f84612180565b83526020830191825260408301908152606083019384526115c56040519360208552516101006020860152610120850190612113565b915191601f198482030160408501526040806115ff6115ed8651606086526060860190612137565b60208701518582036020870152612137565b9401519101525190601f198382030160608401526080810191602081518051845201516020830152602081015192608060408401528351809152602060a084019401905f5b81811061168e5750505093608091606060408697015191015251805182850152602081015160a0850152604081015160c0850152606081015160e085015201516101008301520390f35b8251865260209586019590920191600101611644565b8451835260209485019486945090920191600101611521565b84611881576064356118af57602060843583810103126101c557602460843501356001600160401b0381116101c557611704906024808560843501019160843501016123c2565b61170f85858361285a565b6040516307c0329d60e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692915f908290819061175c908860048401612685565b0381865afa9081156103b5575f91611895575b5061177981612410565b51815190915f19820191821161019a578c916117949161241d565b5160206117ac8c6117a5818661241d565b519461241d565b510152526117dd916117c087875f946128fa565b90604051808095819463d06ca61f60e01b83528860048401612685565b03915afa9081156103b5575f91611867575b506117f981612410565b519080515f19810190811161019a576118119161241d565b519061181d888a61241d565b5190602061182b8a8c61241d565b510152525b60e435612710016127101161019a5761271060e43501818102918015908304909114171561019a576127106001910495019461146b565b61187b91503d805f833e6103a7818361221b565b8b6117ef565b634e487b7160e01b5f52602160045260245ffd5b6118a991503d805f833e6103a7818361221b565b8d61176f565b5f94505f196064350161183057909895979396959394939091906020608435808c0103126101c557602460843501356001600160401b0381116101c557611904906024808d60843501019160843501016122dc565b9586519861191061278c565b5060208a0151518015159081612040575b501561114f578951516002810180911161019a5761193e906127a5565b9b61194761278c565b508a515160208c015151909b60018d01808e1161019a5782036111105761196d8d6127a5565b60a05261197982612260565b9c826040519e8f9061198b908261221b565b528d601f1961199985612260565b01903690602001375f5b8181106120015750505f5b828110611fce575050506040519a6119c58c6121e5565b60a0518c5260208c01526001600160a01b0387166119e28e612410565b528c515f19810190811161019a576001600160a01b03861690611a05908f61241d565b525f5b8b518051821015611a4a576001600160a01b0390611a2790839061241d565b511690600181019182821161019a578f600193611a439161241d565b5201611a08565b505098996020909c92919b9597949698939c01519a6040519b8c93611a6e856121e5565b84526020840152611a81610e41846129c3565b611a8d610e41846129c3565b602099604051611a9d8c8261221b565b5f8152601f198c01368d83013760205f955b015151851015611b30579d60208e9f8f9e9f808f92600193611ae38b87611ada82611b24985161241d565b5195015161241d565b5160405160609490941b6bffffffffffffffffffffffff19169184019190915260e81b6001600160e81b031916603483015260178252610ed960378361221b565b960195919f9e9d611aaf565b919794929b9d935094989599979b51908151915f19830192831161019a57611b8292611b5b9161241d565b5190604051916001600160601b03199060601b168a83015260148252610ed960348361221b565b5f8c611ba3926040519384928392632f80bb1d60e01b8452600484016125c7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156103b5575f91611fb1575b508c8c89611bf28c6117a5818661241d565b510152525198611c0061278c565b50868a0151518015159081611f9a575b5015611f5f578951516002810180911161019a57611c2d906127a5565b9b611c3661278c565b508a5151888c015151909b60018d01808e1161019a578203611f2057611c5b8d6127a5565b608052611c6782612260565b9c826040519e8f90611c79908261221b565b528d601f19611c8785612260565b01908c369101375f5b818110611ee15750505f5b828110611eaf575050506040519a611cb28c6121e5565b6080518c52888c01526001600160a01b038616611cce8e612410565b528c51805f1981011161019a576001600160a01b03851690611cf3905f19018f61241d565b525f5b8b518051821015611d38576001600160a01b0390611d1590839061241d565b511690600181019182821161019a578f600193611d319161241d565b5201611cf6565b5050929591949093999680999c9b989701516040519b611d578d6121e5565b8c52898c0152611d69610e418c6129c3565b611d75610e418c6129c3565b604051611d828a8261221b565b5f8152601f198a01368b830137955f965b8a8d015151881015611dbf57611db78d6001928d611ae38c82611ada82875161241d565b970196611d93565b919650949b989196979299939a51908151915f19830192831161019a57611e1092611de99161241d565b5190604051916001600160601b03199060601b168483015260148252610ed960348361221b565b905f83611e3293604051948592839263cdca175360e01b8452600484016125c7565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156103b5575f92611e90575b5082611e7b898b61241d565b5191611e878a8c61241d565b51015252611830565b611ea59192503d805f833e610fbd818361221b565b505050908c611e6f565b8a82015190835f1981011161019a578e611eda8262ffffff6111016001966110c4845f198c016125f3565b5201611c9b565b825190825f1981011161019a576001916001600160a01b0390611f0b906110c4845f1988016125f3565b5116611f198260805161241d565b5201611c90565b60405162461bcd60e51b8152600481018b90526017602482015276556e6956333a204241445f504154485f4c454e4754485360481b6044820152606490fd5b60405162461bcd60e51b8152600481018890526013602482015272556e695633506174683a204241445f5056494160681b6044820152606490fd5b8b51515f198201925090821161019a57148d611c10565b611fc591503d805f833e610fbd818361221b565b5050508d611be0565b602082015190835f1981011161019a578e611ffa8262ffffff6111016001966110c4845f198c016125f3565b52016119ae565b825190825f1981011161019a576001916001600160a01b039061202b906110c4845f1988016125f3565b51166120398260a05161241d565b52016119a3565b8b51515f198201925090821161019a57148d611921565b90506020813d602011612081575b816120726020938361221b565b810103126101c55751866113c3565b3d9150612065565b9095506020813d6020116120b7575b816120a56020938361221b565b810103126101c557519461138961137f565b3d9150612098565b634e487b7160e01b5f52603260045260245ffd5b602435906001600160a01b03821682036101c557565b604435906001600160a01b03821682036101c557565b35906001600160a01b03821682036101c557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106121545750505090565b9091926020612176600192865190602060409280518352015160208201520190565b9401929101612147565b608081019081106001600160401b0382111761219b57604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761219b57604052565b60a081019081106001600160401b0382111761219b57604052565b604081019081106001600160401b0382111761219b57604052565b602081019081106001600160401b0382111761219b57604052565b90601f801991011681019081106001600160401b0382111761219b57604052565b6040519061224b60408361221b565b60068252653b181718971b60d11b6020830152565b6001600160401b03811161219b5760051b60200190565b9080601f830112156101c557813561228e81612260565b9261229c604051948561221b565b81845260208085019260051b8201019283116101c557602001905b8282106122c45750505090565b602080916122d1846120ff565b8152019101906122b7565b91906020838203126101c5576040516122f481612200565b80938035906001600160401b0382116101c55701916040838203126101c55760405192612320846121e5565b80356001600160401b0381116101c5578261233c918301612277565b84526020810135906001600160401b0382116101c557019080601f830112156101c55781359061236b82612260565b92612379604051948561221b565b82845260208085019360051b8201019182116101c557602001915b8183106123a657505050602083015252565b823562ffffff811681036101c557815260209283019201612394565b9190916020818403126101c557604051906123dc82612200565b819381356001600160401b0381116101c5576123f89201612277565b9052565b356001600160a01b03811681036101c55790565b8051156120bf5760200190565b80518210156120bf5760209160051b010190565b9061243b82612260565b612448604051918261221b565b8281528092612459601f1991612260565b01905f5b82811061246957505050565b602090604051612478816121e5565b5f81525f838201528282850101520161245d565b8115612496570490565b634e487b7160e01b5f52601260045260245ffd5b6002111561188157565b6080818303126101c55780519260208201516001600160401b0381116101c557820183601f820112156101c55780516124ec81612260565b916124fa604051938461221b565b81835260208084019260051b820101908682116101c557602001915b8183106125a7575050509260408301516001600160401b0381116101c55783019080601f830112156101c55781519061254e82612260565b9261255c604051948561221b565b82845260208085019360051b8201019182116101c557602001915b81831061258a5750505060609092015190565b825163ffffffff811681036101c557815260209283019201612577565b82516001600160a01b03811681036101c557815260209283019201612516565b9291906125de602091604086526040860190612113565b930152565b600160ff1b811461019a575f0390565b9190820391821161019a57565b9080601f830112156101c557815161261781612260565b92612625604051948561221b565b81845260208085019260051b8201019283116101c557602001905b82821061264d5750505090565b8151815260209182019101612640565b906020828203126101c55781516001600160401b0381116101c5576126829201612600565b90565b6060602091604081019381526040838201528451809452019201905f5b8181106126af5750505090565b82516001600160a01b03168452602093840193909201916001016126a2565b5f19811461019a5760010190565b905f5f5b835181101561271d576126fc6126f6828661241d565b5161299c565b612709575b6001016126e0565b906127156001916126ce565b919050612701565b5061272a90929192612431565b5f5f5b8351811015612785576127436126f6828661241d565b612750575b60010161272d565b9061277d600191612761848761241d565b5161276c828761241d565b52612777818661241d565b506126ce565b919050612748565b5050905090565b60405190612799826121e5565b60606020838281520152565b906127af82612260565b6127bc604051918261221b565b82815280926127cd601f1991612260565b0190602036910137565b156127de57565b60405162461bcd60e51b8152602060048201526014602482015273155b9a558cd4185d1a0e8810905117d41195531360621b6044820152606490fd5b612858906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f19810184528361221b565b565b9190928251516002810180911161019a57612874906127a5565b9361287e85612410565b6001600160a01b0390911690525f5b835180518210156128ce576001600160a01b03906128ac90839061241d565b511690600181019182821161019a576128c76001938861241d565b520161288d565b505092915081515f19810190811161019a576128ea908361241d565b6001600160a01b03909116905290565b91928251516002810180911161019a57612913906127a5565b9361291d85612410565b6001600160a01b0390911690525f5b83518051908183101561297f575f19820191821161019a576001600160a01b039161295d91906110c49085906125f3565b511690600181019182821161019a576129786001938861241d565b520161292c565b50505092915081515f19810190811161019a576128ea908361241d565b8051151590816129b5575b506129b0575f90565b600190565b60209150015115155f6129a7565b60208101515180151591826129d757505090565b90915051516001820180921161019a57149056fea26469706673582212200e216a87097285f876519e6208fc7cdae031b4608845d25db3bc773691cb71cb64736f6c634300081d00330000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad240000000000000000000000003d4e44eb1374240ce5f1b871ab261cd16335b76a000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8000000000000000000000000300ab2038eac391f26d9f895dc61f8f66a548833