1 tx
2 calls
constructor
constructor(address stableTokenPriceOracle_)
functions
balanceDeficitZone
purefunction balanceDeficitZone(uint256 safeZoneMax, uint256 safeZoneMin, uint256 dstPoolAfterBalance) pure returns (uint8)
calcFee
viewfunction calcFee(tuple srcPoolInfo, tuple dstPoolInfo, address from, uint256 amountGD) view returns (tuple feeInfo)
dangerZoneEqFeeBps
purefunction dangerZoneEqFeeBps(uint256 dstPoolAfterBalance, uint256 dstPoolTargetBalance) pure returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DELTA_1
viewfunction DELTA_1() view returns (uint256)
DELTA_2
viewfunction DELTA_2() view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
EQ_REWARD_THRESHOLD
viewfunction EQ_REWARD_THRESHOLD() view returns (uint256)
eqFeeSafeZoneRange
purefunction eqFeeSafeZoneRange(uint256 dstPoolTargetBalance) pure returns (uint256 safeZoneMax, uint256 safeZoneMin)
getDriftProtocolFee
viewfunction getDriftProtocolFee(uint256 srcPoolId, uint256 dstPoolId, uint256 amountGD) view returns (uint256)
getEqFee
purefunction getEqFee(bool whitelisted, uint8 dstBalanceDeficitZone, uint256 dstPoolAfterBalance, uint256 dstPoolTargetBalance, uint256 amountGD) pure returns (uint256)
getEqReward
purefunction getEqReward(bool whitelisted, uint256 srcPoolBalance, uint256 srcTotalLiquidity, uint256 eqFeePool, uint256 amountGD, uint256 protocolFee) pure returns (uint256 eqReward)
getLpFee
purefunction getLpFee(bool whitelisted, bool hasEqReward, uint256 amountGD) pure returns (uint256)
getMinimumTransactionFee
viewfunction getMinimumTransactionFee(bool whitelisted, uint256 poolId, uint8 tokenDecimals) view returns (uint256)
getProtocolFee
viewfunction getProtocolFee(bool whitelisted, uint8 dstBalanceDeficitZone, uint256 srcPoolId, uint256 dstPoolId, uint256 amountGD) view returns (uint256 protocolFee)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
LAMBDA_1
viewfunction LAMBDA_1() view returns (uint256)
LAMBDA_2
viewfunction LAMBDA_2() view returns (uint256)
LP_FEE_WITH_EQ_REWARD
viewfunction LP_FEE_WITH_EQ_REWARD() view returns (uint256)
LP_FEE
viewfunction LP_FEE() view returns (uint256)
MINIMUM_TRANSACTION_FEE_ETH_D18
viewfunction MINIMUM_TRANSACTION_FEE_ETH_D18() view returns (uint256)
MINIMUM_TRANSACTION_FEE_USD_D8
viewfunction MINIMUM_TRANSACTION_FEE_USD_D8() view returns (uint256)
poolIdToTokenId
viewfunction poolIdToTokenId(uint256) view returns (uint256)
PRICE_ORACLE_DECIMALS
viewfunction PRICE_ORACLE_DECIMALS() view returns (uint8)
PROTOCOL_FEE
viewfunction PROTOCOL_FEE() view returns (uint256)
PROTOCOL_SUBSIDY
viewfunction PROTOCOL_SUBSIDY() view returns (uint256)
safeZoneEqFeeBps
purefunction safeZoneEqFeeBps(uint256 dstPoolAfterBalance, uint256 dstPoolTargetBalance) pure returns (uint256)
stableTokenPriceOracle
viewfunction stableTokenPriceOracle() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TOKEN_DECIMALS
viewfunction TOKEN_DECIMALS() view returns (uint8)
version
purefunction version() pure returns (string)
whitelist
viewfunction whitelist(address) view returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setStableTokenPriceOracle
nonpayablefunction setStableTokenPriceOracle(address stableTokenPriceOracle_)
setTokenId
nonpayablefunction setTokenId(uint256 poolId, uint256 tokenId)
setWhitelist
nonpayablefunction setWhitelist(address from, bool whiteListed)
events
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetStableTokenPriceOracle
event SetStableTokenPriceOracle(address stableTokenPriceOracle)
SetTokenId
event SetTokenId(uint256 poolId, uint256 tokenId)
SetWhitelist
event SetWhitelist(address from, bool whiteListed)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
TokiCannotCloseChannel
error TokiCannotCloseChannel()
TokiCannotTimeoutPacket
error TokiCannotTimeoutPacket()
TokiChannelNotFound
error TokiChannelNotFound(string portId, string channelId)
TokiContractNotAllowed
error TokiContractNotAllowed(string name, address addr)
TokiDepeg
error TokiDepeg(uint256 poolId)
TokiDstChainIdNotAccepted
error TokiDstChainIdNotAccepted(uint256 dstChainId)
TokiDstOuterGasShouldBeZero
error TokiDstOuterGasShouldBeZero()
TokiExceed
error TokiExceed(string name, uint256 value, uint256 limit)
TokiExceedAdd
error TokiExceedAdd(string name, uint256 current, uint256 add, uint256 limit)
TokiFailToRefund
error TokiFailToRefund()
TokiFallbackUnauthorized
error TokiFallbackUnauthorized(address caller)
TokiFlowRateLimitExceed
error TokiFlowRateLimitExceed(uint256 current, uint256 add, uint256 limit)
TokiInsufficientAmount
error TokiInsufficientAmount(string name, uint256 value, uint256 needed)
TokiInsufficientPoolLiquidity
error TokiInsufficientPoolLiquidity(uint256 value, uint256 needed)
TokiInvalidAppVersion
error TokiInvalidAppVersion(uint256 expected, uint256 actual)
TokiInvalidBalanceDeficitFeeZone
error TokiInvalidBalanceDeficitFeeZone()
TokiInvalidPacketType
error TokiInvalidPacketType(uint8)
TokiInvalidProposedVersion
error TokiInvalidProposedVersion(string version)
TokiInvalidRecipientBytes
error TokiInvalidRecipientBytes()
TokiInvalidRetryType
error TokiInvalidRetryType(uint8)
TokiInvalidSafeZoneRange
error TokiInvalidSafeZoneRange(uint256 min, uint256 max)
TokiMock
error TokiMock(string message)
TokiNativeTransferIsFailed
error TokiNativeTransferIsFailed(address to, uint256 value)
TokiNoFee
error TokiNoFee()
TokiNoPeerPoolInfo
error TokiNoPeerPoolInfo()
TokiNoPool
error TokiNoPool(uint256 poolId)
TokiNoRevertReceive
error TokiNoRevertReceive()
TokiNotEnoughNativeFee
error TokiNotEnoughNativeFee(uint256 value, uint256 limit)
TokiPeerPoolInfoNotFound
error TokiPeerPoolInfoNotFound(uint256 chainId, uint256 poolId)
TokiPeerPoolIsAlreadyActive
error TokiPeerPoolIsAlreadyActive(uint256 chainId, uint256 poolId)
TokiPeerPoolIsNotReady
error TokiPeerPoolIsNotReady(uint256 peerChainId, uint256 peerPoolId)
TokiPeerPoolIsRegistered
error TokiPeerPoolIsRegistered(uint256 chainId, uint256 poolId)
TokiPoolRecvIsFailed
error TokiPoolRecvIsFailed(uint256 poolId)
TokiPoolWithdrawConfirmIsFailed
error TokiPoolWithdrawConfirmIsFailed(uint256 poolId)
TokiPriceIsExpired
error TokiPriceIsExpired(uint256 updatedAt)
TokiPriceIsNotPositive
error TokiPriceIsNotPositive(int256 value)
TokiRequireOrderedChannel
error TokiRequireOrderedChannel()
TokiRetryExpired
error TokiRetryExpired(uint256 expiryBlock)
TokiSamePool
error TokiSamePool(uint256 poolId, address pool)
TokiSlippageTooHigh
error TokiSlippageTooHigh(uint256 amountGD, uint256 eqReward, uint256 eqFee, uint256 minAmountGD)
TokiTransferIsFailed
error TokiTransferIsFailed(address token, address to, uint256 value)
TokiTransferIsStop
error TokiTransferIsStop()
TokiUnregisteredChainId
error TokiUnregisteredChainId(string channel)
TokiUnregisteredPoolId
error TokiUnregisteredPoolId(uint256 poolId)
TokiZeroAddress
error TokiZeroAddress(string message)
TokiZeroAmount
error TokiZeroAmount(string message)
TokiZeroValue
error TokiZeroValue(string message)
creation bytecode
0x60803461007e57601f611cc038819003918201601f19168301916001600160401b038311848410176100825780849260209460405283398101031261007e57516001600160a01b0381169081900361007e57600380546001600160a01b03191691909117905561006e33610096565b50604051611b8090816101208239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381165f9081525f516020611ca05f395f51905f52602052604090205460ff1661011a576001600160a01b03165f8181525f516020611ca05f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f9056fe6080806040526004361015610012575f80fd5b5f3560e01c908163012a1c2d14610fcd5750806301ffc9a714610f0e5780630b4501fd1461074c5780631c62765d14610eb9578063248a9ca314610e715780632eac774d14610e555780632f2ff15d14610dfa57806336568abe14610d725780633dad0dd514610d325780634b16324814610cea57806350c9cf74146109c4578063518a9f9f1461098557806353d6fd59146108bc57806354fd4d50146107cd5780635b7f415c146107945780635e3f2727146103475780636437df121461077b5780636e7f799c146107515780637ba5c12f1461074c578063856bf787146106ff5780638eef2a33146106b75780638f754df41461069b578063918f86741461065b57806391d14854146105e75780639b19251a1461057f5780639fcf5fd114610543578063a149863514610504578063a217fddf146104cc578063a71070c414610477578063a810de6c14610438578063b4722382146103e7578063d547741f14610385578063e4d1d2eb1461034c578063e91e9b6f14610347578063f210474014610309578063f66a8b7d146102f0578063fb9a6ffb14610241578063fdba27d6146101ee5763fe4b1ded146101c9575f80fd5b346101ea5760206101e26101dc36611100565b90611863565b604051908152f35b5f80fd5b346101ea577f80cff8be4b5651e7f90771c3623acd1c384bbb19a733e86f93394d97da63f2c1604061021f36611100565b6102276118e8565b815f52600260205280835f205582519182526020820152a1005b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5760043573ffffffffffffffffffffffffffffffffffffffff81168091036101ea5760207f986b8ff905edc7b27f58b72ce8132c1a17009067163b85086ca7d84d2968aecc916102bd6118e8565b807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355604051908152a1005b346101ea5760206101e261030336611134565b916116f6565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576020604051655af3107a40008152f35b6110c1565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602060405160088152f35b346101ea5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576103e56004356103c261107b565b906103e06103db825f525f602052600160405f20015490565b611950565b611a82565b005b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576020604051660e35fa931a00008152f35b346101ea5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5760206101e26104b361100b565b60a435906084359060643590604435906024359061162d565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5760206040515f8152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576020604051660221b262dd80008152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602060405163017d78408152f35b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5773ffffffffffffffffffffffffffffffffffffffff6105cb61109e565b165f526001602052602060ff60405f2054166040519015158152f35b346101ea5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5761061e61107b565b6004355f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576020604051670de0b6b3a76400008152f35b346101ea5760206101e26106ae36611029565b93929092611592565b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576004355f526002602052602060405f2054604051908152f35b346101ea5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5760206101e261073b61100b565b61074361101a565b6044359161155b565b6104cc565b346101ea57602061076a61076436611134565b9161150b565b604051906107778161116c565b8152f35b346101ea5760206101e261078e36611100565b90611484565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602060405160128152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576040516040810181811067ffffffffffffffff82111761088f5760405260058152604060208201917f312e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346101ea5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea577ff6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb604061091661109e565b73ffffffffffffffffffffffffffffffffffffffff61093361101a565b9161093c6118e8565b1690815f526001602052825f20901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831617905582519182526020820152a1005b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602060405166b1a2bc2ec500008152f35b346101ea577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360161020081126101ea5760c0136101ea576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3601126101ea576101c43573ffffffffffffffffffffffffffffffffffffffff81168091036101ea576040516101e43560c0820167ffffffffffffffff81118382101761088f576040525f8252602082015f8152604083015f815260608401905f825260808501925f845260a08601945f86526024359760e435808a03610c09575b61012435838110610bd957610b13610b0085610b1e948e610ac4838097611371565b975f52600160205260ff60405f20541697610af88461014435610af084610aea836113e9565b9061150b565b93848d611592565b8d528861137e565b8087528260a4356084356064358861162d565b80895215158361155b565b845260443560ff811681036101ea5760c099610b399261124d565b610b468351855190611364565b90808210610bbc575b5050610b69610b618551845190611364565b845190611364565b8111610b9b57505f86525b604051955186525160208601525160408501525160608401525160808301525160a0820152f35b610bad610bad610bb592865190611371565b835190611371565b8652610b74565b610bd091610bc991611371565b8351611364565b82528880610b4f565b83907fc8a198d9000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b73ffffffffffffffffffffffffffffffffffffffff6003541660208b6024604051809481937f2a0425e800000000000000000000000000000000000000000000000000000000835260048301525afa8015610cdf575f90610ca3575b60029150610c728161116c565b03610aa257897f9ec80ca3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b506020813d602011610cd7575b81610cbd60209383611443565b810103126101ea575160038110156101ea57600290610c65565b3d9150610cb0565b6040513d5f823e3d90fd5b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576040610d266004356113e9565b82519182526020820152f35b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576020604051670853a0d2313c00008152f35b346101ea5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57610da961107b565b3373ffffffffffffffffffffffffffffffffffffffff821603610dd2576103e590600435611a82565b7f6697b232000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101ea5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576103e5600435610e3761107b565b90610e506103db825f525f602052600160405f20015490565b6119b6565b346101ea5760206101e2610e6836611029565b9392909261137e565b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5760206101e26004355f525f602052600160405f20015490565b346101ea5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57610ef061100b565b6044359060ff821682036101ea576020916101e2916024359061124d565b346101ea5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea576004357fffffffff0000000000000000000000000000000000000000000000000000000081168091036101ea57807f7965db0b0000000000000000000000000000000000000000000000000000000060209214908115610fa3575b506040519015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501482610f98565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea5780670dd05f06b16c800060209252f35b6004359081151582036101ea57565b6024359081151582036101ea57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126101ea5760043580151581036101ea579060243560038110156101ea5790604435906064359060843590565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101ea57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101ea57565b346101ea575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ea57602060405166038d7ea4c680008152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126101ea576004359060243590565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101ea57600435906024359060443590565b6003111561117657565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060ff8091169116039060ff82116111b757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff16604d81116111b757600a0a90565b81156111ff570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b9060015f921517156111b757565b818102929181159184041417156111b757565b91909161135e5760ff915f52600260205260405f2054155f146112e05716600881106112bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80160ff81116111b7576112a6906111e4565b8063017d7840029063017d78408204036111b75790565b60080360ff81116111b7576112d1906111e4565b80156111ff5763017d78400490565b16806012105f14611339577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee0160ff81116111b75761131e906111e4565b80655af3107a40000290655af3107a40008204036111b75790565b60120360ff81116111b75761134d906111e4565b80156111ff57655af3107a40000490565b50505f90565b919082018092116111b757565b919082039182116111b757565b93929190936113e1576113a8836113ae93670de0b6b3a76400006113a18361122c565b04936116f6565b90611364565b916113b88161116c565b156113c1575090565b90670de0b6b3a76400006113d76113de9361122c565b0490611371565b90565b505050505f90565b90670853a0d2313c0000820291801592818104670853a0d2313c0000148417156111b757670de0b6b3a764000090049266b1a2bc2ec50000820291820466b1a2bc2ec500001417156111b757670de0b6b3a7640000900490565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761088f57604052565b81670853a0d2313c00000290670853a0d2313c0000820483036111b757670de0b6b3a7640000810290808204670de0b6b3a764000014901517156111b7576114cb91611371565b9081660e35fa931a00000291660e35fa931a00008304036111b757806707a1fe160277000002906707a1fe16027700008204036111b7576113de916111f5565b91909182811061152c5781101561135e57101561152757600290565b600190565b827f2cfc14fd000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b61135e57670de0b6b3a76400009161158091156115845766038d7ea4c680009061123a565b0490565b66038d7ea4c680009061123a565b6113e15761159f8161116c565b806115ac57505050505f90565b6115b58161116c565b600181036115db5750916115d561158092670de0b6b3a764000094611484565b9061123a565b9092906002906115ea8161116c565b03611605576115d561158092670de0b6b3a764000094611863565b7f8cf38afd000000000000000000000000000000000000000000000000000000005f5260045ffd5b929391959495818111156116cc579061164591611371565b670de0b6b3a7640000840290848204670de0b6b3a764000014851517156111b75761166f916111f5565b91660221b262dd800083111590816116c3575b506116bb57670de0b6b3a76400009161169a9161123a565b04928084116116b3575b508083116116af5750565b9150565b92505f6116a4565b505f93505050565b9050155f611682565b505f955050505050565b91908260409103126101ea576020825192015160ff811681036101ea5790565b8181146117ea5773ffffffffffffffffffffffffffffffffffffffff6003541690604051907f1bd610eb0000000000000000000000000000000000000000000000000000000082526004820152604081602481855afa928315610cdf575f915f94611840575b506040829160248251809681937f1bd610eb00000000000000000000000000000000000000000000000000000000835260048301525afa908115610cdf575f935f9261180c575b508360ff831660ff8716105f146117f15750506117c76117cc93946115d5926111a3565b6111e4565b818110156117ea576113de926115d56117e59284611371565b6111f5565b5050505f90565b92509361180693506115d5916117c7916111a3565b906117cc565b909350611831915060403d604011611839575b6118298183611443565b8101906116d6565b90925f6117a3565b503d61181f565b90935061185c915060403d604011611839576118298183611443565b925f61175c565b8166b1a2bc2ec50000029166b1a2bc2ec500008304036111b757670de0b6b3a7640000810290808204670de0b6b3a764000014901517156111b7576118a89082611371565b9081670dd05f06b16c80000291670dd05f06b16c80008304036111b7576118ce916111f5565b660e35fa931a00000180660e35fa931a0000116111b75790565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161561192057565b7fe2517d3f000000000000000000000000000000000000000000000000000000005f52336004525f60245260445ffd5b805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260ff60405f205416156119875750565b7fe2517d3f000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f205416155f1461135e57805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f2054165f1461135e57805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a460019056fea2646970667358221220be54c2b775a90b6a9aa047f9b455b92534f925e47abe67a5a8f6f273f19e3b3864736f6c634300081c0033ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb50000000000000000000000008906af29495bdaaa8eaab9af54515970be8ffbd2