@boostxyz/sdk 5.3.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +3 -3
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +13 -3
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +216 -193
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +2 -2
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
  13. package/dist/AllowLists/SimpleAllowList.js +24 -24
  14. package/dist/AllowLists/SimpleAllowList.js.map +1 -1
  15. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  16. package/dist/AllowLists/SimpleDenyList.js +3 -3
  17. package/dist/Auth/PassthroughAuth.cjs +1 -1
  18. package/dist/Auth/PassthroughAuth.cjs.map +1 -1
  19. package/dist/Auth/PassthroughAuth.js +14 -14
  20. package/dist/Boost.cjs.map +1 -1
  21. package/dist/Boost.js.map +1 -1
  22. package/dist/BoostCore.cjs +2 -2
  23. package/dist/BoostCore.cjs.map +1 -1
  24. package/dist/BoostCore.d.ts +247 -0
  25. package/dist/BoostCore.d.ts.map +1 -1
  26. package/dist/BoostCore.js +421 -259
  27. package/dist/BoostCore.js.map +1 -1
  28. package/dist/BoostRegistry.cjs +1 -1
  29. package/dist/BoostRegistry.cjs.map +1 -1
  30. package/dist/BoostRegistry.js +43 -43
  31. package/dist/BoostRegistry.js.map +1 -1
  32. package/dist/Budget-DMbfdTom.cjs +2 -0
  33. package/dist/{Budget-AoNx7uFd.cjs.map → Budget-DMbfdTom.cjs.map} +1 -1
  34. package/dist/Budget-DO6sGTIR.js +463 -0
  35. package/dist/{Budget-DYIV9iNK.js.map → Budget-DO6sGTIR.js.map} +1 -1
  36. package/dist/Budgets/Budget.cjs +1 -1
  37. package/dist/Budgets/Budget.js +2 -2
  38. package/dist/Budgets/ManagedBudget.cjs +1 -1
  39. package/dist/Budgets/ManagedBudget.cjs.map +1 -1
  40. package/dist/Budgets/ManagedBudget.js +53 -53
  41. package/dist/Budgets/ManagedBudgetWithFees.d.ts +26 -0
  42. package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -1
  43. package/dist/Deployable/DeployableTarget.cjs +1 -1
  44. package/dist/Deployable/DeployableTarget.js +1 -1
  45. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  46. package/dist/Deployable/DeployableTargetWithRBAC.js +15 -15
  47. package/dist/Incentive-Boviez4z.js +1036 -0
  48. package/dist/Incentive-Boviez4z.js.map +1 -0
  49. package/dist/Incentive-wM4zizTH.cjs +2 -0
  50. package/dist/Incentive-wM4zizTH.cjs.map +1 -0
  51. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  52. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  53. package/dist/Incentives/AllowListIncentive.d.ts +9 -1
  54. package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
  55. package/dist/Incentives/AllowListIncentive.js +64 -47
  56. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  57. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  58. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  59. package/dist/Incentives/CGDAIncentive.d.ts +12 -1
  60. package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
  61. package/dist/Incentives/CGDAIncentive.js +64 -33
  62. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  63. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  64. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  65. package/dist/Incentives/ERC20Incentive.d.ts +37 -1
  66. package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
  67. package/dist/Incentives/ERC20Incentive.js +73 -49
  68. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  69. package/dist/Incentives/ERC20PeggedIncentive.d.ts +35 -0
  70. package/dist/Incentives/ERC20PeggedIncentive.d.ts.map +1 -1
  71. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +35 -0
  72. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -1
  73. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  74. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  75. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +25 -0
  76. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  77. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +24 -24
  78. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  79. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  80. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  81. package/dist/Incentives/ERC20VariableIncentive.d.ts +35 -0
  82. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  83. package/dist/Incentives/ERC20VariableIncentive.js +55 -38
  84. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  85. package/dist/Incentives/Incentive.cjs +1 -1
  86. package/dist/Incentives/Incentive.d.ts +25 -0
  87. package/dist/Incentives/Incentive.d.ts.map +1 -1
  88. package/dist/Incentives/Incentive.js +2 -2
  89. package/dist/Incentives/PointsIncentive.cjs +1 -1
  90. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  91. package/dist/Incentives/PointsIncentive.d.ts +8 -0
  92. package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
  93. package/dist/Incentives/PointsIncentive.js +50 -28
  94. package/dist/Incentives/PointsIncentive.js.map +1 -1
  95. package/dist/SimpleDenyList-CW4RwwRw.js +133 -0
  96. package/dist/{SimpleDenyList-ByAr4X1r.js.map → SimpleDenyList-CW4RwwRw.js.map} +1 -1
  97. package/dist/SimpleDenyList-Cybtz7AK.cjs +2 -0
  98. package/dist/{SimpleDenyList-CsRXJPwm.cjs.map → SimpleDenyList-Cybtz7AK.cjs.map} +1 -1
  99. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  100. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -1
  101. package/dist/Validators/LimitedSignerValidator.js +33 -33
  102. package/dist/Validators/LimitedSignerValidator.js.map +1 -1
  103. package/dist/Validators/SignerValidator.cjs +1 -1
  104. package/dist/Validators/SignerValidator.cjs.map +1 -1
  105. package/dist/Validators/SignerValidator.js +26 -26
  106. package/dist/Validators/SignerValidator.js.map +1 -1
  107. package/dist/Validators/Validator.cjs +1 -1
  108. package/dist/Validators/Validator.js +3 -3
  109. package/dist/deployments-CIXw_WKk.cjs +2 -0
  110. package/dist/deployments-CIXw_WKk.cjs.map +1 -0
  111. package/dist/{deployments-D0fs26TV.js → deployments-DqjtOTUr.js} +47 -47
  112. package/dist/{deployments-D0fs26TV.js.map → deployments-DqjtOTUr.js.map} +1 -1
  113. package/dist/deployments.json +24 -24
  114. package/dist/generated-DgXPUgXl.cjs +3 -0
  115. package/dist/generated-DgXPUgXl.cjs.map +1 -0
  116. package/dist/{generated-Cyvr_Tjx.js → generated-pJZHmRCK.js} +728 -459
  117. package/dist/generated-pJZHmRCK.js.map +1 -0
  118. package/dist/index.cjs +1 -1
  119. package/dist/index.js +137 -136
  120. package/package.json +1 -1
  121. package/src/Actions/EventAction.ts +108 -27
  122. package/src/BoostCore.test.ts +124 -2
  123. package/src/BoostCore.ts +227 -0
  124. package/src/Incentives/AllowListIncentive.ts +17 -0
  125. package/src/Incentives/CGDAIncentive.ts +31 -0
  126. package/src/Incentives/ERC20Incentive.ts +27 -0
  127. package/src/Incentives/ERC20PeggedIncentive.ts +18 -0
  128. package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +26 -0
  129. package/src/Incentives/ERC20VariableIncentive.ts +18 -0
  130. package/src/Incentives/PointsIncentive.ts +22 -0
  131. package/dist/Budget-AoNx7uFd.cjs +0 -2
  132. package/dist/Budget-DYIV9iNK.js +0 -463
  133. package/dist/Incentive-BbkfwGOb.cjs +0 -2
  134. package/dist/Incentive-BbkfwGOb.cjs.map +0 -1
  135. package/dist/Incentive-qlnv5kQB.js +0 -991
  136. package/dist/Incentive-qlnv5kQB.js.map +0 -1
  137. package/dist/SimpleDenyList-ByAr4X1r.js +0 -133
  138. package/dist/SimpleDenyList-CsRXJPwm.cjs +0 -2
  139. package/dist/deployments-DoIOqxco.cjs +0 -2
  140. package/dist/deployments-DoIOqxco.cjs.map +0 -1
  141. package/dist/generated-Cyvr_Tjx.js.map +0 -1
  142. package/dist/generated-DtYPHhtX.cjs +0 -3
  143. package/dist/generated-DtYPHhtX.cjs.map +0 -1
package/dist/BoostCore.js CHANGED
@@ -1,74 +1,74 @@
1
- import { I as C, cl as j, cm as x, cn as T, co as z, cp as q, cq as k, cr as G, cs as U, ct as W, cu as H, cv as p, cw as Q, cx as Y, cy as J, cz as K, cA as X, cB as Z } from "./generated-Cyvr_Tjx.js";
2
- import { waitForTransactionReceipt as ff, getAccount as ef, getChains as bf, getTransactionReceipt as af } from "@wagmi/core";
3
- import { createClient as tf, custom as cf, zeroAddress as v, parseEventLogs as P, zeroHash as h, keccak256 as df, encodePacked as nf } from "viem";
4
- import { i as sf } from "./deployments-D0fs26TV.js";
5
- import { actionFromAddress as of } from "./Actions/Action.js";
6
- import { EventAction as rf } from "./Actions/EventAction.js";
7
- import { allowListFromAddress as uf, OpenAllowList as lf } from "./AllowLists/AllowList.js";
8
- import { SimpleAllowList as hf } from "./AllowLists/SimpleAllowList.js";
9
- import { S as gf } from "./SimpleDenyList-ByAr4X1r.js";
10
- import { PassthroughAuth as wf } from "./Auth/PassthroughAuth.js";
11
- import { prepareBoostPayload as B, Boost as E } from "./Boost.js";
12
- import { b as vf, M as mf } from "./Budget-DYIV9iNK.js";
13
- import { ManagedBudget as Cf } from "./Budgets/ManagedBudget.js";
14
- import { Deployable as Af } from "./Deployable/Deployable.js";
1
+ import { g as C, cl as M, cm as j, cn as x, co as z, cp as q, cq as k, cr as G, cs as W, ct as U, cu as H, cv as Q, cw as X, cx as J, cy as K, cz as Y, cA as Z, cB as f0, cC as e0, cD as b0, cE as a0, cF as t0 } from "./generated-pJZHmRCK.js";
2
+ import { waitForTransactionReceipt as c0, getAccount as d0, getChains as n0, getTransactionReceipt as s0 } from "@wagmi/core";
3
+ import { createClient as i0, custom as o0, zeroAddress as m, parseEventLogs as B, zeroHash as l, keccak256 as r0, encodePacked as u0 } from "viem";
4
+ import { i as h0 } from "./deployments-DqjtOTUr.js";
5
+ import { actionFromAddress as l0 } from "./Actions/Action.js";
6
+ import { EventAction as g0 } from "./Actions/EventAction.js";
7
+ import { allowListFromAddress as w0, OpenAllowList as m0 } from "./AllowLists/AllowList.js";
8
+ import { SimpleAllowList as v0 } from "./AllowLists/SimpleAllowList.js";
9
+ import { S as C0 } from "./SimpleDenyList-CW4RwwRw.js";
10
+ import { PassthroughAuth as A0 } from "./Auth/PassthroughAuth.js";
11
+ import { prepareBoostPayload as E, Boost as F } from "./Boost.js";
12
+ import { b as I0, M as y0 } from "./Budget-DO6sGTIR.js";
13
+ import { ManagedBudget as P0 } from "./Budgets/ManagedBudget.js";
14
+ import { Deployable as _0 } from "./Deployable/Deployable.js";
15
15
  import { Roles as R } from "./Deployable/DeployableTargetWithRBAC.js";
16
- import { AllowListIncentive as If } from "./Incentives/AllowListIncentive.js";
17
- import { CGDAIncentive as yf } from "./Incentives/CGDAIncentive.js";
18
- import { ERC20Incentive as _f } from "./Incentives/ERC20Incentive.js";
19
- import { i as Pf, E as Bf, a as Ef } from "./Incentive-qlnv5kQB.js";
20
- import { ERC20VariableCriteriaIncentive as Rf } from "./Incentives/ERC20VariableCriteriaIncentive.js";
21
- import { PointsIncentive as Ff } from "./Incentives/PointsIncentive.js";
22
- import { LimitedSignerValidator as Lf } from "./Validators/LimitedSignerValidator.js";
23
- import { SignerValidator as Df } from "./Validators/SignerValidator.js";
24
- import { BoostValidatorEOA as F, validatorFromAddress as Nf } from "./Validators/Validator.js";
25
- import { BoostCoreNoIdentifierEmitted as Of, DeployableUnknownOwnerProvidedError as Sf, InvalidProtocolChainIdError as Mf, BudgetMustAuthorizeBoostCore as Vf, MustInitializeBudgetError as $f, IncentiveNotCloneableError as jf, BoostNotFoundError as xf } from "./errors.js";
16
+ import { AllowListIncentive as B0 } from "./Incentives/AllowListIncentive.js";
17
+ import { CGDAIncentive as E0 } from "./Incentives/CGDAIncentive.js";
18
+ import { ERC20Incentive as F0 } from "./Incentives/ERC20Incentive.js";
19
+ import { i as R0, E as T0, a as p0 } from "./Incentive-Boviez4z.js";
20
+ import { ERC20VariableCriteriaIncentive as D0 } from "./Incentives/ERC20VariableCriteriaIncentive.js";
21
+ import { PointsIncentive as L0 } from "./Incentives/PointsIncentive.js";
22
+ import { LimitedSignerValidator as S0 } from "./Validators/LimitedSignerValidator.js";
23
+ import { SignerValidator as N0 } from "./Validators/SignerValidator.js";
24
+ import { BoostValidatorEOA as T, validatorFromAddress as O0 } from "./Validators/Validator.js";
25
+ import { BoostCoreNoIdentifierEmitted as V0, DeployableUnknownOwnerProvidedError as $0, InvalidProtocolChainIdError as M0, BudgetMustAuthorizeBoostCore as j0, MustInitializeBudgetError as x0, IncentiveNotCloneableError as z0, BoostNotFoundError as q0 } from "./errors.js";
26
26
  import { assertValidAddressByChainId as u } from "./utils.js";
27
- import { ERC20VariableIncentive as Tf } from "./Incentives/ERC20VariableIncentive.js";
28
- import { simulateContract as zf, writeContract as qf } from "viem/actions";
29
- import { parseAccount as kf, getAddress as Gf } from "viem/utils";
30
- const Uf = "0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";
31
- function N(t) {
32
- const e = t.state.current, f = t.state.connections.get(e), b = f == null ? void 0 : f.accounts, a = b == null ? void 0 : b[0], c = t.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), d = t.state.status;
33
- switch (d) {
27
+ import { ERC20VariableIncentive as k0 } from "./Incentives/ERC20VariableIncentive.js";
28
+ import { simulateContract as G0, writeContract as W0 } from "viem/actions";
29
+ import { parseAccount as U0, getAddress as H0 } from "viem/utils";
30
+ const Q0 = "0x608060405260048054607d60a31b600160a01b600160e01b0319909116179055600580546001600160401b0319166103e817905534801561003e575f80fd5b50604051614fb2380380614fb283398101604081905261005d916100e8565b61006681610098565b50600180546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055610132565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a35b50565b6001600160a01b03811681146100d1575f80fd5b5f805f606084860312156100fa575f80fd5b8351610105816100d4565b6020850151909350610116816100d4565b6040850151909250610127816100d4565b809150509250925092565b614e738061013f5f395ff3fe6080604052600436106101d0575f3560e01c80637b103999116100fd578063dd7dc9a911610092578063f04e283e11610062578063f04e283e14610551578063f2fde38b14610564578063fee81cf414610577578063fefceca9146105a8575f80fd5b8063dd7dc9a9146104b7578063dd98558c146104d7578063e21ff73114610513578063eccc19a614610532575f80fd5b8063b0e21e8a116100cd578063b0e21e8a14610413578063caa1647b14610464578063d5137b5214610483578063d73792a9146104a2575f80fd5b80637b1039991461038f5780638da5cb5b146103ae5780638fe4f523146103e1578063a92647dc146103f4575f80fd5b806343bc42d3116101735780635edb9eb0116101435780635edb9eb0146103385780635f32c23e14610355578063715018a614610374578063730f9c571461037c575f80fd5b806343bc42d3146102d357806346877b1a146102f25780635045b8661461031157806354d1f13d14610330575f80fd5b8063219f71f0116101ae578063219f71f0146102495780632569296214610268578063346339d51461027057806339a51be51461029c575f80fd5b806313c8e2de146101d457806316614282146102095780631fa2acdc1461022a575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004613e90565b61060b565b6040516102009190613eea565b60405180910390f35b348015610214575f80fd5b50610228610223366004613fe8565b610740565b005b348015610235575f80fd5b5061022861024436600461404b565b610eb3565b348015610254575f80fd5b506102286102633660046140b1565b611628565b61022861166a565b34801561027b575f80fd5b5061028f61028a366004613e90565b6116b7565b6040516102009190614139565b3480156102a7575f80fd5b506003546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b3480156102de575f80fd5b506102286102ed366004614197565b61176c565b3480156102fd575f80fd5b5061022861030c3660046140b1565b6117c7565b34801561031c575f80fd5b506004546102bb906001600160a01b031681565b610228611809565b348015610343575f80fd5b505f545b604051908152602001610200565b348015610360575f80fd5b5061022861036f3660046141b2565b611842565b6102286119db565b61022861038a3660046141d2565b6119ee565b34801561039a575f80fd5b506001546102bb906001600160a01b031681565b3480156103b9575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927546102bb565b6102286103ef366004614249565b611e55565b3480156103ff575f80fd5b506002546102bb906001600160a01b031681565b34801561041e575f80fd5b5060045461044b9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610200565b34801561046f575f80fd5b5061022861047e366004614197565b611e6a565b34801561048e575f80fd5b506102bb61049d3660046142ae565b611ef2565b3480156104ad575f80fd5b5061044b61271081565b3480156104c2575f80fd5b5060055461044b9067ffffffffffffffff1681565b3480156104e2575f80fd5b506104f66104f13660046142f8565b61211e565b604080519283526001600160a01b03909116602083015201610200565b34801561051e575f80fd5b506101f361052d366004614345565b61257a565b34801561053d575f80fd5b5061022861054c3660046140b1565b612dab565b61022861055f3660046140b1565b612ded565b6102286105723660046140b1565b612e2a565b348015610582575f80fd5b506103476105913660046140b1565b63389a75e1600c9081525f91909152602090205490565b3480156105b3575f80fd5b506105fa6105c2366004613e90565b60066020525f9081526040902080546001820154600283015460039093015460ff8316936101009093046001600160a01b0316929085565b604051610200959493929190614384565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e08101919091525f828154811061065c5761065c6143bd565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b039081168452600182015481168486015260028201548116848401526003820154166060840152600481018054835181870281018701909452808452939491936080860193928301828280156106ff57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116106e1575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b031660609091015292915050565b3068929eee149b4bd21268540361075e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061077d5761077d6143bd565b905f5260205f20906008020190505f8160040185815481106107a1576107a16143bd565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906107f69088908890600401614413565b5f60405180830381865afa158015610810573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610837919081019061456d565b905080515f03610873576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8180602001905181019061088891906145aa565b90505f8080806001855160028111156108a3576108a36140d3565b14806108c057505f855160028111156108be576108be6140d3565b145b15610924575f85606001518060200190518101906108de9190614652565b805160058b0154909650909150612710906109039067ffffffffffffffff16876146c1565b61090d91906146d8565b93506109198486614710565b9081905291506109da565b600285516002811115610939576109396140d3565b036109a8575f85606001518060200190518101906109579190614723565b602081015160058b01549096509091506127109061097f9067ffffffffffffffff16876146c1565b61098991906146d8565b93506109958486614710565b60208201819052905190925090506109da565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109e58d8d612e50565b5f8181526006602052604081206001810180549394509092879290610a0b908490614710565b909155505085159150610e99905057600185516002811115610a2f57610a2f6140d3565b1480610a4c57505f85516002811115610a4a57610a4a6140d3565b145b15610c6b5760208501516040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303815f875af1158015610abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906147b0565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820187905282169063095ea7b3906044016020604051808303815f875af1158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d91906147b0565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038916906330db555f906024015f604051808303815f87803b158015610bc6575f80fd5b505af1158015610bd8573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015610c40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6491906147b0565b5050610e59565b60208501516040517ff242432a000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526064810184905260a060848201525f60a48201526001600160a01b0382169063f242432a9060c4015f604051808303815f87803b158015610ce8575f80fd5b505af1158015610cfa573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152600160248301528416925063a22cb46591506044015f604051808303815f87803b158015610d5e575f80fd5b505af1158015610d70573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015610dcc575f80fd5b505af1158015610dde573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015610e41575f80fd5b505af1158015610e53573d5f803e3d5ffd5b50505050505b604080518581526020810185905233918d918f917f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f31876910160405180910390a45b50505050505050503868929eee149b4bd212685550505050565b3068929eee149b4bd212685403610ed15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808681548110610ef057610ef06143bd565b905f5260205f20906008020190505f816004018681548110610f1457610f146143bd565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a290610f699089908990600401614413565b5f60405180830381865afa158015610f83573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610faa919081019061456d565b905080515f03610fe6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81806020019051810190610ffb91906145aa565b90505f6001600160a01b038616156110135785611022565b60038501546001600160a01b03165b905061102d81612e7f565b5f8080600185516002811115611045576110456140d3565b148061106257505f85516002811115611060576110606140d3565b145b156110e9575f85606001518060200190518101906110809190614652565b805160058b0154909550909150612710906110a59067ffffffffffffffff16866146c1565b6110af91906146d8565b92506110bb8385614710565b8082526040805160208101839052919350015b60408051601f19818403018152919052606087015250611174565b6002855160028111156110fe576110fe6140d3565b036109a8575f856060015180602001905181019061111c9190614723565b602081015160058b0154909550909150612710906111449067ffffffffffffffff16866146c1565b61114e91906146d8565b925061115a8385614710565b60208083018290526040519193506110ce918391016147f9565b30604080870191909152515f9061118f908790602001614827565b60408051601f19818403018152908290527ffa4ca9b100000000000000000000000000000000000000000000000000000000825291506001600160a01b0386169063fa4ca9b1906111e4908490600401614878565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122491906147b0565b61125a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6112658f8f612e50565b5f818152600660205260408120600181018054939450909287929061128b908490614710565b90915550508515925061160d915050576001855160028111156112b0576112b06140d3565b14806112cd57505f855160028111156112cb576112cb6140d3565b145b1561145e5760208501516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820186905282169063095ea7b3906044016020604051808303815f875af115801561133c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136091906147b0565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038916906330db555f906024015f604051808303815f87803b1580156113b9575f80fd5b505af11580156113cb573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015611433573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145791906147b0565b50506115be565b60208501516040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526001602483015282169063a22cb465906044015f604051808303815f87803b1580156114c3575f80fd5b505af11580156114d5573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015611531575f80fd5b505af1158015611543573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b1580156115a6575f80fd5b505af11580156115b8573d5f803e3d5ffd5b50505050505b336001600160a01b03168c8e7f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f318768686604051611604929190918252602082015260400190565b60405180910390a45b50505050505050503868929eee149b4bd21268555050505050565b611630612f5e565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6116ee6040805160a08101909152805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f8281526006602052604090819020815160a081019092528054829060ff16600281111561171e5761171e6140d3565b600281111561172f5761172f6140d3565b8152815461010090046001600160a01b03166020820152600182015460408201526002820154606082015260039091015460809091015292915050565b611774612f5e565b6004805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6117cf612f5e565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b3068929eee149b4bd2126854036118605763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6118778383612e50565b5f81815260066020526040812081549293509181908690811061189c5761189c6143bd565b905f5260205f20906008020160040184815481106118bc576118bc6143bd565b5f918252602082200154600284015460018501546001600160a01b039092169350906118eb90612710906146c1565b6118f591906146d8565b90505f6119028484612f93565b9050818111156119c6575f611917838361488a565b90505f61271067ffffffffffffffff1686600201548361193791906146c1565b61194191906146d8565b905061194d86826130e1565b808660010154106119765780866001015f82825461196b919061488a565b9091555061197d9050565b5f60018701555b6003546040518281526001600160a01b039091169089908b907f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b179060200160405180910390a450505b50505050503868929eee149b4bd21268555050565b6119e3612f5e565b6119ec5f61321d565b565b3068929eee149b4bd212685403611a0c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110611a2b57611a2b6143bd565b905f5260205f20906008020190505f611a448888612e50565b5f81815260066020526040812060048501805493945090928a908110611a6c57611a6c6143bd565b5f9182526020909120015460028501546040517fe3f756de0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316935091169063e3f756de90611aca9088908b908b9060040161489d565b602060405180830381865afa158015611ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0991906147b0565b611b3f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018401546040517f703b69000000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063703b6900903490611b94908e908e908b908e908e906004016148c8565b60206040518083038185885af1158015611bb0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bd591906147b0565b611c0b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81545f9061010090046001600160a01b0316611c27575f611c31565b611c318383612f93565b6040517fbb1757cf0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0383169063bb1757cf90611c7d9089908c908c9060040161489d565b6020604051808303815f875af1158015611c99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cbd91906147b0565b611d02578588886040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401611cf99392919061489d565b60405180910390fd5b82545f9061010090046001600160a01b0316611d1e575f611d28565b611d288484612f93565b90505f818311611d38575f611d42565b611d42828461488a565b90505f61271067ffffffffffffffff16866002015483611d6291906146c1565b611d6c91906146d8565b90508015611df257611d7e86826130e1565b80866001015f828254611d91919061488a565b9250508190555060035f9054906101000a90046001600160a01b03166001600160a01b03168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051611de991815260200190565b60405180910390a45b886001600160a01b03168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f604051611e319392919061489d565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b611e638585858585336119ee565b5050505050565b611e72612f5e565b61271067ffffffffffffffff821610611eb7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b5f3068929eee149b4bd212685403611f115763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808481548110611f3057611f306143bd565b5f918252602090912060089091020160078101549091506001600160a01b03163314611f88576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003810154611f9f906001600160a01b0316612e7f565b6004808201805491549091905f906001600160a01b0316611fc0575f612052565b6004546040516001600160a01b039091169063c7f1ecff90611fe8908a908a90602001614901565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016120139190614878565b602060405180830381865afa15801561202e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205291906149b8565b905061208861206087614a20565b600386015460058701546001600160a01b039091169067ffffffffffffffff16848b87613275565b83546001810185555f858152602080822090920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915560405191825292975084918a917f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae910160405180910390a4505050503868929eee149b4bd212685592915050565b5f803068929eee149b4bd21268540361213e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061215d5761215d6143bd565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b0390811684526001820154811684860152600282015481168484015260038201541660608401526004810180548351818702810187019094528084529394919360808601939283018282801561220057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116121e2575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b039081166060928301529082015191925016331461227d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6122888686612e50565b5f8181526006602052604081209192506122a4898b018b614a89565b90505f81602001518060200190518101906122bf9190614b26565b90505f61271067ffffffffffffffff168460020154836122df91906146c1565b6122e991906146d8565b90508015612457576001845460ff166002811115612309576123096140d3565b148061232957505f845460ff166002811115612327576123276140d3565b145b15612351578251845461234c916101009091046001600160a01b03169083613615565b61240e565b6002845460ff166002811115612369576123696140d3565b0361240e578354835160038601546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b1580156123f7575f80fd5b505af1158015612409573d5f803e3d5ffd5b505050505b825f01516001600160a01b0316898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161244e91815260200190565b60405180910390a45b5f8087608001518b8151811061246f5761246f6143bd565b60200260200101516001600160a01b031663474f5a44866040516020016124969190614b3d565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016124c19190614878565b60408051808303815f875af11580156124dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125009190614b6a565b91509150815f0361254357338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611cf99392919061489d565b82866001015f828254612556919061488a565b90915550503868929eee149b4bd2126855909d909c509a5050505050505050505050565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260025433906001600160a01b03161580159061265757506002546040517ffe9fbb800000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063fe9fbb8090602401602060405180830381865afa158015612631573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061265591906147b0565b155b1561268e576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036126ac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6126f785858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061365e92505050565b80602001905181019061270a9190614c92565b9050612718815f0151612e7f565b5f805460018101825590805260e082015160089091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a810180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039485161790915583517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566830180549092169084161790556004547f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101911661281c5760a0820151600454612817919074010000000000000000000000000000000000000000900467ffffffffffffffff16614dbd565b6128b4565b60a0820151600480546040517fb1539a6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163b1539a6b9161286b918b918b9101614413565b602060405180830381865afa158015612886573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128aa9190614ddd565b6128b49190614dbd565b6005820180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905560c08201516006820155602082015161292b907fe6715795000000000000000000000000000000000000000000000000000000009060016136f1565b81547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03919091161781556060820151612990907fe2089f79000000000000000000000000000000000000000000000000000000009060016136f1565b6002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556004545f91166129d6575f612a5f565b600480546040517fc7f1ecff0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163c7f1ecff91612a20918b918b9101614413565b602060405180830381865afa158015612a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a5f91906149b8565b608084015184516005850154929350612a829267ffffffffffffffff1684613712565b8051612a98916004850191602090910190613e01565b506040830151602001516001600160a01b031615612ae557612ae07f5912b89c00000000000000000000000000000000000000000000000000000000846040015160016136f1565b612b9d565b81546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8791906147b0565b612b91575f612b9d565b81546001600160a01b03165b6001830180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055612c34576040517fe1c444480000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201525f6024820152604401611cf9565b815460078301545f546001600160a01b039283169290911690612c599060019061488a565b6004850154600186015460028701546003880154604080519485526001600160a01b03938416602086015291831684830152919091166060830152517f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd9181900360800190a4604080516101008101825283546001600160a01b03908116825260018501548116602080840191909152600286015482168385015260038601549091166060830152600485018054845181840281018401909552808552929386936080860193919291830182828015612d5957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612d3b575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b03166060909101523868929eee149b4bd2126855979650505050505050565b612db3612f5e565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b612df5612f5e565b63389a75e1600c52805f526020600c208054421115612e1b57636f5e88185f526004601cfd5b5f9055612e278161321d565b50565b612e32612f5e565b8060601b612e4757637448fbae5f526004601cfd5b612e278161321d565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b612ea97fe49cedd70000000000000000000000000000000000000000000000000000000082613844565b6040517ffe9fbb800000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382169063fe9fbb8090602401602060405180830381865afa158015612f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2891906147b0565b612e27576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146119ec576382b429005f526004601cfd5b5f6001835460ff166002811115612fac57612fac6140d3565b1480612fcc57505f835460ff166002811115612fca57612fca6140d3565b145b156130635782546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a08231906024015b602060405180830381865afa158015613038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305c9190614b26565b9050612e79565b6002835460ff16600281111561307b5761307b6140d3565b036130d957825460038401546040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820192909252610100909204169062fdd58e9060440161301d565b505f92915050565b6001825460ff1660028111156130f9576130f96140d3565b148061311957505f825460ff166002811115613117576131176140d3565b145b1561315c57600354825461313f916001600160a01b036101009092048216911683613615565b81546131589061010090046001600160a01b0316613962565b5050565b6002825460ff166002811115613174576131746140d3565b0361315857815460038054908401546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b158015613203575f80fd5b505af1158015613215573d5f803e3d5ffd5b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f80876040015190506132ac7fa9216705000000000000000000000000000000000000000000000000000000008960200151613844565b875161331b5760208801516040517fe1c444480000000000000000000000000000000000000000000000000000000081527fa92167050000000000000000000000000000000000000000000000000000000060048201526001600160a01b039091166024820152604401611cf9565b6133467fa921670500000000000000000000000000000000000000000000000000000000895f6136f1565b91505f826001600160a01b0316634e7165a2836040518263ffffffff1660e01b81526004016133759190614878565b5f60405180830381865afa15801561338f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526133b6919081019061456d565b905080515f14613597575f806133cc838a613a1e565b6040517ffa4ca9b100000000000000000000000000000000000000000000000000000000815291935091506001600160a01b038b169063fa4ca9b190613416908590600401614878565b6020604051808303815f875af1158015613432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061345691906147b0565b61348c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffa4ca9b10000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063fa4ca9b1906134d1908690600401614878565b6020604051808303815f875af11580156134ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351191906147b0565b613547576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061355c91906145aa565b905061359388886001600160a01b038c1661357b57836020015161357d565b8b5b858e67ffffffffffffffff16865f01518b613bb7565b5050505b6040517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063439fab91906135dc908590600401614878565b5f604051808303815f87803b1580156135f3575f80fd5b505af1158015613605573d5f803e3d5ffd5b5050505050509695505050505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716613655576390b8ec185f526004601cfd5b5f603452505050565b60608151156136ec5760405190506020810160048301805184518501811983525b808610156136d6576001860195508551601f1a806136c7576001870196508651601f1a5f198652607f81116136b657600181013887395b607f1694909401600101935061367f565b8085535060018401935061367f565b509052601f198282030182525f81526020016040525b919050565b5f613700848460200151613844565b61370a8383613cf3565b949350505050565b5f8054606091906137259060019061488a565b9050855167ffffffffffffffff81111561374157613741614426565b60405190808252806020026020018201604052801561376a578160200160208202803683370190505b5091505f5b865181101561383a5761379f87828151811061378d5761378d6143bd565b60200260200101518787878686613275565b8382815181106137b1576137b16143bd565b60200260200101906001600160a01b031690816001600160a01b0316815250508281815181106137e3576137e36143bd565b60200260200101516001600160a01b031681837f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae600160405161382a911515815260200190565b60405180910390a460010161376f565b5050949350505050565b6001600160a01b03811615806138f857506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156138d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138f691906147b0565b155b15613158576040517fe1c444480000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b0382166024820152604401611cf9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156139bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e39190614b26565b90505f811180156139ff575060055467ffffffffffffffff1681105b1561315857600354613158906001600160a01b03848116911683613615565b60605f8084806020019051810190613a3691906145aa565b905083600182516002811115613a4e57613a4e6140d3565b1480613a6b57505f82516002811115613a6957613a696140d3565b145b15613b19575f8260600151806020019051810190613a899190614652565b80519091505f9061271090613aa99067ffffffffffffffff8616906146c1565b613ab391906146d8565b6040805160208082018352838252825190810184905292935091015b60408051601f198184030181529181526060870191909152308682015251613afb908690602001614827565b60405160208183030381529060405282965096505050505050613bb0565b600282516002811115613b2e57613b2e6140d3565b036109a8575f8260600151806020019051810190613b4c9190614723565b90505f61271067ffffffffffffffff168367ffffffffffffffff168360200151613b7691906146c1565b613b8091906146d8565b604080516060810182528451815260208082018490528583015182840152915192935091613acf918391016147f9565b9250929050565b5f6002836002811115613bcc57613bcc6140d3565b03613be95781806020019051810190613be59190614df8565b5090505b5f6040518060a00160405280856002811115613c0757613c076140d3565b8152602001886001600160a01b031681526020018781526020018681526020018381525090508060065f613c3b8c8c612e50565b815260208101919091526040015f208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115613c8657613c866140d3565b0217905550602082015181546001600160a01b03909116610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161781556040820151600182015560608201516002820155608090910151600390910155505050505050505050565b81515f90613d05578260200151613d1b565b613d1b83602001516001600160a01b0316613daa565b83519091508015613d295750815b15612e795760408084015190517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163439fab9191613d779190600401614878565b5f604051808303815f87803b158015613d8e575f80fd5b505af1158015613da0573d5f803e3d5ffd5b5050505092915050565b5f612e795f835f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613df75763301164255f526004601cfd5b5f60215292915050565b828054828255905f5260205f20908101928215613e6c579160200282015b82811115613e6c57825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190613e1f565b50613e78929150613e7c565b5090565b5b80821115613e78575f8155600101613e7d565b5f60208284031215613ea0575f80fd5b5035919050565b5f8151808452602084019350602083015f5b82811015613ee05781516001600160a01b0316865260209586019590910190600101613eb9565b5093949350505050565b602081526001600160a01b0382511660208201525f6020830151613f1960408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b038116608084015250608083015161010060a0840152613f5f610120840182613ea7565b905060a0840151613f7c60c085018267ffffffffffffffff169052565b5060c084015160e084015260e0840151613fa26101008501826001600160a01b03169052565b509392505050565b5f8083601f840112613fba575f80fd5b50813567ffffffffffffffff811115613fd1575f80fd5b602083019150836020828501011115613bb0575f80fd5b5f805f8060608587031215613ffb575f80fd5b8435935060208501359250604085013567ffffffffffffffff81111561401f575f80fd5b61402b87828801613faa565b95989497509550505050565b6001600160a01b0381168114612e27575f80fd5b5f805f805f6080868803121561405f575f80fd5b8535945060208601359350604086013567ffffffffffffffff811115614083575f80fd5b61408f88828901613faa565b90945092505060608601356140a381614037565b809150509295509295909350565b5f602082840312156140c1575f80fd5b81356140cc81614037565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110614135577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f60a08201905061414b828451614100565b6001600160a01b03602084015116602083015260408301516040830152606083015160608301526080830151608083015292915050565b67ffffffffffffffff81168114612e27575f80fd5b5f602082840312156141a7575f80fd5b81356140cc81614182565b5f80604083850312156141c3575f80fd5b50508035926020909101359150565b5f805f805f8060a087890312156141e7575f80fd5b8635955060208701359450604087013561420081614037565b9350606087013567ffffffffffffffff81111561421b575f80fd5b61422789828a01613faa565b909450925050608087013561423b81614037565b809150509295509295509295565b5f805f805f6080868803121561425d575f80fd5b8535945060208601359350604086013561427681614037565b9250606086013567ffffffffffffffff811115614291575f80fd5b61429d88828901613faa565b969995985093965092949392505050565b5f80604083850312156142bf575f80fd5b82359150602083013567ffffffffffffffff8111156142dc575f80fd5b8301606081860312156142ed575f80fd5b809150509250929050565b5f805f806060858703121561430b575f80fd5b843567ffffffffffffffff811115614321575f80fd5b61432d87828801613faa565b90989097506020870135966040013595509350505050565b5f8060208385031215614356575f80fd5b823567ffffffffffffffff81111561436c575f80fd5b61437885828601613faa565b90969095509350505050565b60a081016143928288614100565b6001600160a01b03861660208301528460408301528360608301528260808301529695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b602081525f61370a6020830184866143ea565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff8111828210171561447657614476614426565b60405290565b6040516060810167ffffffffffffffff8111828210171561447657614476614426565b604051610100810167ffffffffffffffff8111828210171561447657614476614426565b604051601f8201601f1916810167ffffffffffffffff811182821017156144ec576144ec614426565b604052919050565b5f67ffffffffffffffff82111561450d5761450d614426565b50601f01601f191660200190565b5f82601f83011261452a575f80fd5b815161453d614538826144f4565b6144c3565b818152846020838601011115614551575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561457d575f80fd5b815167ffffffffffffffff811115614593575f80fd5b61370a8482850161451b565b80516136ec81614037565b5f602082840312156145ba575f80fd5b815167ffffffffffffffff8111156145d0575f80fd5b8201608081850312156145e1575f80fd5b6145e9614453565b8151600381106145f7575f80fd5b8152602082015161460781614037565b6020820152604082015161461a81614037565b6040820152606082015167ffffffffffffffff811115614638575f80fd5b6146448682850161451b565b606083015250949350505050565b5f6020828403128015614663575f80fd5b506040516020810167ffffffffffffffff8111828210171561468757614687614426565b6040529151825250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417612e7957612e79614694565b5f8261470b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115612e7957612e79614694565b5f60208284031215614733575f80fd5b815167ffffffffffffffff811115614749575f80fd5b82016060818503121561475a575f80fd5b61476261447c565b8151815260208083015190820152604082015167ffffffffffffffff811115614789575f80fd5b6147958682850161451b565b604083015250949350505050565b8015158114612e27575f80fd5b5f602082840312156147c0575f80fd5b81516140cc816147a3565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201525f604083015160608084015261370a60808401826147cb565b60208152614839602082018351614100565b6001600160a01b0360208301511660408201526001600160a01b0360408301511660608201525f606083015160808084015261370a60a08401826147cb565b602081525f6140cc60208301846147cb565b81810381811115612e7957612e79614694565b6001600160a01b0384168152604060208201525f6148bf6040830184866143ea565b95945050505050565b8581528460208201526001600160a01b0384166040820152608060608201525f6148f66080830184866143ea565b979650505050505050565b828152604060208201525f8235614917816147a3565b15156040830152602083013561492c81614037565b6001600160a01b031660608301526040830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261496f575f80fd5b830160208101903567ffffffffffffffff81111561498b575f80fd5b803603821315614999575f80fd5b606060808501526149ae60a0850182846143ea565b9695505050505050565b5f602082840312156149c8575f80fd5b81516140cc81614037565b5f82601f8301126149e2575f80fd5b81356149f0614538826144f4565b818152846020838601011115614a04575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215614a30575f80fd5b614a3861447c565b8235614a43816147a3565b81526020830135614a5381614037565b6020820152604083013567ffffffffffffffff811115614a71575f80fd5b614a7d368286016149d3565b60408301525092915050565b5f60208284031215614a99575f80fd5b813567ffffffffffffffff811115614aaf575f80fd5b820160408185031215614ac0575f80fd5b6040805190810167ffffffffffffffff81118282101715614ae357614ae3614426565b6040528135614af181614037565b8152602082013567ffffffffffffffff811115614b0c575f80fd5b614b18868285016149d3565b602083015250949350505050565b5f60208284031215614b36575f80fd5b5051919050565b602081526001600160a01b0382511660208201525f602083015160408084015261370a60608401826147cb565b5f8060408385031215614b7b575f80fd5b825160208401519092506142ed81614037565b5f60608284031215614b9e575f80fd5b614ba661447c565b90508151614bb3816147a3565b81526020820151614bc381614037565b6020820152604082015167ffffffffffffffff811115614be1575f80fd5b614a7d8482850161451b565b5f82601f830112614bfc575f80fd5b815167ffffffffffffffff811115614c1657614c16614426565b8060051b614c26602082016144c3565b91825260208185018101929081019086841115614c41575f80fd5b6020860192505b838310156149ae57825167ffffffffffffffff811115614c66575f80fd5b614c75886020838a0101614b8e565b83525060209283019290910190614c48565b80516136ec81614182565b5f60208284031215614ca2575f80fd5b815167ffffffffffffffff811115614cb8575f80fd5b82016101008185031215614cca575f80fd5b614cd261449f565b614cdb8261459f565b8152602082015167ffffffffffffffff811115614cf6575f80fd5b614d0286828501614b8e565b602083015250604082015167ffffffffffffffff811115614d21575f80fd5b614d2d86828501614b8e565b604083015250606082015167ffffffffffffffff811115614d4c575f80fd5b614d5886828501614b8e565b606083015250608082015167ffffffffffffffff811115614d77575f80fd5b614d8386828501614bed565b608083015250614d9560a08301614c87565b60a082015260c08281015190820152614db060e0830161459f565b60e0820152949350505050565b67ffffffffffffffff8181168382160190811115612e7957612e79614694565b5f60208284031215614ded575f80fd5b81516140cc81614182565b5f8060408385031215614e09575f80fd5b8251602084015190925067ffffffffffffffff811115614e27575f80fd5b614e338582860161451b565b915050925092905056fea26469706673582212201ae4465621fddb41ff261280bf98c27ad722212d6adbce644afd906f4677503164736f6c634300081a0033";
31
+ function L(d) {
32
+ const e = d.state.current, f = d.state.connections.get(e), b = f == null ? void 0 : f.accounts, a = b == null ? void 0 : b[0], t = d.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), c = d.state.status;
33
+ switch (c) {
34
34
  case "connected":
35
35
  return {
36
36
  address: a,
37
37
  addresses: b,
38
- chain: c,
38
+ chain: t,
39
39
  chainId: f == null ? void 0 : f.chainId,
40
40
  connector: f == null ? void 0 : f.connector,
41
41
  isConnected: !0,
42
42
  isConnecting: !1,
43
43
  isDisconnected: !1,
44
44
  isReconnecting: !1,
45
- status: d
45
+ status: c
46
46
  };
47
47
  case "reconnecting":
48
48
  return {
49
49
  address: a,
50
50
  addresses: b,
51
- chain: c,
51
+ chain: t,
52
52
  chainId: f == null ? void 0 : f.chainId,
53
53
  connector: f == null ? void 0 : f.connector,
54
54
  isConnected: !!a,
55
55
  isConnecting: !1,
56
56
  isDisconnected: !1,
57
57
  isReconnecting: !0,
58
- status: d
58
+ status: c
59
59
  };
60
60
  case "connecting":
61
61
  return {
62
62
  address: a,
63
63
  addresses: b,
64
- chain: c,
64
+ chain: t,
65
65
  chainId: f == null ? void 0 : f.chainId,
66
66
  connector: f == null ? void 0 : f.connector,
67
67
  isConnected: !1,
68
68
  isConnecting: !0,
69
69
  isDisconnected: !1,
70
70
  isReconnecting: !1,
71
- status: d
71
+ status: c
72
72
  };
73
73
  case "disconnected":
74
74
  return {
@@ -81,36 +81,36 @@ function N(t) {
81
81
  isConnecting: !1,
82
82
  isDisconnected: !0,
83
83
  isReconnecting: !1,
84
- status: d
84
+ status: c
85
85
  };
86
86
  }
87
87
  }
88
- function Wf(t) {
89
- return t.state.chainId;
88
+ function X0(d) {
89
+ return d.state.chainId;
90
90
  }
91
- function O(t, e, f) {
92
- const b = t[e.name];
91
+ function S(d, e, f) {
92
+ const b = d[e.name];
93
93
  if (typeof b == "function")
94
94
  return b;
95
- const a = t[f];
96
- return typeof a == "function" ? a : (c) => e(t, c);
95
+ const a = d[f];
96
+ return typeof a == "function" ? a : (t) => e(d, t);
97
97
  }
98
- const Hf = "2.13.8", pf = () => `@wagmi/core@${Hf}`;
99
- var S = function(t, e, f, b) {
98
+ const J0 = "2.13.8", K0 = () => `@wagmi/core@${J0}`;
99
+ var N = function(d, e, f, b) {
100
100
  if (f === "a" && !b) throw new TypeError("Private accessor was defined without a getter");
101
- if (typeof e == "function" ? t !== e || !b : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
102
- return f === "m" ? b : f === "a" ? b.call(t) : b ? b.value : e.get(t);
103
- }, I, M;
104
- class m extends Error {
101
+ if (typeof e == "function" ? d !== e || !b : !e.has(d)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
102
+ return f === "m" ? b : f === "a" ? b.call(d) : b ? b.value : e.get(d);
103
+ }, y, O;
104
+ class v extends Error {
105
105
  get docsBaseUrl() {
106
106
  return "https://wagmi.sh/core";
107
107
  }
108
108
  get version() {
109
- return pf();
109
+ return K0();
110
110
  }
111
111
  constructor(e, f = {}) {
112
- var c;
113
- super(), I.add(this), Object.defineProperty(this, "details", {
112
+ var t;
113
+ super(), y.add(this), Object.defineProperty(this, "details", {
114
114
  enumerable: !0,
115
115
  configurable: !0,
116
116
  writable: !0,
@@ -136,7 +136,7 @@ class m extends Error {
136
136
  writable: !0,
137
137
  value: "WagmiCoreError"
138
138
  });
139
- const b = f.cause instanceof m ? f.cause.details : (c = f.cause) != null && c.message ? f.cause.message : f.details, a = f.cause instanceof m && f.cause.docsPath || f.docsPath;
139
+ const b = f.cause instanceof v ? f.cause.details : (t = f.cause) != null && t.message ? f.cause.message : f.details, a = f.cause instanceof v && f.cause.docsPath || f.docsPath;
140
140
  this.message = [
141
141
  e || "An error occurred.",
142
142
  "",
@@ -150,13 +150,13 @@ class m extends Error {
150
150
  `), f.cause && (this.cause = f.cause), this.details = b, this.docsPath = a, this.metaMessages = f.metaMessages, this.shortMessage = e;
151
151
  }
152
152
  walk(e) {
153
- return S(this, I, "m", M).call(this, this, e);
153
+ return N(this, y, "m", O).call(this, this, e);
154
154
  }
155
155
  }
156
- I = /* @__PURE__ */ new WeakSet(), M = function t(e, f) {
157
- return f != null && f(e) ? e : e.cause ? S(this, I, "m", t).call(this, e.cause, f) : e;
156
+ y = /* @__PURE__ */ new WeakSet(), O = function d(e, f) {
157
+ return f != null && f(e) ? e : e.cause ? N(this, y, "m", d).call(this, e.cause, f) : e;
158
158
  };
159
- class Qf extends m {
159
+ class Y0 extends v {
160
160
  constructor() {
161
161
  super("Connector not connected."), Object.defineProperty(this, "name", {
162
162
  enumerable: !0,
@@ -166,7 +166,7 @@ class Qf extends m {
166
166
  });
167
167
  }
168
168
  }
169
- class Yf extends m {
169
+ class Z0 extends v {
170
170
  constructor({ address: e, connector: f }) {
171
171
  super(`Account "${e}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
172
172
  enumerable: !0,
@@ -176,7 +176,7 @@ class Yf extends m {
176
176
  });
177
177
  }
178
178
  }
179
- class Jf extends m {
179
+ class f1 extends v {
180
180
  constructor({ connectionChainId: e, connectorChainId: f }) {
181
181
  super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`, {
182
182
  metaMessages: [
@@ -191,7 +191,7 @@ class Jf extends m {
191
191
  });
192
192
  }
193
193
  }
194
- class Kf extends m {
194
+ class e1 extends v {
195
195
  constructor({ connector: e }) {
196
196
  super(`Connector "${e.name}" unavailable while reconnecting.`, {
197
197
  details: [
@@ -207,113 +207,113 @@ class Kf extends m {
207
207
  });
208
208
  }
209
209
  }
210
- async function V(t, e = {}) {
210
+ async function V(d, e = {}) {
211
211
  let f;
212
212
  if (e.connector) {
213
- const { connector: s } = e;
214
- if (t.state.status === "reconnecting" && !s.getAccounts && !s.getChainId)
215
- throw new Kf({ connector: s });
213
+ const { connector: i } = e;
214
+ if (d.state.status === "reconnecting" && !i.getAccounts && !i.getChainId)
215
+ throw new e1({ connector: i });
216
216
  const [w, g] = await Promise.all([
217
- s.getAccounts(),
218
- s.getChainId()
217
+ i.getAccounts(),
218
+ i.getChainId()
219
219
  ]);
220
220
  f = {
221
221
  accounts: w,
222
222
  chainId: g,
223
- connector: s
223
+ connector: i
224
224
  };
225
225
  } else
226
- f = t.state.connections.get(t.state.current);
226
+ f = d.state.connections.get(d.state.current);
227
227
  if (!f)
228
- throw new Qf();
228
+ throw new Y0();
229
229
  const b = e.chainId ?? f.chainId, a = await f.connector.getChainId();
230
230
  if (a !== f.chainId)
231
- throw new Jf({
231
+ throw new f1({
232
232
  connectionChainId: f.chainId,
233
233
  connectorChainId: a
234
234
  });
235
- const c = f.connector;
236
- if (c.getClient)
237
- return c.getClient({ chainId: b });
238
- const d = kf(e.account ?? f.accounts[0]);
239
- if (d.address = Gf(d.address), e.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
240
- throw new Yf({
241
- address: d.address,
242
- connector: c
235
+ const t = f.connector;
236
+ if (t.getClient)
237
+ return t.getClient({ chainId: b });
238
+ const c = U0(e.account ?? f.accounts[0]);
239
+ if (c.address = H0(c.address), e.account && !f.accounts.some((i) => i.toLowerCase() === c.address.toLowerCase()))
240
+ throw new Z0({
241
+ address: c.address,
242
+ connector: t
243
243
  });
244
- const n = t.chains.find((s) => s.id === b), i = await f.connector.getProvider({ chainId: b });
245
- return tf({
246
- account: d,
244
+ const n = d.chains.find((i) => i.id === b), s = await f.connector.getProvider({ chainId: b });
245
+ return i0({
246
+ account: c,
247
247
  chain: n,
248
248
  name: "Connector Client",
249
- transport: (s) => cf(i)({ ...s, retryCount: 0 })
249
+ transport: (i) => o0(s)({ ...i, retryCount: 0 })
250
250
  });
251
251
  }
252
- async function Xf(t, e) {
253
- const { abi: f, chainId: b, connector: a, ...c } = e;
254
- let d;
255
- e.account ? d = e.account : d = (await V(t, {
252
+ async function b1(d, e) {
253
+ const { abi: f, chainId: b, connector: a, ...t } = e;
254
+ let c;
255
+ e.account ? c = e.account : c = (await V(d, {
256
256
  chainId: b,
257
257
  connector: a
258
258
  })).account;
259
- const n = t.getClient({ chainId: b }), i = O(n, zf, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
259
+ const n = d.getClient({ chainId: b }), s = S(n, G0, "simulateContract"), { result: i, request: w } = await s({ ...t, abi: f, account: c });
260
260
  return {
261
261
  chainId: n.chain.id,
262
- result: s,
262
+ result: i,
263
263
  request: { __mode: "prepared", ...w, chainId: b }
264
264
  };
265
265
  }
266
- async function L(t, e) {
267
- const { account: f, chainId: b, connector: a, __mode: c, ...d } = e;
266
+ async function p(d, e) {
267
+ const { account: f, chainId: b, connector: a, __mode: t, ...c } = e;
268
268
  let n;
269
- typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: b }) : n = await V(t, { account: f, chainId: b, connector: a });
270
- const { connector: i } = N(t);
271
- let s;
272
- if (c === "prepared" || i != null && i.supportsSimulation)
273
- s = d;
269
+ typeof f == "object" && f.type === "local" ? n = d.getClient({ chainId: b }) : n = await V(d, { account: f, chainId: b, connector: a });
270
+ const { connector: s } = L(d);
271
+ let i;
272
+ if (t === "prepared" || s != null && s.supportsSimulation)
273
+ i = c;
274
274
  else {
275
- const { request: o } = await Xf(t, {
276
- ...d,
275
+ const { request: o } = await b1(d, {
276
+ ...c,
277
277
  account: f,
278
278
  chainId: b
279
279
  });
280
- s = o;
280
+ i = o;
281
281
  }
282
- return await O(n, qf, "writeContract")({
283
- ...s,
282
+ return await S(n, W0, "writeContract")({
283
+ ...i,
284
284
  ...f ? { account: f } : {},
285
285
  chain: b ? { id: b } : null
286
286
  });
287
287
  }
288
- function Zf(t) {
289
- return t.address !== void 0 && typeof t.address == "object" ? (e, f) => {
290
- var d;
291
- const b = Wf(e), a = N(e);
292
- let c;
293
- return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = b, L(e, {
288
+ function a1(d) {
289
+ return d.address !== void 0 && typeof d.address == "object" ? (e, f) => {
290
+ var c;
291
+ const b = X0(e), a = L(e);
292
+ let t;
293
+ return f.chainId ? t = f.chainId : f.account && f.account === a.address || f.account === void 0 ? t = a.chainId : t = b, p(e, {
294
294
  ...f,
295
- ...t.functionName ? { functionName: t.functionName } : {},
296
- address: c ? (d = t.address) == null ? void 0 : d[c] : void 0,
297
- abi: t.abi
295
+ ...d.functionName ? { functionName: d.functionName } : {},
296
+ address: t ? (c = d.address) == null ? void 0 : c[t] : void 0,
297
+ abi: d.abi
298
298
  });
299
- } : (e, f) => L(e, {
299
+ } : (e, f) => p(e, {
300
300
  ...f,
301
- ...t.address ? { address: t.address } : {},
302
- ...t.functionName ? { functionName: t.functionName } : {},
303
- abi: t.abi
301
+ ...d.address ? { address: d.address } : {},
302
+ ...d.functionName ? { functionName: d.functionName } : {},
303
+ abi: d.abi
304
304
  });
305
305
  }
306
- const f0 = 10000n, y = {
306
+ const A = 10000n, P = {
307
307
  31337: void 0,
308
- ...sf
309
- }, O0 = y[11155111] || v;
310
- function e0(t) {
311
- return t.address;
308
+ ...h0
309
+ }, O1 = P[11155111] || m;
310
+ function t1(d) {
311
+ return d.address;
312
312
  }
313
- function b0(t) {
314
- return t.registryAddress && t.protocolFeeReceiver && t.owner;
313
+ function c1(d) {
314
+ return d.registryAddress && d.protocolFeeReceiver && d.owner;
315
315
  }
316
- const _ = class _ extends Af {
316
+ const _ = class _ extends _0 {
317
317
  /**
318
318
  * A getter that will return Boost core's static addresses by numerical chain ID
319
319
  *
@@ -334,9 +334,9 @@ const _ = class _ extends Af {
334
334
  * @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; owner: Address; })} param0....options
335
335
  */
336
336
  constructor({ config: e, account: f, ...b }) {
337
- if (e0(b) && b.address)
337
+ if (t1(b) && b.address)
338
338
  super({ account: f, config: e }, b.address);
339
- else if (b0(b))
339
+ else if (c1(b))
340
340
  super({ account: f, config: e }, [
341
341
  b.registryAddress,
342
342
  b.protocolFeeReceiver,
@@ -345,7 +345,7 @@ const _ = class _ extends Af {
345
345
  else {
346
346
  const { address: a } = u(
347
347
  e,
348
- y
348
+ P
349
349
  );
350
350
  super({ account: f, config: e }, a);
351
351
  }
@@ -362,51 +362,51 @@ const _ = class _ extends Af {
362
362
  * @returns {Promise<Boost>}
363
363
  */
364
364
  async createBoost(e, f) {
365
- const [b, a] = this.validateDeploymentConfig(e), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = u(
365
+ const [b, a] = this.validateDeploymentConfig(e), t = f == null ? void 0 : f.chainId, { chainId: c, address: n } = u(
366
366
  a.config,
367
367
  this.addresses,
368
- c
369
- ), i = Zf({
368
+ t
369
+ ), s = a1({
370
370
  abi: C,
371
371
  functionName: "createBoost",
372
372
  address: n
373
- }), s = await this.prepareCreateBoostPayload(
373
+ }), i = await this.prepareCreateBoostPayload(
374
374
  n,
375
- d,
375
+ c,
376
376
  b,
377
377
  a
378
- ), w = await i(a.config, {
378
+ ), w = await s(a.config, {
379
379
  ...this.optionallyAttachAccount(a.account),
380
380
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
381
381
  ...f,
382
- chainId: d,
383
- args: [B(s)]
384
- }), g = await ff(a.config, {
382
+ chainId: c,
383
+ args: [E(i)]
384
+ }), g = await c0(a.config, {
385
385
  hash: w
386
- }), o = P({
386
+ }), o = B({
387
387
  abi: C,
388
388
  eventName: "BoostCreated",
389
389
  logs: g.logs
390
390
  }).at(0);
391
391
  let r = 0n;
392
- if (!o) throw new Of();
392
+ if (!o) throw new V0();
393
393
  r = o == null ? void 0 : o.args.boostId;
394
- const l = await this.readBoost(r);
395
- return new E({
394
+ const h = await this.readBoost(r);
395
+ return new F({
396
396
  id: r,
397
- budget: b.budget.at(l.budget),
398
- action: b.action.at(l.action),
399
- validator: b.validator.at(l.validator),
400
- allowList: b.allowList.at(l.allowList),
397
+ budget: b.budget.at(h.budget),
398
+ action: b.action.at(h.action),
399
+ validator: b.validator.at(h.validator),
400
+ allowList: b.allowList.at(h.allowList),
401
401
  incentives: b.incentives.map(
402
- (A, $) => (
402
+ (I, $) => (
403
403
  // biome-ignore lint/style/noNonNullAssertion: this will never be undefined
404
- A.at(l.incentives.at($))
404
+ I.at(h.incentives.at($))
405
405
  )
406
406
  ),
407
- protocolFee: l.protocolFee,
408
- maxParticipants: l.maxParticipants,
409
- owner: l.owner
407
+ protocolFee: h.protocolFee,
408
+ maxParticipants: h.maxParticipants,
409
+ owner: h.owner
410
410
  });
411
411
  }
412
412
  /**
@@ -423,7 +423,7 @@ const _ = class _ extends Af {
423
423
  e,
424
424
  f
425
425
  );
426
- return { hash: await j(this._config, b), result: a };
426
+ return { hash: await M(this._config, b), result: a };
427
427
  }
428
428
  /**
429
429
  * Returns a simulated Boost creation.
@@ -435,135 +435,135 @@ const _ = class _ extends Af {
435
435
  * @returns {Promise<SimulateContractReturnType>}
436
436
  */
437
437
  async simulateCreateBoost(e, f) {
438
- const [b, a] = this.validateDeploymentConfig(e), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = u(
438
+ const [b, a] = this.validateDeploymentConfig(e), t = f == null ? void 0 : f.chainId, { chainId: c, address: n } = u(
439
439
  a.config,
440
440
  this.addresses,
441
- c
442
- ), i = await this.prepareCreateBoostPayload(
441
+ t
442
+ ), s = await this.prepareCreateBoostPayload(
443
443
  n,
444
- d,
444
+ c,
445
445
  b,
446
446
  a
447
447
  );
448
- return await x(this._config, {
448
+ return await j(this._config, {
449
449
  ...this.optionallyAttachAccount(),
450
450
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
451
451
  ...f,
452
452
  address: n,
453
- chainId: d,
454
- args: [B(i)]
453
+ chainId: c,
454
+ args: [E(s)]
455
455
  });
456
456
  }
457
457
  // This function mutates payload, which isn't awesome but it's fine
458
458
  async prepareCreateBoostPayload(e, f, b, a) {
459
459
  var g;
460
- if (!b.owner && (b.owner = ((g = this._account) == null ? void 0 : g.address) || ef(a.config).address || v, b.owner === v))
461
- throw new Sf();
460
+ if (!b.owner && (b.owner = ((g = this._account) == null ? void 0 : g.address) || d0(a.config).address || m, b.owner === m))
461
+ throw new $0();
462
462
  if (!b.validator) {
463
- const r = bf(a.config).filter(
464
- (A) => !!this.addresses[A.id] && A.id === f
463
+ const r = n0(a.config).filter(
464
+ (I) => !!this.addresses[I.id] && I.id === f
465
465
  ).at(0);
466
466
  if (!r)
467
- throw new Mf(
467
+ throw new M0(
468
468
  f,
469
469
  Object.keys(this.addresses).map(Number)
470
470
  );
471
- const l = r.testnet || r.id === 31337;
471
+ const h = r.testnet || r.id === 31337;
472
472
  b.validator = this.SignerValidator({
473
473
  signers: [
474
- l ? F.TESTNET : F.MAINNET
474
+ h ? T.TESTNET : T.MAINNET
475
475
  ],
476
476
  validatorCaller: e
477
477
  });
478
478
  }
479
- let c = v;
479
+ let t = m;
480
480
  if (b.budget.address) {
481
- if (c = b.budget.address, !await b.budget.isAuthorized(e))
482
- throw new Vf(e);
481
+ if (t = b.budget.address, !await b.budget.isAuthorized(e))
482
+ throw new j0(e);
483
483
  } else
484
- throw new $f();
485
- let d = {
486
- instance: v,
484
+ throw new x0();
485
+ let c = {
486
+ instance: m,
487
487
  isBase: !0,
488
- parameters: h
488
+ parameters: l
489
489
  };
490
490
  if (b.action.address) {
491
491
  const o = b.action.isBase;
492
- d = {
492
+ c = {
493
493
  isBase: o,
494
494
  instance: b.action.address,
495
- parameters: o ? b.action.buildParameters(void 0, a).args.at(0) || h : h
495
+ parameters: o ? b.action.buildParameters(void 0, a).args.at(0) || l : l
496
496
  };
497
497
  } else
498
- d.parameters = b.action.buildParameters(void 0, a).args.at(0) || h, d.instance = u(
498
+ c.parameters = b.action.buildParameters(void 0, a).args.at(0) || l, c.instance = u(
499
499
  a.config,
500
500
  b.action.bases,
501
501
  f
502
502
  ).address;
503
503
  let n = {
504
- instance: v,
504
+ instance: m,
505
505
  isBase: !0,
506
- parameters: h
506
+ parameters: l
507
507
  };
508
508
  if (b.validator.address) {
509
509
  const o = b.validator.isBase;
510
510
  n = {
511
511
  isBase: o,
512
512
  instance: b.validator.address,
513
- parameters: o ? b.validator.buildParameters(void 0, a).args.at(0) || h : h
513
+ parameters: o ? b.validator.buildParameters(void 0, a).args.at(0) || l : l
514
514
  };
515
515
  } else
516
- n.parameters = b.validator.buildParameters(void 0, a).args.at(0) || h, n.instance = u(
516
+ n.parameters = b.validator.buildParameters(void 0, a).args.at(0) || l, n.instance = u(
517
517
  a.config,
518
518
  b.validator.bases,
519
519
  f
520
520
  ).address;
521
- let i = {
522
- instance: v,
521
+ let s = {
522
+ instance: m,
523
523
  isBase: !0,
524
- parameters: h
524
+ parameters: l
525
525
  };
526
526
  if (b.allowList || (b.allowList = this.OpenAllowList()), b.allowList.address) {
527
527
  const o = b.allowList.isBase;
528
- i = {
528
+ s = {
529
529
  isBase: o,
530
530
  instance: b.allowList.address,
531
- parameters: o ? h : h
531
+ parameters: o ? l : l
532
532
  };
533
533
  } else
534
- i.parameters = b.allowList.buildParameters(void 0, a).args.at(0) || h, i.instance = u(
534
+ s.parameters = b.allowList.buildParameters(void 0, a).args.at(0) || l, s.instance = u(
535
535
  a.config,
536
536
  b.allowList.bases,
537
537
  f
538
538
  ).address;
539
- const s = b.incentives.map(() => ({
540
- instance: v,
539
+ const i = b.incentives.map(() => ({
540
+ instance: m,
541
541
  isBase: !0,
542
- parameters: h
542
+ parameters: l
543
543
  }));
544
544
  for (let o = 0; o < b.incentives.length; o++) {
545
545
  const r = b.incentives.at(o);
546
546
  if (r.address) {
547
- const l = r.isBase;
548
- if (!l) throw new jf(r);
549
- s[o] = {
550
- isBase: l,
547
+ const h = r.isBase;
548
+ if (!h) throw new z0(r);
549
+ i[o] = {
550
+ isBase: h,
551
551
  instance: r.address,
552
- parameters: l ? r.buildParameters(void 0, a).args.at(0) || h : h
552
+ parameters: h ? r.buildParameters(void 0, a).args.at(0) || l : l
553
553
  };
554
554
  } else
555
- s[o].parameters = r.buildParameters(void 0, a).args.at(0) || h, s[o].instance = u(
555
+ i[o].parameters = r.buildParameters(void 0, a).args.at(0) || l, i[o].instance = u(
556
556
  a.config,
557
557
  r.bases,
558
558
  f
559
559
  ).address;
560
560
  }
561
561
  return {
562
- budget: c,
563
- action: d,
562
+ budget: t,
563
+ action: c,
564
564
  validator: n,
565
- allowList: i,
566
- incentives: s,
565
+ allowList: s,
566
+ incentives: i,
567
567
  protocolFee: b.protocolFee || 0n,
568
568
  maxParticipants: b.maxParticipants || 0n,
569
569
  owner: b.owner
@@ -581,9 +581,9 @@ const _ = class _ extends Af {
581
581
  * @param {?WriteParams} [params]
582
582
  * @returns {Promise<void>}
583
583
  */
584
- async claimIncentive(e, f, b, a, c) {
584
+ async claimIncentive(e, f, b, a, t) {
585
585
  return await this.awaitResult(
586
- this.claimIncentiveRaw(e, f, b, a, c)
586
+ this.claimIncentiveRaw(e, f, b, a, t)
587
587
  );
588
588
  }
589
589
  /**
@@ -598,22 +598,22 @@ const _ = class _ extends Af {
598
598
  * @param {?WriteParams} [params]
599
599
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
600
600
  */
601
- async claimIncentiveRaw(e, f, b, a, c) {
602
- const { request: d, result: n } = await T(
601
+ async claimIncentiveRaw(e, f, b, a, t) {
602
+ const { request: c, result: n } = await x(
603
603
  this._config,
604
604
  {
605
605
  ...u(
606
606
  this._config,
607
607
  this.addresses,
608
- c == null ? void 0 : c.chainId
608
+ t == null ? void 0 : t.chainId
609
609
  ),
610
610
  args: [e, f, b, a],
611
611
  ...this.optionallyAttachAccount(),
612
612
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
613
- ...c
613
+ ...t
614
614
  }
615
615
  );
616
- return { hash: await z(this._config, d), result: n };
616
+ return { hash: await z(this._config, c), result: n };
617
617
  }
618
618
  /**
619
619
  * Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
@@ -628,15 +628,15 @@ const _ = class _ extends Af {
628
628
  * @param {?WriteParams} [params]
629
629
  * @returns {Promise<void>}
630
630
  */
631
- async claimIncentiveFor(e, f, b, a, c, d) {
631
+ async claimIncentiveFor(e, f, b, a, t, c) {
632
632
  return await this.awaitResult(
633
633
  this.claimIncentiveForRaw(
634
634
  e,
635
635
  f,
636
636
  b,
637
637
  a,
638
- c,
639
- d
638
+ t,
639
+ c
640
640
  )
641
641
  );
642
642
  }
@@ -653,22 +653,22 @@ const _ = class _ extends Af {
653
653
  * @param {?WriteParams} [params]
654
654
  * @returns {Promise<{ hash: Hex; result: void; }>}
655
655
  */
656
- async claimIncentiveForRaw(e, f, b, a, c, d) {
657
- const { request: n, result: i } = await q(
656
+ async claimIncentiveForRaw(e, f, b, a, t, c) {
657
+ const { request: n, result: s } = await q(
658
658
  this._config,
659
659
  {
660
660
  ...u(
661
661
  this._config,
662
662
  this.addresses,
663
- d == null ? void 0 : d.chainId
663
+ c == null ? void 0 : c.chainId
664
664
  ),
665
- args: [e, f, b, a, c],
665
+ args: [e, f, b, a, t],
666
666
  ...this.optionallyAttachAccount(),
667
667
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
668
- ...d
668
+ ...c
669
669
  }
670
670
  );
671
- return { hash: await k(this._config, n), result: i };
671
+ return { hash: await k(this._config, n), result: s };
672
672
  }
673
673
  /**
674
674
  * Get a Boost by index, will return the raw on chain representation of a Boost.
@@ -696,7 +696,7 @@ const _ = class _ extends Af {
696
696
  ...f
697
697
  });
698
698
  } catch (a) {
699
- throw (b = a == null ? void 0 : a.message) != null && b.includes("bounds") ? new xf(String(e)) : a;
699
+ throw (b = a == null ? void 0 : a.message) != null && b.includes("bounds") ? new q0(String(e)) : a;
700
700
  }
701
701
  }
702
702
  /**
@@ -712,30 +712,30 @@ const _ = class _ extends Af {
712
712
  async getBoost(e, f) {
713
713
  let b;
714
714
  typeof e == "string" ? b = BigInt(e) : b = e;
715
- const { protocolFee: a, maxParticipants: c, owner: d, ...n } = await this.readBoost(b, f), i = {
715
+ const { protocolFee: a, maxParticipants: t, owner: c, ...n } = await this.readBoost(b, f), s = {
716
716
  config: this._config,
717
717
  account: this._account
718
- }, [s, w, g, o, r] = await Promise.all([
719
- of(i, n.action, f),
720
- vf(i, n.budget, f),
721
- Nf(i, n.validator, f),
722
- uf(i, n.allowList, f),
718
+ }, [i, w, g, o, r] = await Promise.all([
719
+ l0(s, n.action, f),
720
+ I0(s, n.budget, f),
721
+ O0(s, n.validator, f),
722
+ w0(s, n.allowList, f),
723
723
  Promise.all(
724
724
  n.incentives.map(
725
- (l) => Pf(i, l, f)
725
+ (h) => R0(s, h, f)
726
726
  )
727
727
  )
728
728
  ]);
729
- return new E({
729
+ return new F({
730
730
  id: b,
731
- action: s,
731
+ action: i,
732
732
  budget: w,
733
733
  validator: g,
734
734
  allowList: o,
735
735
  incentives: r,
736
736
  protocolFee: a,
737
- maxParticipants: c,
738
- owner: d
737
+ maxParticipants: t,
738
+ owner: c
739
739
  });
740
740
  }
741
741
  /**
@@ -747,7 +747,7 @@ const _ = class _ extends Af {
747
747
  * @returns {Promise<bigint>}
748
748
  */
749
749
  async getBoostCount(e) {
750
- return await U(this._config, {
750
+ return await W(this._config, {
751
751
  ...u(
752
752
  this._config,
753
753
  this.addresses,
@@ -771,7 +771,7 @@ const _ = class _ extends Af {
771
771
  */
772
772
  async isAuthorized(e, f) {
773
773
  const b = await this.createBoostAuth(f);
774
- return W(this._config, {
774
+ return U(this._config, {
775
775
  address: b,
776
776
  args: [e],
777
777
  ...this.optionallyAttachAccount(),
@@ -826,7 +826,7 @@ const _ = class _ extends Af {
826
826
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
827
827
  */
828
828
  async setCreateBoostAuthRaw(e, f) {
829
- const { request: b, result: a } = await p(
829
+ const { request: b, result: a } = await Q(
830
830
  this._config,
831
831
  {
832
832
  ...u(
@@ -840,7 +840,7 @@ const _ = class _ extends Af {
840
840
  ...f
841
841
  }
842
842
  );
843
- return { hash: await Q(this._config, b), result: a };
843
+ return { hash: await X(this._config, b), result: a };
844
844
  }
845
845
  /**
846
846
  * Get the protocol fee.
@@ -851,7 +851,7 @@ const _ = class _ extends Af {
851
851
  * @returns {unknown}
852
852
  */
853
853
  async protocolFee(e) {
854
- return await Y(this._config, {
854
+ return await J(this._config, {
855
855
  ...u(
856
856
  this._config,
857
857
  this.addresses,
@@ -872,7 +872,7 @@ const _ = class _ extends Af {
872
872
  * @returns {Promise<Address>}
873
873
  */
874
874
  async protocolFeeReceiver(e) {
875
- return await J(this._config, {
875
+ return await K(this._config, {
876
876
  ...u(
877
877
  this._config,
878
878
  this.addresses,
@@ -910,7 +910,7 @@ const _ = class _ extends Af {
910
910
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
911
911
  */
912
912
  async setProcolFeeReceiverRaw(e, f) {
913
- const { request: b, result: a } = await K(
913
+ const { request: b, result: a } = await Y(
914
914
  this._config,
915
915
  {
916
916
  ...u(
@@ -924,7 +924,7 @@ const _ = class _ extends Af {
924
924
  ...f
925
925
  }
926
926
  );
927
- return { hash: await X(
927
+ return { hash: await Z(
928
928
  this._config,
929
929
  b
930
930
  ), result: a };
@@ -940,10 +940,10 @@ const _ = class _ extends Af {
940
940
  * @returns {Promise<IncentiveDisbursalInfo>}
941
941
  */
942
942
  async getIncentiveFeesInfo(e, f, b) {
943
- const a = df(
944
- nf(["uint256", "uint256"], [e, f])
943
+ const a = r0(
944
+ u0(["uint256", "uint256"], [e, f])
945
945
  );
946
- return await Z(this._config, {
946
+ return await f0(this._config, {
947
947
  ...u(
948
948
  this._config,
949
949
  this.addresses,
@@ -980,8 +980,8 @@ const _ = class _ extends Af {
980
980
  */
981
981
  async getClaimFromTransaction(e) {
982
982
  var a;
983
- const f = await af(this._config, e);
984
- return (a = P({
983
+ const f = await s0(this._config, e);
984
+ return (a = B({
985
985
  abi: C,
986
986
  eventName: "BoostClaimed",
987
987
  logs: f.logs
@@ -1012,7 +1012,7 @@ const _ = class _ extends Af {
1012
1012
  */
1013
1013
  async calculateProtocolFee(e, f) {
1014
1014
  const b = await this.protocolFee(f);
1015
- return e * b / f0;
1015
+ return e * b / A;
1016
1016
  }
1017
1017
  /**
1018
1018
  * Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
@@ -1026,7 +1026,7 @@ const _ = class _ extends Af {
1026
1026
  * @returns {PassthroughAuth}
1027
1027
  */
1028
1028
  PassthroughAuth(e) {
1029
- return new wf(
1029
+ return new A0(
1030
1030
  { config: this._config, account: this._account },
1031
1031
  e
1032
1032
  );
@@ -1062,7 +1062,7 @@ const _ = class _ extends Af {
1062
1062
  * const action = new EventAction({ config: core._config, account: core._account }, '0x')
1063
1063
  */
1064
1064
  EventAction(e, f) {
1065
- return new rf(
1065
+ return new g0(
1066
1066
  { config: this._config, account: this._account },
1067
1067
  e,
1068
1068
  f
@@ -1102,7 +1102,7 @@ const _ = class _ extends Af {
1102
1102
  * @returns {OpenAllowList}
1103
1103
  */
1104
1104
  OpenAllowList(e) {
1105
- return new lf(
1105
+ return new m0(
1106
1106
  { config: this._config, account: this._account },
1107
1107
  void 0,
1108
1108
  e
@@ -1121,7 +1121,7 @@ const _ = class _ extends Af {
1121
1121
  * @returns {SimpleAllowList}
1122
1122
  */
1123
1123
  SimpleAllowList(e, f) {
1124
- return new hf(
1124
+ return new v0(
1125
1125
  { config: this._config, account: this._account },
1126
1126
  e,
1127
1127
  f
@@ -1140,7 +1140,7 @@ const _ = class _ extends Af {
1140
1140
  * @returns {SimpleDenyList}
1141
1141
  */
1142
1142
  SimpleDenyList(e, f) {
1143
- return new gf(
1143
+ return new C0(
1144
1144
  { config: this._config, account: this._account },
1145
1145
  e,
1146
1146
  f
@@ -1175,7 +1175,7 @@ const _ = class _ extends Af {
1175
1175
  * @returns {ManagedBudget}
1176
1176
  */
1177
1177
  ManagedBudget(e) {
1178
- return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new Cf(
1178
+ return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new P0(
1179
1179
  { config: this._config, account: this._account },
1180
1180
  e
1181
1181
  );
@@ -1193,7 +1193,7 @@ const _ = class _ extends Af {
1193
1193
  * @returns {ManagedBudgetWithFees}
1194
1194
  */
1195
1195
  ManagedBudgetWithFees(e) {
1196
- return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new mf(
1196
+ return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new y0(
1197
1197
  { config: this._config, account: this._account },
1198
1198
  e
1199
1199
  );
@@ -1227,7 +1227,7 @@ const _ = class _ extends Af {
1227
1227
  * @returns {VestingBudget}
1228
1228
  */
1229
1229
  AllowListIncentive(e) {
1230
- return new If(
1230
+ return new B0(
1231
1231
  { config: this._config, account: this._account },
1232
1232
  e
1233
1233
  );
@@ -1244,7 +1244,7 @@ const _ = class _ extends Af {
1244
1244
  * @returns {CGDAIncentive}
1245
1245
  */
1246
1246
  CGDAIncentive(e) {
1247
- return new yf(
1247
+ return new E0(
1248
1248
  { config: this._config, account: this._account },
1249
1249
  e
1250
1250
  );
@@ -1261,7 +1261,7 @@ const _ = class _ extends Af {
1261
1261
  * @returns {ERC20Incentive}
1262
1262
  */
1263
1263
  ERC20Incentive(e) {
1264
- return new _f(
1264
+ return new F0(
1265
1265
  { config: this._config, account: this._account },
1266
1266
  e
1267
1267
  );
@@ -1278,7 +1278,7 @@ const _ = class _ extends Af {
1278
1278
  * @returns {ERC20PeggedIncentive}
1279
1279
  */
1280
1280
  ERC20PeggedIncentive(e) {
1281
- return new Bf(
1281
+ return new T0(
1282
1282
  { config: this._config, account: this._account },
1283
1283
  e
1284
1284
  );
@@ -1314,7 +1314,7 @@ const _ = class _ extends Af {
1314
1314
  * @returns {PointsIncentive}
1315
1315
  */
1316
1316
  PointsIncentive(e) {
1317
- return new Ff(
1317
+ return new L0(
1318
1318
  { config: this._config, account: this._account },
1319
1319
  e
1320
1320
  );
@@ -1332,7 +1332,7 @@ const _ = class _ extends Af {
1332
1332
  * @returns {SignerValidator}
1333
1333
  */
1334
1334
  SignerValidator(e, f) {
1335
- return new Df(
1335
+ return new N0(
1336
1336
  { config: this._config, account: this._account },
1337
1337
  e,
1338
1338
  f
@@ -1351,7 +1351,7 @@ const _ = class _ extends Af {
1351
1351
  * @returns {LimitedSignerValidator}
1352
1352
  */
1353
1353
  LimitedSignerValidator(e, f) {
1354
- return new Lf(
1354
+ return new S0(
1355
1355
  { config: this._config, account: this._account },
1356
1356
  e,
1357
1357
  f
@@ -1370,7 +1370,7 @@ const _ = class _ extends Af {
1370
1370
  * @returns {ERC20VariableCrtieriaIncentive}
1371
1371
  * */
1372
1372
  ERC20VariableCriteriaIncentive(e, f) {
1373
- return new Rf(
1373
+ return new D0(
1374
1374
  { config: this._config, account: this._account },
1375
1375
  e,
1376
1376
  f
@@ -1389,7 +1389,7 @@ const _ = class _ extends Af {
1389
1389
  * @returns {ERC20PeggedVariableCriteriaIncentive}
1390
1390
  * */
1391
1391
  ERC20PeggedVariableCriteriaIncentive(e, f) {
1392
- return new Ef(
1392
+ return new p0(
1393
1393
  { config: this._config, account: this._account },
1394
1394
  e,
1395
1395
  f
@@ -1408,7 +1408,7 @@ const _ = class _ extends Af {
1408
1408
  * @returns {ERC20VariableIncentive}
1409
1409
  */
1410
1410
  ERC20VariableIncentive(e, f) {
1411
- return new Tf(
1411
+ return new k0(
1412
1412
  { config: this._config, account: this._account },
1413
1413
  e,
1414
1414
  f
@@ -1429,19 +1429,181 @@ const _ = class _ extends Af {
1429
1429
  );
1430
1430
  return {
1431
1431
  abi: C,
1432
- bytecode: Uf,
1432
+ bytecode: Q0,
1433
1433
  args: b,
1434
1434
  ...this.optionallyAttachAccount(a.account)
1435
1435
  };
1436
1436
  }
1437
+ /**
1438
+ * Prepares and executes a top-up from a Budget, specifying the net top-up amount
1439
+ * that should land in the incentive (the protocol fee is added automatically).
1440
+ *
1441
+ * @public
1442
+ * @async
1443
+ * @param {bigint} boostId The ID of the Boost
1444
+ * @param {bigint} incentiveId The ID of the incentive within that Boost
1445
+ * @param {any} topupPayload A typed struct for the incentive’s top-up parameters
1446
+ * @param {Address} [budget] Optional override budget address (otherwise uses the Boost’s budget)
1447
+ * @param {?WriteParams} [params] Additional transaction overrides
1448
+ * @returns {Promise<{ hash: Hex; result: void }>} The transaction hash and simulation result
1449
+ */
1450
+ async topupIncentiveFromBudgetPreFee(e, f, b, a, t) {
1451
+ const c = await this.getBoost(e, t);
1452
+ if (f >= c.incentives.length)
1453
+ throw new Error(`Incentive ID ${f} out of range`);
1454
+ const n = c.incentives[Number(f)];
1455
+ if (!n)
1456
+ throw new Error(`Incentive with ID ${f} not found`);
1457
+ const s = await n.getTopupPayload(b);
1458
+ if (!(b > 0))
1459
+ throw new Error("Top-up amount must be greater than zero");
1460
+ return await this.topupIncentiveFromBudgetRaw(
1461
+ e,
1462
+ f,
1463
+ s,
1464
+ a,
1465
+ t
1466
+ );
1467
+ }
1468
+ /**
1469
+ * Prepares and executes a top-up from a Budget, specifying the entire total tokens
1470
+ * (incentive + fee) you want to disburse. We'll back-calculate how many tokens land
1471
+ * in the incentive.
1472
+ *
1473
+ * @public
1474
+ * @async
1475
+ * @param {bigint} boostId The ID of the Boost
1476
+ * @param {bigint} incentiveId The ID of the incentive within that Boost
1477
+ * @param {any} topupPayload A typed struct for the incentive’s top-up parameters
1478
+ * @param {bigint} totalAmount The total tokens to disburse
1479
+ * @param {Address} [budget] Optional override budget address
1480
+ * @param {?WriteParams} [params] Additional transaction overrides
1481
+ * @returns {Promise<{ hash: Hex; result: void }>}
1482
+ */
1483
+ async topupIncentiveFromBudgetPostFee(e, f, b, a, t) {
1484
+ const c = await this.protocolFee(t), n = b * A / (A + c);
1485
+ return this.topupIncentiveFromBudgetPreFee(
1486
+ e,
1487
+ f,
1488
+ n,
1489
+ a,
1490
+ t
1491
+ );
1492
+ }
1493
+ /**
1494
+ * Prepares and executes a top-up from the caller (msg.sender), specifying the net top-up
1495
+ * to land in the incentive. We'll add the protocol fee on top automatically.
1496
+ *
1497
+ * @public
1498
+ * @async
1499
+ * @param {bigint} boostId The ID of the Boost
1500
+ * @param {bigint} incentiveId The ID of the incentive within that Boost
1501
+ * @param {any} topupPayload A typed struct for the incentive’s top-up parameters
1502
+ * @param {?WriteParams} [params]
1503
+ * @returns {Promise<{ hash: Hex; result: void }>}
1504
+ */
1505
+ async topupIncentiveFromSenderPreFee(e, f, b, a) {
1506
+ const t = await this.getBoost(e, a);
1507
+ if (f >= t.incentives.length)
1508
+ throw new Error(`Incentive ID ${f} out of range`);
1509
+ const c = t.incentives[Number(f)];
1510
+ if (!c)
1511
+ throw new Error(`Incentive with ID ${f} not found`);
1512
+ if (!(b > 0))
1513
+ throw new Error("Top-up amount must be greater than zero");
1514
+ const n = await c.getTopupPayload(b);
1515
+ return await this.topupIncentiveFromSenderRaw(
1516
+ e,
1517
+ f,
1518
+ n,
1519
+ a
1520
+ );
1521
+ }
1522
+ /**
1523
+ * Prepares and executes a top-up from the caller (msg.sender), specifying the total
1524
+ * tokens you’re willing to provide (including fee). We'll back-calculate the net
1525
+ * top-up for the incentive.
1526
+ *
1527
+ * @public
1528
+ * @async
1529
+ * @param {bigint} boostId The ID of the Boost
1530
+ * @param {bigint} incentiveId The ID of the incentive within that Boost
1531
+ * @param {any} topupPayload A typed struct for the incentive’s top-up parameters
1532
+ * @param {bigint} totalAmount The entire tokens (top-up + fee)
1533
+ * @param {?WriteParams} [params]
1534
+ * @returns {Promise<{ hash: Hex; result: void }>}
1535
+ */
1536
+ async topupIncentiveFromSenderPostFee(e, f, b, a) {
1537
+ const t = await this.protocolFee(a), c = b * A / (A + t);
1538
+ return this.topupIncentiveFromSenderPreFee(
1539
+ e,
1540
+ f,
1541
+ c,
1542
+ a
1543
+ );
1544
+ }
1545
+ /**
1546
+ * A lower-level function that actually calls `topupIncentiveFromSender` on-chain,
1547
+ * passing the final total. The contract modifies its internal logic to split net top-up vs. fee.
1548
+ *
1549
+ * @private
1550
+ * @param {bigint} boostId
1551
+ * @param {bigint} incentiveId
1552
+ * @param {Hex} preflightData The raw ABudget.Transfer data from preflight
1553
+ * @param {?WriteParams} [params]
1554
+ * @returns {Promise<{ hash: Hex; result: void }>}
1555
+ */
1556
+ async topupIncentiveFromSenderRaw(e, f, b, a) {
1557
+ const { request: t, result: c } = await e0(
1558
+ this._config,
1559
+ {
1560
+ ...this.optionallyAttachAccount(),
1561
+ ...a,
1562
+ address: this.assertValidAddress(),
1563
+ args: [e, f, b]
1564
+ }
1565
+ );
1566
+ return { hash: await b0(
1567
+ this._config,
1568
+ t
1569
+ ), result: c };
1570
+ }
1571
+ /**
1572
+ * A lower-level function that actually calls `topupIncentiveFromBudget` on-chain,
1573
+ * passing the preflight data plus the final total. The contract itself modifies
1574
+ * the amount to (topup + fee).
1575
+ *
1576
+ * @private
1577
+ * @param {bigint} boostId
1578
+ * @param {bigint} incentiveId
1579
+ * @param {Hex} preflightData The raw ABudget.Transfer (encoded) from preflight
1580
+ * @param {Address} [budget] Optional override for the budget
1581
+ * @param {?WriteParams} [params]
1582
+ * @returns {Promise<{ hash: Hex; result: void }>}
1583
+ */
1584
+ async topupIncentiveFromBudgetRaw(e, f, b, a, t) {
1585
+ const { request: c, result: n } = await a0(
1586
+ this._config,
1587
+ {
1588
+ ...this.optionallyAttachAccount(),
1589
+ ...t,
1590
+ address: this.assertValidAddress(),
1591
+ args: [e, f, b, a ?? m]
1592
+ }
1593
+ );
1594
+ return { hash: await t0(
1595
+ this._config,
1596
+ c
1597
+ ), result: n };
1598
+ }
1437
1599
  };
1438
- _.addresses = y;
1600
+ _.addresses = P;
1439
1601
  let D = _;
1440
1602
  export {
1441
- O0 as BOOST_CORE_ADDRESS,
1442
- y as BOOST_CORE_ADDRESSES,
1603
+ O1 as BOOST_CORE_ADDRESS,
1604
+ P as BOOST_CORE_ADDRESSES,
1443
1605
  D as BoostCore,
1444
- f0 as FEE_DENOMINATOR,
1606
+ A as FEE_DENOMINATOR,
1445
1607
  C as boostCoreAbi
1446
1608
  };
1447
1609
  //# sourceMappingURL=BoostCore.js.map