0 txs
89k calls
constructor
No constructor.
functions
assetConversionBuffer
viewfunction assetConversionBuffer(uint16 targetChain) view returns (uint16 buffer, uint16 bufferDenominator)
chainId
viewfunction chainId() view returns (uint16)
coreRelayer
viewfunction coreRelayer() view returns (address)
deliverGasOverhead
viewfunction deliverGasOverhead(uint16 targetChain) view returns (uint256)
gasPrice
viewfunction gasPrice(uint16 targetChain) view returns (uint256)
getRewardAddress
viewfunction getRewardAddress() view returns (address)
getSupportedKeys
viewfunction getSupportedKeys() view returns (uint256 bitmap)
getTargetChainAddress
viewfunction getTargetChainAddress(uint16 targetChain) view returns (bytes32 deliveryProviderAddress)
isChainSupported
viewfunction isChainSupported(uint16 targetChain) view returns (bool supported)
isInitialized
viewfunction isInitialized(address impl) view returns (bool)
isMessageKeyTypeSupported
viewfunction isMessageKeyTypeSupported(uint8 keyType) view returns (bool supported)
maximumBudget
viewfunction maximumBudget(uint16 targetChain) view returns (uint256)
nativeCurrencyPrice
viewfunction nativeCurrencyPrice(uint16 targetChain) view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
pricingWallet
viewfunction pricingWallet() view returns (address)
quoteAssetConversion
viewfunction quoteAssetConversion(uint16 targetChain, uint256 currentChainAmount) view returns (uint256 targetChainAmount)
quoteDeliveryOverhead
viewfunction quoteDeliveryOverhead(uint16 targetChain) view returns (uint256 nativePriceQuote)
quoteDeliveryPrice
viewfunction quoteDeliveryPrice(uint16 targetChain, uint256 receiverValue, bytes encodedExecutionParams) view returns (uint256 nativePriceQuote, bytes encodedExecutionInfo)
quoteEvmDeliveryPrice
viewfunction quoteEvmDeliveryPrice(uint16 targetChain, uint256 gasLimit, uint256 receiverValue) view returns (uint256 nativePriceQuote, uint256 targetChainRefundPerUnitGasUnused)
quoteGasCost
viewfunction quoteGasCost(uint16 targetChain, uint256 gasAmount) view returns (uint256 totalCost)
quoteGasPrice
viewfunction quoteGasPrice(uint16 targetChain) view returns (uint256 price)
rewardAddress
viewfunction rewardAddress() view returns (address)
targetChainAddress
viewfunction targetChainAddress(uint16 targetChain) view returns (bytes32)
confirmOwnershipTransferRequest
nonpayablefunction confirmOwnershipTransferRequest()
initialize
nonpayablefunction initialize()
submitOwnershipTransferRequest
nonpayablefunction submitOwnershipTransferRequest(uint16 thisRelayerChainId, address newOwner)
updateAssetConversionBuffer
nonpayablefunction updateAssetConversionBuffer(uint16 targetChain, uint16 buffer, uint16 bufferDenominator)
updateAssetConversionBuffers
nonpayablefunction updateAssetConversionBuffers(tuple[] updates)
updateConfig
nonpayablefunction updateConfig(tuple[] updates, tuple coreConfig)
updateDeliverGasOverhead
nonpayablefunction updateDeliverGasOverhead(uint16 chainId, uint256 newGasOverhead)
updateDeliverGasOverheads
nonpayablefunction updateDeliverGasOverheads(tuple[] overheadUpdates)
updateMaximumBudget
nonpayablefunction updateMaximumBudget(uint16 targetChain, uint256 maximumTotalBudget)
updateMaximumBudgets
nonpayablefunction updateMaximumBudgets(tuple[] updates)
updatePrice
nonpayablefunction updatePrice(uint16 updateChainId, uint256 updateGasPrice, uint256 updateNativeCurrencyPrice)
updatePrices
nonpayablefunction updatePrices(tuple[] updates)
updatePricingWallet
nonpayablefunction updatePricingWallet(address newPricingWallet)
updateRewardAddress
nonpayablefunction updateRewardAddress(address newAddress)
updateSupportedChain
nonpayablefunction updateSupportedChain(uint16 targetChain, bool isSupported)
updateSupportedChains
nonpayablefunction updateSupportedChains(tuple[] updates)
updateSupportedMessageKeyTypes
nonpayablefunction updateSupportedMessageKeyTypes(uint8 keyType, bool supported)
updateTargetChainAddress
nonpayablefunction updateTargetChainAddress(uint16 targetChain, bytes32 newAddress)
updateTargetChainAddresses
nonpayablefunction updateTargetChainAddresses(tuple[] updates)
updateWormholeRelayer
nonpayablefunction updateWormholeRelayer(address newAddress)
upgrade
nonpayablefunction upgrade(uint16 deliveryProviderChainId, address newImplementation)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AssetConversionBufferUpdated
event AssetConversionBufferUpdated(uint16 targetChain, uint16 buffer, uint16 bufferDenominator)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
ChainSupportUpdated
event ChainSupportUpdated(uint16 targetChain, bool isSupported)
ContractUpgraded
event ContractUpgraded(address indexed oldContract, address indexed newContract)
DeliverGasOverheadUpdated
event DeliverGasOverheadUpdated(uint256 indexed oldGasOverhead, uint256 indexed newGasOverhead)
OwnershipTransfered
event OwnershipTransfered(address indexed oldOwner, address indexed newOwner)
RewardAddressUpdated
event RewardAddressUpdated(address indexed newAddress)
TargetChainAddressUpdated
event TargetChainAddressUpdated(uint16 indexed targetChain, bytes32 indexed newAddress)
Upgraded
event Upgraded(address indexed implementation)
WormholeRelayerUpdated
event WormholeRelayerUpdated(address coreRelayer)
errors
AddressIsZero
error AddressIsZero()
CallerMustBeOwner
error CallerMustBeOwner()
CallerMustBeOwnerOrPricingWallet
error CallerMustBeOwnerOrPricingWallet()
CallerMustBePendingOwner
error CallerMustBePendingOwner()
CallerNotApproved
error CallerNotApproved(address msgSender)
ChainIdIsZero
error ChainIdIsZero()
ExceedsMaximumBudget
error ExceedsMaximumBudget(uint16 targetChain, uint256 exceedingValue, uint256 maximumBudget)
FailedToInitializeImplementation
error FailedToInitializeImplementation(string reason)
GasPriceIsZero
error GasPriceIsZero()
ImplementationAlreadyInitialized
error ImplementationAlreadyInitialized()
MaxRefundGreaterThanGasLimitCost
error MaxRefundGreaterThanGasLimitCost(uint256 maxRefund, uint256 gasLimitCost)
MaxRefundGreaterThanGasLimitCostOnSourceChain
error MaxRefundGreaterThanGasLimitCostOnSourceChain(uint256 maxRefund, uint256 gasLimitCost)
NativeCurrencyPriceIsZero
error NativeCurrencyPriceIsZero()
Overflow
error Overflow(uint256 value, uint256 max)
PriceIsZero
error PriceIsZero(uint16 chain)
UnexpectedExecutionParamsVersion
error UnexpectedExecutionParamsVersion(uint8 version, uint8 expectedVersion)
UnsupportedExecutionParamsVersion
error UnsupportedExecutionParamsVersion(uint8 version)
WrongChainId
error WrongChainId()
creation bytecode
0x60808060405234610016576122f0908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c908163038c0b66146118255750806303fed6a514611719578063111335c5146116c457806314de5ced14611689578063251608dc1461164d57806328f41de3146116135780633171aaec146115de57806332f3e784146115395780633522be7d1461137e5780633978748a146112f25780633a823154146113255780633d77cbfd146112f25780633e48e773146112bd5780634713de7a146112875780634798ed541461125e57806349cdb88c146112295780634a1194f4146111fe5780635b5bfc1e146111c7578063646e5048146111885780636631703b1461106b5780636b13b5041461101657806380c513cf14610fcc5780638129fc1c14610f4d5780638cf57cb91461071b5780638da5cb5b14610f20578063944dd5a214610ee957806394cc743d14610e5f578063973ef21514610df35780639a8a059214610dd1578063a31bcc5014610dae578063a9388ba514610d32578063afacaa8114610963578063b51a5f7b1461092a578063b57866d914610837578063b9e75e6614610796578063bb7c0a6314610744578063bf9321fc1461071b578063d60b347f146106dc578063d9f88e14146105ce578063dd36889f1461049e578063ddf0491914610380578063e30c397814610357578063e8f62d411461026b578063e8fec1ce146102425763ef1b98f01461020e57600080fd5b3461023d57604036600319011261023d57602061023561022c611942565b60243590611e98565b604051908152f35b600080fd5b3461023d57600036600319011261023d576003546040516001600160a01b039091168152602090f35b3461023d57602036600319011261023d5761ffff80610288611942565b16908160005260076020526040600020916001835492600054169301541561033f578260005260076020526001604060002001541561032657916102ea9260005260076020526001604060002001549060005260016040600020015491611dfd565b6affffffffffffffffffffff9081811161030957602090604051908152f35b60449160405191637ae5968560e01b835260048301526024820152fd5b604051636104fa0d60e11b815260048101849052602490fd5b60249060405190636104fa0d60e11b82526004820152fd5b3461023d57600036600319011261023d576001546040516001600160a01b039091168152602090f35b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d5780600401356103bc8161192b565b916103ca604051938461190a565b81835260248484019260061b8201019036821161023d57602401915b818310610467575050600254336001600160a01b039182161415915081610455575b506104435780519060005b82811061041c57005b8061043d61042c60019385611fda565b518661ffff82511691015190612085565b01610413565b60405163a348cb0b60e01b8152600490fd5b60005460101c16331415905083610408565b60408336031261023d57846040918251610480816118be565b61048986611953565b815282860135838201528152019201916103e6565b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d5780600401356104da8161192b565b916104e8604051938461190a565b818352838301602460608094028301019136831161023d57602401905b8282106105805760025486908690336001600160a01b039182161415908161056e575b506104435780519060005b82811061053c57005b8061056861054c60019385611fda565b5161ffff9081815116916040818a8401511692015116916121d4565b01610533565b60005460101c16331415905083610528565b838236031261023d57858491604051610598816118ef565b6105a185611953565b81526105ae838601611953565b838201526105be60408601611953565b6040820152815201910190610505565b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d57806004013561060a8161192b565b91610618604051938461190a565b81835260248484019260061b8201019036821161023d57602401915b81831061069e57505060005460101c6001600160a01b03163303905061068c5780519060005b82811061066357005b8061068661067360019385611fda565b518661ffff825116910151151590611f85565b0161065a565b60405163c0e22f3d60e01b8152600490fd5b60408336031261023d578460409182516106b7816118be565b6106c086611953565b81526106cd8387016119ad565b83820152815201920191610634565b3461023d57602036600319011261023d576001600160a01b036106fd611988565b166000526004602052602060ff604060002054166040519015158152f35b3461023d57600036600319011261023d57600b546040516001600160a01b039091168152602090f35b3461023d57602036600319011261023d576040610783610762611942565b9061ffff809216600052600a602052604060002054918083169260101c1690565b825161ffff928316815291166020820152f35b3461023d57606036600319011261023d576107af611942565b604435906001600160401b03821161023d573660238301121561023d578160040135906107db826119ba565b916107e9604051938461190a565b808352366024828601011161023d5760208160009260246108169701838701378401015260243590611ca6565b9061083360405192839283526040602084015260408301906119d5565b0390f35b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d5780600401356108738161192b565b91610881604051938461190a565b81835260248484019260061b8201019036821161023d57602401915b8183106108f357505060005460101c6001600160a01b03163303905061068c5780519060005b8281106108cc57005b806108ed6108dc60019385611fda565b518661ffff8251169101519061204a565b016108c3565b60408336031261023d5784604091825161090c816118be565b61091586611953565b8152828601358382015281520192019161089d565b3461023d57602036600319011261023d57610943611988565b60005460101c6001600160a01b0316330361068c5761096190611f39565b005b3461023d5760e036600319011261023d576004356001600160401b0380821161023d573660238301121561023d578160040135906109a08261192b565b916109ae604051938461190a565b8083526020830193602494856101e08094028301019136831161023d578601905b828210610c13575050505060c060231936011261023d576040519260c0840191821184831017610bff5750604052610a0561199e565b8252604435801515810361023d576020830152606435801515810361023d5760408301526084356001600160a01b038116810361023d57606083015260a4356001600160a01b038116810361023d57608083015260c43560a083015260005460101c6001600160a01b0316330361068c5780519060005b828110610aee57838051610ad2575b6020810151610ab6575b6040810151610aa057005b60a0015160008051602061229b83398151915255005b6080810151610acd906001600160a01b0316612004565b610a95565b6060810151610ae9906001600160a01b0316611f39565b610a8b565b80610afb60019284611fda565b516040810151610bdc575b6060810151610bbf575b6020810151610ba2575b6080810151610b85575b8051610b5c575b60a0810151610b3c575b5001610a7c565b8060c061ffff60e0610b5694015116910151151590611f85565b85610b35565b610b8061ffff8060e0840151169080610100850151169061012085015116916121d4565b610b2b565b610b9d61ffff60e0830151166101c083015190612240565b610b24565b610bba61ffff60e08301511661014083015190612085565b610b1a565b610bd761ffff60e0830151166101a08301519061204a565b610b10565b610bfa61ffff60e0830151166101608301516101808401519161211d565b610b06565b634e487b7160e01b60009081526041600452fd5b838236031261023d57604051908482019082821087831117610d1d578592602092604052610c40856119ad565b8152610c4d8386016119ad565b83820152610c5d604086016119ad565b60408201526060610c6f8187016119ad565b908201526080610c808187016119ad565b9082015260a0610c918187016119ad565b9082015260c0610ca28187016119ad565b90820152610cb260e08601611953565b60e0820152610100610cc5818701611953565b90820152610120610cd7818701611953565b908201526101408086013590820152610160808601359082015261018080860135908201526101a080860135908201526101c080860135908201528152019101906109cf565b88634e487b7160e01b60005260416004526000fd5b3461023d57604036600319011261023d57610d4b611962565b610d5361199e565b60005460101c6001600160a01b0316330361068c5715610d8d57600160ff60008051602061229b83398151915292161b8154179055600080f35b600160ff60008051602061229b83398151915292161b198154169055600080f35b3461023d57602036600319011261023d576020610235610dcc611942565b611e41565b3461023d57600036600319011261023d57602061ffff60005416604051908152f35b3461023d57606036600319011261023d57610e0c611942565b61ffff602435818116810361023d57604435918216820361023d57600254336001600160a01b0391821614159081610e4d575b5061044357610961926121d4565b60005460101c16331415905084610e3f565b3461023d57604036600319011261023d57610e78611942565b610e80611972565b6000546001600160a01b03929033601082901c85160361068c5761ffff809116911603610ed857168015610ec6576001600160601b0360a01b6001541617600155600080f35b60405163867915ab60e01b8152600490fd5b6040516217e1ef60ea1b8152600490fd5b3461023d57602036600319011261023d57610f02611988565b60005460101c6001600160a01b0316330361068c5761096190612004565b3461023d57600036600319011261023d5760005460405160109190911c6001600160a01b03168152602090f35b3461023d57600036600319011261023d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031660008181526004602052604090205460ff16610fba576000908152600460205260409020805460ff19166001179055005b6040516316af21ab60e11b8152600490fd5b3461023d57602036600319011261023d57610fe5611988565b6000546001600160a01b03919060101c8216330361068c57166001600160601b0360a01b6002541617600255600080f35b3461023d57604036600319011261023d5761102f611942565b600254336001600160a01b0391821614159081611059575b50610443576109619060243590612240565b60005460101c16331415905082611047565b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d5780600401356110a78161192b565b916110b5604051938461190a565b818352838301602460608094028301019136831161023d57602401905b8282106111485760025486908690336001600160a01b0391821614159081611136575b506104435780519060005b82811061110957005b8061113061111960019385611fda565b5161ffff815116906040888201519101519161211d565b01611100565b60005460101c163314159050836110f5565b838236031261023d57858491604051611160816118ef565b61116985611953565b81528285013583820152604085013560408201528152019101906110d2565b3461023d57604036600319011261023d576111a1611942565b6111a961199e565b60005460101c6001600160a01b0316330361068c5761096191611f85565b3461023d57606036600319011261023d5760406111f26111e5611942565b6044359060243590611a6b565b82519182526020820152f35b3461023d57600036600319011261023d57602060008051602061229b83398151915254604051908152f35b3461023d57602036600319011261023d5761ffff611245611942565b1660005260076020526020604060002054604051908152f35b3461023d57600036600319011261023d576002546040516001600160a01b039091168152602090f35b3461023d57602036600319011261023d5760206102356112a5611942565b61ffff16600052600760205260016040600020015490565b3461023d57602036600319011261023d5761ffff6112d9611942565b1660005260086020526020604060002054604051908152f35b3461023d57602036600319011261023d576020610235611310611942565b61ffff16600052600660205260406000205490565b3461023d57606036600319011261023d5761133e611942565b600254336001600160a01b039182161415908161136c575b506104435761096190604435906024359061211d565b60005460101c16331415905082611356565b3461023d57604036600319011261023d57611397611942565b61139f611972565b60005490916001600160a01b039133601082901c84160361068c5761ffff809116911603610ed8577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91825490803b156114de576000818482931695866001600160601b0360a01b8616179055604051867fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b602082019081526004825290611451816118be565b51915af43d156114d6573d90611466826119ba565b91611474604051938461190a565b82523d6000602084013e5b156114ad5750167f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a49600080a3005b6040516385f11c8360e01b8152602060048201529081906114d29060248301906119d5565b0390fd5b60609061147f565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b3461023d57604036600319011261023d576020610235611557611942565b6115d861ffff63ffffffff6115d08260005416926115cb6115c2611596889061ffff809216600052600a602052604060002054918083169260101c1690565b9660005260078b5283600160406000200154991660005283600160406000200154971693849116611de5565b96602435611a15565b611a15565b931690611a15565b90611a4b565b3461023d57602036600319011261023d5761ffff6115fa611942565b1660005260096020526020604060002054604051908152f35b3461023d57602036600319011261023d5761ffff61162f611942565b166000526005602052602060ff604060002054166040519015158152f35b3461023d57602036600319011261023d576020611668611962565b60008051602061229b83398151915254600160ff60405193161b1615158152f35b3461023d57604036600319011261023d576116a2611942565b60005460101c6001600160a01b0316330361068c57610961906024359061204a565b3461023d57604036600319011261023d576116dd611942565b600254336001600160a01b0391821614159081611707575b50610443576109619060243590612085565b60005460101c163314159050826116f5565b3461023d5760208060031936011261023d576004356001600160401b03811161023d573660238201121561023d5780600401356117558161192b565b91611763604051938461190a565b81835260248484019260061b8201019036821161023d57602401915b8183106117ee575050600254336001600160a01b0391821614159150816117dc575b506104435780519060005b8281106117b557005b806117d66117c560019385611fda565b518661ffff82511691015190612240565b016117ac565b60005460101c163314159050836117a1565b60408336031261023d57846040918251611807816118be565b61181086611953565b8152828601358382015281520192019161177f565b3461023d57600036600319011261023d576001546001600160a01b0380821692909190338490036118af57506000549062010000600160b01b038160101b1662010000600160b01b03198316176000556001600160601b0360a01b1660015560101c167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee67600080a3005b630106037360e21b8152600490fd5b604081019081106001600160401b038211176118d957604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176118d957604052565b90601f801991011681019081106001600160401b038211176118d957604052565b6001600160401b0381116118d95760051b60200190565b6004359061ffff8216820361023d57565b359061ffff8216820361023d57565b6004359060ff8216820361023d57565b602435906001600160a01b038216820361023d57565b600435906001600160a01b038216820361023d57565b60243590811515820361023d57565b3590811515820361023d57565b6001600160401b0381116118d957601f01601f191660200190565b919082519283825260005b848110611a01575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016119e0565b81810292918115918404141715611a2857565b634e487b7160e01b600052601160045260246000fd5b91908201809211611a2857565b8115611a55570490565b634e487b7160e01b600052601260045260246000fd5b91929092611a94839061ffff809216600052600a602052604060002054918083169260101c1690565b9061ffff9485811693600091858352611acd602094600786526115d86040978b611ac5818b8a205493168093611a15565b931690611a3e565b97611ad88a83611e98565b90611afe839061ffff809216600052600a602052604060002054918083169260101c1690565b91908187541690611b218261ffff16600052600760205260016040600020015490565b15611c6e578a88526007895260018a8920015415611c5657829163ffffffff611b8e611b87611b96948f978f8f8f91826007600193611b9c9e611b7c9652522001549661ffff16600052600760205260016040600020015490565b991696879116611de5565b928a611a15565b911690611a15565b92611a15565b90600019820190828211611c425792611bd1611bcb611be89694611bc6611bd195611bd698611a3e565b611a4b565b93611e41565b611a3e565b98868452600785528584205490611a15565b90611bf38282611a3e565b868452600985528584205410611c0b57505050505050565b60649650611c1d859392600992611a3e565b938683525220549151926302ebb5b760e41b8452600484015260248301526044820152fd5b634e487b7160e01b87526011600452602487fd5b8951636104fa0d60e11b8152600481018c9052602490fd5b8951636104fa0d60e11b815260048101839052602490fd5b60011115611c9057565b634e487b7160e01b600052602160045260246000fd5b9291906000936060948351926020858181019581010312611de15783516001811015611ddd57611cd581611c86565b80611db9575060409283519560208701956001600160401b039688811088821117611da55786528488528582805181010312611da157519060ff8216809203611da157850151875280611d8457508551611d2f9291611a6b565b96909451968060208551611d42816118be565b8a815201528351978360208a015284890152818801528652608086019286841090841117611d705750529190565b634e487b7160e01b81526041600452602490fd5b60449084865191631d4a282160e21b835260048301526024820152fd5b8480fd5b634e487b7160e01b86526041600452602486fd5b80611dc5602492611c86565b60ff604051916301959ad760e71b8352166004820152fd5b8280fd5b5080fd5b91909163ffffffff80809416911601918211611a2857565b90611e0791611a15565b9081800460011482151715611a285780800460011481151715611a2857600019810191818311611a2857611e3e92611bc691611a3e565b90565b611e5e9061ffff8116600052600860205260406000205490611e98565b906fffffffffffffffffffffffffffffffff808311611e7a5750565b8260449160405191637ae5968560e01b835260048301526024820152fd5b91909161ffff80911660008181526007602052611ebb6040958683205490611a15565b928154169180825260076020526001868320015415611f225782825260076020526001868320015415611f0a579481611e3e959660019352600760205282828220015493815220015491611dfd565b8551636104fa0d60e11b815260048101849052602490fd5b602490865190636104fa0d60e11b82526004820152fd5b600380546001600160a01b0319166001600160a01b0390921691821790556040519081527f80ba15fb50f5b4a4de303ae58538112279fb2b00af61c4d38126265bae2944da90602090a1565b7feaa35dfb768f1ccf1313ea7faae95ecba5820bf18c08a3e58cbdf3aaa42590969161ffff6040921690816000526005602052826000209015159060ff1981541660ff831617905582519182526020820152a1565b8051821015611fee5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600b80546001600160a01b0319166001600160a01b039290921691821790557f97e1f675f69047e4b663d3b795841c629240f48eb403a6337e5367c4405737e0600080a2565b61ffff16806000526006602052816040600020557fca40221dbf955f8619d86581ec5e380ca9ce15f9083a0ab52909d2383d2249f6600080a3565b61ffff16600090808252600860205260408220549163ffffffff84116120d8577fa73b3e840df75fb07563bcc4e73041b76e761005717b548d420aee0dbfb82e88918152600860205283604082205580a3565b60405162461bcd60e51b815260206004820152601c60248201527f64656c697665724761734f7665726865616420746f6f206c61726765000000006044820152606490fd5b61ffff169081156121c25780156121b057821561219e576001600160401b03811161215957600191600052600760205260406000209081550155565b60405162461bcd60e51b815260206004820152601860248201527f676173207072696365206d757374206265203c20325e363400000000000000006044820152606490fd5b604051630f47f0ed60e31b8152600490fd5b604051630657481960e21b8152600490fd5b604051631b1be67360e21b8152600490fd5b906060917faed3d5a75b6e523af32a68084c636eb7880958755291bb890cf7c8abc107a5569361ffff8092169283600052600a60205282604060002091169080548263ffff00008560101b169163ffffffff1916171790556040519384526020840152166040820152a1565b6001600160c01b0382116122625761ffff166000526009602052604060002055565b60405162461bcd60e51b815260206004820152601060248201526f616d6f756e7420746f6f206c6172676560801b6044820152606490fdfe5e6997bab73a9a9b8f33ae518f391b0426896f5c5f2d9fdce4ddbda5f4773406a264697066735822122072028f4628d77cc6a4823d012656c087756017a3a4bb40dccbcf4d2960f51e0664736f6c63430008130033