0 txs
418 calls
constructor
constructor((address timelockAddress, address baseToken0, uint8 baseToken0Decimals, address quoteToken0, uint8 quoteToken0Decimals, address baseToken1, uint8 baseToken1Decimals, address quoteToken1, uint8 quoteToken1Decimals, address arbErc20, address wethErc20, address uniV3PairAddress, uint32 twapDuration, address arbUsdChainlinkFeedAddress, uint256 arbUsdChainlinkMaximumOracleDelay, address ethUsdChainlinkFeed, uint256 maxEthUsdOracleDelay) params)
functions
ARBITRUM_ERC20
viewfunction ARBITRUM_ERC20() view returns (address)
BASE_TOKEN_0_DECIMALS
viewfunction BASE_TOKEN_0_DECIMALS() view returns (uint256)
BASE_TOKEN_0
viewfunction BASE_TOKEN_0() view returns (address)
BASE_TOKEN_1_DECIMALS
viewfunction BASE_TOKEN_1_DECIMALS() view returns (uint256)
BASE_TOKEN_1
viewfunction BASE_TOKEN_1() view returns (address)
calculatePrices
purefunction calculatePrices(bool isBadDataArbUsdChainlink, uint256 arbPerUsdChainlink, uint256 arbPerWethTwap, bool isBadDataEthUsdChainlink, uint256 usdPerEthChainlink) pure returns (bool isBadData, uint256 priceLow, uint256 priceHigh)
CHAINLINK_FEED_ADDRESS
viewfunction CHAINLINK_FEED_ADDRESS() view returns (address)
CHAINLINK_FEED_DECIMALS
viewfunction CHAINLINK_FEED_DECIMALS() view returns (uint8)
CHAINLINK_FEED_PRECISION
viewfunction CHAINLINK_FEED_PRECISION() view returns (uint256)
decimals
purefunction decimals() pure returns (uint8)
ETH_USD_CHAINLINK_FEED_ADDRESS
viewfunction ETH_USD_CHAINLINK_FEED_ADDRESS() view returns (address)
ETH_USD_CHAINLINK_FEED_DECIMALS
viewfunction ETH_USD_CHAINLINK_FEED_DECIMALS() view returns (uint8)
ETH_USD_CHAINLINK_FEED_PRECISION
viewfunction ETH_USD_CHAINLINK_FEED_PRECISION() view returns (uint256)
getArbPerUsdChainlink
viewfunction getArbPerUsdChainlink() view returns (bool isBadData, uint256 arbPerUsd)
getChainlinkPrice
viewfunction getChainlinkPrice() view returns (bool _isBadData, uint256 _updatedAt, uint256 _price)
getEthUsdChainlinkPrice
viewfunction getEthUsdChainlinkPrice() view returns (bool _isBadData, uint256 _updatedAt, uint256 _usdPerEth)
getPrices
viewfunction getPrices() view returns (bool isBadData, uint256 priceLow, uint256 priceHigh)
getPricesNormalized
viewfunction getPricesNormalized() view returns (bool isBadDataNormal, uint256 priceLowNormal, uint256 priceHighNormal)
getUniswapV3Twap
viewfunction getUniswapV3Twap() view returns (uint256 _twap)
getUsdPerEthChainlink
viewfunction getUsdPerEthChainlink() view returns (bool isBadData, uint256 usdPerEth)
maximumEthUsdOracleDelay
viewfunction maximumEthUsdOracleDelay() view returns (uint256)
maximumOracleDelay
viewfunction maximumOracleDelay() view returns (uint256)
name
purefunction name() pure returns (string _name)
NORMALIZATION_0
viewfunction NORMALIZATION_0() view returns (int256)
NORMALIZATION_1
viewfunction NORMALIZATION_1() view returns (int256)
ORACLE_PRECISION
viewfunction ORACLE_PRECISION() view returns (uint256)
pendingTimelockAddress
viewfunction pendingTimelockAddress() view returns (address)
QUOTE_TOKEN_0_DECIMALS
viewfunction QUOTE_TOKEN_0_DECIMALS() view returns (uint256)
QUOTE_TOKEN_0
viewfunction QUOTE_TOKEN_0() view returns (address)
QUOTE_TOKEN_1_DECIMALS
viewfunction QUOTE_TOKEN_1_DECIMALS() view returns (uint256)
QUOTE_TOKEN_1
viewfunction QUOTE_TOKEN_1() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
timelockAddress
viewfunction timelockAddress() view returns (address)
TWAP_PRECISION
viewfunction TWAP_PRECISION() view returns (uint128)
twapDuration
viewfunction twapDuration() view returns (uint32)
UNI_V3_PAIR_ADDRESS
viewfunction UNI_V3_PAIR_ADDRESS() view returns (address)
UNISWAP_V3_TWAP_BASE_TOKEN
viewfunction UNISWAP_V3_TWAP_BASE_TOKEN() view returns (address)
UNISWAP_V3_TWAP_QUOTE_TOKEN
viewfunction UNISWAP_V3_TWAP_QUOTE_TOKEN() view returns (address)
acceptTransferTimelock
nonpayablefunction acceptTransferTimelock()
renounceTimelock
nonpayablefunction renounceTimelock()
setMaximumEthUsdOracleDelay
nonpayablefunction setMaximumEthUsdOracleDelay(uint256 newMaxOracleDelay)
setMaximumOracleDelay
nonpayablefunction setMaximumOracleDelay(uint256 newMaxOracleDelay)
setTwapDuration
nonpayablefunction setTwapDuration(uint32 newTwapDuration)
transferTimelock
nonpayablefunction transferTimelock(address _newTimelock)
events
SetMaximumEthUsdOracleDelay
event SetMaximumEthUsdOracleDelay(uint256 oldMaxOracleDelay, uint256 newMaxOracleDelay)
SetMaximumOracleDelay
event SetMaximumOracleDelay(address oracle, uint256 oldMaxOracleDelay, uint256 newMaxOracleDelay)
SetMaximumOracleDelay
event SetMaximumOracleDelay(uint256 oldMaxOracleDelay, uint256 newMaxOracleDelay)
SetTwapDuration
event SetTwapDuration(uint256 oldTwapDuration, uint256 newTwapDuration)
TimelockTransferred
event TimelockTransferred(address indexed previousTimelock, address indexed newTimelock)
TimelockTransferStarted
event TimelockTransferStarted(address indexed previousTimelock, address indexed newTimelock)
errors
OnlyPendingTimelock
error OnlyPendingTimelock()
OnlyTimelock
error OnlyTimelock()
creation bytecode
0x6103006040523462000710576102206200226e80380380916200002582610300620007ad565b6103003912620007105760405161022081016001600160401b038111828210176200077b576040526200005a610300620007d1565b815262000069610320620007d1565b60208201526200007b610340620007e6565b60408201526200008d610360620007d1565b60608201526200009f610380620007e6565b6080820152620000b16103a0620007d1565b60a0820152620000c36103c0620007e6565b60c0820152620000d56103e0620007d1565b60e0820152620000e7610400620007e6565b610100820152620000fa610420620007d1565b6101208201526200010d610440620007d1565b61014082015262000120610460620007d1565b6101608201526104805163ffffffff8116810362000710576101808201526200014b6104a0620007d1565b6101a08201526104c0516101c0820152620001686104e0620007d1565b806101e0830152610200610300015180610200840152604051916200018d8362000791565b6001600160a01b03908116835260208301919091526101a08301516101c08401516040519392909116620001c18462000791565b83526020830152610160830151610180840151610140850151610120860151604051936001600160a01b03918216939282169263ffffffff169116608085016001600160401b038111868210176200077b57604052845260208401526040830152606082015260018060a01b0360208501511660ff60408601511660018060a01b0360608701511660ff60808801511660018060a01b0360a08901511660ff60c08a01511660018060a01b0360e08b0151169160ff6101008c0151169360405196610100880198888a1060018060401b038b11176200077b576200033f99604052885260208801528560408801526060870152608086015260a085015260c084015260e08301523360018060a01b0319600154161760015560805260ff6060820151168060a05260018060a01b0360c08301511660c05260ff60e08301511660e05260018060a01b038251166101005260ff60a081602085015116938461012052600180831b0360808201511661014052015116610160526200081a565b610180526200035560e05161016051906200081a565b6101a0526303b9884f60e21b6000908152600260209081527faae5ab0c6a06c24f3bdcd503d517c0012711662a1d09888e9b0476a6167ee402805460ff19908116600190811790925584516001600160a01b039081166101c052858401516003805463ffffffff191663ffffffff9290921691909117905560408681015182166101e05260609096015181166102005263034a813d60e01b9094527f61e42c52adc0f4eefc892f78901e53f33f2ce88d73f3aac3c9ed40870d17cef8805490911690911790558451909116610220819052915163313ce56760e01b815291829060049082905afa9081156200071e576000916200072a575b506004926200046660ff836020946102405216620007f5565b61026052015182556323e2f2e160e11b600052600260209081527f0c039b2c055066302852b79ed9fa93fc417db9e965d29697a9278675a2992ab7805460ff1916600117905581516001600160a01b031661028081905260405163313ce56760e01b815293849182905afa9182156200071e57600092620006cd575b50620004f860ff836020946102a05216620007f5565b6102c052015160055580516001546001600160a01b0391821691829082167f31b6c5a04b069b6ec1b3cef44c4e7c1eadd721349cda9823d0b1877b3551cdc6600080a36001600160a01b03191617600190815560026020527f57f7548ce06158c4fc3c68d3e97217818e1629aaf5d4a23899c1208f2dcbf001805460ff199081168317909155632fa3fc3160e21b6000527fe17f8cf6562bc35c286c6773060c91482804c7e08955866957c8b34bf66775af8054909116909117905561012001516001600160a01b03166102e052604051611a3962000835823960805181610447015260a051816103da015260c05181610b10015260e0518161094b015261010051816110b60152610120518161032a0152610140518161104701526101605181610eed015261018051816105c201526101a0518161136001526101c051818181610dbf01526118a701526101e0518181816107ff01526119110152610200518181816106e00152611939015261022051818181610fd801526116fa015261024051816108b40152610260518181816108590152818161154a01526115df01526102805181818161079001526117d801526102a05181610e5701526102c051816109e001526102e05181610c510152611a3990f35b91506020823d60201162000715575b81620006eb60209383620007ad565b810103126200071057620004f860ff62000707602094620007e6565b935050620004e2565b600080fd5b3d9150620006dc565b6040513d6000823e3d90fd5b90506020813d60201162000772575b816200074860209383620007ad565b8101031262000710576004926200046660ff62000767602094620007e6565b93505050926200044d565b3d915062000739565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176200077b57604052565b601f909101601f19168101906001600160401b038211908210176200077b57604052565b51906001600160a01b03821682036200071057565b519060ff821682036200071057565b604d81116200080457600a0a90565b634e487b7160e01b600052601160045260246000fd5b81810392916000138015828513169184121617620008045756fe608060408181526004918236101561001657600080fd5b600092833560e01c91826232e91a1461132b5750816301ffc9a71461128057816306fdde031461112b578163090f3f50146110da578163116d79761461106b5781632088800414610ffc57816320bf30fc14610f8d57816326d8954514610f4a578163313ce56714610f1057816337f85f6614610eb75781633aeef3d314610e7b5781633b17136a14610e1f5781633cb6f5fa14610de3578163417d25a914610d745781634501409514610cc85781634bc66f3214610c755781634d3375e8146106905781634e96f8f514610c065781634f8b4ae714610b3457816359c909e114610ac55781636b0b5d5514610a455781636ff4847214610a03578163726de1a5146109aa578163762278651461096e578163781097d0146109155781637c99a499146108d85781638b8b2c911461087c5781638e7dc4c014610823578163993e3d54146107b457816399a64f28146107455781639c0d313f14610704578163a2cc770314610695578163bd9a548b14610690578163c433c80a146105e5578163c82f2b121461058c578163cede91a414610550578163d2333be7146104e1578163d73609461461046b57508063e0d2e780146103fd578063e5a66dfa146103a5578063eb995c431461034d578063f097486c146102f5578063f6ccaad41461024b5763f97697ff1461020857600080fd5b3461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102475760209051670de0b6b3a76400008152f35b5080fd5b82346102f257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f257610282611449565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000808254168255600154903373ffffffffffffffffffffffffffffffffffffffff83167f31b6c5a04b069b6ec1b3cef44c4e7c1eadd721349cda9823d0b1877b3551cdc68580a316331760015580f35b80fd5b503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576103a1906103886115b9565b9151901515815260208101919091529081906040820190565b0390f35b503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104dd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd577f1b427db70b2e813aae1e9f4dc54fcd2ae904b1350f60b84a7bab7d379aa2b02e9035916104c86113fe565b6005548151908152836020820152a160055580f35b8280fd5b9050346104dd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd577fd72ef688fa430b6a285b84371ba35e8a8e0762b32c1deb7be9d9c111ca79f5ea81359261053e6113fe565b82548151908152846020820152a15580f35b9050346104dd57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd5760209250549051908152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b9050346104dd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd57359063ffffffff80831680930361068c577fa5868b8f066a74ed982ad7843f1f76a16fc96b95c00596d6249b5fe5dee544137fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000926106726113fe565b6003549281519084168152856020820152a1161760035580f35b8380fd5b611383565b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102475760209051670de0b6b3a76400008152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020906005549051908152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576103a19061038861153d565b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090610a3e611857565b9051908152f35b9050346104dd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd573580151581036104dd576064359283151584036102f257506103a192610aa791608435916044359160243590611604565b92519115158252602082015260408101919091529081906060820190565b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b83346102f257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f257610b6b6113fe565b610b73611449565b7fffffffffffffffffffffffff00000000000000000000000000000000000000008082541682556001548273ffffffffffffffffffffffffffffffffffffffff821681817f162998b90abc2507f3953aa797827b03a14c42dbd9a35f09feaf02e0d592773a8280a37f31b6c5a04b069b6ec1b3cef44c4e7c1eadd721349cda9823d0b1877b3551cdc68280a31660015580f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102475760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b8390346102475760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247573573ffffffffffffffffffffffffffffffffffffffff8082168092036104dd57610d216113fe565b817fffffffffffffffffffffffff0000000000000000000000000000000000000000845416178355600154167f162998b90abc2507f3953aa797827b03a14c42dbd9a35f09feaf02e0d592773a8380a380f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576103a190610aa7611795565b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576103a190610aa76116b7565b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905160128152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102475760209063ffffffff600354169051908152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50503461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102475773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b9050346104dd57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd57815190608082019082821067ffffffffffffffff83111761125457508252604d81526020907f417262697472756d20546f6b656e204475616c204f7261636c6520436861696e828201527f6c696e6b2077697468205374616c656e65737320436865636b20616e6420556e838201527f6973776170205633205457415000000000000000000000000000000000000000606082015282519382859384528251928382860152825b84811061123e57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b8181018301518882018801528795508201611202565b8460416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9050346104dd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104dd5735907fffffffff0000000000000000000000000000000000000000000000000000000082168092036104dd576020927f01ffc9a7000000000000000000000000000000000000000000000000000000008314928315611315575b5050519015158152f35b8152600284528190205460ff169150388061130b565b84903461024757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610247576020907f00000000000000000000000000000000000000000000000000000000000000008152f35b346113f95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126113f9576103a16113da6113c061153d565b906113c9611857565b906113d26115b9565b939091611604565b6040805193151584526020840192909252908201529081906060820190565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff60015416330361141f57565b60046040517f1c0be90a000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff60005416330361146a57565b60046040517ff5c49e64000000000000000000000000000000000000000000000000000000008152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176114d557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b811561150e570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6115456116b7565b9192917f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000818102935083040361158a5761158791611504565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6115c1611795565b919291670de0b6b3a7640000808202925082040361158a57611587907f000000000000000000000000000000000000000000000000000000000000000090611504565b919394929094670de0b6b3a76400009182810292818404149015171561158a5761162d91611504565b928115611659575b50928083101561165357825b928082111561164e575090565b905090565b80611641565b905038611635565b519069ffffffffffffffffffff821682036113f957565b908160a09103126113f95761168c81611661565b91602082015191604081015191611587608060608401519301611661565b9190820391821161158a57565b6040517ffeaf968c00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215611789576000918293611752575b506000821380159061173e57929190565b5061174983426116aa565b60045410929190565b909250611776915060a03d8111611782575b61176e8183611494565b810190611678565b5092505090913861172d565b503d611764565b6040513d6000823e3d90fd5b6040517ffeaf968c00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215611789576000918293611830575b506000821380159061181c57929190565b5061182783426116aa565b60055410929190565b90925061184b915060a03d81116117825761176e8183611494565b5092505090913861180b565b6040516040810181811067ffffffffffffffff8211176114d55760405260019081815260209081810190823683378051156119fd57829073ffffffffffffffffffffffffffffffffffffffff92837f000000000000000000000000000000000000000000000000000000000000000016815263ffffffff600354166040519687937f07f7ca9f00000000000000000000000000000000000000000000000000000000855260a4850190670de0b6b3a76400006004870152877f0000000000000000000000000000000000000000000000000000000000000000166024870152877f000000000000000000000000000000000000000000000000000000000000000016604487015260a060648701525180915260c4850193966000905b8282106119e15750505050829394506084830152038173b210ce856631eeeb767efa666ec7c1c57738d4385afa908115611789576000916119b5575b50905090565b82813d83116119da575b6119c98183611494565b810103126102f257505180386119af565b503d6119bf565b8851811686529787019789978b97509095019490830190611973565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c6343000813000a000000000000000000000000e61d9ed1e5dc261d1e90a99304fadcef2c76fd1000000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000012000000000000000000000000912ce59144191c1204e64559fe8253a0e49e6548000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000012000000000000000000000000912ce59144191c1204e64559fe8253a0e49e65480000000000000000000000000000000000000000000000000000000000000012000000000000000000000000912ce59144191c1204e64559fe8253a0e49e654800000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000c6f780497a95e246eb9449f5e4770916dcd6396a0000000000000000000000000000000000000000000000000000000000000384000000000000000000000000b2a824043730fe05f3da2efafa1cbbe83fa548d600000000000000000000000000000000000000000000000000000000000152ac000000000000000000000000639fe6ab55c921f74e7fac1ee960c0b6293ba6120000000000000000000000000000000000000000000000000000000000000f3c