@kapa123456789/sdk 0.0.37 → 0.0.39

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 (1273) hide show
  1. package/copyPackageJson.d.ts +1 -0
  2. package/copyPackageJson.js +82 -0
  3. package/eslint.config.mjs +17 -0
  4. package/handleCDNWorkers.d.ts +1 -0
  5. package/handleCDNWorkers.js +88 -0
  6. package/jest.config.ts +10 -0
  7. package/package.json +1 -1
  8. package/project.json +35 -0
  9. package/src/functions/integrations/swapApi.ts +19 -0
  10. package/src/functions/utils/getErc20Token.ts +13 -0
  11. package/src/functions/utils/getFeeStructure.ts +1 -0
  12. package/src/functions/utils/preProcessing.ts +1 -0
  13. package/src/functions/utils/refreshBalance.ts +6 -0
  14. package/src/providers/EthersProviderAdapter.ts +4 -0
  15. package/src/providers/SolanaProviderAdapter.ts +3 -0
  16. package/src/providers/TronProviderAdapter.ts +3 -0
  17. package/src/providers/WagmiProviderAdapter.ts +4 -0
  18. package/src/providers/prepareEthersHinkal.ts +17 -0
  19. package/src/providers/prepareSolanaHinkal.ts +23 -0
  20. package/src/providers/prepareTronHinkal.ts +17 -0
  21. package/src/providers/prepareWagmiHinkal.ts +16 -0
  22. package/src/services/Hinkal.ts +372 -0
  23. package/src/types/IHinkal.ts +193 -0
  24. package/src/types/IProviderAdapter.ts +1 -0
  25. package/src/types/balances.types.ts +6 -0
  26. package/src/types/external-action.types.ts +1 -0
  27. package/src/types/fee.types.ts +1 -0
  28. package/src/types/privateTypes.ts +8 -0
  29. package/src/types/token.types.ts +1 -0
  30. package/tsconfig.json +23 -0
  31. package/tsconfig.lib.json +10 -0
  32. package/tsconfig.spec.json +14 -0
  33. package/vite.config.ts +141 -0
  34. package/vite.config.workers.node.ts +76 -0
  35. package/vite.config.workers.ts +45 -0
  36. package/_virtual/_rolldown/runtime.cjs +0 -1
  37. package/_virtual/_rolldown/runtime.mjs +0 -7
  38. package/common/src/API/API.cjs +0 -1
  39. package/common/src/API/API.d.ts +0 -135
  40. package/common/src/API/API.mjs +0 -137
  41. package/common/src/API/accessCodeCalls.cjs +0 -1
  42. package/common/src/API/accessCodeCalls.d.ts +0 -23
  43. package/common/src/API/accessCodeCalls.mjs +0 -12
  44. package/common/src/API/admin-calls.cjs +0 -1
  45. package/common/src/API/admin-calls.d.ts +0 -9
  46. package/common/src/API/admin-calls.mjs +0 -7
  47. package/common/src/API/brotherhoodCalls.cjs +0 -1
  48. package/common/src/API/brotherhoodCalls.d.ts +0 -82
  49. package/common/src/API/brotherhoodCalls.mjs +0 -16
  50. package/common/src/API/callLifiAPI.cjs +0 -1
  51. package/common/src/API/callLifiAPI.d.ts +0 -33
  52. package/common/src/API/callLifiAPI.mjs +0 -7
  53. package/common/src/API/callMonitor.cjs +0 -1
  54. package/common/src/API/callMonitor.d.ts +0 -9
  55. package/common/src/API/callMonitor.mjs +0 -7
  56. package/common/src/API/callOdosAPI.cjs +0 -1
  57. package/common/src/API/callOdosAPI.d.ts +0 -63
  58. package/common/src/API/callOdosAPI.mjs +0 -17
  59. package/common/src/API/callOkxAPI.cjs +0 -1
  60. package/common/src/API/callOkxAPI.d.ts +0 -10
  61. package/common/src/API/callOkxAPI.mjs +0 -9
  62. package/common/src/API/callOneInchAPI.cjs +0 -1
  63. package/common/src/API/callOneInchAPI.d.ts +0 -18
  64. package/common/src/API/callOneInchAPI.mjs +0 -12
  65. package/common/src/API/callRelayer.cjs +0 -1
  66. package/common/src/API/callRelayer.d.ts +0 -41
  67. package/common/src/API/callRelayer.mjs +0 -15
  68. package/common/src/API/checkRisk.d.ts +0 -1
  69. package/common/src/API/dashboardAccountCalls.cjs +0 -1
  70. package/common/src/API/dashboardAccountCalls.d.ts +0 -24
  71. package/common/src/API/dashboardAccountCalls.mjs +0 -9
  72. package/common/src/API/dashboardAccountMemberCalls.cjs +0 -1
  73. package/common/src/API/dashboardAccountMemberCalls.d.ts +0 -34
  74. package/common/src/API/dashboardAccountMemberCalls.mjs +0 -15
  75. package/common/src/API/dashboardBalanceCalls.cjs +0 -1
  76. package/common/src/API/dashboardBalanceCalls.d.ts +0 -12
  77. package/common/src/API/dashboardBalanceCalls.mjs +0 -12
  78. package/common/src/API/dashboardContactCalls.cjs +0 -1
  79. package/common/src/API/dashboardContactCalls.d.ts +0 -9
  80. package/common/src/API/dashboardContactCalls.mjs +0 -12
  81. package/common/src/API/dashboardPayoutCalls.cjs +0 -1
  82. package/common/src/API/dashboardPayoutCalls.d.ts +0 -14
  83. package/common/src/API/dashboardPayoutCalls.mjs +0 -12
  84. package/common/src/API/dashboardTransactionCalls.cjs +0 -1
  85. package/common/src/API/dashboardTransactionCalls.d.ts +0 -3
  86. package/common/src/API/dashboardTransactionCalls.mjs +0 -9
  87. package/common/src/API/deposit-and-withdraw-status-calls.cjs +0 -1
  88. package/common/src/API/deposit-and-withdraw-status-calls.d.ts +0 -21
  89. package/common/src/API/deposit-and-withdraw-status-calls.mjs +0 -13
  90. package/common/src/API/enclaveRecipientInfoCalls.d.ts +0 -12
  91. package/common/src/API/enclaveSignatureCalls.cjs +0 -1
  92. package/common/src/API/enclaveSignatureCalls.d.ts +0 -10
  93. package/common/src/API/enclaveSignatureCalls.mjs +0 -14
  94. package/common/src/API/enclaveUtxoCalls.cjs +0 -1
  95. package/common/src/API/enclaveUtxoCalls.d.ts +0 -40
  96. package/common/src/API/enclaveUtxoCalls.mjs +0 -23
  97. package/common/src/API/fetchCommitmentsCache.cjs +0 -1
  98. package/common/src/API/fetchCommitmentsCache.d.ts +0 -29
  99. package/common/src/API/fetchCommitmentsCache.mjs +0 -27
  100. package/common/src/API/generate-trading-points.cjs +0 -1
  101. package/common/src/API/generate-trading-points.d.ts +0 -27
  102. package/common/src/API/generate-trading-points.mjs +0 -22
  103. package/common/src/API/get-token-data.cjs +0 -1
  104. package/common/src/API/get-token-data.d.ts +0 -6
  105. package/common/src/API/get-token-data.mjs +0 -7
  106. package/common/src/API/get-token-price-chart-data.cjs +0 -1
  107. package/common/src/API/get-token-price-chart-data.d.ts +0 -16
  108. package/common/src/API/get-token-price-chart-data.mjs +0 -10
  109. package/common/src/API/getAnyRecipientInfo.d.ts +0 -1
  110. package/common/src/API/getCoingeckoPrice.d.ts +0 -21
  111. package/common/src/API/getGasEstimates.cjs +0 -1
  112. package/common/src/API/getGasEstimates.d.ts +0 -10
  113. package/common/src/API/getGasEstimates.mjs +0 -11
  114. package/common/src/API/getServerURL.cjs +0 -1
  115. package/common/src/API/getServerURL.d.ts +0 -7
  116. package/common/src/API/getServerURL.mjs +0 -14
  117. package/common/src/API/getTokenPrice.cjs +0 -1
  118. package/common/src/API/getTokenPrice.d.ts +0 -10
  119. package/common/src/API/getTokenPrice.mjs +0 -10
  120. package/common/src/API/getWebsiteURL.d.ts +0 -5
  121. package/common/src/API/index.d.ts +0 -24
  122. package/common/src/API/kycCalls.cjs +0 -1
  123. package/common/src/API/kycCalls.d.ts +0 -19
  124. package/common/src/API/kycCalls.mjs +0 -32
  125. package/common/src/API/leaderboardCalls.cjs +0 -1
  126. package/common/src/API/leaderboardCalls.d.ts +0 -14
  127. package/common/src/API/leaderboardCalls.mjs +0 -7
  128. package/common/src/API/onrampCalls.cjs +0 -1
  129. package/common/src/API/onrampCalls.d.ts +0 -20
  130. package/common/src/API/onrampCalls.mjs +0 -10
  131. package/common/src/API/privacy-score-calls.cjs +0 -1
  132. package/common/src/API/privacy-score-calls.d.ts +0 -17
  133. package/common/src/API/privacy-score-calls.mjs +0 -17
  134. package/common/src/API/privateSendEmailNotificationsCalls.cjs +0 -1
  135. package/common/src/API/privateSendEmailNotificationsCalls.d.ts +0 -8
  136. package/common/src/API/privateSendEmailNotificationsCalls.mjs +0 -7
  137. package/common/src/API/privateSendNonceCalls.cjs +0 -1
  138. package/common/src/API/privateSendNonceCalls.d.ts +0 -13
  139. package/common/src/API/privateSendNonceCalls.mjs +0 -14
  140. package/common/src/API/privateSendRecipientInfoCalls.cjs +0 -1
  141. package/common/src/API/privateSendRecipientInfoCalls.d.ts +0 -11
  142. package/common/src/API/privateSendRecipientInfoCalls.mjs +0 -7
  143. package/common/src/API/proxyAccountsCalls.cjs +0 -1
  144. package/common/src/API/proxyAccountsCalls.d.ts +0 -6
  145. package/common/src/API/proxyAccountsCalls.mjs +0 -22
  146. package/common/src/API/referralsCalls.cjs +0 -1
  147. package/common/src/API/referralsCalls.d.ts +0 -22
  148. package/common/src/API/referralsCalls.mjs +0 -10
  149. package/common/src/API/relayCalls.cjs +0 -1
  150. package/common/src/API/relayCalls.d.ts +0 -5
  151. package/common/src/API/relayCalls.mjs +0 -7
  152. package/common/src/API/resolve-sns.d.ts +0 -1
  153. package/common/src/API/rewardsUserCalls.cjs +0 -1
  154. package/common/src/API/rewardsUserCalls.d.ts +0 -60
  155. package/common/src/API/rewardsUserCalls.mjs +0 -15
  156. package/common/src/API/scheduled-transactions-calls.cjs +0 -1
  157. package/common/src/API/scheduled-transactions-calls.d.ts +0 -14
  158. package/common/src/API/scheduled-transactions-calls.mjs +0 -11
  159. package/common/src/API/seedless-calls.cjs +0 -1
  160. package/common/src/API/seedless-calls.d.ts +0 -53
  161. package/common/src/API/seedless-calls.mjs +0 -7
  162. package/common/src/API/send-telegram-callback.cjs +0 -1
  163. package/common/src/API/send-telegram-callback.d.ts +0 -7
  164. package/common/src/API/send-telegram-callback.mjs +0 -10
  165. package/common/src/API/simulate-batch-tx.cjs +0 -1
  166. package/common/src/API/simulate-batch-tx.d.ts +0 -3
  167. package/common/src/API/simulate-batch-tx.mjs +0 -10
  168. package/common/src/API/simulate-transaction.cjs +0 -1
  169. package/common/src/API/simulate-transaction.d.ts +0 -5
  170. package/common/src/API/simulate-transaction.mjs +0 -13
  171. package/common/src/API/snapshot-event-calls.cjs +0 -1
  172. package/common/src/API/snapshot-event-calls.d.ts +0 -7
  173. package/common/src/API/snapshot-event-calls.mjs +0 -11
  174. package/common/src/API/solana-calls.cjs +0 -1
  175. package/common/src/API/solana-calls.d.ts +0 -38
  176. package/common/src/API/solana-calls.mjs +0 -7
  177. package/common/src/API/temporaryWalletCalls.cjs +0 -1
  178. package/common/src/API/temporaryWalletCalls.d.ts +0 -13
  179. package/common/src/API/temporaryWalletCalls.mjs +0 -15
  180. package/common/src/API/tenderly.api.d.ts +0 -19
  181. package/common/src/API/token-calls.cjs +0 -1
  182. package/common/src/API/token-calls.d.ts +0 -2
  183. package/common/src/API/token-calls.mjs +0 -11
  184. package/common/src/API/tronSubsidyCalls.cjs +0 -1
  185. package/common/src/API/tronSubsidyCalls.d.ts +0 -13
  186. package/common/src/API/tronSubsidyCalls.mjs +0 -7
  187. package/common/src/API/weeklyAnalyticCalls.cjs +0 -1
  188. package/common/src/API/weeklyAnalyticCalls.d.ts +0 -22
  189. package/common/src/API/weeklyAnalyticCalls.mjs +0 -10
  190. package/common/src/constants/activity.constants.d.ts +0 -2
  191. package/common/src/constants/addresses.constants.cjs +0 -1
  192. package/common/src/constants/addresses.constants.d.ts +0 -61
  193. package/common/src/constants/addresses.constants.mjs +0 -61
  194. package/common/src/constants/assets.constants.d.ts +0 -13
  195. package/common/src/constants/auth.constants.cjs +0 -1
  196. package/common/src/constants/auth.constants.d.ts +0 -1
  197. package/common/src/constants/auth.constants.mjs +0 -4
  198. package/common/src/constants/backend.constants.d.ts +0 -12
  199. package/common/src/constants/balance.constants.d.ts +0 -1
  200. package/common/src/constants/bridging.constants.d.ts +0 -9
  201. package/common/src/constants/chains.constants.cjs +0 -1
  202. package/common/src/constants/chains.constants.d.ts +0 -42
  203. package/common/src/constants/chains.constants.mjs +0 -183
  204. package/common/src/constants/coingecko.constants.d.ts +0 -39
  205. package/common/src/constants/contracts.constants.cjs +0 -1
  206. package/common/src/constants/contracts.constants.d.ts +0 -119
  207. package/common/src/constants/contracts.constants.mjs +0 -53
  208. package/common/src/constants/conversion.constants.d.ts +0 -1
  209. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +0 -1
  210. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +0 -4216
  211. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +0 -1
  212. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +0 -4478
  213. package/common/src/constants/deploy-data/deploy-data-base.json.cjs +0 -1
  214. package/common/src/constants/deploy-data/deploy-data-base.json.mjs +0 -4228
  215. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +0 -1
  216. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +0 -4230
  217. package/common/src/constants/deploy-data/deploy-data-localhost.json.cjs +0 -1
  218. package/common/src/constants/deploy-data/deploy-data-localhost.json.mjs +0 -3087
  219. package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +0 -1
  220. package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +0 -4228
  221. package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +0 -1
  222. package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +0 -4228
  223. package/common/src/constants/deploy-data/deploy-data-solana.json.cjs +0 -1
  224. package/common/src/constants/deploy-data/deploy-data-solana.json.mjs +0 -7
  225. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +0 -1
  226. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +0 -4267
  227. package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +0 -1
  228. package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +0 -4267
  229. package/common/src/constants/deploy-data/index.d.ts +0 -11
  230. package/common/src/constants/events.constants.d.ts +0 -1
  231. package/common/src/constants/fees.constants.cjs +0 -1
  232. package/common/src/constants/fees.constants.d.ts +0 -5
  233. package/common/src/constants/fees.constants.mjs +0 -10
  234. package/common/src/constants/function-signatures.constants.d.ts +0 -4
  235. package/common/src/constants/images.constants.d.ts +0 -1
  236. package/common/src/constants/index.d.ts +0 -37
  237. package/common/src/constants/kyc.constants.cjs +0 -1
  238. package/common/src/constants/kyc.constants.d.ts +0 -29
  239. package/common/src/constants/kyc.constants.mjs +0 -126
  240. package/common/src/constants/lifi.constants.cjs +0 -1
  241. package/common/src/constants/lifi.constants.d.ts +0 -3
  242. package/common/src/constants/lifi.constants.mjs +0 -5
  243. package/common/src/constants/link.constant.d.ts +0 -1
  244. package/common/src/constants/mediaUrls.constants.d.ts +0 -42
  245. package/common/src/constants/mystery-boxes.constants.d.ts +0 -0
  246. package/common/src/constants/oauthUrls.constants.d.ts +0 -4
  247. package/common/src/constants/okx.constants.d.ts +0 -2
  248. package/common/src/constants/pay.constants.d.ts +0 -1
  249. package/common/src/constants/permit2.constants.cjs +0 -1
  250. package/common/src/constants/permit2.constants.d.ts +0 -7
  251. package/common/src/constants/permit2.constants.mjs +0 -9
  252. package/common/src/constants/presale.constants.d.ts +0 -87
  253. package/common/src/constants/protocol.constants.cjs +0 -1
  254. package/common/src/constants/protocol.constants.d.ts +0 -60
  255. package/common/src/constants/protocol.constants.mjs +0 -13
  256. package/common/src/constants/reorg-depths.constants.cjs +0 -1
  257. package/common/src/constants/reorg-depths.constants.d.ts +0 -14
  258. package/common/src/constants/reorg-depths.constants.mjs +0 -17
  259. package/common/src/constants/rewards.constants.d.ts +0 -17
  260. package/common/src/constants/save-depths.cjs +0 -1
  261. package/common/src/constants/save-depths.d.ts +0 -16
  262. package/common/src/constants/save-depths.mjs +0 -19
  263. package/common/src/constants/schedule.constants.d.ts +0 -2
  264. package/common/src/constants/server.constants.cjs +0 -1
  265. package/common/src/constants/server.constants.d.ts +0 -139
  266. package/common/src/constants/server.constants.mjs +0 -132
  267. package/common/src/constants/tasks.constants.d.ts +0 -9
  268. package/common/src/constants/token-data/ERC20Registry.cjs +0 -1
  269. package/common/src/constants/token-data/ERC20Registry.d.ts +0 -3
  270. package/common/src/constants/token-data/ERC20Registry.mjs +0 -31
  271. package/common/src/constants/token-data/arbMainnetRegistry.json.cjs +0 -1
  272. package/common/src/constants/token-data/arbMainnetRegistry.json.mjs +0 -1841
  273. package/common/src/constants/token-data/arcTestnetRegistry.json.cjs +0 -1
  274. package/common/src/constants/token-data/arcTestnetRegistry.json.mjs +0 -435
  275. package/common/src/constants/token-data/baseRegistry.json.cjs +0 -1
  276. package/common/src/constants/token-data/baseRegistry.json.mjs +0 -1142
  277. package/common/src/constants/token-data/ethMainnetRegistry.json.cjs +0 -1
  278. package/common/src/constants/token-data/ethMainnetRegistry.json.mjs +0 -4274
  279. package/common/src/constants/token-data/index.d.ts +0 -1149
  280. package/common/src/constants/token-data/localhostRegistry.json.cjs +0 -1
  281. package/common/src/constants/token-data/localhostRegistry.json.mjs +0 -2758
  282. package/common/src/constants/token-data/optimismRegistry.json.cjs +0 -1
  283. package/common/src/constants/token-data/optimismRegistry.json.mjs +0 -709
  284. package/common/src/constants/token-data/polygonRegistry.json.cjs +0 -1
  285. package/common/src/constants/token-data/polygonRegistry.json.mjs +0 -2317
  286. package/common/src/constants/token-data/solanaLocalnetRegistry.json.cjs +0 -1
  287. package/common/src/constants/token-data/solanaLocalnetRegistry.json.mjs +0 -17
  288. package/common/src/constants/token-data/solanaMainnetRegistry.json.cjs +0 -1
  289. package/common/src/constants/token-data/solanaMainnetRegistry.json.mjs +0 -625
  290. package/common/src/constants/token-data/tronMainnetRegistry.json.cjs +0 -1
  291. package/common/src/constants/token-data/tronMainnetRegistry.json.mjs +0 -17
  292. package/common/src/constants/token-data/tronNileRegistry.json.cjs +0 -1
  293. package/common/src/constants/token-data/tronNileRegistry.json.mjs +0 -17
  294. package/common/src/constants/token.limits.constants.d.ts +0 -5
  295. package/common/src/constants/tokens.constants.d.ts +0 -4
  296. package/common/src/constants/tx-confirmation.constants.cjs +0 -1
  297. package/common/src/constants/tx-confirmation.constants.d.ts +0 -4
  298. package/common/src/constants/tx-confirmation.constants.mjs +0 -4
  299. package/common/src/constants/vite.constants.cjs +0 -1
  300. package/common/src/constants/vite.constants.d.ts +0 -15
  301. package/common/src/constants/vite.constants.mjs +0 -26
  302. package/common/src/constants/wallet.constants.d.ts +0 -2
  303. package/common/src/crypto/babyJub.cjs +0 -1
  304. package/common/src/crypto/babyJub.d.ts +0 -16
  305. package/common/src/crypto/babyJub.mjs +0 -13
  306. package/common/src/crypto/index.d.ts +0 -3
  307. package/common/src/crypto/poseidon.cjs +0 -1
  308. package/common/src/crypto/poseidon.d.ts +0 -15
  309. package/common/src/crypto/poseidon.mjs +0 -23
  310. package/common/src/crypto/preProcessing.cjs +0 -1
  311. package/common/src/crypto/preProcessing.d.ts +0 -1
  312. package/common/src/crypto/preProcessing.mjs +0 -15
  313. package/common/src/data-structures/AccountActions/AccountActions.cjs +0 -1
  314. package/common/src/data-structures/AccountActions/AccountActions.d.ts +0 -17
  315. package/common/src/data-structures/AccountActions/AccountActions.mjs +0 -65
  316. package/common/src/data-structures/AccountActions/index.d.ts +0 -1
  317. package/common/src/data-structures/ApprovalDBs/EventsPublicApprovalsDB.d.ts +0 -18
  318. package/common/src/data-structures/ApprovalDBs/index.d.ts +0 -1
  319. package/common/src/data-structures/BlockchainEvent/BlockchainEvent.cjs +0 -1
  320. package/common/src/data-structures/BlockchainEvent/BlockchainEvent.d.ts +0 -14
  321. package/common/src/data-structures/BlockchainEvent/BlockchainEvent.mjs +0 -41
  322. package/common/src/data-structures/Hinkal/Hinkal.cjs +0 -1
  323. package/common/src/data-structures/Hinkal/Hinkal.d.ts +0 -114
  324. package/common/src/data-structures/Hinkal/Hinkal.mjs +0 -430
  325. package/common/src/data-structures/Hinkal/HinkalPrivateBalanceController.cjs +0 -1
  326. package/common/src/data-structures/Hinkal/HinkalPrivateBalanceController.d.ts +0 -19
  327. package/common/src/data-structures/Hinkal/HinkalPrivateBalanceController.mjs +0 -239
  328. package/common/src/data-structures/Hinkal/IHinkal.d.ts +0 -102
  329. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +0 -1
  330. package/common/src/data-structures/Hinkal/handleAutoDepositBack.d.ts +0 -3
  331. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +0 -89
  332. package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +0 -1
  333. package/common/src/data-structures/Hinkal/hinkalActionReceive.d.ts +0 -7
  334. package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +0 -21
  335. package/common/src/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.cjs +0 -1
  336. package/common/src/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.d.ts +0 -3
  337. package/common/src/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.mjs +0 -15
  338. package/common/src/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +0 -1
  339. package/common/src/data-structures/Hinkal/hinkalCheckTokenRegistry.d.ts +0 -4
  340. package/common/src/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +0 -17
  341. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +0 -1
  342. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.d.ts +0 -6
  343. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +0 -54
  344. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +0 -1
  345. package/common/src/data-structures/Hinkal/hinkalDeposit.d.ts +0 -4
  346. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +0 -64
  347. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +0 -1
  348. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.d.ts +0 -4
  349. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +0 -115
  350. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +0 -1
  351. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +0 -5
  352. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +0 -78
  353. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +0 -1
  354. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +0 -8
  355. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +0 -75
  356. package/common/src/data-structures/Hinkal/hinkalGetRecipientInfo.cjs +0 -1
  357. package/common/src/data-structures/Hinkal/hinkalGetRecipientInfo.d.ts +0 -2
  358. package/common/src/data-structures/Hinkal/hinkalGetRecipientInfo.mjs +0 -9
  359. package/common/src/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +0 -1
  360. package/common/src/data-structures/Hinkal/hinkalGetZkMeProvider.d.ts +0 -28
  361. package/common/src/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +0 -22
  362. package/common/src/data-structures/Hinkal/hinkalMultiSend.cjs +0 -1
  363. package/common/src/data-structures/Hinkal/hinkalMultiSend.d.ts +0 -3
  364. package/common/src/data-structures/Hinkal/hinkalMultiSend.mjs +0 -12
  365. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +0 -1
  366. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.d.ts +0 -6
  367. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +0 -52
  368. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +0 -1
  369. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +0 -5
  370. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +0 -167
  371. package/common/src/data-structures/Hinkal/hinkalProxySwap.cjs +0 -1
  372. package/common/src/data-structures/Hinkal/hinkalProxySwap.d.ts +0 -7
  373. package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +0 -24
  374. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +0 -1
  375. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.d.ts +0 -6
  376. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +0 -28
  377. package/common/src/data-structures/Hinkal/hinkalSignSubAccount.cjs +0 -1
  378. package/common/src/data-structures/Hinkal/hinkalSignSubAccount.d.ts +0 -4
  379. package/common/src/data-structures/Hinkal/hinkalSignSubAccount.mjs +0 -14
  380. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +0 -1
  381. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.d.ts +0 -5
  382. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +0 -95
  383. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +0 -1
  384. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +0 -7
  385. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +0 -72
  386. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +0 -1
  387. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +0 -6
  388. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +0 -166
  389. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.cjs +0 -1
  390. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.d.ts +0 -5
  391. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.mjs +0 -21
  392. package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +0 -1
  393. package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.d.ts +0 -6
  394. package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.mjs +0 -36
  395. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +0 -1
  396. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.d.ts +0 -6
  397. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +0 -71
  398. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +0 -1
  399. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +0 -6
  400. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +0 -78
  401. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +0 -1
  402. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.d.ts +0 -4
  403. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +0 -99
  404. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +0 -1
  405. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.d.ts +0 -31
  406. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +0 -94
  407. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +0 -1
  408. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +0 -4
  409. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +0 -78
  410. package/common/src/data-structures/Hinkal/hinkalSwap.cjs +0 -1
  411. package/common/src/data-structures/Hinkal/hinkalSwap.d.ts +0 -7
  412. package/common/src/data-structures/Hinkal/hinkalSwap.mjs +0 -48
  413. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +0 -1
  414. package/common/src/data-structures/Hinkal/hinkalTransfer.d.ts +0 -4
  415. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +0 -57
  416. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +0 -1
  417. package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +0 -7
  418. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +0 -62
  419. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +0 -1
  420. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.d.ts +0 -3
  421. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +0 -139
  422. package/common/src/data-structures/Hinkal/index.d.ts +0 -19
  423. package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +0 -1
  424. package/common/src/data-structures/Hinkal/resetMerkleTrees.d.ts +0 -2
  425. package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +0 -58
  426. package/common/src/data-structures/IndexedDB/activity-db.cjs +0 -1
  427. package/common/src/data-structures/IndexedDB/activity-db.d.ts +0 -14
  428. package/common/src/data-structures/IndexedDB/activity-db.mjs +0 -105
  429. package/common/src/data-structures/IndexedDB/balances-db.d.ts +0 -13
  430. package/common/src/data-structures/IndexedDB/contact-db.d.ts +0 -11
  431. package/common/src/data-structures/IndexedDB/index.d.ts +0 -8
  432. package/common/src/data-structures/IndexedDB/key-val-store.cjs +0 -1
  433. package/common/src/data-structures/IndexedDB/key-val-store.d.ts +0 -6
  434. package/common/src/data-structures/IndexedDB/key-val-store.mjs +0 -41
  435. package/common/src/data-structures/IndexedDB/pay-activity-db.d.ts +0 -9
  436. package/common/src/data-structures/IndexedDB/prices-db.cjs +0 -1
  437. package/common/src/data-structures/IndexedDB/prices-db.d.ts +0 -9
  438. package/common/src/data-structures/IndexedDB/prices-db.mjs +0 -54
  439. package/common/src/data-structures/IndexedDB/private-balances-db.cjs +0 -1
  440. package/common/src/data-structures/IndexedDB/private-balances-db.d.ts +0 -9
  441. package/common/src/data-structures/IndexedDB/private-balances-db.mjs +0 -21
  442. package/common/src/data-structures/IndexedDB/signatures-db.d.ts +0 -10
  443. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +0 -1
  444. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +0 -20
  445. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +0 -73
  446. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.d.ts +0 -19
  447. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.d.ts +0 -11
  448. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +0 -19
  449. package/common/src/data-structures/TokenDBs/IPublicTokensDB.d.ts +0 -6
  450. package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +0 -1
  451. package/common/src/data-structures/TokenDBs/PrivateTokensDB.d.ts +0 -11
  452. package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +0 -49
  453. package/common/src/data-structures/TokenDBs/PublicTokensDB.d.ts +0 -9
  454. package/common/src/data-structures/TokenDBs/index.d.ts +0 -4
  455. package/common/src/data-structures/TokenDBs/token-visibility-db.cjs +0 -1
  456. package/common/src/data-structures/TokenDBs/token-visibility-db.d.ts +0 -17
  457. package/common/src/data-structures/TokenDBs/token-visibility-db.mjs +0 -78
  458. package/common/src/data-structures/ValueCache/ValueCache.d.ts +0 -10
  459. package/common/src/data-structures/ValueCache/index.d.ts +0 -1
  460. package/common/src/data-structures/cacheDevices/AttachableMemoryCacheDevice.cjs +0 -1
  461. package/common/src/data-structures/cacheDevices/AttachableMemoryCacheDevice.d.ts +0 -8
  462. package/common/src/data-structures/cacheDevices/AttachableMemoryCacheDevice.mjs +0 -26
  463. package/common/src/data-structures/cacheDevices/BaseCacheDevice.cjs +0 -1
  464. package/common/src/data-structures/cacheDevices/BaseCacheDevice.d.ts +0 -11
  465. package/common/src/data-structures/cacheDevices/BaseCacheDevice.mjs +0 -21
  466. package/common/src/data-structures/cacheDevices/FileCacheDevice.cjs +0 -1
  467. package/common/src/data-structures/cacheDevices/FileCacheDevice.d.ts +0 -10
  468. package/common/src/data-structures/cacheDevices/FileCacheDevice.mjs +0 -40
  469. package/common/src/data-structures/cacheDevices/LocalStorageCacheDevice.cjs +0 -1
  470. package/common/src/data-structures/cacheDevices/LocalStorageCacheDevice.d.ts +0 -8
  471. package/common/src/data-structures/cacheDevices/LocalStorageCacheDevice.mjs +0 -21
  472. package/common/src/data-structures/cacheDevices/index.d.ts +0 -2
  473. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +0 -1
  474. package/common/src/data-structures/crypto-keys/decodeUTXO.d.ts +0 -26
  475. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +0 -74
  476. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +0 -1
  477. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.d.ts +0 -18
  478. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +0 -22
  479. package/common/src/data-structures/crypto-keys/index.d.ts +0 -4
  480. package/common/src/data-structures/crypto-keys/keyUtils.cjs +0 -1
  481. package/common/src/data-structures/crypto-keys/keyUtils.d.ts +0 -2
  482. package/common/src/data-structures/crypto-keys/keyUtils.mjs +0 -8
  483. package/common/src/data-structures/crypto-keys/keys.cjs +0 -1
  484. package/common/src/data-structures/crypto-keys/keys.d.ts +0 -87
  485. package/common/src/data-structures/crypto-keys/keys.mjs +0 -99
  486. package/common/src/data-structures/custom-token-registry/CustomTokenRegistry.cjs +0 -1
  487. package/common/src/data-structures/custom-token-registry/CustomTokenRegistry.d.ts +0 -12
  488. package/common/src/data-structures/custom-token-registry/CustomTokenRegistry.mjs +0 -25
  489. package/common/src/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +0 -1
  490. package/common/src/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +0 -35
  491. package/common/src/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +0 -73
  492. package/common/src/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +0 -1
  493. package/common/src/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.d.ts +0 -34
  494. package/common/src/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.mjs +0 -91
  495. package/common/src/data-structures/event-service/evm/AbstractEventService.cjs +0 -1
  496. package/common/src/data-structures/event-service/evm/AbstractEventService.d.ts +0 -14
  497. package/common/src/data-structures/event-service/evm/AbstractEventService.mjs +0 -34
  498. package/common/src/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +0 -1
  499. package/common/src/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +0 -22
  500. package/common/src/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +0 -43
  501. package/common/src/data-structures/event-service/evm/AbstractSnapshotService.cjs +0 -1
  502. package/common/src/data-structures/event-service/evm/AbstractSnapshotService.d.ts +0 -22
  503. package/common/src/data-structures/event-service/evm/AbstractSnapshotService.mjs +0 -33
  504. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +0 -1
  505. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +0 -37
  506. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +0 -104
  507. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +0 -1
  508. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +0 -11
  509. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +0 -21
  510. package/common/src/data-structures/event-service/evm/PollingBlockchainEventEmitter.d.ts +0 -6
  511. package/common/src/data-structures/event-service/helpers/ClientEventHelper.cjs +0 -1
  512. package/common/src/data-structures/event-service/helpers/ClientEventHelper.d.ts +0 -10
  513. package/common/src/data-structures/event-service/helpers/ClientEventHelper.mjs +0 -28
  514. package/common/src/data-structures/event-service/helpers/PollingEventHelper.d.ts +0 -7
  515. package/common/src/data-structures/event-service/index.d.ts +0 -16
  516. package/common/src/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +0 -1
  517. package/common/src/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +0 -35
  518. package/common/src/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +0 -74
  519. package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +0 -1
  520. package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.d.ts +0 -34
  521. package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +0 -96
  522. package/common/src/data-structures/event-service/solana/AbstractSolanaEventService.cjs +0 -1
  523. package/common/src/data-structures/event-service/solana/AbstractSolanaEventService.d.ts +0 -17
  524. package/common/src/data-structures/event-service/solana/AbstractSolanaEventService.mjs +0 -39
  525. package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +0 -1
  526. package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +0 -22
  527. package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +0 -43
  528. package/common/src/data-structures/event-service/solana/AbstractSolanaSnapshotService.cjs +0 -1
  529. package/common/src/data-structures/event-service/solana/AbstractSolanaSnapshotService.d.ts +0 -21
  530. package/common/src/data-structures/event-service/solana/AbstractSolanaSnapshotService.mjs +0 -30
  531. package/common/src/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.cjs +0 -1
  532. package/common/src/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.d.ts +0 -11
  533. package/common/src/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.mjs +0 -22
  534. package/common/src/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.d.ts +0 -6
  535. package/common/src/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +0 -1
  536. package/common/src/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +0 -42
  537. package/common/src/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +0 -178
  538. package/common/src/data-structures/http/BasicHttpClient.cjs +0 -1
  539. package/common/src/data-structures/http/BasicHttpClient.d.ts +0 -11
  540. package/common/src/data-structures/http/BasicHttpClient.mjs +0 -25
  541. package/common/src/data-structures/http/HttpClient.cjs +0 -1
  542. package/common/src/data-structures/http/HttpClient.d.ts +0 -10
  543. package/common/src/data-structures/http/HttpClient.mjs +0 -14
  544. package/common/src/data-structures/http/index.d.ts +0 -2
  545. package/common/src/data-structures/index.d.ts +0 -20
  546. package/common/src/data-structures/merkle-tree/MerkleTree.cjs +0 -1
  547. package/common/src/data-structures/merkle-tree/MerkleTree.d.ts +0 -82
  548. package/common/src/data-structures/merkle-tree/MerkleTree.mjs +0 -116
  549. package/common/src/data-structures/merkle-tree/MerkleTreeIncompleteError.cjs +0 -1
  550. package/common/src/data-structures/merkle-tree/MerkleTreeIncompleteError.d.ts +0 -3
  551. package/common/src/data-structures/merkle-tree/MerkleTreeIncompleteError.mjs +0 -8
  552. package/common/src/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.cjs +0 -1
  553. package/common/src/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.d.ts +0 -2
  554. package/common/src/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.mjs +0 -13
  555. package/common/src/data-structures/merkle-tree/index.d.ts +0 -3
  556. package/common/src/data-structures/presale/PresaleContractWrapper.d.ts +0 -23
  557. package/common/src/data-structures/presale/index.d.ts +0 -1
  558. package/common/src/data-structures/provider-adapter/IProviderAdapter.d.ts +0 -40
  559. package/common/src/data-structures/snapshot/SnapshotFetcherService.cjs +0 -1
  560. package/common/src/data-structures/snapshot/SnapshotFetcherService.d.ts +0 -15
  561. package/common/src/data-structures/snapshot/SnapshotFetcherService.mjs +0 -37
  562. package/common/src/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +0 -1
  563. package/common/src/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.d.ts +0 -8
  564. package/common/src/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +0 -28
  565. package/common/src/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +0 -1
  566. package/common/src/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.d.ts +0 -8
  567. package/common/src/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +0 -22
  568. package/common/src/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +0 -1
  569. package/common/src/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.d.ts +0 -8
  570. package/common/src/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +0 -20
  571. package/common/src/data-structures/snapshot/index.d.ts +0 -7
  572. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +0 -1
  573. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.d.ts +0 -8
  574. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +0 -25
  575. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +0 -1
  576. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.d.ts +0 -8
  577. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +0 -22
  578. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +0 -1
  579. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.d.ts +0 -8
  580. package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +0 -20
  581. package/common/src/data-structures/token-price-fetcher/TokenChecker.cjs +0 -1
  582. package/common/src/data-structures/token-price-fetcher/TokenChecker.d.ts +0 -9
  583. package/common/src/data-structures/token-price-fetcher/TokenChecker.mjs +0 -16
  584. package/common/src/data-structures/token-price-fetcher/index.d.ts +0 -1
  585. package/common/src/data-structures/transactions-manager/history/history.types.d.ts +0 -16
  586. package/common/src/data-structures/transactions-manager/index.d.ts +0 -1
  587. package/common/src/data-structures/utxo/Utxo.cjs +0 -1
  588. package/common/src/data-structures/utxo/Utxo.d.ts +0 -63
  589. package/common/src/data-structures/utxo/Utxo.mjs +0 -112
  590. package/common/src/error-handling/customErrors/ErrorWithAmount.cjs +0 -1
  591. package/common/src/error-handling/customErrors/ErrorWithAmount.d.ts +0 -4
  592. package/common/src/error-handling/customErrors/ErrorWithAmount.mjs +0 -9
  593. package/common/src/error-handling/customErrors/ErrorWithIndex.d.ts +0 -4
  594. package/common/src/error-handling/customErrors/ErrorWithTx.cjs +0 -1
  595. package/common/src/error-handling/customErrors/ErrorWithTx.d.ts +0 -4
  596. package/common/src/error-handling/customErrors/ErrorWithTx.mjs +0 -9
  597. package/common/src/error-handling/customErrors/FeeOverTransactionValueError.cjs +0 -1
  598. package/common/src/error-handling/customErrors/FeeOverTransactionValueError.d.ts +0 -9
  599. package/common/src/error-handling/customErrors/FeeOverTransactionValueError.mjs +0 -9
  600. package/common/src/error-handling/customErrors/HttpError.d.ts +0 -4
  601. package/common/src/error-handling/customErrors/SimulationFailureError.d.ts +0 -10
  602. package/common/src/error-handling/customErrors/customErrors.helpers.cjs +0 -1
  603. package/common/src/error-handling/customErrors/customErrors.helpers.d.ts +0 -5
  604. package/common/src/error-handling/customErrors/customErrors.helpers.mjs +0 -12
  605. package/common/src/error-handling/customErrors/index.d.ts +0 -7
  606. package/common/src/error-handling/error-codes.constants.cjs +0 -2
  607. package/common/src/error-handling/error-codes.constants.d.ts +0 -248
  608. package/common/src/error-handling/error-codes.constants.mjs +0 -240
  609. package/common/src/error-handling/get-error.message.cjs +0 -1
  610. package/common/src/error-handling/get-error.message.d.ts +0 -5
  611. package/common/src/error-handling/get-error.message.mjs +0 -72
  612. package/common/src/error-handling/index.d.ts +0 -6
  613. package/common/src/error-handling/isInsufficientFundsError.cjs +0 -1
  614. package/common/src/error-handling/isInsufficientFundsError.d.ts +0 -1
  615. package/common/src/error-handling/isInsufficientFundsError.mjs +0 -16
  616. package/common/src/error-handling/logError.cjs +0 -1
  617. package/common/src/error-handling/logError.d.ts +0 -1
  618. package/common/src/error-handling/logError.mjs +0 -7
  619. package/common/src/error-handling/logger.cjs +0 -1
  620. package/common/src/error-handling/logger.d.ts +0 -5
  621. package/common/src/error-handling/logger.mjs +0 -19
  622. package/common/src/error-handling/retrySolanaError.cjs +0 -1
  623. package/common/src/error-handling/retrySolanaError.d.ts +0 -1
  624. package/common/src/error-handling/retrySolanaError.mjs +0 -4
  625. package/common/src/error-handling/types.cjs +0 -1
  626. package/common/src/error-handling/types.d.ts +0 -10
  627. package/common/src/error-handling/types.mjs +0 -6
  628. package/common/src/externalABIs/BUSD.d.ts +0 -38
  629. package/common/src/externalABIs/BabPassport.json.cjs +0 -1
  630. package/common/src/externalABIs/BabPassport.json.mjs +0 -20
  631. package/common/src/externalABIs/DAI.d.ts +0 -45
  632. package/common/src/externalABIs/ERC1155.json.cjs +0 -1
  633. package/common/src/externalABIs/ERC1155.json.mjs +0 -287
  634. package/common/src/externalABIs/ERC20.json.cjs +0 -1
  635. package/common/src/externalABIs/ERC20.json.mjs +0 -257
  636. package/common/src/externalABIs/ERC721.json.cjs +0 -1
  637. package/common/src/externalABIs/ERC721.json.mjs +0 -299
  638. package/common/src/externalABIs/GalxePassport.json.cjs +0 -1
  639. package/common/src/externalABIs/GalxePassport.json.mjs +0 -37
  640. package/common/src/externalABIs/IQuoterV2.json.cjs +0 -1
  641. package/common/src/externalABIs/IQuoterV2.json.mjs +0 -203
  642. package/common/src/externalABIs/ISwapRouter.json.cjs +0 -1
  643. package/common/src/externalABIs/ISwapRouter.json.mjs +0 -537
  644. package/common/src/externalABIs/IUniswapV3Factory.json.cjs +0 -1
  645. package/common/src/externalABIs/IUniswapV3Factory.json.mjs +0 -188
  646. package/common/src/externalABIs/IUniswapV3Pool.json.cjs +0 -1
  647. package/common/src/externalABIs/IUniswapV3Pool.json.mjs +0 -938
  648. package/common/src/externalABIs/SanctionsList.d.ts +0 -35
  649. package/common/src/externalABIs/USDC.d.ts +0 -28
  650. package/common/src/externalABIs/USDR.d.ts +0 -28
  651. package/common/src/externalABIs/USDR3CRV.d.ts +0 -49
  652. package/common/src/externalABIs/USDT.d.ts +0 -41
  653. package/common/src/externalABIs/UniswapV2PoolAbi.json.cjs +0 -1
  654. package/common/src/externalABIs/UniswapV2PoolAbi.json.mjs +0 -78
  655. package/common/src/externalABIs/WETH.d.ts +0 -38
  656. package/common/src/externalABIs/amToken.d.ts +0 -28
  657. package/common/src/externalABIs/index.cjs +0 -1
  658. package/common/src/externalABIs/index.d.ts +0 -254
  659. package/common/src/externalABIs/index.mjs +0 -13
  660. package/common/src/externalABIs/swapAbi.cjs +0 -1
  661. package/common/src/externalABIs/swapAbi.d.ts +0 -77
  662. package/common/src/externalABIs/swapAbi.mjs +0 -249
  663. package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.cjs +0 -1
  664. package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.d.ts +0 -9
  665. package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.mjs +0 -22
  666. package/common/src/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs +0 -1
  667. package/common/src/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.d.ts +0 -3
  668. package/common/src/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.mjs +0 -20
  669. package/common/src/functions/auto-deposit-back-helpers/index.d.ts +0 -4
  670. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.cjs +0 -1
  671. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.d.ts +0 -13
  672. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.mjs +0 -30
  673. package/common/src/functions/auto-deposit-back-helpers/update-hinkal.cjs +0 -1
  674. package/common/src/functions/auto-deposit-back-helpers/update-hinkal.d.ts +0 -3
  675. package/common/src/functions/auto-deposit-back-helpers/update-hinkal.mjs +0 -22
  676. package/common/src/functions/connectors.types.d.ts +0 -22
  677. package/common/src/functions/index.d.ts +0 -14
  678. package/common/src/functions/kyc/aiPriseHelper.d.ts +0 -0
  679. package/common/src/functions/kyc/checkTokenLimitsUSD.cjs +0 -1
  680. package/common/src/functions/kyc/checkTokenLimitsUSD.d.ts +0 -1
  681. package/common/src/functions/kyc/checkTokenLimitsUSD.mjs +0 -24
  682. package/common/src/functions/kyc/index.d.ts +0 -4
  683. package/common/src/functions/kyc/openDefaultPassportWindow.cjs +0 -1
  684. package/common/src/functions/kyc/openDefaultPassportWindow.d.ts +0 -1
  685. package/common/src/functions/kyc/openDefaultPassportWindow.mjs +0 -7
  686. package/common/src/functions/kyc/passportHelper.d.ts +0 -3
  687. package/common/src/functions/kyc/zkMeHelper.cjs +0 -1
  688. package/common/src/functions/kyc/zkMeHelper.d.ts +0 -4
  689. package/common/src/functions/kyc/zkMeHelper.mjs +0 -42
  690. package/common/src/functions/pre-transaction/addressTableLookup.d.ts +0 -4
  691. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +0 -1
  692. package/common/src/functions/pre-transaction/buildCommitmentValidationData.d.ts +0 -4
  693. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +0 -53
  694. package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.d.ts +0 -2
  695. package/common/src/functions/pre-transaction/constructAdminData.cjs +0 -1
  696. package/common/src/functions/pre-transaction/constructAdminData.d.ts +0 -3
  697. package/common/src/functions/pre-transaction/constructAdminData.mjs +0 -26
  698. package/common/src/functions/pre-transaction/convert-okx-instructions.cjs +0 -1
  699. package/common/src/functions/pre-transaction/convert-okx-instructions.d.ts +0 -11
  700. package/common/src/functions/pre-transaction/convert-okx-instructions.mjs +0 -34
  701. package/common/src/functions/pre-transaction/ensureAmountChanges.cjs +0 -1
  702. package/common/src/functions/pre-transaction/ensureAmountChanges.d.ts +0 -2
  703. package/common/src/functions/pre-transaction/ensureAmountChanges.mjs +0 -10
  704. package/common/src/functions/pre-transaction/getExternalSwapAddress.cjs +0 -1
  705. package/common/src/functions/pre-transaction/getExternalSwapAddress.d.ts +0 -2
  706. package/common/src/functions/pre-transaction/getExternalSwapAddress.mjs +0 -27
  707. package/common/src/functions/pre-transaction/getFeeStructure.cjs +0 -1
  708. package/common/src/functions/pre-transaction/getFeeStructure.d.ts +0 -5
  709. package/common/src/functions/pre-transaction/getFeeStructure.mjs +0 -20
  710. package/common/src/functions/pre-transaction/getFlatFees.d.ts +0 -11
  711. package/common/src/functions/pre-transaction/getKycAndSignatureData.cjs +0 -1
  712. package/common/src/functions/pre-transaction/getKycAndSignatureData.d.ts +0 -5
  713. package/common/src/functions/pre-transaction/getKycAndSignatureData.mjs +0 -12
  714. package/common/src/functions/pre-transaction/getSignatureDataForTransact.cjs +0 -1
  715. package/common/src/functions/pre-transaction/getSignatureDataForTransact.d.ts +0 -3
  716. package/common/src/functions/pre-transaction/getSignatureDataForTransact.mjs +0 -6
  717. package/common/src/functions/pre-transaction/getSolanaCalldataHash.cjs +0 -1
  718. package/common/src/functions/pre-transaction/getSolanaCalldataHash.d.ts +0 -4
  719. package/common/src/functions/pre-transaction/getSolanaCalldataHash.mjs +0 -38
  720. package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +0 -1
  721. package/common/src/functions/pre-transaction/getVolatileTransferAmount.d.ts +0 -9
  722. package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +0 -31
  723. package/common/src/functions/pre-transaction/index.d.ts +0 -22
  724. package/common/src/functions/pre-transaction/initTokenLimitIfNeeded.d.ts +0 -3
  725. package/common/src/functions/pre-transaction/interaction-to-action.d.ts +0 -2
  726. package/common/src/functions/pre-transaction/merge-with-fee-structure-emporium.cjs +0 -1
  727. package/common/src/functions/pre-transaction/merge-with-fee-structure-emporium.d.ts +0 -3
  728. package/common/src/functions/pre-transaction/merge-with-fee-structure-emporium.mjs +0 -16
  729. package/common/src/functions/pre-transaction/merge-with-fee-structure.cjs +0 -1
  730. package/common/src/functions/pre-transaction/merge-with-fee-structure.d.ts +0 -2
  731. package/common/src/functions/pre-transaction/merge-with-fee-structure.mjs +0 -20
  732. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +0 -1
  733. package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +0 -5
  734. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +0 -30
  735. package/common/src/functions/pre-transaction/process-gas-estimates.cjs +0 -1
  736. package/common/src/functions/pre-transaction/process-gas-estimates.d.ts +0 -5
  737. package/common/src/functions/pre-transaction/process-gas-estimates.mjs +0 -25
  738. package/common/src/functions/pre-transaction/recipientUtxoProcessing.cjs +0 -1
  739. package/common/src/functions/pre-transaction/recipientUtxoProcessing.d.ts +0 -3
  740. package/common/src/functions/pre-transaction/recipientUtxoProcessing.mjs +0 -30
  741. package/common/src/functions/pre-transaction/sendInitNullifiersTransaction.d.ts +0 -11
  742. package/common/src/functions/pre-transaction/sendV0Transaction.cjs +0 -1
  743. package/common/src/functions/pre-transaction/sendV0Transaction.d.ts +0 -18
  744. package/common/src/functions/pre-transaction/sendV0Transaction.mjs +0 -81
  745. package/common/src/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs +0 -1
  746. package/common/src/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.d.ts +0 -6
  747. package/common/src/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs +0 -11
  748. package/common/src/functions/pre-transaction/solana-public-signals.d.ts +0 -20
  749. package/common/src/functions/pre-transaction/solana.cjs +0 -1
  750. package/common/src/functions/pre-transaction/solana.d.ts +0 -18
  751. package/common/src/functions/pre-transaction/solana.mjs +0 -50
  752. package/common/src/functions/pre-transaction/solanaTransfer.utils.cjs +0 -1
  753. package/common/src/functions/pre-transaction/solanaTransfer.utils.d.ts +0 -6
  754. package/common/src/functions/pre-transaction/solanaTransfer.utils.mjs +0 -22
  755. package/common/src/functions/pre-transaction/store-instructions.d.ts +0 -4
  756. package/common/src/functions/pre-transaction/store-proof.d.ts +0 -7
  757. package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs +0 -1
  758. package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.d.ts +0 -3
  759. package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs +0 -29
  760. package/common/src/functions/private-wallet/emporium.helpers.cjs +0 -1
  761. package/common/src/functions/private-wallet/emporium.helpers.d.ts +0 -37
  762. package/common/src/functions/private-wallet/emporium.helpers.mjs +0 -128
  763. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +0 -1
  764. package/common/src/functions/private-wallet/emporium.swap.helpers.d.ts +0 -4
  765. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +0 -107
  766. package/common/src/functions/private-wallet/index.d.ts +0 -3
  767. package/common/src/functions/private-wallet/opProducer.d.ts +0 -5
  768. package/common/src/functions/snarkjs/common.snarkjs.cjs +0 -1
  769. package/common/src/functions/snarkjs/common.snarkjs.d.ts +0 -28
  770. package/common/src/functions/snarkjs/common.snarkjs.mjs +0 -89
  771. package/common/src/functions/snarkjs/constant.cjs +0 -1
  772. package/common/src/functions/snarkjs/constant.d.ts +0 -425
  773. package/common/src/functions/snarkjs/constant.mjs +0 -431
  774. package/common/src/functions/snarkjs/constructEmporiumProof.cjs +0 -1
  775. package/common/src/functions/snarkjs/constructEmporiumProof.d.ts +0 -13
  776. package/common/src/functions/snarkjs/constructEmporiumProof.mjs +0 -68
  777. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +0 -1
  778. package/common/src/functions/snarkjs/constructGeneralZkProof.d.ts +0 -13
  779. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +0 -54
  780. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +0 -1
  781. package/common/src/functions/snarkjs/constructSolanaZkProof.d.ts +0 -13
  782. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +0 -43
  783. package/common/src/functions/snarkjs/fetchMerkleTreeSiblings.cjs +0 -1
  784. package/common/src/functions/snarkjs/fetchMerkleTreeSiblings.d.ts +0 -11
  785. package/common/src/functions/snarkjs/fetchMerkleTreeSiblings.mjs +0 -18
  786. package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +0 -1
  787. package/common/src/functions/snarkjs/fetchOnChainRootHashes.d.ts +0 -4
  788. package/common/src/functions/snarkjs/fetchOnChainRootHashes.mjs +0 -37
  789. package/common/src/functions/snarkjs/generateCircomData.cjs +0 -1
  790. package/common/src/functions/snarkjs/generateCircomData.d.ts +0 -5
  791. package/common/src/functions/snarkjs/generateCircomData.mjs +0 -35
  792. package/common/src/functions/snarkjs/generateZkProof.cjs +0 -1
  793. package/common/src/functions/snarkjs/generateZkProof.d.ts +0 -5
  794. package/common/src/functions/snarkjs/generateZkProof.mjs +0 -14
  795. package/common/src/functions/snarkjs/generateZkProofEnclave.cjs +0 -1
  796. package/common/src/functions/snarkjs/generateZkProofEnclave.d.ts +0 -5
  797. package/common/src/functions/snarkjs/generateZkProofEnclave.mjs +0 -26
  798. package/common/src/functions/snarkjs/generateZkProofSelf.cjs +0 -1
  799. package/common/src/functions/snarkjs/generateZkProofSelf.d.ts +0 -5
  800. package/common/src/functions/snarkjs/generateZkProofSelf.mjs +0 -25
  801. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.cjs +0 -1
  802. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.d.ts +0 -23
  803. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.mjs +0 -130
  804. package/common/src/functions/snarkjs/getOriginalSender.cjs +0 -1
  805. package/common/src/functions/snarkjs/getOriginalSender.d.ts +0 -1
  806. package/common/src/functions/snarkjs/getOriginalSender.mjs +0 -5
  807. package/common/src/functions/snarkjs/getZKFiles.cjs +0 -1
  808. package/common/src/functions/snarkjs/getZKFiles.d.ts +0 -3
  809. package/common/src/functions/snarkjs/getZKFiles.mjs +0 -7
  810. package/common/src/functions/snarkjs/index.d.ts +0 -7
  811. package/common/src/functions/snarkjs/verifyCommitmentValidationData.d.ts +0 -4
  812. package/common/src/functions/utils/addresses.cjs +0 -1
  813. package/common/src/functions/utils/addresses.d.ts +0 -10
  814. package/common/src/functions/utils/addresses.mjs +0 -27
  815. package/common/src/functions/utils/amounts.utils.cjs +0 -1
  816. package/common/src/functions/utils/amounts.utils.d.ts +0 -25
  817. package/common/src/functions/utils/amounts.utils.mjs +0 -29
  818. package/common/src/functions/utils/arraysMatch.d.ts +0 -1
  819. package/common/src/functions/utils/auth.utils.cjs +0 -1
  820. package/common/src/functions/utils/auth.utils.d.ts +0 -5
  821. package/common/src/functions/utils/auth.utils.mjs +0 -7
  822. package/common/src/functions/utils/buildClaimableDepositPlan.d.ts +0 -15
  823. package/common/src/functions/utils/bytes32.utils.cjs +0 -1
  824. package/common/src/functions/utils/bytes32.utils.d.ts +0 -2
  825. package/common/src/functions/utils/bytes32.utils.mjs +0 -9
  826. package/common/src/functions/utils/cacheDevice.utils.cjs +0 -1
  827. package/common/src/functions/utils/cacheDevice.utils.d.ts +0 -3
  828. package/common/src/functions/utils/cacheDevice.utils.mjs +0 -15
  829. package/common/src/functions/utils/cacheFunctions.cjs +0 -1
  830. package/common/src/functions/utils/cacheFunctions.d.ts +0 -20
  831. package/common/src/functions/utils/cacheFunctions.mjs +0 -25
  832. package/common/src/functions/utils/caseInsensitive.utils.cjs +0 -1
  833. package/common/src/functions/utils/caseInsensitive.utils.d.ts +0 -3
  834. package/common/src/functions/utils/caseInsensitive.utils.mjs +0 -4
  835. package/common/src/functions/utils/convertEmporiumOpToCallInfo.cjs +0 -1
  836. package/common/src/functions/utils/convertEmporiumOpToCallInfo.d.ts +0 -2
  837. package/common/src/functions/utils/convertEmporiumOpToCallInfo.mjs +0 -19
  838. package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.d.ts +0 -3
  839. package/common/src/functions/utils/create-provider.cjs +0 -1
  840. package/common/src/functions/utils/create-provider.d.ts +0 -4
  841. package/common/src/functions/utils/create-provider.mjs +0 -11
  842. package/common/src/functions/utils/deposit-claimable.utils.d.ts +0 -6
  843. package/common/src/functions/utils/dispatchBalanceRefreshes.d.ts +0 -4
  844. package/common/src/functions/utils/enclave-recipient-info-storage.d.ts +0 -2
  845. package/common/src/functions/utils/enclave-signature-storage.d.ts +0 -2
  846. package/common/src/functions/utils/enclave-utxo-storage.d.ts +0 -6
  847. package/common/src/functions/utils/encodeTokenWithId.cjs +0 -1
  848. package/common/src/functions/utils/encodeTokenWithId.d.ts +0 -2
  849. package/common/src/functions/utils/encodeTokenWithId.mjs +0 -8
  850. package/common/src/functions/utils/encryptInputForEnclave.cjs +0 -1
  851. package/common/src/functions/utils/encryptInputForEnclave.d.ts +0 -8
  852. package/common/src/functions/utils/encryptInputForEnclave.mjs +0 -33
  853. package/common/src/functions/utils/enum.utils.cjs +0 -1
  854. package/common/src/functions/utils/enum.utils.d.ts +0 -9
  855. package/common/src/functions/utils/enum.utils.mjs +0 -12
  856. package/common/src/functions/utils/erc20tokenFunctions.cjs +0 -1
  857. package/common/src/functions/utils/erc20tokenFunctions.d.ts +0 -15
  858. package/common/src/functions/utils/erc20tokenFunctions.mjs +0 -11
  859. package/common/src/functions/utils/evmNetworkFunctions.d.ts +0 -3
  860. package/common/src/functions/utils/external-action.utils.cjs +0 -1
  861. package/common/src/functions/utils/external-action.utils.d.ts +0 -3
  862. package/common/src/functions/utils/external-action.utils.mjs +0 -6
  863. package/common/src/functions/utils/fees.utils.cjs +0 -1
  864. package/common/src/functions/utils/fees.utils.d.ts +0 -5
  865. package/common/src/functions/utils/fees.utils.mjs +0 -26
  866. package/common/src/functions/utils/formatter.d.ts +0 -1
  867. package/common/src/functions/utils/get-signature-header.cjs +0 -1
  868. package/common/src/functions/utils/get-signature-header.d.ts +0 -5
  869. package/common/src/functions/utils/get-signature-header.mjs +0 -4
  870. package/common/src/functions/utils/getBlockExplorerUrl.d.ts +0 -1
  871. package/common/src/functions/utils/getContractAddress.cjs +0 -1
  872. package/common/src/functions/utils/getContractAddress.d.ts +0 -2
  873. package/common/src/functions/utils/getContractAddress.mjs +0 -8
  874. package/common/src/functions/utils/getDataFromTransaction.d.ts +0 -33
  875. package/common/src/functions/utils/getRecipientInfoFromUserKeys.cjs +0 -1
  876. package/common/src/functions/utils/getRecipientInfoFromUserKeys.d.ts +0 -2
  877. package/common/src/functions/utils/getRecipientInfoFromUserKeys.mjs +0 -14
  878. package/common/src/functions/utils/getSignerFromContract.cjs +0 -1
  879. package/common/src/functions/utils/getSignerFromContract.d.ts +0 -3
  880. package/common/src/functions/utils/getSignerFromContract.mjs +0 -13
  881. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +0 -1
  882. package/common/src/functions/utils/getUtxosFromReceipt.utils.d.ts +0 -6
  883. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +0 -28
  884. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +0 -1
  885. package/common/src/functions/utils/getUtxosFromReceiptSolana.d.ts +0 -7
  886. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +0 -21
  887. package/common/src/functions/utils/getWalletGroupKey.utils.d.ts +0 -1
  888. package/common/src/functions/utils/inLogicMetadata.d.ts +0 -2
  889. package/common/src/functions/utils/index.d.ts +0 -66
  890. package/common/src/functions/utils/involves-permit2-op.cjs +0 -1
  891. package/common/src/functions/utils/involves-permit2-op.d.ts +0 -7
  892. package/common/src/functions/utils/involves-permit2-op.mjs +0 -5
  893. package/common/src/functions/utils/ipfs.d.ts +0 -8
  894. package/common/src/functions/utils/is-valid-url.d.ts +0 -1
  895. package/common/src/functions/utils/lifi.utils.d.ts +0 -3
  896. package/common/src/functions/utils/memoize.utils.d.ts +0 -1
  897. package/common/src/functions/utils/merkleTree.utils.cjs +0 -1
  898. package/common/src/functions/utils/merkleTree.utils.d.ts +0 -2
  899. package/common/src/functions/utils/merkleTree.utils.mjs +0 -10
  900. package/common/src/functions/utils/mutexes.utils.cjs +0 -1
  901. package/common/src/functions/utils/mutexes.utils.d.ts +0 -2
  902. package/common/src/functions/utils/mutexes.utils.mjs +0 -5
  903. package/common/src/functions/utils/networks.utils.d.ts +0 -1
  904. package/common/src/functions/utils/nftTokenFunctions.d.ts +0 -2
  905. package/common/src/functions/utils/nickname.utils.d.ts +0 -1
  906. package/common/src/functions/utils/pay-routing.utils.d.ts +0 -4
  907. package/common/src/functions/utils/postToOffscreen.cjs +0 -1
  908. package/common/src/functions/utils/postToOffscreen.d.ts +0 -2
  909. package/common/src/functions/utils/postToOffscreen.mjs +0 -9
  910. package/common/src/functions/utils/prepareHinkal.d.ts +0 -11
  911. package/common/src/functions/utils/process.utils.cjs +0 -1
  912. package/common/src/functions/utils/process.utils.d.ts +0 -13
  913. package/common/src/functions/utils/process.utils.mjs +0 -15
  914. package/common/src/functions/utils/proxyAvatar.utils.d.ts +0 -2
  915. package/common/src/functions/utils/publicBalance.utils.cjs +0 -1
  916. package/common/src/functions/utils/publicBalance.utils.d.ts +0 -7
  917. package/common/src/functions/utils/publicBalance.utils.mjs +0 -23
  918. package/common/src/functions/utils/reloadPage.cjs +0 -1
  919. package/common/src/functions/utils/reloadPage.d.ts +0 -1
  920. package/common/src/functions/utils/reloadPage.mjs +0 -4
  921. package/common/src/functions/utils/requireEnv.d.ts +0 -1
  922. package/common/src/functions/utils/resolve-sync.utils.cjs +0 -1
  923. package/common/src/functions/utils/resolve-sync.utils.d.ts +0 -6
  924. package/common/src/functions/utils/resolve-sync.utils.mjs +0 -20
  925. package/common/src/functions/utils/rpc-int-encode.d.ts +0 -1
  926. package/common/src/functions/utils/serialize-utxos.utils.d.ts +0 -3
  927. package/common/src/functions/utils/serialize.utils.cjs +0 -1
  928. package/common/src/functions/utils/serialize.utils.d.ts +0 -10
  929. package/common/src/functions/utils/serialize.utils.mjs +0 -7
  930. package/common/src/functions/utils/solanaMint.utils.cjs +0 -1
  931. package/common/src/functions/utils/solanaMint.utils.d.ts +0 -10
  932. package/common/src/functions/utils/solanaMint.utils.mjs +0 -18
  933. package/common/src/functions/utils/string.utils.cjs +0 -1
  934. package/common/src/functions/utils/string.utils.d.ts +0 -16
  935. package/common/src/functions/utils/string.utils.mjs +0 -18
  936. package/common/src/functions/utils/time.utils.cjs +0 -1
  937. package/common/src/functions/utils/time.utils.d.ts +0 -19
  938. package/common/src/functions/utils/time.utils.mjs +0 -8
  939. package/common/src/functions/utils/token-check.utils.cjs +0 -1
  940. package/common/src/functions/utils/token-check.utils.d.ts +0 -5
  941. package/common/src/functions/utils/token-check.utils.mjs +0 -11
  942. package/common/src/functions/utils/transfer-claimable.utils.d.ts +0 -9
  943. package/common/src/functions/utils/trimFieldValues.d.ts +0 -4
  944. package/common/src/functions/utils/tron.utils.cjs +0 -1
  945. package/common/src/functions/utils/tron.utils.d.ts +0 -33
  946. package/common/src/functions/utils/tron.utils.mjs +0 -149
  947. package/common/src/functions/utils/tronSimulation.utils.cjs +0 -1
  948. package/common/src/functions/utils/tronSimulation.utils.d.ts +0 -1
  949. package/common/src/functions/utils/tronSimulation.utils.mjs +0 -25
  950. package/common/src/functions/utils/tx-confirmation.utils.cjs +0 -1
  951. package/common/src/functions/utils/tx-confirmation.utils.d.ts +0 -10
  952. package/common/src/functions/utils/tx-confirmation.utils.mjs +0 -33
  953. package/common/src/functions/utils/upToDateState.cjs +0 -1
  954. package/common/src/functions/utils/upToDateState.d.ts +0 -2
  955. package/common/src/functions/utils/upToDateState.mjs +0 -9
  956. package/common/src/functions/utils/userAgent.d.ts +0 -1
  957. package/common/src/functions/utils/validateUsername.d.ts +0 -5
  958. package/common/src/functions/utils/walletBalances.utils.d.ts +0 -2
  959. package/common/src/functions/web3/EIP-712.d.ts +0 -23
  960. package/common/src/functions/web3/connectors.utils.d.ts +0 -7
  961. package/common/src/functions/web3/crypto.d.ts +0 -1
  962. package/common/src/functions/web3/etherFunctions.cjs +0 -1
  963. package/common/src/functions/web3/etherFunctions.d.ts +0 -20
  964. package/common/src/functions/web3/etherFunctions.mjs +0 -21
  965. package/common/src/functions/web3/events/balanceChangedHandler.cjs +0 -1
  966. package/common/src/functions/web3/events/balanceChangedHandler.d.ts +0 -5
  967. package/common/src/functions/web3/events/balanceChangedHandler.mjs +0 -20
  968. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +0 -1
  969. package/common/src/functions/web3/events/getInputUtxoAndBalance.d.ts +0 -38
  970. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +0 -111
  971. package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +0 -1
  972. package/common/src/functions/web3/events/getInputUtxosEnclave.d.ts +0 -8
  973. package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +0 -52
  974. package/common/src/functions/web3/events/getShieldedBalance.cjs +0 -1
  975. package/common/src/functions/web3/events/getShieldedBalance.d.ts +0 -18
  976. package/common/src/functions/web3/events/getShieldedBalance.mjs +0 -97
  977. package/common/src/functions/web3/events/getTransactionLogEvents.d.ts +0 -13
  978. package/common/src/functions/web3/events/index.d.ts +0 -4
  979. package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +0 -1
  980. package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.d.ts +0 -3
  981. package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +0 -8
  982. package/common/src/functions/web3/functionCalls/accessTokenCalls.cjs +0 -1
  983. package/common/src/functions/web3/functionCalls/accessTokenCalls.d.ts +0 -2
  984. package/common/src/functions/web3/functionCalls/accessTokenCalls.mjs +0 -18
  985. package/common/src/functions/web3/functionCalls/approveToken.cjs +0 -1
  986. package/common/src/functions/web3/functionCalls/approveToken.d.ts +0 -4
  987. package/common/src/functions/web3/functionCalls/approveToken.mjs +0 -113
  988. package/common/src/functions/web3/functionCalls/approveTokensToHinkal.cjs +0 -1
  989. package/common/src/functions/web3/functionCalls/approveTokensToHinkal.d.ts +0 -4
  990. package/common/src/functions/web3/functionCalls/approveTokensToHinkal.mjs +0 -11
  991. package/common/src/functions/web3/functionCalls/constructBatchCall.cjs +0 -1
  992. package/common/src/functions/web3/functionCalls/constructBatchCall.d.ts +0 -6
  993. package/common/src/functions/web3/functionCalls/constructBatchCall.mjs +0 -51
  994. package/common/src/functions/web3/functionCalls/estimateGasRelayer.d.ts +0 -4
  995. package/common/src/functions/web3/functionCalls/getRootHash.d.ts +0 -2
  996. package/common/src/functions/web3/functionCalls/recoverTransactionFromError.cjs +0 -1
  997. package/common/src/functions/web3/functionCalls/recoverTransactionFromError.d.ts +0 -2
  998. package/common/src/functions/web3/functionCalls/recoverTransactionFromError.mjs +0 -17
  999. package/common/src/functions/web3/functionCalls/relayFunctions.d.ts +0 -3
  1000. package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +0 -1
  1001. package/common/src/functions/web3/functionCalls/transactCallDirect.d.ts +0 -6
  1002. package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +0 -60
  1003. package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +0 -1
  1004. package/common/src/functions/web3/functionCalls/transactCallDirectTron.d.ts +0 -9
  1005. package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +0 -81
  1006. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +0 -1
  1007. package/common/src/functions/web3/functionCalls/transactCallRelayer.d.ts +0 -37
  1008. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +0 -61
  1009. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.cjs +0 -1
  1010. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.d.ts +0 -11
  1011. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.mjs +0 -41
  1012. package/common/src/functions/web3/getContractMetadata.cjs +0 -1
  1013. package/common/src/functions/web3/getContractMetadata.d.ts +0 -5
  1014. package/common/src/functions/web3/getContractMetadata.mjs +0 -23
  1015. package/common/src/functions/web3/getPublicAddressBalance.cjs +0 -1
  1016. package/common/src/functions/web3/getPublicAddressBalance.d.ts +0 -2
  1017. package/common/src/functions/web3/getPublicAddressBalance.mjs +0 -10
  1018. package/common/src/functions/web3/getSolanaPriorityFee.cjs +0 -1
  1019. package/common/src/functions/web3/getSolanaPriorityFee.d.ts +0 -3
  1020. package/common/src/functions/web3/getSolanaPriorityFee.mjs +0 -25
  1021. package/common/src/functions/web3/getTokenHolder.d.ts +0 -1
  1022. package/common/src/functions/web3/index.d.ts +0 -14
  1023. package/common/src/functions/web3/lifiAPI.cjs +0 -1
  1024. package/common/src/functions/web3/lifiAPI.d.ts +0 -6
  1025. package/common/src/functions/web3/lifiAPI.mjs +0 -37
  1026. package/common/src/functions/web3/odosAPI.cjs +0 -1
  1027. package/common/src/functions/web3/odosAPI.d.ts +0 -5
  1028. package/common/src/functions/web3/odosAPI.mjs +0 -33
  1029. package/common/src/functions/web3/okxAPI.cjs +0 -1
  1030. package/common/src/functions/web3/okxAPI.d.ts +0 -8
  1031. package/common/src/functions/web3/okxAPI.mjs +0 -33
  1032. package/common/src/functions/web3/oneInchAPI.cjs +0 -1
  1033. package/common/src/functions/web3/oneInchAPI.d.ts +0 -5
  1034. package/common/src/functions/web3/oneInchAPI.mjs +0 -31
  1035. package/common/src/functions/web3/runContractFunction.d.ts +0 -16
  1036. package/common/src/functions/web3/signAndSendSerializedTransaction.cjs +0 -1
  1037. package/common/src/functions/web3/signAndSendSerializedTransaction.d.ts +0 -2
  1038. package/common/src/functions/web3/signAndSendSerializedTransaction.mjs +0 -14
  1039. package/common/src/functions/web3/uniswapAPI.cjs +0 -1
  1040. package/common/src/functions/web3/uniswapAPI.d.ts +0 -16
  1041. package/common/src/functions/web3/uniswapAPI.mjs +0 -57
  1042. package/common/src/index.d.ts +0 -9
  1043. package/common/src/mutexes/index.d.ts +0 -1
  1044. package/common/src/mutexes/mutex.d.ts +0 -2
  1045. package/common/src/providers/EthersProviderAdapter.cjs +0 -1
  1046. package/common/src/providers/EthersProviderAdapter.d.ts +0 -36
  1047. package/common/src/providers/EthersProviderAdapter.mjs +0 -101
  1048. package/common/src/providers/SolanaProviderAdapter.cjs +0 -1
  1049. package/common/src/providers/SolanaProviderAdapter.d.ts +0 -52
  1050. package/common/src/providers/SolanaProviderAdapter.mjs +0 -147
  1051. package/common/src/providers/TronProviderAdapter.cjs +0 -1
  1052. package/common/src/providers/TronProviderAdapter.d.ts +0 -39
  1053. package/common/src/providers/TronProviderAdapter.mjs +0 -96
  1054. package/common/src/providers/WagmiProviderAdapter.cjs +0 -1
  1055. package/common/src/providers/WagmiProviderAdapter.d.ts +0 -46
  1056. package/common/src/providers/WagmiProviderAdapter.mjs +0 -189
  1057. package/common/src/providers/exportProviers.d.ts +0 -3
  1058. package/common/src/types/API.types.d.ts +0 -25
  1059. package/common/src/types/ICacheDevice.d.ts +0 -5
  1060. package/common/src/types/IMultiThreadedUtxoUtils.d.ts +0 -8
  1061. package/common/src/types/RewardUserEnums.d.ts +0 -11
  1062. package/common/src/types/TransactionSimulator.types.d.ts +0 -16
  1063. package/common/src/types/WeeklyAnalytics.types.d.ts +0 -37
  1064. package/common/src/types/activities.types.cjs +0 -1
  1065. package/common/src/types/activities.types.d.ts +0 -77
  1066. package/common/src/types/activities.types.mjs +0 -10
  1067. package/common/src/types/admin.types.cjs +0 -1
  1068. package/common/src/types/admin.types.d.ts +0 -49
  1069. package/common/src/types/admin.types.mjs +0 -6
  1070. package/common/src/types/all-points.types.d.ts +0 -7
  1071. package/common/src/types/approvals.types.d.ts +0 -41
  1072. package/common/src/types/balances.types.cjs +0 -1
  1073. package/common/src/types/balances.types.d.ts +0 -39
  1074. package/common/src/types/balances.types.mjs +0 -6
  1075. package/common/src/types/big-intable.types.d.ts +0 -3
  1076. package/common/src/types/bridging-tx.types.d.ts +0 -17
  1077. package/common/src/types/brotherhood-user.types.d.ts +0 -11
  1078. package/common/src/types/cache.types.cjs +0 -1
  1079. package/common/src/types/cache.types.d.ts +0 -57
  1080. package/common/src/types/cache.types.mjs +0 -6
  1081. package/common/src/types/chains.types.cjs +0 -1
  1082. package/common/src/types/chains.types.d.ts +0 -10
  1083. package/common/src/types/chains.types.mjs +0 -8
  1084. package/common/src/types/circom-data.types.cjs +0 -1
  1085. package/common/src/types/circom-data.types.d.ts +0 -107
  1086. package/common/src/types/circom-data.types.mjs +0 -10
  1087. package/common/src/types/coingecko.types.d.ts +0 -220
  1088. package/common/src/types/commitments.types.d.ts +0 -42
  1089. package/common/src/types/confirmation-request.types.d.ts +0 -10
  1090. package/common/src/types/connector.types.d.ts +0 -5
  1091. package/common/src/types/contacts.types.d.ts +0 -7
  1092. package/common/src/types/crypto.types.d.ts +0 -8
  1093. package/common/src/types/dashboard-account.d.ts +0 -101
  1094. package/common/src/types/dashboard-payout.types.d.ts +0 -29
  1095. package/common/src/types/dashboard-transaction.types.d.ts +0 -22
  1096. package/common/src/types/eip5792.types.cjs +0 -1
  1097. package/common/src/types/eip5792.types.d.ts +0 -33
  1098. package/common/src/types/eip5792.types.mjs +0 -6
  1099. package/common/src/types/ethereum-network.types.cjs +0 -1
  1100. package/common/src/types/ethereum-network.types.d.ts +0 -65
  1101. package/common/src/types/ethereum-network.types.mjs +0 -6
  1102. package/common/src/types/events.types.cjs +0 -1
  1103. package/common/src/types/events.types.d.ts +0 -6
  1104. package/common/src/types/events.types.mjs +0 -6
  1105. package/common/src/types/external-action.types.cjs +0 -1
  1106. package/common/src/types/external-action.types.d.ts +0 -17
  1107. package/common/src/types/external-action.types.mjs +0 -6
  1108. package/common/src/types/fee.types.cjs +0 -1
  1109. package/common/src/types/fee.types.d.ts +0 -13
  1110. package/common/src/types/fee.types.mjs +0 -6
  1111. package/common/src/types/generatePoints.d.ts +0 -14
  1112. package/common/src/types/hinkal.types.cjs +0 -1
  1113. package/common/src/types/hinkal.types.d.ts +0 -104
  1114. package/common/src/types/hinkal.types.mjs +0 -29
  1115. package/common/src/types/http.types.d.ts +0 -8
  1116. package/common/src/types/index.d.ts +0 -60
  1117. package/common/src/types/kyc.types.cjs +0 -1
  1118. package/common/src/types/kyc.types.d.ts +0 -41
  1119. package/common/src/types/kyc.types.mjs +0 -10
  1120. package/common/src/types/message.types.d.ts +0 -5
  1121. package/common/src/types/new-rewards.type.cjs +0 -1
  1122. package/common/src/types/new-rewards.type.d.ts +0 -153
  1123. package/common/src/types/new-rewards.type.mjs +0 -6
  1124. package/common/src/types/offscreen.types.cjs +0 -1
  1125. package/common/src/types/offscreen.types.d.ts +0 -9
  1126. package/common/src/types/offscreen.types.mjs +0 -6
  1127. package/common/src/types/okx.types.d.ts +0 -57
  1128. package/common/src/types/onramp.types.d.ts +0 -58
  1129. package/common/src/types/pay-activities.types.d.ts +0 -32
  1130. package/common/src/types/pay-routing.types.d.ts +0 -9
  1131. package/common/src/types/presaleReferral.types.d.ts +0 -4
  1132. package/common/src/types/proxy.types.d.ts +0 -19
  1133. package/common/src/types/referral.types.d.ts +0 -12
  1134. package/common/src/types/remote-proof.types.d.ts +0 -15
  1135. package/common/src/types/rewards.types.d.ts +0 -34
  1136. package/common/src/types/schedule.types.d.ts +0 -7
  1137. package/common/src/types/scheduled-transactions.types.cjs +0 -1
  1138. package/common/src/types/scheduled-transactions.types.d.ts +0 -42
  1139. package/common/src/types/scheduled-transactions.types.mjs +0 -6
  1140. package/common/src/types/session.types.d.ts +0 -13
  1141. package/common/src/types/signature.types.d.ts +0 -10
  1142. package/common/src/types/slippage.types.d.ts +0 -3
  1143. package/common/src/types/snark.types.d.ts +0 -40
  1144. package/common/src/types/solana.types.d.ts +0 -91
  1145. package/common/src/types/tenderly.api.types.d.ts +0 -196
  1146. package/common/src/types/token-prices.types.d.ts +0 -18
  1147. package/common/src/types/token-with-id.types.d.ts +0 -4
  1148. package/common/src/types/token.types.cjs +0 -1
  1149. package/common/src/types/token.types.d.ts +0 -88
  1150. package/common/src/types/token.types.mjs +0 -6
  1151. package/common/src/types/transaction.types.cjs +0 -1
  1152. package/common/src/types/transaction.types.d.ts +0 -161
  1153. package/common/src/types/transaction.types.mjs +0 -6
  1154. package/common/src/types/transactions.types.cjs +0 -1
  1155. package/common/src/types/transactions.types.d.ts +0 -79
  1156. package/common/src/types/transactions.types.mjs +0 -8
  1157. package/common/src/types/tron.types.d.ts +0 -15
  1158. package/common/src/types/wc.types.d.ts +0 -78
  1159. package/common/src/types/with-id.types.d.ts +0 -3
  1160. package/common/src/webworker/WorkerWrapper.cjs +0 -1
  1161. package/common/src/webworker/WorkerWrapper.d.ts +0 -9
  1162. package/common/src/webworker/WorkerWrapper.mjs +0 -22
  1163. package/common/src/webworker/logError-FeCdVeea.js +0 -1
  1164. package/common/src/webworker/package.json +0 -110
  1165. package/common/src/webworker/performTaskWithWorker.cjs +0 -1
  1166. package/common/src/webworker/performTaskWithWorker.d.ts +0 -5
  1167. package/common/src/webworker/performTaskWithWorker.mjs +0 -39
  1168. package/common/src/webworker/snarkjsWorker/snarkjsWorker.types.cjs +0 -1
  1169. package/common/src/webworker/snarkjsWorker/snarkjsWorker.types.d.ts +0 -14
  1170. package/common/src/webworker/snarkjsWorker/snarkjsWorker.types.mjs +0 -6
  1171. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.d.ts +0 -1
  1172. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +0 -1
  1173. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +0 -4
  1174. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLogic.d.ts +0 -2
  1175. package/common/src/webworker/snarkjsWorker/snarkjsWorkerNode.d.ts +0 -1
  1176. package/common/src/webworker/snarkjsWorkerNode.cjs +0 -122
  1177. package/common/src/webworker/utxoWorker/utxoWorker.types.cjs +0 -1
  1178. package/common/src/webworker/utxoWorker/utxoWorker.types.d.ts +0 -31
  1179. package/common/src/webworker/utxoWorker/utxoWorker.types.mjs +0 -6
  1180. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.d.ts +0 -1
  1181. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +0 -1
  1182. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +0 -4
  1183. package/common/src/webworker/utxoWorker/utxoWorkerLogic.d.ts +0 -5
  1184. package/common/src/webworker/utxoWorker/utxoWorkerNode.d.ts +0 -1
  1185. package/common/src/webworker/utxoWorkerNode.cjs +0 -1
  1186. package/common/src/webworker/viteWorkerURL.constant.cjs +0 -21
  1187. package/common/src/webworker/viteWorkerURL.constant.d.ts +0 -9
  1188. package/common/src/webworker/viteWorkerURL.constant.mjs +0 -21
  1189. package/common/src/webworker/worker.registry.cjs +0 -1
  1190. package/common/src/webworker/worker.registry.d.ts +0 -10
  1191. package/common/src/webworker/worker.registry.mjs +0 -10
  1192. package/common/src/webworker/worker.types.d.ts +0 -33
  1193. package/common/src/webworker/workerErrorHandler.d.ts +0 -1
  1194. package/common/src/webworker/workerFactory.cjs +0 -1
  1195. package/common/src/webworker/workerFactory.d.ts +0 -10
  1196. package/common/src/webworker/workerFactory.mjs +0 -28
  1197. package/common/src/webworker/workerProxy-5NFtWSKK.js +0 -1
  1198. package/common/src/webworker/workerProxy.d.ts +0 -39
  1199. package/common/src/webworker/workerThreadsPatch.d.ts +0 -2
  1200. package/common/src/webworker/zkProofWorker/zkProofWorker.types.cjs +0 -1
  1201. package/common/src/webworker/zkProofWorker/zkProofWorker.types.d.ts +0 -36
  1202. package/common/src/webworker/zkProofWorker/zkProofWorker.types.mjs +0 -6
  1203. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.d.ts +0 -1
  1204. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +0 -1
  1205. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +0 -4
  1206. package/common/src/webworker/zkProofWorker/zkProofWorkerLogic.d.ts +0 -5
  1207. package/common/src/webworker/zkProofWorker/zkProofWorkerNode.d.ts +0 -1
  1208. package/common/src/webworker/zkProofWorkerNode.cjs +0 -1
  1209. package/functions/index.cjs +0 -1
  1210. package/functions/index.mjs +0 -11
  1211. package/functions/integrations/index.cjs +0 -1
  1212. package/functions/integrations/index.mjs +0 -5
  1213. package/functions/integrations/swapApi.cjs +0 -1
  1214. package/functions/integrations/swapApi.d.ts +0 -9
  1215. package/functions/integrations/swapApi.mjs +0 -12
  1216. package/functions/utils/getErc20Token.cjs +0 -1
  1217. package/functions/utils/getErc20Token.d.ts +0 -2
  1218. package/functions/utils/getErc20Token.mjs +0 -11
  1219. package/functions/utils/getFeeStructure.cjs +0 -1
  1220. package/functions/utils/getFeeStructure.d.ts +0 -1
  1221. package/functions/utils/getFeeStructure.mjs +0 -1
  1222. package/functions/utils/index.cjs +0 -1
  1223. package/functions/utils/index.mjs +0 -6
  1224. package/functions/utils/preProcessing.cjs +0 -1
  1225. package/functions/utils/preProcessing.d.ts +0 -1
  1226. package/functions/utils/preProcessing.mjs +0 -1
  1227. package/functions/utils/refreshBalance.cjs +0 -1
  1228. package/functions/utils/refreshBalance.d.ts +0 -2
  1229. package/functions/utils/refreshBalance.mjs +0 -7
  1230. package/index.cjs +0 -1
  1231. package/index.mjs +0 -15
  1232. package/providers/EthersProviderAdapter.cjs +0 -1
  1233. package/providers/EthersProviderAdapter.d.ts +0 -3
  1234. package/providers/EthersProviderAdapter.mjs +0 -5
  1235. package/providers/SolanaProviderAdapter.cjs +0 -1
  1236. package/providers/SolanaProviderAdapter.d.ts +0 -2
  1237. package/providers/SolanaProviderAdapter.mjs +0 -5
  1238. package/providers/TronProviderAdapter.cjs +0 -1
  1239. package/providers/TronProviderAdapter.d.ts +0 -2
  1240. package/providers/TronProviderAdapter.mjs +0 -5
  1241. package/providers/WagmiProviderAdapter.cjs +0 -1
  1242. package/providers/WagmiProviderAdapter.d.ts +0 -3
  1243. package/providers/WagmiProviderAdapter.mjs +0 -5
  1244. package/providers/prepareEthersHinkal.cjs +0 -1
  1245. package/providers/prepareEthersHinkal.d.ts +0 -4
  1246. package/providers/prepareEthersHinkal.mjs +0 -12
  1247. package/providers/prepareSolanaHinkal.cjs +0 -1
  1248. package/providers/prepareSolanaHinkal.d.ts +0 -4
  1249. package/providers/prepareSolanaHinkal.mjs +0 -13
  1250. package/providers/prepareTronHinkal.cjs +0 -1
  1251. package/providers/prepareTronHinkal.d.ts +0 -4
  1252. package/providers/prepareTronHinkal.mjs +0 -13
  1253. package/providers/prepareWagmiHinkal.cjs +0 -1
  1254. package/providers/prepareWagmiHinkal.d.ts +0 -3
  1255. package/providers/prepareWagmiHinkal.mjs +0 -12
  1256. package/services/Hinkal.cjs +0 -1
  1257. package/services/Hinkal.d.ts +0 -52
  1258. package/services/Hinkal.mjs +0 -143
  1259. package/services/index.cjs +0 -1
  1260. package/services/index.mjs +0 -1
  1261. package/types/IHinkal.d.ts +0 -51
  1262. package/types/IProviderAdapter.d.ts +0 -1
  1263. package/types/balances.types.d.ts +0 -4
  1264. package/types/external-action.types.d.ts +0 -1
  1265. package/types/fee.types.d.ts +0 -1
  1266. package/types/privateTypes.d.ts +0 -5
  1267. package/types/token.types.d.ts +0 -1
  1268. /package/{functions/index.d.ts → src/functions/index.ts} +0 -0
  1269. /package/{functions/integrations/index.d.ts → src/functions/integrations/index.ts} +0 -0
  1270. /package/{functions/utils/index.d.ts → src/functions/utils/index.ts} +0 -0
  1271. /package/{index.d.ts → src/index.ts} +0 -0
  1272. /package/{services/index.d.ts → src/services/index.ts} +0 -0
  1273. /package/{types/index.d.ts → src/types/index.ts} +0 -0
@@ -1,122 +0,0 @@
1
- const e=require(`./workerProxy-5NFtWSKK.js`);let t=require(`worker_threads`),n=require(`buffer`),r=require(`process`);r=e.u(r);let i=require(`axios`);i=e.u(i);var a=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function o(e,t){if(!t||t==10)return BigInt(e);if(t==16)return e.slice(0,2)==`0x`?BigInt(e):BigInt(`0x`+e)}var s=o;function c(e,t){let n=BigInt(0);t=BigInt(t);for(let r=0;r<e.length;r++)n=n*t+BigInt(e[r]);return n}function l(e){let t=e.toString(16);return(t.length-1)*4+a[parseInt(t[0],16)]}function u(e){return BigInt(e)<BigInt(0)}function d(e){return!e}function f(e,t){return BigInt(e)<<BigInt(t)}function p(e,t){return BigInt(e)>>BigInt(t)}var m=f,h=p;function g(e){return(BigInt(e)&BigInt(1))==BigInt(1)}function _(e){let t=BigInt(e),n=[];for(;t;){if(t&BigInt(1)){let e=2-Number(t%BigInt(4));n.push(e),t-=BigInt(e)}else n.push(0);t>>=BigInt(1)}return n}function v(e){let t=BigInt(e),n=[];for(;t;)t&BigInt(1)?n.push(1):n.push(0),t>>=BigInt(1);return n}function y(e){if(e>BigInt(2**53-1))throw Error(`Number too big`);return Number(e)}function b(e,t){let n=[],r=BigInt(e);for(t=BigInt(t);r;)n.unshift(Number(r%t)),r/=t;return n}function x(e,t){return BigInt(e)+BigInt(t)}function S(e,t){return BigInt(e)-BigInt(t)}function C(e){return-BigInt(e)}function w(e,t){return BigInt(e)*BigInt(t)}function T(e){return BigInt(e)*BigInt(e)}function E(e,t){return BigInt(e)**BigInt(t)}function D(e,t){return BigInt(e)**BigInt(t)}function O(e){return BigInt(e)>=0?BigInt(e):-BigInt(e)}function k(e,t){return BigInt(e)/BigInt(t)}function A(e,t){return BigInt(e)%BigInt(t)}function j(e,t){return BigInt(e)==BigInt(t)}function M(e,t){return BigInt(e)!=BigInt(t)}function N(e,t){return BigInt(e)<BigInt(t)}function P(e,t){return BigInt(e)>BigInt(t)}function F(e,t){return BigInt(e)<=BigInt(t)}function I(e,t){return BigInt(e)>=BigInt(t)}function L(e,t){return BigInt(e)&BigInt(t)}function R(e,t){return BigInt(e)|BigInt(t)}function z(e,t){return BigInt(e)^BigInt(t)}function B(e,t){return BigInt(e)&&BigInt(t)}function V(e,t){return BigInt(e)||BigInt(t)}function ee(e){return!BigInt(e)}function H(e,t,n,r){let i=`0000000`+n.toString(16),a=new Uint32Array(e.buffer,e.byteOffset+t,r/4),o=((i.length-7)*4-1>>5)+1;for(let e=0;e<o;e++)a[e]=parseInt(i.substring(i.length-8*e-8,i.length-8*e),16);for(let e=o;e<a.length;e++)a[e]=0;for(let t=a.length*4;t<r;t++)e[t]=y(L(p(n,t*8),255))}function te(e,t,n,r){let i=`0000000`+n.toString(16),a=new DataView(e.buffer,e.byteOffset+t,r),o=((i.length-7)*4-1>>5)+1;for(let e=0;e<o;e++)a.setUint32(r-e*4-4,parseInt(i.substring(i.length-8*e-8,i.length-8*e),16),!1);for(let e=0;e<r/4-o;e++)a[e]=0}function ne(e,t,n){n||=e.byteLength,t||=0;let r=new Uint32Array(e.buffer,e.byteOffset+t,n/4),i=Array(n/4);return r.forEach((e,t)=>i[i.length-t-1]=e.toString(16).padStart(8,`0`)),o(i.join(``),16)}function re(e,t,n){n||=e.byteLength,t||=0;let r=new DataView(e.buffer,e.byteOffset+t,n),i=Array(n/4);for(let e=0;e<n/4;e++)i[e]=r.getUint32(e*4,!1).toString(16).padStart(8,`0`);return o(i.join(``),16)}function ie(e,t){return e.toString(t)}function ae(e){let t=new Uint8Array(Math.floor((l(e)-1)/8)+1);return H(t,0,e,t.byteLength),t}var oe=s(0),se=s(1),ce=Object.freeze({__proto__:null,abs:O,add:x,band:L,bitLength:l,bits:v,bor:R,bxor:z,div:k,e:s,eq:j,exp:D,fromArray:c,fromRprBE:re,fromRprLE:ne,fromString:o,geq:I,gt:P,isNegative:u,isOdd:g,isZero:d,land:B,leq:F,lnot:ee,lor:V,lt:N,mod:A,mul:w,naf:_,neg:C,neq:M,one:se,pow:E,shiftLeft:f,shiftRight:p,shl:m,shr:h,square:T,sub:S,toArray:b,toLEBuff:ae,toNumber:y,toRprBE:te,toRprLE:H,toString:ie,zero:oe}),le=[];for(let e=0;e<256;e++)le[e]=ue(e,8);function ue(e,t){let n=0,r=e;for(let e=0;e<t;e++)n<<=1,n|=r&1,r>>=1;return n}function de(e,t,n){if(d(n))return e.one;let r=v(n);if(r.length==0)return e.one;let i=t;for(let n=r.length-2;n>=0;n--)i=e.square(i),r[n]&&(i=e.mul(i,t));return i}function fe(e){if(e.m%2==1)if(j(A(e.p,4),1))if(j(A(e.p,8),1))if(j(A(e.p,16),1))pe(e);else if(j(A(e.p,16),9))me(e);else throw Error(`Field withot sqrt`);else if(j(A(e.p,8),5))he(e);else throw Error(`Field withot sqrt`);else j(A(e.p,4),3)&&ge(e);else{let t=A(E(e.p,e.m/2),4);t==1?_e(e):t==3?U(e):ve(e)}}function pe(e){for(e.sqrt_q=E(e.p,e.m),e.sqrt_s=0,e.sqrt_t=S(e.sqrt_q,1);!g(e.sqrt_t);)e.sqrt_s+=1,e.sqrt_t=k(e.sqrt_t,2);let t=e.one;for(;e.eq(t,e.one);){let n=e.random();e.sqrt_z=e.pow(n,e.sqrt_t),t=e.pow(e.sqrt_z,2**(e.sqrt_s-1))}e.sqrt_tm1d2=k(S(e.sqrt_t,1),2),e.sqrt=function(e){let t=this;if(t.isZero(e))return t.zero;let n=t.pow(e,t.sqrt_tm1d2),r=t.pow(t.mul(t.square(n),e),2**(t.sqrt_s-1));if(t.eq(r,t.negone))return null;let i=t.sqrt_s,a=t.mul(e,n),o=t.mul(a,n),s=t.sqrt_z;for(;!t.eq(o,t.one);){let e=t.square(o),r=1;for(;!t.eq(e,t.one);)e=t.square(e),r++;n=s;for(let e=0;e<i-r-1;e++)n=t.square(n);s=t.square(n),o=t.mul(o,s),a=t.mul(a,n),i=r}return t.geq(a,t.zero)?a:t.neg(a)}}function me(e){e.sqrt=function(){throw Error(`Sqrt alg 4 not implemented`)}}function he(e){e.sqrt=function(){throw Error(`Sqrt alg 3 not implemented`)}}function ge(e){e.sqrt_q=E(e.p,e.m),e.sqrt_e1=k(S(e.sqrt_q,3),4),e.sqrt=function(t){if(this.isZero(t))return this.zero;let n=this.pow(t,this.sqrt_e1),r=this.mul(this.square(n),t);if(this.eq(r,this.negone))return null;let i=this.mul(n,t);return e.geq(i,e.zero)?i:e.neg(i)}}function _e(e){e.sqrt=function(){throw Error(`Sqrt alg 10 not implemented`)}}function U(e){e.sqrt_q=E(e.p,e.m/2),e.sqrt_e34=k(S(e.sqrt_q,3),4),e.sqrt_e12=k(S(e.sqrt_q,1),2),e.frobenius=function(t,n){return t%2==1?e.conjugate(n):n},e.sqrt=function(e){let t=this,n=t.pow(e,t.sqrt_e34),r=t.mul(t.square(n),e),i=t.mul(t.frobenius(1,r),r);if(t.eq(i,t.negone))return null;let a=t.mul(n,e),o;if(t.eq(r,t.negone))o=t.mul(a,[t.F.zero,t.F.one]);else{let e=t.pow(t.add(t.one,r),t.sqrt_e12);o=t.mul(e,a)}return t.geq(o,t.zero)?o:t.neg(o)}}function ve(e){e.sqrt=function(){throw Error(`Sqrt alg 8 not implemented`)}}function ye(e,t,n,r,i){e[t]=e[t]+e[n]>>>0,e[i]=(e[i]^e[t])>>>0,e[i]=(e[i]<<16|e[i]>>>16&65535)>>>0,e[r]=e[r]+e[i]>>>0,e[n]=(e[n]^e[r])>>>0,e[n]=(e[n]<<12|e[n]>>>20&4095)>>>0,e[t]=e[t]+e[n]>>>0,e[i]=(e[i]^e[t])>>>0,e[i]=(e[i]<<8|e[i]>>>24&255)>>>0,e[r]=e[r]+e[i]>>>0,e[n]=(e[n]^e[r])>>>0,e[n]=(e[n]<<7|e[n]>>>25&127)>>>0}function be(e){ye(e,0,4,8,12),ye(e,1,5,9,13),ye(e,2,6,10,14),ye(e,3,7,11,15),ye(e,0,5,10,15),ye(e,1,6,11,12),ye(e,2,7,8,13),ye(e,3,4,9,14)}var xe=class{constructor(e){e||=[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],0,0,0,0],this.idx=16,this.buff=Array(16)}nextU32(){return this.idx==16&&this.update(),this.buff[this.idx++]}nextU64(){return x(w(this.nextU32(),4294967296),this.nextU32())}nextBool(){return(this.nextU32()&1)==1}update(){for(let e=0;e<16;e++)this.buff[e]=this.state[e];for(let e=0;e<10;e++)be(this.buff);for(let e=0;e<16;e++)this.buff[e]=this.buff[e]+this.state[e]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,this.state[12]==0&&(this.state[13]=this.state[13]+1>>>0,this.state[13]==0&&(this.state[14]=this.state[14]+1>>>0,this.state[14]==0&&(this.state[15]=this.state[15]+1>>>0)))}};function Se(e){let t=new Uint8Array(e);if(globalThis.crypto!==void 0)globalThis.crypto.getRandomValues(t);else for(let n=0;n<e;n++)t[n]=Math.random()*4294967296>>>0;return t}function Ce(){let e=Se(32),t=new Uint32Array(e.buffer),n=[];for(let e=0;e<8;e++)n.push(t[e]);return n}var we=null;function Te(){return we||(we=new xe(Ce()),we)}var Ee=class{constructor(e,t,n){this.F=t,this.G=e,this.opMulGF=n;let r=t.sqrt_t||t.t,i=t.sqrt_s||t.s,a=t.one;for(;t.eq(t.pow(a,t.half),t.one);)a=t.add(a,t.one);this.w=Array(i+1),this.wi=Array(i+1),this.w[i]=this.F.pow(a,r),this.wi[i]=this.F.inv(this.w[i]);let o=i-1;for(;o>=0;)this.w[o]=this.F.square(this.w[o+1]),this.wi[o]=this.F.square(this.wi[o+1]),o--;this.roots=[],this._setRoots(Math.min(i,15))}_setRoots(e){for(let t=e;t>=0&&!this.roots[t];t--){let e=this.F.one,n=1<<t,r=Array(n);for(let i=0;i<n;i++)r[i]=e,e=this.F.mul(e,this.w[t]);this.roots[t]=r}}fft(e){if(e.length<=1)return e;let t=De(e.length-1)+1;this._setRoots(t);let n=1<<t;if(e.length!=n)throw Error(`Size must be multiple of 2`);return Oe(this,e,t,0,1)}ifft(e){if(e.length<=1)return e;let t=De(e.length-1)+1;this._setRoots(t);let n=1<<t;if(e.length!=n)throw Error(`Size must be multiple of 2`);let r=Oe(this,e,t,0,1),i=this.F.inv(this.F.mulScalar(this.F.one,n)),a=Array(n);for(let e=0;e<n;e++)a[e]=this.opMulGF(r[(n-e)%n],i);return a}};function De(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}function Oe(e,t,n,r,i){let a=1<<n;if(a==1)return[t[r]];if(a==2)return[e.G.add(t[r],t[r+i]),e.G.sub(t[r],t[r+i])];let o=a>>1,s=Oe(e,t,n-1,r,i*2),c=Oe(e,t,n-1,r+i,i*2),l=Array(a);for(let t=0;t<o;t++)l[t]=e.G.add(s[t],e.opMulGF(c[t],e.roots[n][t])),l[t+o]=e.G.sub(s[t],e.opMulGF(c[t],e.roots[n][t]));return l}var ke=class{constructor(e){this.type=`F1`,this.one=BigInt(1),this.zero=BigInt(0),this.p=BigInt(e),this.m=1,this.negone=this.p-this.one,this.two=BigInt(2),this.half=this.p>>this.one,this.bitLength=l(this.p),this.mask=(this.one<<BigInt(this.bitLength))-this.one,this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=this.n64*2,this.n8=this.n64*8,this.R=this.e(this.one<<BigInt(this.n64*64)),this.Ri=this.inv(this.R);let t=this.negone>>this.one;this.nqr=this.two;let n=this.pow(this.nqr,t);for(;!this.eq(n,this.negone);)this.nqr+=this.one,n=this.pow(this.nqr,t);for(this.s=0,this.t=this.negone;(this.t&this.one)==this.zero;)this.s+=1,this.t>>=this.one;this.nqr_to_t=this.pow(this.nqr,this.t),fe(this),this.FFT=new Ee(this,this,this.mul.bind(this)),this.fft=this.FFT.fft.bind(this.FFT),this.ifft=this.FFT.ifft.bind(this.FFT),this.w=this.FFT.w,this.wi=this.FFT.wi,this.shift=this.square(this.nqr),this.k=this.exp(this.nqr,2**this.s)}e(e,t){let n;if(t?t==16&&(n=BigInt(`0x`+e)):n=BigInt(e),n<0){let e=-n;return e>=this.p&&(e%=this.p),this.p-e}else return n>=this.p?n%this.p:n}add(e,t){let n=e+t;return n>=this.p?n-this.p:n}sub(e,t){return e>=t?e-t:this.p-t+e}neg(e){return e&&this.p-e}mul(e,t){return e*t%this.p}mulScalar(e,t){return e*this.e(t)%this.p}square(e){return e*e%this.p}eq(e,t){return e==t}neq(e,t){return e!=t}lt(e,t){return(e>this.half?e-this.p:e)<(t>this.half?t-this.p:t)}gt(e,t){return(e>this.half?e-this.p:e)>(t>this.half?t-this.p:t)}leq(e,t){return(e>this.half?e-this.p:e)<=(t>this.half?t-this.p:t)}geq(e,t){return(e>this.half?e-this.p:e)>=(t>this.half?t-this.p:t)}div(e,t){return this.mul(e,this.inv(t))}idiv(e,t){if(!t)throw Error(`Division by zero`);return e/t}inv(e){if(!e)throw Error(`Division by zero`);let t=this.zero,n=this.p,r=this.one,i=e%this.p;for(;i;){let e=n/i;[t,r]=[r,t-e*r],[n,i]=[i,n-e*i]}return t<this.zero&&(t+=this.p),t}mod(e,t){return e%t}pow(e,t){return de(this,e,t)}exp(e,t){return de(this,e,t)}band(e,t){let n=e&t&this.mask;return n>=this.p?n-this.p:n}bor(e,t){let n=(e|t)&this.mask;return n>=this.p?n-this.p:n}bxor(e,t){let n=(e^t)&this.mask;return n>=this.p?n-this.p:n}bnot(e){let t=e^this.mask;return t>=this.p?t-this.p:t}shl(e,t){if(Number(t)<this.bitLength){let n=e<<t&this.mask;return n>=this.p?n-this.p:n}else{let n=this.p-t;return Number(n)<this.bitLength?e>>n:this.zero}}shr(e,t){if(Number(t)<this.bitLength)return e>>t;{let n=this.p-t;if(Number(n)<this.bitLength){let t=e<<n&this.mask;return t>=this.p?t-this.p:t}else return 0}}land(e,t){return e&&t?this.one:this.zero}lor(e,t){return e||t?this.one:this.zero}lnot(e){return e?this.zero:this.one}sqrt_old(e){if(e==this.zero)return this.zero;if(this.pow(e,this.negone>>this.one)!=this.one)return null;let t=this.s,n=this.nqr_to_t,r=this.pow(e,this.t),i=this.pow(e,this.add(this.t,this.one)>>this.one);for(;r!=this.one;){let e=this.square(r),a=1;for(;e!=this.one;)a++,e=this.square(e);let o=n;for(let e=0;e<t-a-1;e++)o=this.square(o);t=a,n=this.square(o),r=this.mul(r,n),i=this.mul(i,o)}return i>this.p>>this.one&&(i=this.neg(i)),i}normalize(e,t){if(e=BigInt(e,t),e<0){let t=-e;return t>=this.p&&(t%=this.p),this.p-t}else return e>=this.p?e%this.p:e}random(){let e=this.bitLength*2/8,t=this.zero;for(let n=0;n<e;n++)t=(t<<BigInt(8))+BigInt(Se(1)[0]);return t%this.p}toString(e,t){t||=10;let n;return n=e>this.half&&t==10?`-`+(this.p-e).toString(t):e.toString(t),n}isZero(e){return e==this.zero}fromRng(e){let t;do{t=this.zero;for(let n=0;n<this.n64;n++)t+=e.nextU64()<<BigInt(64*n);t&=this.mask}while(t>=this.p);return t=t*this.Ri%this.p,t}fft(e){return this.FFT.fft(e)}ifft(e){return this.FFT.ifft(e)}toRprLE(e,t,n){H(e,t,n,this.n64*8)}toRprBE(e,t,n){te(e,t,n,this.n64*8)}toRprBEM(e,t,n){return this.toRprBE(e,t,this.mul(this.R,n))}toRprLEM(e,t,n){return this.toRprLE(e,t,this.mul(this.R,n))}fromRprLE(e,t){return ne(e,t,this.n8)}fromRprBE(e,t){return re(e,t,this.n8)}fromRprLEM(e,t){return this.mul(this.fromRprLE(e,t),this.Ri)}fromRprBEM(e,t){return this.mul(this.fromRprBE(e,t),this.Ri)}toObject(e){return e}},Ae={};Ae.bigInt2BytesLE=function(e,t){let n=Array(t),r=BigInt(e);for(let e=0;e<t;e++)n[e]=Number(r&255n),r>>=8n;return n},Ae.bigInt2U32LE=function(e,t){let n=Array(t),r=BigInt(e);for(let e=0;e<t;e++)n[e]=Number(r&4294967295n),r>>=32n;return n},Ae.isOcamNum=function(e){return!(!Array.isArray(e)||e.length!=3||typeof e[0]!=`number`||typeof e[1]!=`number`||!Array.isArray(e[2]))};var je=function(e,t,n){let r=n||`int`;if(e.modules[r])return r;e.modules[r]={};let i=t*2,a=t*8;function o(){let n=e.addFunction(r+`_copy`);n.addParam(`px`,`i32`),n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();for(let e=0;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_load(i.getLocal(`px`),e*8)))}function s(){let n=e.addFunction(r+`_zero`);n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();for(let e=0;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_const(0)))}function c(){let n=e.addFunction(r+`_one`);n.addParam(`pr`,`i32`);let i=n.getCodeBuilder();n.addCode(i.i64_store(i.getLocal(`pr`),0,i.i64_const(1)));for(let e=1;e<t;e++)n.addCode(i.i64_store(i.getLocal(`pr`),e*8,i.i64_const(0)))}function l(){let n=e.addFunction(r+`_isZero`);n.addParam(`px`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_eqz(i.i64_load(i.getLocal(`px`)))):i.if(i.i64_eqz(i.i64_load(i.getLocal(`px`),e*8)),a(e-1),i.ret(i.i32_const(0)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function u(){let n=e.addFunction(r+`_eq`);n.addParam(`px`,`i32`),n.addParam(`py`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_eq(i.i64_load(i.getLocal(`px`)),i.i64_load(i.getLocal(`py`)))):i.if(i.i64_eq(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),a(e-1),i.ret(i.i32_const(0)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function d(){let n=e.addFunction(r+`_gte`);n.addParam(`px`,`i32`),n.addParam(`py`,`i32`),n.setReturnType(`i32`);let i=n.getCodeBuilder();function a(e){return e==0?i.ret(i.i64_ge_u(i.i64_load(i.getLocal(`px`)),i.i64_load(i.getLocal(`py`)))):i.if(i.i64_lt_u(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),i.ret(i.i32_const(0)),i.if(i.i64_gt_u(i.i64_load(i.getLocal(`px`),e*8),i.i64_load(i.getLocal(`py`),e*8)),i.ret(i.i32_const(1)),a(e-1)))}n.addCode(a(t-1)),n.addCode(i.ret(i.i32_const(0)))}function f(){let t=e.addFunction(r+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.setReturnType(`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`x`)),n.i64_load32_u(n.getLocal(`y`))))),t.addCode(n.i64_store32(n.getLocal(`r`),n.getLocal(`c`)));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_add(n.i64_load32_u(n.getLocal(`x`),4*e),n.i64_load32_u(n.getLocal(`y`),4*e)),n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(`c`)));t.addCode(n.i32_wrap_i64(n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))}function p(){let t=e.addFunction(r+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.setReturnType(`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_sub(n.i64_load32_u(n.getLocal(`x`)),n.i64_load32_u(n.getLocal(`y`))))),t.addCode(n.i64_store32(n.getLocal(`r`),n.i64_and(n.getLocal(`c`),n.i64_const(`0xFFFFFFFF`))));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_sub(n.i64_load32_u(n.getLocal(`x`),4*e),n.i64_load32_u(n.getLocal(`y`),4*e)),n.i64_shr_s(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.i64_and(n.getLocal(`c`),n.i64_const(`0xFFFFFFFF`))));t.addCode(n.i32_wrap_i64(n.i64_shr_s(n.getLocal(`c`),n.i64_const(32))))}function m(){let t=e.addFunction(r+`_mul`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`);for(let e=0;e<i;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`y`+e,`i64`);let n=t.getCodeBuilder(),a=[],o=[];function s(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),o[t]?i=n.getLocal(`y`+t):(i=n.teeLocal(`y`+t,n.i64_load32_u(n.getLocal(`y`),t*4)),o[t]=!0),n.i64_mul(r,i)}let c=`c0`,l=`c1`;for(let e=0;e<i*2-1;e++){for(let r=Math.max(0,e-i+1);r<=e&&r<i;r++){let i=e-r;t.addCode(n.setLocal(c,n.i64_add(n.i64_and(n.getLocal(c),n.i64_const(4294967295)),s(r,i)))),t.addCode(n.setLocal(l,n.i64_add(n.getLocal(l),n.i64_shr_u(n.getLocal(c),n.i64_const(32)))))}t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(c))),[c,l]=[l,c],t.addCode(n.setLocal(l,n.i64_shr_u(n.getLocal(c),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),i*4*2-4,n.getLocal(c)))}function h(){let t=e.addFunction(r+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`c0_old`,`i64`),t.addLocal(`c1_old`,`i64`);for(let e=0;e<i;e++)t.addLocal(`x`+e,`i64`);let n=t.getCodeBuilder(),a=[];function o(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),a[t]?i=n.getLocal(`x`+t):(i=n.teeLocal(`x`+t,n.i64_load32_u(n.getLocal(`x`),t*4)),a[t]=!0),n.i64_mul(r,i)}let s=`c0_old`,c=`c1_old`;for(let e=0;e<i*2-1;e++){t.addCode(n.setLocal(`c0`,n.i64_const(0)),n.setLocal(`c1`,n.i64_const(0)));for(let r=Math.max(0,e-i+1);r<e+1>>1&&r<i;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),o(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}t.addCode(n.setLocal(`c0`,n.i64_shl(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_const(1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_shl(n.getLocal(`c1`),n.i64_const(1)),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))))),e%2==0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),o(e>>1,e>>1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_and(n.getLocal(s),n.i64_const(4294967295))))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))),n.getLocal(c))))),t.addCode(n.i64_store32(n.getLocal(`r`),e*4,n.getLocal(`c0`))),t.addCode(n.setLocal(s,n.getLocal(`c1`)),n.setLocal(c,n.i64_shr_u(n.getLocal(s),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),i*4*2-4,n.getLocal(s)))}function g(){let t=e.addFunction(r+`_squareOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(r+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function _(){let t=e.addFunction(r+`__mul1`);t.addParam(`px`,`i32`),t.addParam(`y`,`i64`),t.addParam(`pr`,`i32`),t.addLocal(`c`,`i64`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`c`,n.i64_mul(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`y`)))),t.addCode(n.i64_store32(n.getLocal(`pr`),0,0,n.getLocal(`c`)));for(let e=1;e<i;e++)t.addCode(n.setLocal(`c`,n.i64_add(n.i64_mul(n.i64_load32_u(n.getLocal(`px`),4*e,0),n.getLocal(`y`)),n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))))),t.addCode(n.i64_store32(n.getLocal(`pr`),e*4,0,n.getLocal(`c`)))}function v(){let t=e.addFunction(r+`__add1`);t.addParam(`x`,`i32`),t.addParam(`y`,`i64`),t.addLocal(`c`,`i64`),t.addLocal(`px`,`i32`);let n=t.getCodeBuilder();t.addCode(n.setLocal(`px`,n.getLocal(`x`))),t.addCode(n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`y`)))),t.addCode(n.i64_store32(n.getLocal(`px`),0,0,n.getLocal(`c`))),t.addCode(n.setLocal(`c`,n.i64_shr_u(n.getLocal(`c`),n.i64_const(32)))),t.addCode(n.block(n.loop(n.br_if(1,n.i64_eqz(n.getLocal(`c`))),n.setLocal(`px`,n.i32_add(n.getLocal(`px`),n.i32_const(4))),n.setLocal(`c`,n.i64_add(n.i64_load32_u(n.getLocal(`px`),0,0),n.getLocal(`c`))),n.i64_store32(n.getLocal(`px`),0,0,n.getLocal(`c`)),n.setLocal(`c`,n.i64_shr_u(n.getLocal(`c`),n.i64_const(32))),n.br(0))))}function y(){_(),v();let t=e.addFunction(r+`_div`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`c`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`rr`,`i32`),t.addLocal(`cc`,`i32`),t.addLocal(`eX`,`i32`),t.addLocal(`eY`,`i32`),t.addLocal(`sy`,`i64`),t.addLocal(`sx`,`i64`),t.addLocal(`ec`,`i32`);let n=t.getCodeBuilder(),i=n.i32_const(e.alloc(a)),o=n.i32_const(e.alloc(a)),s=n.i32_const(e.alloc(a)),c=n.getLocal(`cc`),l=n.getLocal(`rr`),u=e.alloc(a*2),d=n.i32_const(u),f=n.i32_const(u+a);t.addCode(n.if(n.getLocal(`c`),n.setLocal(`cc`,n.getLocal(`c`)),n.setLocal(`cc`,o))),t.addCode(n.if(n.getLocal(`r`),n.setLocal(`rr`,n.getLocal(`r`)),n.setLocal(`rr`,s))),t.addCode(n.call(r+`_copy`,n.getLocal(`x`),l)),t.addCode(n.call(r+`_copy`,n.getLocal(`y`),i)),t.addCode(n.call(r+`_zero`,c)),t.addCode(n.call(r+`_zero`,d)),t.addCode(n.setLocal(`eX`,n.i32_const(a-1))),t.addCode(n.setLocal(`eY`,n.i32_const(a-1))),t.addCode(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(i,n.getLocal(`eY`)),0,0),n.i32_eq(n.getLocal(`eY`),n.i32_const(3)))),n.setLocal(`eY`,n.i32_sub(n.getLocal(`eY`),n.i32_const(1))),n.br(0)))),t.addCode(n.setLocal(`sy`,n.i64_add(n.i64_load32_u(n.i32_sub(n.i32_add(i,n.getLocal(`eY`)),n.i32_const(3)),0,0),n.i64_const(1)))),t.addCode(n.if(n.i64_eq(n.getLocal(`sy`),n.i64_const(1)),n.drop(n.i64_div_u(n.i64_const(0),n.i64_const(0))))),t.addCode(n.block(n.loop(n.block(n.loop(n.br_if(1,n.i32_or(n.i32_load8_u(n.i32_add(l,n.getLocal(`eX`)),0,0),n.i32_eq(n.getLocal(`eX`),n.i32_const(7)))),n.setLocal(`eX`,n.i32_sub(n.getLocal(`eX`),n.i32_const(1))),n.br(0))),n.setLocal(`sx`,n.i64_load(n.i32_sub(n.i32_add(l,n.getLocal(`eX`)),n.i32_const(7)),0,0)),n.setLocal(`sx`,n.i64_div_u(n.getLocal(`sx`),n.getLocal(`sy`))),n.setLocal(`ec`,n.i32_sub(n.i32_sub(n.getLocal(`eX`),n.getLocal(`eY`)),n.i32_const(4))),n.block(n.loop(n.br_if(1,n.i32_and(n.i64_eqz(n.i64_and(n.getLocal(`sx`),n.i64_const(`0xFFFFFFFF00000000`))),n.i32_ge_s(n.getLocal(`ec`),n.i32_const(0)))),n.setLocal(`sx`,n.i64_shr_u(n.getLocal(`sx`),n.i64_const(8))),n.setLocal(`ec`,n.i32_add(n.getLocal(`ec`),n.i32_const(1))),n.br(0))),n.if(n.i64_eqz(n.getLocal(`sx`)),[...n.br_if(2,n.i32_eqz(n.call(r+`_gte`,l,i))),...n.setLocal(`sx`,n.i64_const(1)),...n.setLocal(`ec`,n.i32_const(0))]),n.call(r+`__mul1`,i,n.getLocal(`sx`),f),n.drop(n.call(r+`_sub`,l,n.i32_sub(f,n.getLocal(`ec`)),l)),n.call(r+`__add1`,n.i32_add(c,n.getLocal(`ec`)),n.getLocal(`sx`)),n.br(0))))}function b(){let t=e.addFunction(r+`_inverseMod`);t.addParam(`px`,`i32`),t.addParam(`pm`,`i32`),t.addParam(`pr`,`i32`),t.addLocal(`t`,`i32`),t.addLocal(`newt`,`i32`),t.addLocal(`r`,`i32`),t.addLocal(`qq`,`i32`),t.addLocal(`qr`,`i32`),t.addLocal(`newr`,`i32`),t.addLocal(`swp`,`i32`),t.addLocal(`x`,`i32`),t.addLocal(`signt`,`i32`),t.addLocal(`signnewt`,`i32`),t.addLocal(`signx`,`i32`);let n=t.getCodeBuilder(),i=n.i32_const(e.alloc(a)),o=n.i32_const(e.alloc(a)),s=n.i32_const(e.alloc(a)),c=n.i32_const(e.alloc(a)),l=n.i32_const(e.alloc(a)),u=n.i32_const(e.alloc(a)),d=n.i32_const(e.alloc(a*2)),f=n.i32_const(e.alloc(a));t.addCode(n.setLocal(`t`,i),n.call(r+`_zero`,i),n.setLocal(`signt`,n.i32_const(0))),t.addCode(n.setLocal(`r`,o),n.call(r+`_copy`,n.getLocal(`pm`),o)),t.addCode(n.setLocal(`newt`,s),n.call(r+`_one`,s),n.setLocal(`signnewt`,n.i32_const(0))),t.addCode(n.setLocal(`newr`,c),n.call(r+`_copy`,n.getLocal(`px`),c)),t.addCode(n.setLocal(`qq`,l)),t.addCode(n.setLocal(`qr`,u)),t.addCode(n.setLocal(`x`,f)),t.addCode(n.block(n.loop(n.br_if(1,n.call(r+`_isZero`,n.getLocal(`newr`))),n.call(r+`_div`,n.getLocal(`r`),n.getLocal(`newr`),n.getLocal(`qq`),n.getLocal(`qr`)),n.call(r+`_mul`,n.getLocal(`qq`),n.getLocal(`newt`),d),n.if(n.getLocal(`signt`),n.if(n.getLocal(`signnewt`),n.if(n.call(r+`_gte`,d,n.getLocal(`t`)),[...n.drop(n.call(r+`_sub`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],[...n.drop(n.call(r+`_sub`,n.getLocal(`t`),d,n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]),[...n.drop(n.call(r+`_add`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]),n.if(n.getLocal(`signnewt`),[...n.drop(n.call(r+`_add`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],n.if(n.call(r+`_gte`,n.getLocal(`t`),d),[...n.drop(n.call(r+`_sub`,n.getLocal(`t`),d,n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(0))],[...n.drop(n.call(r+`_sub`,d,n.getLocal(`t`),n.getLocal(`x`))),...n.setLocal(`signx`,n.i32_const(1))]))),n.setLocal(`swp`,n.getLocal(`t`)),n.setLocal(`t`,n.getLocal(`newt`)),n.setLocal(`newt`,n.getLocal(`x`)),n.setLocal(`x`,n.getLocal(`swp`)),n.setLocal(`signt`,n.getLocal(`signnewt`)),n.setLocal(`signnewt`,n.getLocal(`signx`)),n.setLocal(`swp`,n.getLocal(`r`)),n.setLocal(`r`,n.getLocal(`newr`)),n.setLocal(`newr`,n.getLocal(`qr`)),n.setLocal(`qr`,n.getLocal(`swp`)),n.br(0)))),t.addCode(n.if(n.getLocal(`signt`),n.drop(n.call(r+`_sub`,n.getLocal(`pm`),n.getLocal(`t`),n.getLocal(`pr`))),n.call(r+`_copy`,n.getLocal(`t`),n.getLocal(`pr`))))}return o(),s(),l(),c(),u(),d(),f(),p(),m(),h(),g(),y(),b(),e.exportFunction(r+`_copy`),e.exportFunction(r+`_zero`),e.exportFunction(r+`_one`),e.exportFunction(r+`_isZero`),e.exportFunction(r+`_eq`),e.exportFunction(r+`_gte`),e.exportFunction(r+`_add`),e.exportFunction(r+`_sub`),e.exportFunction(r+`_mul`),e.exportFunction(r+`_square`),e.exportFunction(r+`_squareOld`),e.exportFunction(r+`_div`),e.exportFunction(r+`_inverseMod`),r},Me=function(e,t,n,r,i,a,o){let s=e.addFunction(t);s.addParam(`base`,`i32`),s.addParam(`scalar`,`i32`),s.addParam(`scalarLength`,`i32`),s.addParam(`r`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`b`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(n));s.addCode(c.if(c.i32_eqz(c.getLocal(`scalarLength`)),[...c.call(o,c.getLocal(`r`)),...c.ret([])])),s.addCode(c.call(a,c.getLocal(`base`),l)),s.addCode(c.call(o,c.getLocal(`r`))),s.addCode(c.setLocal(`i`,c.getLocal(`scalarLength`))),s.addCode(c.block(c.loop(c.setLocal(`i`,c.i32_sub(c.getLocal(`i`),c.i32_const(1))),c.setLocal(`b`,c.i32_load8_u(c.i32_add(c.getLocal(`scalar`),c.getLocal(`i`)))),...u(),c.br_if(1,c.i32_eqz(c.getLocal(`i`))),c.br(0))));function u(){let e=[];for(let t=0;t<8;t++)e.push(...c.call(i,c.getLocal(`r`),c.getLocal(`r`)),...c.if(c.i32_ge_u(c.getLocal(`b`),c.i32_const(128>>t)),[...c.setLocal(`b`,c.i32_sub(c.getLocal(`b`),c.i32_const(128>>t))),...c.call(r,c.getLocal(`r`),l,c.getLocal(`r`))]));return e}},Ne=Pe;function Pe(e,t){let n=e.modules[t].n64*8,r=e.addFunction(t+`_batchInverse`);r.addParam(`pIn`,`i32`),r.addParam(`inStep`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pOut`,`i32`),r.addParam(`outStep`,`i32`),r.addLocal(`itAux`,`i32`),r.addLocal(`itIn`,`i32`),r.addLocal(`itOut`,`i32`),r.addLocal(`i`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(n));r.addCode(i.setLocal(`itAux`,i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal(`itAux`),i.i32_mul(i.i32_add(i.getLocal(`n`),i.i32_const(1)),i.i32_const(n))))),r.addCode(i.call(t+`_one`,i.getLocal(`itAux`)),i.setLocal(`itIn`,i.getLocal(`pIn`)),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.if(i.call(t+`_isZero`,i.getLocal(`itIn`)),i.call(t+`_copy`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),i.getLocal(`itAux`)),i.call(t+`_mul`,i.getLocal(`itIn`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),i.getLocal(`itAux`))),i.setLocal(`itIn`,i.i32_add(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))),i.setLocal(`itIn`,i.i32_sub(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itAux`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`itOut`,i.i32_add(i.getLocal(`pOut`),i.i32_mul(i.i32_sub(i.getLocal(`n`),i.i32_const(1)),i.getLocal(`outStep`)))),i.call(t+`_inverse`,i.getLocal(`itAux`),i.getLocal(`itAux`)),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal(`i`))),i.if(i.call(t+`_isZero`,i.getLocal(`itIn`)),[...i.call(t+`_copy`,i.getLocal(`itAux`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),...i.call(t+`_zero`,i.getLocal(`itOut`))],[...i.call(t+`_copy`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n)),a),...i.call(t+`_mul`,i.getLocal(`itAux`),i.getLocal(`itIn`),i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),...i.call(t+`_mul`,i.getLocal(`itAux`),a,i.getLocal(`itOut`))]),i.setLocal(`itIn`,i.i32_sub(i.getLocal(`itIn`),i.getLocal(`inStep`))),i.setLocal(`itOut`,i.i32_sub(i.getLocal(`itOut`),i.getLocal(`outStep`))),i.setLocal(`itAux`,i.i32_sub(i.getLocal(`itAux`),i.i32_const(n))),i.setLocal(`i`,i.i32_sub(i.getLocal(`i`),i.i32_const(1))),i.br(0)))),r.addCode(i.i32_store(i.i32_const(0),i.getLocal(`itAux`)))}var Fe=Ie;function Ie(e,t,n,r,i,a){a===void 0&&(a=r<i);let o=e.addFunction(t);o.addParam(`pIn`,`i32`),o.addParam(`n`,`i32`),o.addParam(`pOut`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`itIn`,`i32`),o.addLocal(`itOut`,`i32`);let s=o.getCodeBuilder();a?o.addCode(s.setLocal(`itIn`,s.i32_add(s.getLocal(`pIn`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`pOut`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(i)))),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn`),s.getLocal(`itOut`)),s.setLocal(`itIn`,s.i32_sub(s.getLocal(`itIn`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_sub(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0)))):o.addCode(s.setLocal(`itIn`,s.getLocal(`pIn`)),s.setLocal(`itOut`,s.getLocal(`pOut`)),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn`),s.getLocal(`itOut`)),s.setLocal(`itIn`,s.i32_add(s.getLocal(`itIn`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}var Le=Re;function Re(e,t,n,r,i,a){a===void 0&&(a=r<i);let o=e.addFunction(t);o.addParam(`pIn1`,`i32`),o.addParam(`pIn2`,`i32`),o.addParam(`n`,`i32`),o.addParam(`pOut`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`itIn1`,`i32`),o.addLocal(`itIn2`,`i32`),o.addLocal(`itOut`,`i32`);let s=o.getCodeBuilder();a?o.addCode(s.setLocal(`itIn1`,s.i32_add(s.getLocal(`pIn1`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itIn2`,s.i32_add(s.getLocal(`pIn2`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(r)))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`pOut`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.i32_const(1)),s.i32_const(i)))),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn1`),s.getLocal(`itIn2`),s.getLocal(`itOut`)),s.setLocal(`itIn1`,s.i32_sub(s.getLocal(`itIn1`),s.i32_const(r))),s.setLocal(`itIn2`,s.i32_sub(s.getLocal(`itIn2`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_sub(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0)))):o.addCode(s.setLocal(`itIn1`,s.getLocal(`pIn1`)),s.setLocal(`itIn2`,s.getLocal(`pIn2`)),s.setLocal(`itOut`,s.getLocal(`pOut`)),s.setLocal(`i`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`i`),s.getLocal(`n`))),s.call(n,s.getLocal(`itIn1`),s.getLocal(`itIn2`),s.getLocal(`itOut`)),s.setLocal(`itIn1`,s.i32_add(s.getLocal(`itIn1`),s.i32_const(r))),s.setLocal(`itIn2`,s.i32_add(s.getLocal(`itIn2`),s.i32_const(r))),s.setLocal(`itOut`,s.i32_add(s.getLocal(`itOut`),s.i32_const(i))),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}var W={};function ze(e,t){return e===t?0:e>t?1:-1}function Be(e){return e*e}function Ve(e){return e%2n!=0n}function He(e){return e%2n==0n}function Ue(e){return e<0n}function We(e){return e>0n}function Ge(e){return Ue(e)?e.toString(2).length-1:e.toString(2).length}function Ke(e){return e<0n?-e:e}function qe(e){return Ke(e)===1n}function Je(e,t){for(var n=0n,r=1n,i=t,a=Ke(e),o,s,c;a!==0n;)o=i/a,s=n,c=i,n=r,i=a,r=s-o*r,a=c-o*a;if(!qe(i))throw Error(e.toString()+` and `+t.toString()+` are not co-prime`);return ze(n,0n)===-1&&(n+=t),Ue(e)?-n:n}function Ye(e,t,n){if(n===0n)throw Error(`Cannot take modPow with modulus 0`);var r=1n,i=e%n;for(Ue(t)&&(t*=-1n,i=Je(i,n));We(t);){if(i===0n)return 0n;Ve(t)&&(r=r*i%n),t/=2n,i=Be(i)%n}return r}function Xe(e,t){return e=e>=0n?e:-e,t=t>=0n?t:-t,e===t?0:e>t?1:-1}function Ze(e,t){return t===0n?!1:qe(t)?!0:Xe(t,2n)===0?He(e):e%t===0n}function Qe(e){var t=Ke(e);if(qe(t))return!1;if(t===2n||t===3n||t===5n)return!0;if(He(t)||Ze(t,3n)||Ze(t,5n))return!1;if(t<49n)return!0}function $e(e){return e-1n}function et(e,t){for(var n=$e(e),r=n,i=0,a,o,s;He(r);)r/=2n,i++;next:for(o=0;o<t.length;o++)if(!(e<t[o])&&(s=Ye(BigInt(t[o]),r,e),!(qe(s)||s===n))){for(a=i-1;a!=0;a--){if(s=Be(s)%e,qe(s))return!1;if(s===n)continue next}return!1}return!0}function tt(e){var t=Qe(e);if(t!==void 0)return t;var n=Ke(e),r=Ge(n);if(r<=64)return et(n,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var i=Math.log(2)*Number(r),a=Math.ceil(i),o=[],s=0;s<a;s++)o.push(BigInt(s+2));return et(n,o)}W.bitLength=Ge,W.isOdd=Ve,W.isNegative=Ue,W.abs=Ke,W.isUnit=qe,W.compare=ze,W.modInv=Je,W.modPow=Ye,W.isPrime=tt,W.square=Be;var nt=je,rt=Ae,it=Me,at=Ne,ot=Fe,st=Le,{bitLength:ct,modInv:lt,modPow:ut,isPrime:dt,isOdd:ft,square:pt}=W,mt=function(e,t,n,r){let i=BigInt(t),a=Math.floor((ct(i-1n)-1)/64)+1,o=a*2,s=a*8,c=n||`f1m`;if(e.modules[c])return c;let l=nt(e,a,r),u=e.alloc(s,rt.bigInt2BytesLE(i,s)),d=e.alloc(rt.bigInt2BytesLE(pt(1n<<BigInt(a*64))%i,s)),f=e.alloc(rt.bigInt2BytesLE((1n<<BigInt(a*64))%i,s)),p=e.alloc(rt.bigInt2BytesLE(0n,s)),m=i-1n,h=m>>1n,g=e.alloc(s,rt.bigInt2BytesLE(h,s)),_=h+1n,v=e.alloc(s,rt.bigInt2BytesLE(_,s));e.modules[c]={pq:u,pR2:d,n64:a,q:i,pOne:f,pZero:p,pePlusOne:v};function y(){let t=e.addFunction(c+`_one`);t.addParam(`pr`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_copy`,n.i32_const(f),n.getLocal(`pr`)))}function b(){let t=e.addFunction(c+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.if(n.call(l+`_add`,n.getLocal(`x`),n.getLocal(`y`),n.getLocal(`r`)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function x(){let t=e.addFunction(c+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.if(n.call(l+`_sub`,n.getLocal(`x`),n.getLocal(`y`),n.getLocal(`r`)),n.drop(n.call(l+`_add`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`)))))}function S(){let t=e.addFunction(c+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_sub`,n.i32_const(p),n.getLocal(`x`),n.getLocal(`r`)))}function C(){let t=e.addFunction(c+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.call(c+`_fromMontgomery`,n.getLocal(`x`),r),n.call(l+`_gte`,r,n.i32_const(v)))}function w(){let t=e.addFunction(c+`_sign`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(l+`_isZero`,n.getLocal(`x`)),n.ret(n.i32_const(0))),n.call(c+`_fromMontgomery`,n.getLocal(`x`),r),n.if(n.call(l+`_gte`,r,n.i32_const(v)),n.ret(n.i32_const(-1))),n.ret(n.i32_const(1)))}function T(){let t=e.alloc(o*o*8),n=e.addFunction(c+`_mReduct`);n.addParam(`t`,`i32`),n.addParam(`r`,`i32`),n.addLocal(`np32`,`i64`),n.addLocal(`c`,`i64`),n.addLocal(`m`,`i64`);let r=n.getCodeBuilder(),a=Number(4294967296n-lt(i,4294967296n));n.addCode(r.setLocal(`np32`,r.i64_const(a)));for(let e=0;e<o;e++){n.addCode(r.setLocal(`c`,r.i64_const(0))),n.addCode(r.setLocal(`m`,r.i64_and(r.i64_mul(r.i64_load32_u(r.getLocal(`t`),e*4),r.getLocal(`np32`)),r.i64_const(`0xFFFFFFFF`))));for(let t=0;t<o;t++)n.addCode(r.setLocal(`c`,r.i64_add(r.i64_add(r.i64_load32_u(r.getLocal(`t`),(e+t)*4),r.i64_shr_u(r.getLocal(`c`),r.i64_const(32))),r.i64_mul(r.i64_load32_u(r.i32_const(u),t*4),r.getLocal(`m`))))),n.addCode(r.i64_store32(r.getLocal(`t`),(e+t)*4,r.getLocal(`c`)));n.addCode(r.i64_store32(r.i32_const(t),e*4,r.i64_shr_u(r.getLocal(`c`),r.i64_const(32))))}n.addCode(r.call(c+`_add`,r.i32_const(t),r.i32_add(r.getLocal(`t`),r.i32_const(o*4)),r.getLocal(`r`)))}function E(){let t=e.addFunction(c+`_mul`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`np32`,`i64`);for(let e=0;e<o;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`y`+e,`i64`),t.addLocal(`m`+e,`i64`),t.addLocal(`q`+e,`i64`);let n=t.getCodeBuilder(),r=Number(4294967296n-lt(i,4294967296n));t.addCode(n.setLocal(`np32`,n.i64_const(r)));let a=[],s=[],d=[];function f(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),s[t]?i=n.getLocal(`y`+t):(i=n.teeLocal(`y`+t,n.i64_load32_u(n.getLocal(`y`),t*4)),s[t]=!0),n.i64_mul(r,i)}function p(e,t){let r,i;return d[e]?r=n.getLocal(`q`+e):(r=n.teeLocal(`q`+e,n.i64_load32_u(n.i32_const(0),u+e*4)),d[e]=!0),i=n.getLocal(`m`+t),n.i64_mul(r,i)}let m=`c0`,h=`c1`;for(let e=0;e<o*2-1;e++){for(let r=Math.max(0,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),f(r,i)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))}for(let r=Math.max(1,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),p(r,i)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))}e<o&&(t.addCode(n.setLocal(`m`+e,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),n.getLocal(`np32`)),n.i64_const(`0xFFFFFFFF`)))),t.addCode(n.setLocal(m,n.i64_add(n.i64_and(n.getLocal(m),n.i64_const(4294967295)),p(0,e)))),t.addCode(n.setLocal(h,n.i64_add(n.getLocal(h),n.i64_shr_u(n.getLocal(m),n.i64_const(32)))))),e>=o&&t.addCode(n.i64_store32(n.getLocal(`r`),(e-o)*4,n.getLocal(m))),[m,h]=[h,m],t.addCode(n.setLocal(h,n.i64_shr_u(n.getLocal(m),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),o*4-4,n.getLocal(m))),t.addCode(n.if(n.i32_wrap_i64(n.getLocal(h)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function D(){let t=e.addFunction(c+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`c0`,`i64`),t.addLocal(`c1`,`i64`),t.addLocal(`c0_old`,`i64`),t.addLocal(`c1_old`,`i64`),t.addLocal(`np32`,`i64`);for(let e=0;e<o;e++)t.addLocal(`x`+e,`i64`),t.addLocal(`m`+e,`i64`),t.addLocal(`q`+e,`i64`);let n=t.getCodeBuilder(),r=Number(4294967296n-lt(i,4294967296n));t.addCode(n.setLocal(`np32`,n.i64_const(r)));let a=[],s=[];function d(e,t){let r,i;return a[e]?r=n.getLocal(`x`+e):(r=n.teeLocal(`x`+e,n.i64_load32_u(n.getLocal(`x`),e*4)),a[e]=!0),a[t]?i=n.getLocal(`x`+t):(i=n.teeLocal(`x`+t,n.i64_load32_u(n.getLocal(`x`),t*4)),a[t]=!0),n.i64_mul(r,i)}function f(e,t){let r,i;return s[e]?r=n.getLocal(`q`+e):(r=n.teeLocal(`q`+e,n.i64_load32_u(n.i32_const(0),u+e*4)),s[e]=!0),i=n.getLocal(`m`+t),n.i64_mul(r,i)}let p=`c0_old`,m=`c1_old`;for(let e=0;e<o*2-1;e++){t.addCode(n.setLocal(`c0`,n.i64_const(0)),n.setLocal(`c1`,n.i64_const(0)));for(let r=Math.max(0,e-o+1);r<e+1>>1&&r<o;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),d(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}t.addCode(n.setLocal(`c0`,n.i64_shl(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_const(1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_shl(n.getLocal(`c1`),n.i64_const(1)),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))))),e%2==0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),d(e>>1,e>>1)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>0&&(t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.i64_and(n.getLocal(p),n.i64_const(4294967295))))),t.addCode(n.setLocal(`c1`,n.i64_add(n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32))),n.getLocal(m)))));for(let r=Math.max(1,e-o+1);r<=e&&r<o;r++){let i=e-r;t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),f(r,i)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))}e<o&&(t.addCode(n.setLocal(`m`+e,n.i64_and(n.i64_mul(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),n.getLocal(`np32`)),n.i64_const(`0xFFFFFFFF`)))),t.addCode(n.setLocal(`c0`,n.i64_add(n.i64_and(n.getLocal(`c0`),n.i64_const(4294967295)),f(0,e)))),t.addCode(n.setLocal(`c1`,n.i64_add(n.getLocal(`c1`),n.i64_shr_u(n.getLocal(`c0`),n.i64_const(32)))))),e>=o&&t.addCode(n.i64_store32(n.getLocal(`r`),(e-o)*4,n.getLocal(`c0`))),t.addCode(n.setLocal(p,n.getLocal(`c1`)),n.setLocal(m,n.i64_shr_u(n.getLocal(p),n.i64_const(32))))}t.addCode(n.i64_store32(n.getLocal(`r`),o*4-4,n.getLocal(p))),t.addCode(n.if(n.i32_wrap_i64(n.getLocal(m)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),n.if(n.call(l+`_gte`,n.getLocal(`r`),n.i32_const(u)),n.drop(n.call(l+`_sub`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))))))}function O(){let t=e.addFunction(c+`_squareOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function k(){let t=e.addFunction(c+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.i32_const(d),n.getLocal(`r`)))}function A(){let t=e.alloc(s*2),n=e.addFunction(c+`_fromMontgomery`);n.addParam(`x`,`i32`),n.addParam(`r`,`i32`);let r=n.getCodeBuilder();n.addCode(r.call(l+`_copy`,r.getLocal(`x`),r.i32_const(t))),n.addCode(r.call(l+`_zero`,r.i32_const(t+s))),n.addCode(r.call(c+`_mReduct`,r.i32_const(t),r.getLocal(`r`)))}function j(){let t=e.addFunction(c+`_inverse`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_fromMontgomery`,n.getLocal(`x`),n.getLocal(`r`))),t.addCode(n.call(l+`_inverseMod`,n.getLocal(`r`),n.i32_const(u),n.getLocal(`r`))),t.addCode(n.call(c+`_toMontgomery`,n.getLocal(`r`),n.getLocal(`r`)))}let M=2n;if(dt(i))for(;ut(M,h,i)!==m;)M+=1n;let N=0,P=m;for(;!ft(P)&&P!==0n;)N++,P>>=1n;let F=e.alloc(s,rt.bigInt2BytesLE(P,s)),I=ut(M,P,i),L=e.alloc(rt.bigInt2BytesLE((I<<BigInt(a*64))%i,s)),R=P+1n>>1n,z=e.alloc(s,rt.bigInt2BytesLE(R,s));function B(){let t=e.addFunction(c+`_sqrt`);t.addParam(`n`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`m`,`i32`),t.addLocal(`i`,`i32`),t.addLocal(`j`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(f),i=n.i32_const(e.alloc(s)),a=n.i32_const(e.alloc(s)),o=n.i32_const(e.alloc(s)),l=n.i32_const(e.alloc(s)),u=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(c+`_isZero`,n.getLocal(`n`)),n.ret(n.call(c+`_zero`,n.getLocal(`r`)))),n.setLocal(`m`,n.i32_const(N)),n.call(c+`_copy`,n.i32_const(L),i),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(F),n.i32_const(s),a),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(z),n.i32_const(s),o),n.block(n.loop(n.br_if(1,n.call(c+`_eq`,a,r)),n.call(c+`_square`,a,l),n.setLocal(`i`,n.i32_const(1)),n.block(n.loop(n.br_if(1,n.call(c+`_eq`,l,r)),n.call(c+`_square`,l,l),n.setLocal(`i`,n.i32_add(n.getLocal(`i`),n.i32_const(1))),n.br(0))),n.call(c+`_copy`,i,u),n.setLocal(`j`,n.i32_sub(n.i32_sub(n.getLocal(`m`),n.getLocal(`i`)),n.i32_const(1))),n.block(n.loop(n.br_if(1,n.i32_eqz(n.getLocal(`j`))),n.call(c+`_square`,u,u),n.setLocal(`j`,n.i32_sub(n.getLocal(`j`),n.i32_const(1))),n.br(0))),n.setLocal(`m`,n.getLocal(`i`)),n.call(c+`_square`,u,i),n.call(c+`_mul`,a,i,a),n.call(c+`_mul`,o,u,o),n.br(0))),n.if(n.call(c+`_isNegative`,o),n.call(c+`_neg`,o,n.getLocal(`r`)),n.call(c+`_copy`,o,n.getLocal(`r`))))}function V(){let t=e.addFunction(c+`_isSquare`);t.addParam(`n`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=n.i32_const(f),i=n.i32_const(e.alloc(s));t.addCode(n.if(n.call(c+`_isZero`,n.getLocal(`n`)),n.ret(n.i32_const(1))),n.call(c+`_exp`,n.getLocal(`n`),n.i32_const(g),n.i32_const(s),i),n.call(c+`_eq`,i,r))}function ee(){let t=e.addFunction(c+`_load`);t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`p`,`i32`),t.addLocal(`l`,`i32`),t.addLocal(`i`,`i32`),t.addLocal(`j`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s)),i=e.alloc(s),a=n.i32_const(i);t.addCode(n.call(l+`_zero`,n.getLocal(`r`)),n.setLocal(`i`,n.i32_const(s)),n.setLocal(`p`,n.getLocal(`scalar`)),n.block(n.loop(n.br_if(1,n.i32_gt_u(n.getLocal(`i`),n.getLocal(`scalarLen`))),n.if(n.i32_eq(n.getLocal(`i`),n.i32_const(s)),n.call(c+`_one`,r),n.call(c+`_mul`,r,n.i32_const(d),r)),n.call(c+`_mul`,n.getLocal(`p`),r,a),n.call(c+`_add`,n.getLocal(`r`),a,n.getLocal(`r`)),n.setLocal(`p`,n.i32_add(n.getLocal(`p`),n.i32_const(s))),n.setLocal(`i`,n.i32_add(n.getLocal(`i`),n.i32_const(s))),n.br(0))),n.setLocal(`l`,n.i32_rem_u(n.getLocal(`scalarLen`),n.i32_const(s))),n.if(n.i32_eqz(n.getLocal(`l`)),n.ret([])),n.call(l+`_zero`,a),n.setLocal(`j`,n.i32_const(0)),n.block(n.loop(n.br_if(1,n.i32_eq(n.getLocal(`j`),n.getLocal(`l`))),n.i32_store8(n.getLocal(`j`),i,n.i32_load8_u(n.getLocal(`p`))),n.setLocal(`p`,n.i32_add(n.getLocal(`p`),n.i32_const(1))),n.setLocal(`j`,n.i32_add(n.getLocal(`j`),n.i32_const(1))),n.br(0))),n.if(n.i32_eq(n.getLocal(`i`),n.i32_const(s)),n.call(c+`_one`,r),n.call(c+`_mul`,r,n.i32_const(d),r)),n.call(c+`_mul`,a,r,a),n.call(c+`_add`,n.getLocal(`r`),a,n.getLocal(`r`)))}function H(){let t=e.addFunction(c+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s));t.addCode(n.call(c+`_load`,n.getLocal(`scalar`),n.getLocal(`scalarLen`),r),n.call(c+`_toMontgomery`,r,r),n.call(c+`_mul`,n.getLocal(`x`),r,n.getLocal(`r`)))}function te(){let t=e.addFunction(c+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder();t.addCode(n.ret(n.call(l+`_eq`,n.getLocal(`x`),n.i32_const(f))))}return e.exportFunction(l+`_copy`,c+`_copy`),e.exportFunction(l+`_zero`,c+`_zero`),e.exportFunction(l+`_isZero`,c+`_isZero`),e.exportFunction(l+`_eq`,c+`_eq`),te(),b(),x(),S(),T(),E(),D(),O(),k(),A(),C(),w(),j(),y(),ee(),H(),at(e,c),ot(e,c+`_batchToMontgomery`,c+`_toMontgomery`,s,s),ot(e,c+`_batchFromMontgomery`,c+`_fromMontgomery`,s,s),ot(e,c+`_batchNeg`,c+`_neg`,s,s),st(e,c+`_batchAdd`,c+`_add`,s,s),st(e,c+`_batchSub`,c+`_sub`,s,s),st(e,c+`_batchMul`,c+`_mul`,s,s),e.exportFunction(c+`_add`),e.exportFunction(c+`_sub`),e.exportFunction(c+`_neg`),e.exportFunction(c+`_isNegative`),e.exportFunction(c+`_isOne`),e.exportFunction(c+`_sign`),e.exportFunction(c+`_mReduct`),e.exportFunction(c+`_mul`),e.exportFunction(c+`_square`),e.exportFunction(c+`_squareOld`),e.exportFunction(c+`_fromMontgomery`),e.exportFunction(c+`_toMontgomery`),e.exportFunction(c+`_inverse`),e.exportFunction(c+`_one`),e.exportFunction(c+`_load`),e.exportFunction(c+`_timesScalar`),it(e,c+`_exp`,s,c+`_mul`,c+`_square`,l+`_copy`,c+`_one`),e.exportFunction(c+`_exp`),e.exportFunction(c+`_batchInverse`),dt(i)&&(B(),V(),e.exportFunction(c+`_sqrt`),e.exportFunction(c+`_isSquare`)),e.exportFunction(c+`_batchToMontgomery`),e.exportFunction(c+`_batchFromMontgomery`),c},ht=mt,{bitLength:gt}=W,_t=function(e,t,n,r,i){let a=BigInt(t),o=Math.floor((gt(a-1n)-1)/64)+1,s=o*8,c=n||`f1`;if(e.modules[c])return c;e.modules[c]={n64:o};let l=i||`int`,u=ht(e,a,r,l),d=e.modules[u].pR2,f=e.modules[u].pq,p=e.modules[u].pePlusOne;function m(){let t=e.alloc(s),n=e.addFunction(c+`_mul`);n.addParam(`x`,`i32`),n.addParam(`y`,`i32`),n.addParam(`r`,`i32`);let r=n.getCodeBuilder();n.addCode(r.call(u+`_mul`,r.getLocal(`x`),r.getLocal(`y`),r.i32_const(t))),n.addCode(r.call(u+`_mul`,r.i32_const(t),r.i32_const(d),r.getLocal(`r`)))}function h(){let t=e.addFunction(c+`_square`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(c+`_mul`,n.getLocal(`x`),n.getLocal(`x`),n.getLocal(`r`)))}function g(){let t=e.addFunction(c+`_inverse`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_inverseMod`,n.getLocal(`x`),n.i32_const(f),n.getLocal(`r`)))}function _(){let t=e.addFunction(c+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder();t.addCode(n.call(l+`_gte`,n.getLocal(`x`),n.i32_const(p)))}return m(),h(),g(),_(),e.exportFunction(u+`_add`,c+`_add`),e.exportFunction(u+`_sub`,c+`_sub`),e.exportFunction(u+`_neg`,c+`_neg`),e.exportFunction(c+`_mul`),e.exportFunction(c+`_square`),e.exportFunction(c+`_inverse`),e.exportFunction(c+`_isNegative`),e.exportFunction(u+`_copy`,c+`_copy`),e.exportFunction(u+`_zero`,c+`_zero`),e.exportFunction(u+`_one`,c+`_one`),e.exportFunction(u+`_isZero`,c+`_isZero`),e.exportFunction(u+`_eq`,c+`_eq`),c},vt=Me,yt=Ne,bt=Ae,xt=function(e,t,n,r){if(e.modules[n])return n;let i=e.modules[r].n64*8,a=e.modules[r].q;e.modules[n]={n64:e.modules[r].n64*2};function o(){let t=e.addFunction(n+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i)),u=a.getLocal(`r`),d=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_add`,o,c,u),a.call(r+`_add`,s,l,d))}function s(){let t=e.addFunction(n+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_timesScalar`,o,a.getLocal(`scalar`),a.getLocal(`scalarLen`),c),a.call(r+`_timesScalar`,s,a.getLocal(`scalar`),a.getLocal(`scalarLen`),l))}function c(){let t=e.addFunction(n+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i)),u=a.getLocal(`r`),d=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_sub`,o,c,u),a.call(r+`_sub`,s,l,d))}function l(){let t=e.addFunction(n+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_neg`,o,c),a.call(r+`_neg`,s,l))}function u(){let t=e.addFunction(n+`_conjugate`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_copy`,o,c),a.call(r+`_neg`,s,l))}function d(){let t=e.addFunction(n+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.if(a.call(r+`_isZero`,s),a.ret(a.call(r+`_isNegative`,o))),a.ret(a.call(r+`_isNegative`,s)))}function f(){let a=e.addFunction(n+`_mul`);a.addParam(`x`,`i32`),a.addParam(`y`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`y`),u=o.i32_add(o.getLocal(`y`),o.i32_const(i)),d=o.getLocal(`r`),f=o.i32_add(o.getLocal(`r`),o.i32_const(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,l,p),o.call(r+`_mul`,c,u,m),o.call(r+`_add`,s,c,h),o.call(r+`_add`,l,u,g),o.call(r+`_mul`,h,g,h),o.call(t,m,d),o.call(r+`_add`,p,d,d),o.call(r+`_add`,p,m,f),o.call(r+`_sub`,h,f,f))}function p(){let t=e.addFunction(n+`_mul1`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_mul`,o,c,l),a.call(r+`_mul`,s,c,u))}function m(){let a=e.addFunction(n+`_square`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`r`),u=o.i32_add(o.getLocal(`r`),o.i32_const(i)),d=o.i32_const(e.alloc(i)),f=o.i32_const(e.alloc(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,c,d),o.call(r+`_add`,s,c,f),o.call(t,c,p),o.call(r+`_add`,s,p,p),o.call(t,d,m),o.call(r+`_add`,m,d,m),o.call(r+`_mul`,f,p,l),o.call(r+`_sub`,l,m,l),o.call(r+`_add`,d,d,u))}function h(){let t=e.addFunction(n+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_toMontgomery`,o,c),a.call(r+`_toMontgomery`,s,l))}function g(){let t=e.addFunction(n+`_fromMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_fromMontgomery`,o,c),a.call(r+`_fromMontgomery`,s,l))}function _(){let t=e.addFunction(n+`_copy`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`r`),l=a.i32_add(a.getLocal(`r`),a.i32_const(i));t.addCode(a.call(r+`_copy`,o,c),a.call(r+`_copy`,s,l))}function v(){let t=e.addFunction(n+`_zero`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.call(r+`_zero`,o),a.call(r+`_zero`,s))}function y(){let t=e.addFunction(n+`_one`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.call(r+`_one`,o),a.call(r+`_zero`,s))}function b(){let t=e.addFunction(n+`_eq`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.getLocal(`y`),l=a.i32_add(a.getLocal(`y`),a.i32_const(i));t.addCode(a.i32_and(a.call(r+`_eq`,o,c),a.call(r+`_eq`,s,l)))}function x(){let t=e.addFunction(n+`_isZero`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.i32_and(a.call(r+`_isZero`,o),a.call(r+`_isZero`,s)))}function S(){let a=e.addFunction(n+`_inverse`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.getLocal(`r`),u=o.i32_add(o.getLocal(`r`),o.i32_const(i)),d=o.i32_const(e.alloc(i)),f=o.i32_const(e.alloc(i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,d),o.call(r+`_square`,c,f),o.call(t,f,p),o.call(r+`_sub`,d,p,p),o.call(r+`_inverse`,p,m),o.call(r+`_mul`,s,m,l),o.call(r+`_mul`,c,m,u),o.call(r+`_neg`,u,u))}function C(){let t=e.addFunction(n+`_sign`);t.addParam(`x`,`i32`),t.addLocal(`s`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.setLocal(`s`,a.call(r+`_sign`,s)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.ret(a.call(r+`_sign`,o)))}function w(){let t=e.addFunction(n+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i));t.addCode(a.ret(a.i32_and(a.call(r+`_isOne`,o),a.call(r+`_isZero`,s))))}function T(){let t=e.addFunction(n+`_sqrt`);t.addParam(`a`,`i32`),t.addParam(`pr`,`i32`);let o=t.getCodeBuilder(),s=o.i32_const(e.alloc(bt.bigInt2BytesLE((BigInt(a||0)-3n)/4n,i))),c=o.i32_const(e.alloc(bt.bigInt2BytesLE((BigInt(a||0)-1n)/2n,i))),l=o.getLocal(`a`),u=o.i32_const(e.alloc(i*2)),d=o.i32_const(e.alloc(i*2)),f=o.i32_const(e.alloc(i*2)),p=e.alloc(i*2),m=o.i32_const(p),h=o.i32_const(p),g=o.i32_const(p+i),_=o.i32_const(e.alloc(i*2)),v=o.i32_const(e.alloc(i*2));t.addCode(o.call(n+`_one`,m),o.call(n+`_neg`,m,m),o.call(n+`_exp`,l,s,o.i32_const(i),u),o.call(n+`_square`,u,d),o.call(n+`_mul`,l,d,d),o.call(n+`_conjugate`,d,f),o.call(n+`_mul`,f,d,f),o.if(o.call(n+`_eq`,f,m),o.unreachable()),o.call(n+`_mul`,u,l,_),o.if(o.call(n+`_eq`,d,m),[...o.call(r+`_zero`,h),...o.call(r+`_one`,g),...o.call(n+`_mul`,m,_,o.getLocal(`pr`))],[...o.call(n+`_one`,v),...o.call(n+`_add`,v,d,v),...o.call(n+`_exp`,v,c,o.i32_const(i),v),...o.call(n+`_mul`,v,_,o.getLocal(`pr`))]))}function E(){let t=e.addFunction(n+`_isSquare`);t.addParam(`a`,`i32`),t.setReturnType(`i32`);let r=t.getCodeBuilder(),o=r.i32_const(e.alloc(bt.bigInt2BytesLE((BigInt(a||0)-3n)/4n,i))),s=r.getLocal(`a`),c=r.i32_const(e.alloc(i*2)),l=r.i32_const(e.alloc(i*2)),u=r.i32_const(e.alloc(i*2)),d=e.alloc(i*2),f=r.i32_const(d);t.addCode(r.call(n+`_one`,f),r.call(n+`_neg`,f,f),r.call(n+`_exp`,s,o,r.i32_const(i),c),r.call(n+`_square`,c,l),r.call(n+`_mul`,s,l,l),r.call(n+`_conjugate`,l,u),r.call(n+`_mul`,u,l,u),r.if(r.call(n+`_eq`,u,f),r.ret(r.i32_const(0))),r.ret(r.i32_const(1)))}return x(),w(),v(),y(),_(),f(),p(),m(),o(),c(),l(),u(),h(),g(),b(),S(),s(),C(),d(),e.exportFunction(n+`_isZero`),e.exportFunction(n+`_isOne`),e.exportFunction(n+`_zero`),e.exportFunction(n+`_one`),e.exportFunction(n+`_copy`),e.exportFunction(n+`_mul`),e.exportFunction(n+`_mul1`),e.exportFunction(n+`_square`),e.exportFunction(n+`_add`),e.exportFunction(n+`_sub`),e.exportFunction(n+`_neg`),e.exportFunction(n+`_sign`),e.exportFunction(n+`_conjugate`),e.exportFunction(n+`_fromMontgomery`),e.exportFunction(n+`_toMontgomery`),e.exportFunction(n+`_eq`),e.exportFunction(n+`_inverse`),yt(e,n),vt(e,n+`_exp`,i*2,n+`_mul`,n+`_square`,n+`_copy`,n+`_one`),T(),E(),e.exportFunction(n+`_exp`),e.exportFunction(n+`_timesScalar`),e.exportFunction(n+`_batchInverse`),e.exportFunction(n+`_sqrt`),e.exportFunction(n+`_isSquare`),e.exportFunction(n+`_isNegative`),n},St=Me,Ct=Ne,wt=function(e,t,n,r){if(e.modules[n])return n;let i=e.modules[r].n64*8;e.modules[n]={n64:e.modules[r].n64*3};function a(){let t=e.addFunction(n+`_add`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i)),f=a.getLocal(`r`),p=a.i32_add(a.getLocal(`r`),a.i32_const(i)),m=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_add`,o,l,f),a.call(r+`_add`,s,u,p),a.call(r+`_add`,c,d,m))}function o(){let t=e.addFunction(n+`_timesScalar`);t.addParam(`x`,`i32`),t.addParam(`scalar`,`i32`),t.addParam(`scalarLen`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_timesScalar`,o,a.getLocal(`scalar`),a.getLocal(`scalarLen`),l),a.call(r+`_timesScalar`,s,a.getLocal(`scalar`),a.getLocal(`scalarLen`),u),a.call(r+`_timesScalar`,c,a.getLocal(`scalar`),a.getLocal(`scalarLen`),d))}function s(){let t=e.addFunction(n+`_sub`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i)),f=a.getLocal(`r`),p=a.i32_add(a.getLocal(`r`),a.i32_const(i)),m=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_sub`,o,l,f),a.call(r+`_sub`,s,u,p),a.call(r+`_sub`,c,d,m))}function c(){let t=e.addFunction(n+`_neg`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_neg`,o,l),a.call(r+`_neg`,s,u),a.call(r+`_neg`,c,d))}function l(){let t=e.addFunction(n+`_isNegative`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.if(a.call(r+`_isZero`,c),a.if(a.call(r+`_isZero`,s),a.ret(a.call(r+`_isNegative`,o)),a.ret(a.call(r+`_isNegative`,s)))),a.ret(a.call(r+`_isNegative`,c)))}function u(){let a=e.addFunction(n+`_mul`);a.addParam(`x`,`i32`),a.addParam(`y`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`y`),d=o.i32_add(o.getLocal(`y`),o.i32_const(i)),f=o.i32_add(o.getLocal(`y`),o.i32_const(2*i)),p=o.getLocal(`r`),m=o.i32_add(o.getLocal(`r`),o.i32_const(i)),h=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i)),b=o.i32_const(e.alloc(i)),x=o.i32_const(e.alloc(i)),S=o.i32_const(e.alloc(i)),C=o.i32_const(e.alloc(i)),w=o.i32_const(e.alloc(i)),T=o.i32_const(e.alloc(i)),E=o.i32_const(e.alloc(i)),D=o.i32_const(e.alloc(i)),O=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_mul`,s,u,g),o.call(r+`_mul`,c,d,_),o.call(r+`_mul`,l,f,v),o.call(r+`_add`,s,c,y),o.call(r+`_add`,u,d,b),o.call(r+`_add`,s,l,x),o.call(r+`_add`,u,f,S),o.call(r+`_add`,c,l,C),o.call(r+`_add`,d,f,w),o.call(r+`_add`,g,_,T),o.call(r+`_add`,g,v,E),o.call(r+`_add`,_,v,D),o.call(r+`_mul`,C,w,p),o.call(r+`_sub`,p,D,p),o.call(t,p,p),o.call(r+`_add`,g,p,p),o.call(r+`_mul`,y,b,m),o.call(r+`_sub`,m,T,m),o.call(t,v,O),o.call(r+`_add`,m,O,m),o.call(r+`_mul`,x,S,h),o.call(r+`_sub`,h,E,h),o.call(r+`_add`,h,_,h))}function d(){let a=e.addFunction(n+`_square`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`r`),d=o.i32_add(o.getLocal(`r`),o.i32_const(i)),f=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,p),o.call(r+`_mul`,s,c,m),o.call(r+`_add`,m,m,h),o.call(r+`_sub`,s,c,g),o.call(r+`_add`,g,l,g),o.call(r+`_square`,g,g),o.call(r+`_mul`,c,l,_),o.call(r+`_add`,_,_,v),o.call(r+`_square`,l,y),o.call(t,v,u),o.call(r+`_add`,p,u,u),o.call(t,y,d),o.call(r+`_add`,h,d,d),o.call(r+`_add`,p,y,f),o.call(r+`_sub`,v,f,f),o.call(r+`_add`,g,f,f),o.call(r+`_add`,h,f,f))}function f(){let t=e.addFunction(n+`_toMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_toMontgomery`,o,l),a.call(r+`_toMontgomery`,s,u),a.call(r+`_toMontgomery`,c,d))}function p(){let t=e.addFunction(n+`_fromMontgomery`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_fromMontgomery`,o,l),a.call(r+`_fromMontgomery`,s,u),a.call(r+`_fromMontgomery`,c,d))}function m(){let t=e.addFunction(n+`_copy`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`r`),u=a.i32_add(a.getLocal(`r`),a.i32_const(i)),d=a.i32_add(a.getLocal(`r`),a.i32_const(2*i));t.addCode(a.call(r+`_copy`,o,l),a.call(r+`_copy`,s,u),a.call(r+`_copy`,c,d))}function h(){let t=e.addFunction(n+`_zero`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.call(r+`_zero`,o),a.call(r+`_zero`,s),a.call(r+`_zero`,c))}function g(){let t=e.addFunction(n+`_one`);t.addParam(`x`,`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.call(r+`_one`,o),a.call(r+`_zero`,s),a.call(r+`_zero`,c))}function _(){let t=e.addFunction(n+`_eq`);t.addParam(`x`,`i32`),t.addParam(`y`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i)),l=a.getLocal(`y`),u=a.i32_add(a.getLocal(`y`),a.i32_const(i)),d=a.i32_add(a.getLocal(`y`),a.i32_const(2*i));t.addCode(a.i32_and(a.i32_and(a.call(r+`_eq`,o,l),a.call(r+`_eq`,s,u)),a.call(r+`_eq`,c,d)))}function v(){let t=e.addFunction(n+`_isZero`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.i32_and(a.i32_and(a.call(r+`_isZero`,o),a.call(r+`_isZero`,s)),a.call(r+`_isZero`,c)))}function y(){let a=e.addFunction(n+`_inverse`);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let o=a.getCodeBuilder(),s=o.getLocal(`x`),c=o.i32_add(o.getLocal(`x`),o.i32_const(i)),l=o.i32_add(o.getLocal(`x`),o.i32_const(2*i)),u=o.getLocal(`r`),d=o.i32_add(o.getLocal(`r`),o.i32_const(i)),f=o.i32_add(o.getLocal(`r`),o.i32_const(2*i)),p=o.i32_const(e.alloc(i)),m=o.i32_const(e.alloc(i)),h=o.i32_const(e.alloc(i)),g=o.i32_const(e.alloc(i)),_=o.i32_const(e.alloc(i)),v=o.i32_const(e.alloc(i)),y=o.i32_const(e.alloc(i)),b=o.i32_const(e.alloc(i)),x=o.i32_const(e.alloc(i)),S=o.i32_const(e.alloc(i)),C=o.i32_const(e.alloc(i));a.addCode(o.call(r+`_square`,s,p),o.call(r+`_square`,c,m),o.call(r+`_square`,l,h),o.call(r+`_mul`,s,c,g),o.call(r+`_mul`,s,l,_),o.call(r+`_mul`,c,l,v),o.call(t,v,y),o.call(r+`_sub`,p,y,y),o.call(t,h,b),o.call(r+`_sub`,b,g,b),o.call(r+`_sub`,m,_,x),o.call(r+`_mul`,l,b,S),o.call(r+`_mul`,c,x,C),o.call(r+`_add`,S,C,S),o.call(t,S,S),o.call(r+`_mul`,s,y,C),o.call(r+`_add`,C,S,S),o.call(r+`_inverse`,S,S),o.call(r+`_mul`,S,y,u),o.call(r+`_mul`,S,b,d),o.call(r+`_mul`,S,x,f))}function b(){let t=e.addFunction(n+`_sign`);t.addParam(`x`,`i32`),t.addLocal(`s`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(2*i));t.addCode(a.setLocal(`s`,a.call(r+`_sign`,c)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.setLocal(`s`,a.call(r+`_sign`,s)),a.if(a.getLocal(`s`),a.ret(a.getLocal(`s`))),a.ret(a.call(r+`_sign`,o)))}function x(){let t=e.addFunction(n+`_isOne`);t.addParam(`x`,`i32`),t.setReturnType(`i32`);let a=t.getCodeBuilder(),o=a.getLocal(`x`),s=a.i32_add(a.getLocal(`x`),a.i32_const(i)),c=a.i32_add(a.getLocal(`x`),a.i32_const(i*2));t.addCode(a.ret(a.i32_and(a.i32_and(a.call(r+`_isOne`,o),a.call(r+`_isZero`,s)),a.call(r+`_isZero`,c))))}return v(),x(),h(),g(),m(),u(),d(),a(),s(),c(),b(),f(),p(),_(),y(),o(),l(),e.exportFunction(n+`_isZero`),e.exportFunction(n+`_isOne`),e.exportFunction(n+`_zero`),e.exportFunction(n+`_one`),e.exportFunction(n+`_copy`),e.exportFunction(n+`_mul`),e.exportFunction(n+`_square`),e.exportFunction(n+`_add`),e.exportFunction(n+`_sub`),e.exportFunction(n+`_neg`),e.exportFunction(n+`_sign`),e.exportFunction(n+`_fromMontgomery`),e.exportFunction(n+`_toMontgomery`),e.exportFunction(n+`_eq`),e.exportFunction(n+`_inverse`),Ct(e,n),St(e,n+`_exp`,i*3,n+`_mul`,n+`_square`,n+`_copy`,n+`_one`),e.exportFunction(n+`_exp`),e.exportFunction(n+`_timesScalar`),e.exportFunction(n+`_batchInverse`),e.exportFunction(n+`_isNegative`),n},Tt=function(e,t,n,r,i,a,o,s){let c=e.addFunction(t);c.addParam(`base`,`i32`),c.addParam(`scalar`,`i32`),c.addParam(`scalarLength`,`i32`),c.addParam(`r`,`i32`),c.addLocal(`old0`,`i32`),c.addLocal(`nbits`,`i32`),c.addLocal(`i`,`i32`),c.addLocal(`last`,`i32`),c.addLocal(`cur`,`i32`),c.addLocal(`carry`,`i32`),c.addLocal(`p`,`i32`);let l=c.getCodeBuilder(),u=l.i32_const(e.alloc(n));function d(e){return l.i32_and(l.i32_shr_u(l.i32_load(l.i32_add(l.getLocal(`scalar`),l.i32_and(l.i32_shr_u(e,l.i32_const(3)),l.i32_const(4294967292)))),l.i32_and(e,l.i32_const(31))),l.i32_const(1))}function f(e){return[...l.i32_store8(l.getLocal(`p`),l.i32_const(e)),...l.setLocal(`p`,l.i32_add(l.getLocal(`p`),l.i32_const(1)))]}c.addCode(l.if(l.i32_eqz(l.getLocal(`scalarLength`)),[...l.call(s,l.getLocal(`r`)),...l.ret([])]),l.setLocal(`nbits`,l.i32_shl(l.getLocal(`scalarLength`),l.i32_const(3))),l.setLocal(`old0`,l.i32_load(l.i32_const(0))),l.setLocal(`p`,l.getLocal(`old0`)),l.i32_store(l.i32_const(0),l.i32_and(l.i32_add(l.i32_add(l.getLocal(`old0`),l.i32_const(32)),l.getLocal(`nbits`)),l.i32_const(4294967288))),l.setLocal(`i`,l.i32_const(1)),l.setLocal(`last`,d(l.i32_const(0))),l.setLocal(`carry`,l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal(`i`),l.getLocal(`nbits`))),l.setLocal(`cur`,d(l.getLocal(`i`))),l.if(l.getLocal(`last`),l.if(l.getLocal(`cur`),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(1)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(255)]),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(255)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(0)),...f(1)])),l.if(l.getLocal(`cur`),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(1)),...f(0)],[...l.setLocal(`last`,l.i32_const(1)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)]),l.if(l.getLocal(`carry`),[...l.setLocal(`last`,l.i32_const(1)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)],[...l.setLocal(`last`,l.i32_const(0)),...l.setLocal(`carry`,l.i32_const(0)),...f(0)]))),l.setLocal(`i`,l.i32_add(l.getLocal(`i`),l.i32_const(1))),l.br(0))),l.if(l.getLocal(`last`),l.if(l.getLocal(`carry`),[...f(255),...f(0),...f(1)],[...f(1)]),l.if(l.getLocal(`carry`),[...f(0),...f(1)])),l.setLocal(`p`,l.i32_sub(l.getLocal(`p`),l.i32_const(1))),l.call(o,l.getLocal(`base`),u),l.call(s,l.getLocal(`r`)),l.block(l.loop(l.call(i,l.getLocal(`r`),l.getLocal(`r`)),l.setLocal(`cur`,l.i32_load8_u(l.getLocal(`p`))),l.if(l.getLocal(`cur`),l.if(l.i32_eq(l.getLocal(`cur`),l.i32_const(1)),l.call(r,l.getLocal(`r`),u,l.getLocal(`r`)),l.call(a,l.getLocal(`r`),u,l.getLocal(`r`)))),l.br_if(1,l.i32_eq(l.getLocal(`old0`),l.getLocal(`p`))),l.setLocal(`p`,l.i32_sub(l.getLocal(`p`),l.i32_const(1))),l.br(0))),l.i32_store(l.i32_const(0),l.getLocal(`old0`)))},Et=function(e,t,n,r,i){let a=e.modules[t].n64*8;function o(){let t=e.addFunction(n+`_getChunk`);t.addParam(`pScalar`,`i32`),t.addParam(`scalarSize`,`i32`),t.addParam(`startBit`,`i32`),t.addParam(`chunkSize`,`i32`),t.addLocal(`bitsToEnd`,`i32`),t.addLocal(`mask`,`i32`),t.setReturnType(`i32`);let r=t.getCodeBuilder();t.addCode(r.setLocal(`bitsToEnd`,r.i32_sub(r.i32_mul(r.getLocal(`scalarSize`),r.i32_const(8)),r.getLocal(`startBit`))),r.if(r.i32_gt_s(r.getLocal(`chunkSize`),r.getLocal(`bitsToEnd`)),r.setLocal(`mask`,r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal(`bitsToEnd`)),r.i32_const(1))),r.setLocal(`mask`,r.i32_sub(r.i32_shl(r.i32_const(1),r.getLocal(`chunkSize`)),r.i32_const(1)))),r.i32_and(r.i32_shr_u(r.i32_load(r.i32_add(r.getLocal(`pScalar`),r.i32_shr_u(r.getLocal(`startBit`),r.i32_const(3))),0,0),r.i32_and(r.getLocal(`startBit`),r.i32_const(7))),r.getLocal(`mask`)))}function s(){let o=e.addFunction(n+`_chunk`);o.addParam(`pBases`,`i32`),o.addParam(`pScalars`,`i32`),o.addParam(`scalarSize`,`i32`),o.addParam(`n`,`i32`),o.addParam(`startBit`,`i32`),o.addParam(`chunkSize`,`i32`),o.addParam(`pr`,`i32`),o.addLocal(`nChunks`,`i32`),o.addLocal(`itScalar`,`i32`),o.addLocal(`endScalar`,`i32`),o.addLocal(`itBase`,`i32`),o.addLocal(`i`,`i32`),o.addLocal(`j`,`i32`),o.addLocal(`nTable`,`i32`),o.addLocal(`pTable`,`i32`),o.addLocal(`idx`,`i32`),o.addLocal(`pIdxTable`,`i32`);let s=o.getCodeBuilder();o.addCode(s.if(s.i32_eqz(s.getLocal(`n`)),[...s.call(t+`_zero`,s.getLocal(`pr`)),...s.ret([])]),s.setLocal(`nTable`,s.i32_shl(s.i32_const(1),s.getLocal(`chunkSize`))),s.setLocal(`pTable`,s.i32_load(s.i32_const(0))),s.i32_store(s.i32_const(0),s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.getLocal(`nTable`),s.i32_const(a)))),s.setLocal(`j`,s.i32_const(0)),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`j`),s.getLocal(`nTable`))),s.call(t+`_zero`,s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.getLocal(`j`),s.i32_const(a)))),s.setLocal(`j`,s.i32_add(s.getLocal(`j`),s.i32_const(1))),s.br(0))),s.setLocal(`itBase`,s.getLocal(`pBases`)),s.setLocal(`itScalar`,s.getLocal(`pScalars`)),s.setLocal(`endScalar`,s.i32_add(s.getLocal(`pScalars`),s.i32_mul(s.getLocal(`n`),s.getLocal(`scalarSize`)))),s.block(s.loop(s.br_if(1,s.i32_eq(s.getLocal(`itScalar`),s.getLocal(`endScalar`))),s.setLocal(`idx`,s.call(n+`_getChunk`,s.getLocal(`itScalar`),s.getLocal(`scalarSize`),s.getLocal(`startBit`),s.getLocal(`chunkSize`))),s.if(s.getLocal(`idx`),[...s.setLocal(`pIdxTable`,s.i32_add(s.getLocal(`pTable`),s.i32_mul(s.i32_sub(s.getLocal(`idx`),s.i32_const(1)),s.i32_const(a)))),...s.call(r,s.getLocal(`pIdxTable`),s.getLocal(`itBase`),s.getLocal(`pIdxTable`))]),s.setLocal(`itScalar`,s.i32_add(s.getLocal(`itScalar`),s.getLocal(`scalarSize`))),s.setLocal(`itBase`,s.i32_add(s.getLocal(`itBase`),s.i32_const(i))),s.br(0))),s.call(n+`_reduceTable`,s.getLocal(`pTable`),s.getLocal(`chunkSize`)),s.call(t+`_copy`,s.getLocal(`pTable`),s.getLocal(`pr`)),s.i32_store(s.i32_const(0),s.getLocal(`pTable`)))}function c(){let r=e.addFunction(n);r.addParam(`pBases`,`i32`),r.addParam(`pScalars`,`i32`),r.addParam(`scalarSize`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`chunkSize`,`i32`),r.addLocal(`nChunks`,`i32`),r.addLocal(`itScalar`,`i32`),r.addLocal(`endScalar`,`i32`),r.addLocal(`itBase`,`i32`),r.addLocal(`itBit`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`j`,`i32`),r.addLocal(`nTable`,`i32`),r.addLocal(`pTable`,`i32`),r.addLocal(`idx`,`i32`),r.addLocal(`pIdxTable`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a)),s=e.alloc([17,17,17,17,17,17,17,17,17,17,16,16,15,14,13,13,12,11,10,9,8,7,7,6,5,4,3,2,1,1,1,1]);r.addCode(i.call(t+`_zero`,i.getLocal(`pr`)),i.if(i.i32_eqz(i.getLocal(`n`)),i.ret([])),i.setLocal(`chunkSize`,i.i32_load8_u(i.i32_clz(i.getLocal(`n`)),s)),i.setLocal(`nChunks`,i.i32_add(i.i32_div_u(i.i32_sub(i.i32_shl(i.getLocal(`scalarSize`),i.i32_const(3)),i.i32_const(1)),i.getLocal(`chunkSize`)),i.i32_const(1))),i.setLocal(`itBit`,i.i32_mul(i.i32_sub(i.getLocal(`nChunks`),i.i32_const(1)),i.getLocal(`chunkSize`))),i.block(i.loop(i.br_if(1,i.i32_lt_s(i.getLocal(`itBit`),i.i32_const(0))),i.if(i.i32_eqz(i.call(t+`_isZero`,i.getLocal(`pr`))),[...i.setLocal(`j`,i.i32_const(0)),...i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`j`),i.getLocal(`chunkSize`))),i.call(t+`_double`,i.getLocal(`pr`),i.getLocal(`pr`)),i.setLocal(`j`,i.i32_add(i.getLocal(`j`),i.i32_const(1))),i.br(0)))]),i.call(n+`_chunk`,i.getLocal(`pBases`),i.getLocal(`pScalars`),i.getLocal(`scalarSize`),i.getLocal(`n`),i.getLocal(`itBit`),i.getLocal(`chunkSize`),o),i.call(t+`_add`,i.getLocal(`pr`),o,i.getLocal(`pr`)),i.setLocal(`itBit`,i.i32_sub(i.getLocal(`itBit`),i.getLocal(`chunkSize`))),i.br(0))))}function l(){let r=e.addFunction(n+`_reduceTable`);r.addParam(`pTable`,`i32`),r.addParam(`p`,`i32`),r.addLocal(`half`,`i32`),r.addLocal(`it1`,`i32`),r.addLocal(`it2`,`i32`),r.addLocal(`pAcc`,`i32`);let i=r.getCodeBuilder();r.addCode(i.if(i.i32_eq(i.getLocal(`p`),i.i32_const(1)),i.ret([])),i.setLocal(`half`,i.i32_shl(i.i32_const(1),i.i32_sub(i.getLocal(`p`),i.i32_const(1)))),i.setLocal(`it1`,i.getLocal(`pTable`)),i.setLocal(`it2`,i.i32_add(i.getLocal(`pTable`),i.i32_mul(i.getLocal(`half`),i.i32_const(a)))),i.setLocal(`pAcc`,i.i32_sub(i.getLocal(`it2`),i.i32_const(a))),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`it1`),i.getLocal(`pAcc`))),i.call(t+`_add`,i.getLocal(`it1`),i.getLocal(`it2`),i.getLocal(`it1`)),i.call(t+`_add`,i.getLocal(`pAcc`),i.getLocal(`it2`),i.getLocal(`pAcc`)),i.setLocal(`it1`,i.i32_add(i.getLocal(`it1`),i.i32_const(a))),i.setLocal(`it2`,i.i32_add(i.getLocal(`it2`),i.i32_const(a))),i.br(0))),i.call(n+`_reduceTable`,i.getLocal(`pTable`),i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.setLocal(`p`,i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.block(i.loop(i.br_if(1,i.i32_eqz(i.getLocal(`p`))),i.call(t+`_double`,i.getLocal(`pAcc`),i.getLocal(`pAcc`)),i.setLocal(`p`,i.i32_sub(i.getLocal(`p`),i.i32_const(1))),i.br(0))),i.call(t+`_add`,i.getLocal(`pTable`),i.getLocal(`pAcc`),i.getLocal(`pTable`)))}o(),l(),s(),c(),e.exportFunction(n),e.exportFunction(n+`_chunk`)},Dt=Tt,Ot=Fe,kt=Et,At=function(e,t,n,r){let i=e.modules[n].n64,a=i*8;if(e.modules[t])return t;e.modules[t]={n64:i*3};function o(){let r=e.addFunction(t+`_isZero`);r.addParam(`p1`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_isZero`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))))}function s(){let r=e.addFunction(t+`_isZeroAffine`);r.addParam(`p1`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder();r.addCode(i.i32_and(i.call(n+`_isZero`,i.getLocal(`p1`)),i.call(n+`_isZero`,i.i32_add(i.getLocal(`p1`),i.i32_const(a)))))}function c(){let n=e.addFunction(t+`_copy`);n.addParam(`ps`,`i32`),n.addParam(`pd`,`i32`);let r=n.getCodeBuilder();for(let e=0;e<i*3;e++)n.addCode(r.i64_store(r.getLocal(`pd`),e*8,r.i64_load(r.getLocal(`ps`),e*8)))}function l(){let n=e.addFunction(t+`_copyAffine`);n.addParam(`ps`,`i32`),n.addParam(`pd`,`i32`);let r=n.getCodeBuilder();for(let e=0;e<i*2;e++)n.addCode(r.i64_store(r.getLocal(`pd`),e*8,r.i64_load(r.getLocal(`ps`),e*8)))}function u(){let r=e.addFunction(t+`_zero`);r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_zero`,i.getLocal(`pr`))),r.addCode(i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a)))),r.addCode(i.call(n+`_zero`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))))}function d(){let r=e.addFunction(t+`_zeroAffine`);r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_zero`,i.getLocal(`pr`))),r.addCode(i.call(n+`_zero`,i.i32_add(i.getLocal(`pr`),i.i32_const(a))))}function f(){let r=e.addFunction(t+`_eq`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`),r.addLocal(`z2`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a));r.addCode(i.setLocal(`z2`,i.i32_add(i.getLocal(`p2`),i.i32_const(a*2))));let d=i.getLocal(`z2`),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.ret(i.call(t+`_isZero`,i.getLocal(`p2`)))),i.if(i.call(t+`_isZero`,i.getLocal(`p2`)),i.ret(i.i32_const(0))),i.if(i.call(n+`_isOne`,c),i.ret(i.call(t+`_eqMixed`,i.getLocal(`p2`),i.getLocal(`p1`)))),i.if(i.call(n+`_isOne`,d),i.ret(i.call(t+`_eqMixed`,i.getLocal(`p1`),i.getLocal(`p2`)))),i.call(n+`_square`,c,f),i.call(n+`_square`,d,p),i.call(n+`_mul`,o,p,m),i.call(n+`_mul`,l,f,h),i.call(n+`_mul`,c,f,g),i.call(n+`_mul`,d,p,_),i.call(n+`_mul`,s,_,v),i.call(n+`_mul`,u,g,y),i.if(i.call(n+`_eq`,m,h),i.if(i.call(n+`_eq`,v,y),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}function p(){let r=e.addFunction(t+`_eqMixed`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.ret(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)))),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),i.ret(i.i32_const(0))),i.if(i.call(n+`_isOne`,c),i.ret(i.call(t+`_eqAffine`,i.getLocal(`p1`),i.getLocal(`p2`)))),i.call(n+`_square`,c,d),i.call(n+`_mul`,l,d,f),i.call(n+`_mul`,c,d,p),i.call(n+`_mul`,u,p,m),i.if(i.call(n+`_eq`,o,f),i.if(i.call(n+`_eq`,s,m),i.ret(i.i32_const(1)))),i.ret(i.i32_const(0)))}function m(){let r=e.addFunction(t+`_double`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.ret(i.call(t+`_doubleAffine`,i.getLocal(`p1`),i.getLocal(`pr`))),...i.ret([])]),i.call(n+`_square`,o,f),i.call(n+`_square`,s,p),i.call(n+`_square`,p,m),i.call(n+`_add`,o,p,h),i.call(n+`_square`,h,h),i.call(n+`_sub`,h,f,h),i.call(n+`_sub`,h,m,h),i.call(n+`_add`,h,h,h),i.call(n+`_add`,f,f,g),i.call(n+`_add`,g,f,g),i.call(n+`_square`,g,_),i.call(n+`_mul`,s,c,v),i.call(n+`_add`,h,h,l),i.call(n+`_sub`,_,l,l),i.call(n+`_add`,m,m,y),i.call(n+`_add`,y,y,y),i.call(n+`_add`,y,y,y),i.call(n+`_sub`,h,l,u),i.call(n+`_mul`,u,g,u),i.call(n+`_sub`,u,y,u),i.call(n+`_add`,v,v,d))}function h(){let r=e.addFunction(t+`_doubleAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),[...i.call(t+`_toJacobian`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.call(n+`_square`,o,d),i.call(n+`_square`,s,f),i.call(n+`_square`,f,p),i.call(n+`_add`,o,f,m),i.call(n+`_square`,m,m),i.call(n+`_sub`,m,d,m),i.call(n+`_sub`,m,p,m),i.call(n+`_add`,m,m,m),i.call(n+`_add`,d,d,h),i.call(n+`_add`,h,d,h),i.call(n+`_add`,s,s,u),i.call(n+`_square`,h,c),i.call(n+`_sub`,c,m,c),i.call(n+`_sub`,c,m,c),i.call(n+`_add`,p,p,g),i.call(n+`_add`,g,g,g),i.call(n+`_add`,g,g,g),i.call(n+`_sub`,m,c,l),i.call(n+`_mul`,l,h,l),i.call(n+`_sub`,l,g,l))}function g(){let r=e.addFunction(t+`_eqAffine`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.setReturnType(`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder();r.addCode(i.ret(i.i32_and(i.call(n+`_eq`,i.getLocal(`p1`),i.getLocal(`p2`)),i.call(n+`_eq`,i.i32_add(i.getLocal(`p1`),i.i32_const(a)),i.i32_add(i.getLocal(`p2`),i.i32_const(a))))))}function _(){let r=e.addFunction(t+`_toMontgomery`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_toMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<3;e++)r.addCode(i.call(n+`_toMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function v(){let r=e.addFunction(t+`_toMontgomeryAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_toMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<2;e++)r.addCode(i.call(n+`_toMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function y(){let r=e.addFunction(t+`_fromMontgomery`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_fromMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<3;e++)r.addCode(i.call(n+`_fromMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function b(){let r=e.addFunction(t+`_fromMontgomeryAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder();r.addCode(i.call(n+`_fromMontgomery`,i.getLocal(`p1`),i.getLocal(`pr`)));for(let e=1;e<2;e++)r.addCode(i.call(n+`_fromMontgomery`,i.i32_add(i.getLocal(`p1`),i.i32_const(e*a)),i.i32_add(i.getLocal(`pr`),i.i32_const(e*a))))}function x(){let r=e.addFunction(t+`_add`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`),r.addLocal(`z2`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a));r.addCode(i.setLocal(`z2`,i.i32_add(i.getLocal(`p2`),i.i32_const(a*2))));let d=i.getLocal(`z2`),f=i.getLocal(`pr`),p=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),m=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a)),C=i.i32_const(e.alloc(a)),w=i.i32_const(e.alloc(a)),T=i.i32_const(e.alloc(a)),E=i.i32_const(e.alloc(a)),D=i.i32_const(e.alloc(a)),O=i.i32_const(e.alloc(a)),k=i.i32_const(e.alloc(a)),A=i.i32_const(e.alloc(a)),j=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copy`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(t+`_isZero`,i.getLocal(`p2`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.call(t+`_addMixed`,l,o,f),...i.ret([])]),i.if(i.call(n+`_isOne`,d),[...i.call(t+`_addMixed`,o,l,f),...i.ret([])]),i.call(n+`_square`,c,h),i.call(n+`_square`,d,g),i.call(n+`_mul`,o,g,_),i.call(n+`_mul`,l,h,v),i.call(n+`_mul`,c,h,y),i.call(n+`_mul`,d,g,b),i.call(n+`_mul`,s,b,x),i.call(n+`_mul`,u,y,S),i.if(i.call(n+`_eq`,_,v),i.if(i.call(n+`_eq`,x,S),[...i.call(t+`_double`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,v,_,C),i.call(n+`_sub`,S,x,w),i.call(n+`_add`,C,C,T),i.call(n+`_square`,T,T),i.call(n+`_mul`,C,T,E),i.call(n+`_add`,w,w,D),i.call(n+`_mul`,_,T,k),i.call(n+`_square`,D,O),i.call(n+`_add`,k,k,A),i.call(n+`_sub`,O,E,f),i.call(n+`_sub`,f,A,f),i.call(n+`_mul`,x,E,j),i.call(n+`_add`,j,j,j),i.call(n+`_sub`,k,f,p),i.call(n+`_mul`,p,D,p),i.call(n+`_sub`,p,j,p),i.call(n+`_add`,c,d,m),i.call(n+`_square`,m,m),i.call(n+`_sub`,m,h,m),i.call(n+`_sub`,m,g,m),i.call(n+`_mul`,m,C,m))}function S(){let r=e.addFunction(t+`_addMixed`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`z1`),l=i.getLocal(`p2`),u=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),d=i.getLocal(`pr`),f=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),p=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a)),C=i.i32_const(e.alloc(a)),w=i.i32_const(e.alloc(a)),T=i.i32_const(e.alloc(a)),E=i.i32_const(e.alloc(a)),D=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(t+`_copyAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),[...i.call(t+`_copy`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.ret([])]),i.if(i.call(n+`_isOne`,c),[...i.call(t+`_addAffine`,o,l,d),...i.ret([])]),i.call(n+`_square`,c,m),i.call(n+`_mul`,l,m,h),i.call(n+`_mul`,c,m,g),i.call(n+`_mul`,u,g,_),i.if(i.call(n+`_eq`,o,h),i.if(i.call(n+`_eq`,s,_),[...i.call(t+`_doubleAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,h,o,v),i.call(n+`_sub`,_,s,b),i.call(n+`_square`,v,y),i.call(n+`_add`,y,y,x),i.call(n+`_add`,x,x,x),i.call(n+`_mul`,v,x,S),i.call(n+`_add`,b,b,C),i.call(n+`_mul`,o,x,T),i.call(n+`_square`,C,w),i.call(n+`_add`,T,T,E),i.call(n+`_sub`,w,S,d),i.call(n+`_sub`,d,E,d),i.call(n+`_mul`,s,S,D),i.call(n+`_add`,D,D,D),i.call(n+`_sub`,T,d,f),i.call(n+`_mul`,f,C,f),i.call(n+`_sub`,f,D,f),i.call(n+`_add`,c,v,p),i.call(n+`_square`,p,p),i.call(n+`_sub`,p,m,p),i.call(n+`_sub`,p,y,p))}function C(){let r=e.addFunction(t+`_addAffine`);r.addParam(`p1`,`i32`),r.addParam(`p2`,`i32`),r.addParam(`pr`,`i32`),r.addLocal(`z1`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a));r.addCode(i.setLocal(`z1`,i.i32_add(i.getLocal(`p1`),i.i32_const(a*2))));let c=i.getLocal(`p2`),l=i.i32_add(i.getLocal(`p2`),i.i32_const(a)),u=i.getLocal(`pr`),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),f=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a)),h=i.i32_const(e.alloc(a)),g=i.i32_const(e.alloc(a)),_=i.i32_const(e.alloc(a)),v=i.i32_const(e.alloc(a)),y=i.i32_const(e.alloc(a)),b=i.i32_const(e.alloc(a)),x=i.i32_const(e.alloc(a)),S=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),[...i.call(t+`_copyAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p2`)),[...i.call(t+`_copyAffine`,i.getLocal(`p1`),i.getLocal(`pr`)),...i.call(n+`_one`,i.i32_add(i.getLocal(`pr`),i.i32_const(a*2))),...i.ret([])]),i.if(i.call(n+`_eq`,o,c),i.if(i.call(n+`_eq`,s,l),[...i.call(t+`_doubleAffine`,i.getLocal(`p2`),i.getLocal(`pr`)),...i.ret([])])),i.call(n+`_sub`,c,o,p),i.call(n+`_sub`,l,s,h),i.call(n+`_square`,p,m),i.call(n+`_add`,m,m,g),i.call(n+`_add`,g,g,g),i.call(n+`_mul`,p,g,_),i.call(n+`_add`,h,h,v),i.call(n+`_mul`,o,g,b),i.call(n+`_square`,v,y),i.call(n+`_add`,b,b,x),i.call(n+`_sub`,y,_,u),i.call(n+`_sub`,u,x,u),i.call(n+`_mul`,s,_,S),i.call(n+`_add`,S,S,S),i.call(n+`_sub`,b,u,d),i.call(n+`_mul`,d,v,d),i.call(n+`_sub`,d,S,d),i.call(n+`_add`,p,p,f))}function w(){let r=e.addFunction(t+`_neg`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2));r.addCode(i.call(n+`_copy`,o,l),i.call(n+`_neg`,s,u),i.call(n+`_copy`,c,d))}function T(){let r=e.addFunction(t+`_negAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a));r.addCode(i.call(n+`_copy`,o,c),i.call(n+`_neg`,s,l))}function E(){let n=e.addFunction(t+`_sub`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_neg`,r.getLocal(`p2`),i),r.call(t+`_add`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function D(){let n=e.addFunction(t+`_subMixed`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_negAffine`,r.getLocal(`p2`),i),r.call(t+`_addMixed`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function O(){let n=e.addFunction(t+`_subAffine`);n.addParam(`p1`,`i32`),n.addParam(`p2`,`i32`),n.addParam(`pr`,`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*3));n.addCode(r.call(t+`_negAffine`,r.getLocal(`p2`),i),r.call(t+`_addAffine`,r.getLocal(`p1`),i,r.getLocal(`pr`)))}function k(){let r=e.addFunction(t+`_normalize`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a)),m=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),i.call(t+`_zero`,i.getLocal(`pr`)),[...i.call(n+`_inverse`,c,f),...i.call(n+`_square`,f,p),...i.call(n+`_mul`,f,p,m),...i.call(n+`_mul`,o,p,l),...i.call(n+`_mul`,s,m,u),...i.call(n+`_one`,d)]))}function A(){let r=e.addFunction(t+`_toAffine`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.i32_add(i.getLocal(`p1`),i.i32_const(a*2)),l=i.getLocal(`pr`),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),d=i.i32_const(e.alloc(a)),f=i.i32_const(e.alloc(a)),p=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZero`,i.getLocal(`p1`)),[...i.call(n+`_zero`,l),...i.call(n+`_zero`,u)],[...i.call(n+`_inverse`,c,d),...i.call(n+`_square`,d,f),...i.call(n+`_mul`,d,f,p),...i.call(n+`_mul`,o,f,l),...i.call(n+`_mul`,s,p,u)]))}function j(){let r=e.addFunction(t+`_toJacobian`);r.addParam(`p1`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),o=i.getLocal(`p1`),s=i.i32_add(i.getLocal(`p1`),i.i32_const(a)),c=i.getLocal(`pr`),l=i.i32_add(i.getLocal(`pr`),i.i32_const(a)),u=i.i32_add(i.getLocal(`pr`),i.i32_const(a*2));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`p1`)),i.call(t+`_zero`,i.getLocal(`pr`)),[...i.call(n+`_one`,u),...i.call(n+`_copy`,s,l),...i.call(n+`_copy`,o,c)]))}function M(){let r=e.addFunction(t+`_batchToAffine`);r.addParam(`pIn`,`i32`),r.addParam(`n`,`i32`),r.addParam(`pOut`,`i32`),r.addLocal(`pAux`,`i32`),r.addLocal(`itIn`,`i32`),r.addLocal(`itAux`,`i32`),r.addLocal(`itOut`,`i32`),r.addLocal(`i`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a));r.addCode(i.setLocal(`pAux`,i.i32_load(i.i32_const(0))),i.i32_store(i.i32_const(0),i.i32_add(i.getLocal(`pAux`),i.i32_mul(i.getLocal(`n`),i.i32_const(a)))),i.call(n+`_batchInverse`,i.i32_add(i.getLocal(`pIn`),i.i32_const(a*2)),i.i32_const(a*3),i.getLocal(`n`),i.getLocal(`pAux`),i.i32_const(a)),i.setLocal(`itIn`,i.getLocal(`pIn`)),i.setLocal(`itAux`,i.getLocal(`pAux`)),i.setLocal(`itOut`,i.getLocal(`pOut`)),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.if(i.call(n+`_isZero`,i.getLocal(`itAux`)),[...i.call(n+`_zero`,i.getLocal(`itOut`)),...i.call(n+`_zero`,i.i32_add(i.getLocal(`itOut`),i.i32_const(a)))],[...i.call(n+`_mul`,i.getLocal(`itAux`),i.i32_add(i.getLocal(`itIn`),i.i32_const(a)),o),...i.call(n+`_square`,i.getLocal(`itAux`),i.getLocal(`itAux`)),...i.call(n+`_mul`,i.getLocal(`itAux`),i.getLocal(`itIn`),i.getLocal(`itOut`)),...i.call(n+`_mul`,i.getLocal(`itAux`),o,i.i32_add(i.getLocal(`itOut`),i.i32_const(a)))]),i.setLocal(`itIn`,i.i32_add(i.getLocal(`itIn`),i.i32_const(a*3))),i.setLocal(`itOut`,i.i32_add(i.getLocal(`itOut`),i.i32_const(a*2))),i.setLocal(`itAux`,i.i32_add(i.getLocal(`itAux`),i.i32_const(a))),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))),i.i32_store(i.i32_const(0),i.getLocal(`pAux`)))}function N(){let n=e.addFunction(t+`__reverseBytes`);n.addParam(`pIn`,`i32`),n.addParam(`n`,`i32`),n.addParam(`pOut`,`i32`),n.addLocal(`itOut`,`i32`),n.addLocal(`itIn`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`itOut`,r.i32_sub(r.i32_add(r.getLocal(`pOut`),r.getLocal(`n`)),r.i32_const(1))),r.setLocal(`itIn`,r.getLocal(`pIn`)),r.block(r.loop(r.br_if(1,r.i32_lt_s(r.getLocal(`itOut`),r.getLocal(`pOut`))),r.i32_store8(r.getLocal(`itOut`),r.i32_load8_u(r.getLocal(`itIn`))),r.setLocal(`itOut`,r.i32_sub(r.getLocal(`itOut`),r.i32_const(1))),r.setLocal(`itIn`,r.i32_add(r.getLocal(`itIn`),r.i32_const(1))),r.br(0))))}function P(){let r=e.addFunction(t+`_LEMtoC`);r.addParam(`pIn`,`i32`),r.addParam(`pOut`,`i32`);let i=r.getCodeBuilder(),o=i.i32_const(e.alloc(a));r.addCode(i.if(i.call(t+`_isZeroAffine`,i.getLocal(`pIn`)),[...i.call(n+`_zero`,i.getLocal(`pOut`)),...i.i32_store8(i.getLocal(`pOut`),i.i32_const(64)),...i.ret([])]),i.call(n+`_fromMontgomery`,i.getLocal(`pIn`),o),i.call(t+`__reverseBytes`,o,i.i32_const(a),i.getLocal(`pOut`)),i.if(i.i32_eq(i.call(n+`_sign`,i.i32_add(i.getLocal(`pIn`),i.i32_const(a))),i.i32_const(-1)),i.i32_store8(i.getLocal(`pOut`),i.i32_or(i.i32_load8_u(i.getLocal(`pOut`)),i.i32_const(128)))))}function F(){let n=e.addFunction(t+`_LEMtoU`);n.addParam(`pIn`,`i32`),n.addParam(`pOut`,`i32`);let r=n.getCodeBuilder(),i=e.alloc(a*2),o=r.i32_const(i),s=r.i32_const(i),c=r.i32_const(i+a);n.addCode(r.if(r.call(t+`_isZeroAffine`,r.getLocal(`pIn`)),[...r.call(t+`_zeroAffine`,r.getLocal(`pOut`)),...r.ret([])]),r.call(t+`_fromMontgomeryAffine`,r.getLocal(`pIn`),o),r.call(t+`__reverseBytes`,s,r.i32_const(a),r.getLocal(`pOut`)),r.call(t+`__reverseBytes`,c,r.i32_const(a),r.i32_add(r.getLocal(`pOut`),r.i32_const(a))))}function I(){let n=e.addFunction(t+`_UtoLEM`);n.addParam(`pIn`,`i32`),n.addParam(`pOut`,`i32`);let r=n.getCodeBuilder(),i=e.alloc(a*2),o=r.i32_const(i),s=r.i32_const(i),c=r.i32_const(i+a);n.addCode(r.if(r.i32_and(r.i32_load8_u(r.getLocal(`pIn`)),r.i32_const(64)),[...r.call(t+`_zeroAffine`,r.getLocal(`pOut`)),...r.ret([])]),r.call(t+`__reverseBytes`,r.getLocal(`pIn`),r.i32_const(a),s),r.call(t+`__reverseBytes`,r.i32_add(r.getLocal(`pIn`),r.i32_const(a)),r.i32_const(a),c),r.call(t+`_toMontgomeryAffine`,o,r.getLocal(`pOut`)))}function L(){let i=e.addFunction(t+`_CtoLEM`);i.addParam(`pIn`,`i32`),i.addParam(`pOut`,`i32`),i.addLocal(`firstByte`,`i32`),i.addLocal(`greatest`,`i32`);let o=i.getCodeBuilder(),s=e.alloc(a*2),c=o.i32_const(s),l=o.i32_const(s+a);i.addCode(o.setLocal(`firstByte`,o.i32_load8_u(o.getLocal(`pIn`))),o.if(o.i32_and(o.getLocal(`firstByte`),o.i32_const(64)),[...o.call(t+`_zeroAffine`,o.getLocal(`pOut`)),...o.ret([])]),o.setLocal(`greatest`,o.i32_and(o.getLocal(`firstByte`),o.i32_const(128))),o.call(n+`_copy`,o.getLocal(`pIn`),l),o.i32_store8(l,o.i32_and(o.getLocal(`firstByte`),o.i32_const(63))),o.call(t+`__reverseBytes`,l,o.i32_const(a),c),o.call(n+`_toMontgomery`,c,o.getLocal(`pOut`)),o.call(n+`_square`,o.getLocal(`pOut`),l),o.call(n+`_mul`,o.getLocal(`pOut`),l,l),o.call(n+`_add`,l,o.i32_const(r),l),o.call(n+`_sqrt`,l,l),o.call(n+`_neg`,l,c),o.if(o.i32_eq(o.call(n+`_sign`,l),o.i32_const(-1)),o.if(o.getLocal(`greatest`),o.call(n+`_copy`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))),o.call(n+`_neg`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a)))),o.if(o.getLocal(`greatest`),o.call(n+`_neg`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))),o.call(n+`_copy`,l,o.i32_add(o.getLocal(`pOut`),o.i32_const(a))))))}function R(){let i=e.addFunction(t+`_inCurveAffine`);i.addParam(`pIn`,`i32`),i.setReturnType(`i32`);let o=i.getCodeBuilder(),s=o.getLocal(`pIn`),c=o.i32_add(o.getLocal(`pIn`),o.i32_const(a)),l=o.i32_const(e.alloc(a)),u=o.i32_const(e.alloc(a));i.addCode(o.call(n+`_square`,c,l),o.call(n+`_square`,s,u),o.call(n+`_mul`,s,u,u),o.call(n+`_add`,u,o.i32_const(r),u),o.ret(o.call(n+`_eq`,l,u)))}function z(){let n=e.addFunction(t+`_inCurve`);n.addParam(`pIn`,`i32`),n.setReturnType(`i32`);let r=n.getCodeBuilder(),i=r.i32_const(e.alloc(a*2));n.addCode(r.call(t+`_toAffine`,r.getLocal(`pIn`),i),r.ret(r.call(t+`_inCurveAffine`,i)))}return s(),o(),d(),u(),l(),c(),j(),g(),p(),f(),h(),m(),C(),S(),x(),T(),w(),O(),D(),E(),b(),y(),v(),_(),A(),R(),z(),M(),k(),N(),F(),P(),I(),L(),Ot(e,t+`_batchLEMtoU`,t+`_LEMtoU`,a*2,a*2),Ot(e,t+`_batchLEMtoC`,t+`_LEMtoC`,a*2,a),Ot(e,t+`_batchUtoLEM`,t+`_UtoLEM`,a*2,a*2),Ot(e,t+`_batchCtoLEM`,t+`_CtoLEM`,a,a*2,!0),Ot(e,t+`_batchToJacobian`,t+`_toJacobian`,a*2,a*3,!0),kt(e,t,t+`_multiexp`,t+`_add`,a*3),kt(e,t,t+`_multiexpAffine`,t+`_addMixed`,a*2),Dt(e,t+`_timesScalar`,a*3,t+`_add`,t+`_double`,t+`_sub`,t+`_copy`,t+`_zero`),Dt(e,t+`_timesScalarAffine`,a*2,t+`_addMixed`,t+`_double`,t+`_subMixed`,t+`_copyAffine`,t+`_zero`),e.exportFunction(t+`_isZero`),e.exportFunction(t+`_isZeroAffine`),e.exportFunction(t+`_eq`),e.exportFunction(t+`_eqMixed`),e.exportFunction(t+`_eqAffine`),e.exportFunction(t+`_copy`),e.exportFunction(t+`_copyAffine`),e.exportFunction(t+`_zero`),e.exportFunction(t+`_zeroAffine`),e.exportFunction(t+`_double`),e.exportFunction(t+`_doubleAffine`),e.exportFunction(t+`_add`),e.exportFunction(t+`_addMixed`),e.exportFunction(t+`_addAffine`),e.exportFunction(t+`_neg`),e.exportFunction(t+`_negAffine`),e.exportFunction(t+`_sub`),e.exportFunction(t+`_subMixed`),e.exportFunction(t+`_subAffine`),e.exportFunction(t+`_fromMontgomery`),e.exportFunction(t+`_fromMontgomeryAffine`),e.exportFunction(t+`_toMontgomery`),e.exportFunction(t+`_toMontgomeryAffine`),e.exportFunction(t+`_timesScalar`),e.exportFunction(t+`_timesScalarAffine`),e.exportFunction(t+`_normalize`),e.exportFunction(t+`_LEMtoU`),e.exportFunction(t+`_LEMtoC`),e.exportFunction(t+`_UtoLEM`),e.exportFunction(t+`_CtoLEM`),e.exportFunction(t+`_batchLEMtoU`),e.exportFunction(t+`_batchLEMtoC`),e.exportFunction(t+`_batchUtoLEM`),e.exportFunction(t+`_batchCtoLEM`),e.exportFunction(t+`_toAffine`),e.exportFunction(t+`_toJacobian`),e.exportFunction(t+`_batchToAffine`),e.exportFunction(t+`_batchToJacobian`),e.exportFunction(t+`_inCurve`),e.exportFunction(t+`_inCurveAffine`),t},{isOdd:jt,modInv:Mt,modPow:Nt}=W,Pt=Ae,Ft=function(e,t,n,r,i){let a=e.modules[r].n64*8,o=e.modules[n].n64*8,s=e.modules[r].q,c=s-1n,l=0;for(;!jt(c);)l++,c>>=1n;let u=2n;for(;Nt(u,s>>1n,s)===1n;)u+=1n;let d=Array(l+1);d[l]=Nt(u,c,s);let f=l-1;for(;f>=0;)d[f]=Nt(d[f+1],2n,s),f--;let p=[],m=(1n<<BigInt(a*8))%s;for(let e=0;e<d.length;e++){let t=d[e]*m%s;p.push(...Pt.bigInt2BytesLE(t,a))}let h=e.alloc(p),g=Array(l+1);g[0]=1n;for(let e=1;e<=l;e++)g[e]=g[e-1]*2n;let _=[];for(let e=0;e<=l;e++){let t=Mt(g[e],s)*m%s;_.push(...Pt.bigInt2BytesLE(t,a))}let v=e.alloc(_),y=Nt(u,2n,s),b=[],x=[];for(let e=0;e<=l;e++){let t=Nt(y,2n**BigInt(e),s),n=Mt(s+1n-t,s);b.push(...Pt.bigInt2BytesLE(t*m%s,a)),x.push(...Pt.bigInt2BytesLE(n*m%s,a))}let S=e.alloc(b),C=e.alloc(x);function w(e){let t=0;for(let n=0;n<8;n++)e&1<<n&&(t|=128>>n);return t}let T=Array(256);for(let e=0;e<256;e++)T[e]=w(e);let E=e.alloc(T);function D(){let n=e.addFunction(t+`__log2`);n.addParam(`n`,`i32`),n.setReturnType(`i32`),n.addLocal(`bits`,`i32`),n.addLocal(`aux`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`aux`,r.i32_shr_u(r.getLocal(`n`),r.i32_const(1)))),n.addCode(r.setLocal(`bits`,r.i32_const(0))),n.addCode(r.block(r.loop(r.br_if(1,r.i32_eqz(r.getLocal(`aux`))),r.setLocal(`aux`,r.i32_shr_u(r.getLocal(`aux`),r.i32_const(1))),r.setLocal(`bits`,r.i32_add(r.getLocal(`bits`),r.i32_const(1))),r.br(0)))),n.addCode(r.if(r.i32_ne(r.getLocal(`n`),r.i32_shl(r.i32_const(1),r.getLocal(`bits`))),r.unreachable())),n.addCode(r.if(r.i32_gt_u(r.getLocal(`bits`),r.i32_const(l)),r.unreachable())),n.addCode(r.getLocal(`bits`))}function O(){let n=e.addFunction(t+`_fft`);n.addParam(`px`,`i32`),n.addParam(`n`,`i32`),n.addLocal(`bits`,`i32`);let i=n.getCodeBuilder(),o=i.i32_const(e.alloc(a));n.addCode(i.setLocal(`bits`,i.call(t+`__log2`,i.getLocal(`n`))),i.call(r+`_one`,o),i.call(t+`_rawfft`,i.getLocal(`px`),i.getLocal(`bits`),i.i32_const(0),o))}function k(){let n=e.addFunction(t+`_ifft`);n.addParam(`px`,`i32`),n.addParam(`n`,`i32`),n.addLocal(`bits`,`i32`),n.addLocal(`pInv2`,`i32`);let r=n.getCodeBuilder();n.addCode(r.setLocal(`bits`,r.call(t+`__log2`,r.getLocal(`n`))),r.setLocal(`pInv2`,r.i32_add(r.i32_const(v),r.i32_mul(r.getLocal(`bits`),r.i32_const(a)))),r.call(t+`_rawfft`,r.getLocal(`px`),r.getLocal(`bits`),r.i32_const(1),r.getLocal(`pInv2`)))}function A(){let s=e.addFunction(t+`_rawfft`);s.addParam(`px`,`i32`),s.addParam(`bits`,`i32`),s.addParam(`reverse`,`i32`),s.addParam(`mulFactor`,`i32`),s.addLocal(`s`,`i32`),s.addLocal(`k`,`i32`),s.addLocal(`j`,`i32`),s.addLocal(`m`,`i32`),s.addLocal(`mdiv2`,`i32`),s.addLocal(`n`,`i32`),s.addLocal(`pwm`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.call(t+`__reversePermutation`,c.getLocal(`px`),c.getLocal(`bits`)),c.setLocal(`n`,c.i32_shl(c.i32_const(1),c.getLocal(`bits`))),c.setLocal(`s`,c.i32_const(1)),c.block(c.loop(c.br_if(1,c.i32_gt_u(c.getLocal(`s`),c.getLocal(`bits`))),c.setLocal(`m`,c.i32_shl(c.i32_const(1),c.getLocal(`s`))),c.setLocal(`pwm`,c.i32_add(c.i32_const(h),c.i32_mul(c.getLocal(`s`),c.i32_const(a)))),c.setLocal(`k`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal(`k`),c.getLocal(`n`))),c.call(r+`_one`,l),c.setLocal(`mdiv2`,c.i32_shr_u(c.getLocal(`m`),c.i32_const(1))),c.setLocal(`j`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_ge_u(c.getLocal(`j`),c.getLocal(`mdiv2`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`px`),c.i32_mul(c.i32_add(c.getLocal(`k`),c.getLocal(`j`)),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`idx1`),c.i32_mul(c.getLocal(`mdiv2`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`pwm`),l),c.setLocal(`j`,c.i32_add(c.getLocal(`j`),c.i32_const(1))),c.br(0))),c.setLocal(`k`,c.i32_add(c.getLocal(`k`),c.getLocal(`m`))),c.br(0))),c.setLocal(`s`,c.i32_add(c.getLocal(`s`),c.i32_const(1))),c.br(0))),c.call(t+`__fftFinal`,c.getLocal(`px`),c.getLocal(`bits`),c.getLocal(`reverse`),c.getLocal(`mulFactor`)))}function j(){let a=e.addFunction(t+`__fftFinal`);a.addParam(`px`,`i32`),a.addParam(`bits`,`i32`),a.addParam(`reverse`,`i32`),a.addParam(`mulFactor`,`i32`),a.addLocal(`n`,`i32`),a.addLocal(`ndiv2`,`i32`),a.addLocal(`pInv2`,`i32`),a.addLocal(`i`,`i32`),a.addLocal(`mask`,`i32`),a.addLocal(`idx1`,`i32`),a.addLocal(`idx2`,`i32`);let s=a.getCodeBuilder(),c=s.i32_const(e.alloc(o));a.addCode(s.if(s.i32_and(s.i32_eqz(s.getLocal(`reverse`)),s.call(r+`_isOne`,s.getLocal(`mulFactor`))),s.ret([])),s.setLocal(`n`,s.i32_shl(s.i32_const(1),s.getLocal(`bits`))),s.setLocal(`mask`,s.i32_sub(s.getLocal(`n`),s.i32_const(1))),s.setLocal(`i`,s.i32_const(1)),s.setLocal(`ndiv2`,s.i32_shr_u(s.getLocal(`n`),s.i32_const(1))),s.block(s.loop(s.br_if(1,s.i32_ge_u(s.getLocal(`i`),s.getLocal(`ndiv2`))),s.setLocal(`idx1`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.getLocal(`i`),s.i32_const(o)))),s.setLocal(`idx2`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.i32_sub(s.getLocal(`n`),s.getLocal(`i`)),s.i32_const(o)))),s.if(s.getLocal(`reverse`),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[...s.call(n+`_copy`,s.getLocal(`idx1`),c),...s.call(n+`_copy`,s.getLocal(`idx2`),s.getLocal(`idx1`)),...s.call(n+`_copy`,c,s.getLocal(`idx2`))],[...s.call(n+`_copy`,s.getLocal(`idx1`),c),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx1`)),...s.call(i,c,s.getLocal(`mulFactor`),s.getLocal(`idx2`))]),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[],[...s.call(i,s.getLocal(`idx1`),s.getLocal(`mulFactor`),s.getLocal(`idx1`)),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx2`))])),s.setLocal(`i`,s.i32_add(s.getLocal(`i`),s.i32_const(1))),s.br(0))),s.if(s.call(r+`_isOne`,s.getLocal(`mulFactor`)),[],[...s.call(i,s.getLocal(`px`),s.getLocal(`mulFactor`),s.getLocal(`px`)),...s.setLocal(`idx2`,s.i32_add(s.getLocal(`px`),s.i32_mul(s.getLocal(`ndiv2`),s.i32_const(o)))),...s.call(i,s.getLocal(`idx2`),s.getLocal(`mulFactor`),s.getLocal(`idx2`))]))}function M(){let r=e.addFunction(t+`__reversePermutation`);r.addParam(`px`,`i32`),r.addParam(`bits`,`i32`),r.addLocal(`n`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`ri`,`i32`),r.addLocal(`idx1`,`i32`),r.addLocal(`idx2`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(o));r.addCode(i.setLocal(`n`,i.i32_shl(i.i32_const(1),i.getLocal(`bits`))),i.setLocal(`i`,i.i32_const(0)),i.block(i.loop(i.br_if(1,i.i32_eq(i.getLocal(`i`),i.getLocal(`n`))),i.setLocal(`idx1`,i.i32_add(i.getLocal(`px`),i.i32_mul(i.getLocal(`i`),i.i32_const(o)))),i.setLocal(`ri`,i.call(t+`__rev`,i.getLocal(`i`),i.getLocal(`bits`))),i.setLocal(`idx2`,i.i32_add(i.getLocal(`px`),i.i32_mul(i.getLocal(`ri`),i.i32_const(o)))),i.if(i.i32_lt_u(i.getLocal(`i`),i.getLocal(`ri`)),[...i.call(n+`_copy`,i.getLocal(`idx1`),a),...i.call(n+`_copy`,i.getLocal(`idx2`),i.getLocal(`idx1`)),...i.call(n+`_copy`,a,i.getLocal(`idx2`))]),i.setLocal(`i`,i.i32_add(i.getLocal(`i`),i.i32_const(1))),i.br(0))))}function N(){let n=e.addFunction(t+`__rev`);n.addParam(`x`,`i32`),n.addParam(`bits`,`i32`),n.setReturnType(`i32`);let r=n.getCodeBuilder();n.addCode(r.i32_rotl(r.i32_add(r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.getLocal(`x`),r.i32_const(255)),E,0),r.i32_const(24)),r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(8)),r.i32_const(255)),E,0),r.i32_const(16))),r.i32_add(r.i32_shl(r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(16)),r.i32_const(255)),E,0),r.i32_const(8)),r.i32_load8_u(r.i32_and(r.i32_shr_u(r.getLocal(`x`),r.i32_const(24)),r.i32_const(255)),E,0))),r.getLocal(`bits`)))}function P(){let s=e.addFunction(t+`_fftJoin`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function F(){let s=e.addFunction(t+`_fftJoinExt`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(n+`_add`,c.getLocal(`idx1`),c.getLocal(`idx2`),u),c.call(i,c.getLocal(`idx2`),c.getLocal(`pShiftToM`),c.getLocal(`idx2`)),c.call(n+`_add`,c.getLocal(`idx1`),c.getLocal(`idx2`),c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx2`),l,c.getLocal(`idx2`)),c.call(n+`_copy`,u,c.getLocal(`idx1`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function I(){let s=e.addFunction(t+`_fftJoinExtInv`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`),s.addLocal(`pSConst`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.setLocal(`pSConst`,c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_sub`,c.getLocal(`idx1`),u,c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx2`),c.getLocal(`pSConst`),c.getLocal(`idx2`)),c.call(i,c.getLocal(`idx1`),c.getLocal(`pShiftToM`),c.getLocal(`idx1`)),c.call(n+`_sub`,u,c.getLocal(`idx1`),c.getLocal(`idx1`)),c.call(i,c.getLocal(`idx1`),c.getLocal(`pSConst`),c.getLocal(`idx1`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function L(){let s=e.addFunction(t+`_prepareLagrangeEvaluation`);s.addParam(`pBuff1`,`i32`),s.addParam(`pBuff2`,`i32`),s.addParam(`n`,`i32`),s.addParam(`first`,`i32`),s.addParam(`inc`,`i32`),s.addParam(`totalBits`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`pShiftToM`,`i32`),s.addLocal(`pSConst`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`pShiftToM`,c.i32_add(c.i32_const(S),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.setLocal(`pSConst`,c.i32_add(c.i32_const(C),c.i32_mul(c.getLocal(`totalBits`),c.i32_const(a)))),c.call(r+`_copy`,c.getLocal(`first`),l),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`n`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff1`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`pBuff2`),c.i32_mul(c.getLocal(`i`),c.i32_const(o)))),c.call(i,c.getLocal(`idx1`),c.getLocal(`pShiftToM`),u),c.call(n+`_sub`,c.getLocal(`idx2`),u,u),c.call(n+`_sub`,c.getLocal(`idx1`),c.getLocal(`idx2`),c.getLocal(`idx2`)),c.call(i,u,c.getLocal(`pSConst`),c.getLocal(`idx1`)),c.call(i,c.getLocal(`idx2`),l,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`inc`),l),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function R(){let s=e.addFunction(t+`_fftMix`);s.addParam(`pBuff`,`i32`),s.addParam(`n`,`i32`),s.addParam(`exp`,`i32`),s.addLocal(`nGroups`,`i32`),s.addLocal(`nPerGroup`,`i32`),s.addLocal(`nPerGroupDiv2`,`i32`),s.addLocal(`pairOffset`,`i32`),s.addLocal(`idx1`,`i32`),s.addLocal(`idx2`,`i32`),s.addLocal(`i`,`i32`),s.addLocal(`j`,`i32`),s.addLocal(`pwm`,`i32`);let c=s.getCodeBuilder(),l=c.i32_const(e.alloc(a)),u=c.i32_const(e.alloc(o)),d=c.i32_const(e.alloc(o));s.addCode(c.setLocal(`nPerGroup`,c.i32_shl(c.i32_const(1),c.getLocal(`exp`))),c.setLocal(`nPerGroupDiv2`,c.i32_shr_u(c.getLocal(`nPerGroup`),c.i32_const(1))),c.setLocal(`nGroups`,c.i32_shr_u(c.getLocal(`n`),c.getLocal(`exp`))),c.setLocal(`pairOffset`,c.i32_mul(c.getLocal(`nPerGroupDiv2`),c.i32_const(o))),c.setLocal(`pwm`,c.i32_add(c.i32_const(h),c.i32_mul(c.getLocal(`exp`),c.i32_const(a)))),c.setLocal(`i`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`i`),c.getLocal(`nGroups`))),c.call(r+`_one`,l),c.setLocal(`j`,c.i32_const(0)),c.block(c.loop(c.br_if(1,c.i32_eq(c.getLocal(`j`),c.getLocal(`nPerGroupDiv2`))),c.setLocal(`idx1`,c.i32_add(c.getLocal(`pBuff`),c.i32_mul(c.i32_add(c.i32_mul(c.getLocal(`i`),c.getLocal(`nPerGroup`)),c.getLocal(`j`)),c.i32_const(o)))),c.setLocal(`idx2`,c.i32_add(c.getLocal(`idx1`),c.getLocal(`pairOffset`))),c.call(i,c.getLocal(`idx2`),l,u),c.call(n+`_copy`,c.getLocal(`idx1`),d),c.call(n+`_add`,d,u,c.getLocal(`idx1`)),c.call(n+`_sub`,d,u,c.getLocal(`idx2`)),c.call(r+`_mul`,l,c.getLocal(`pwm`),l),c.setLocal(`j`,c.i32_add(c.getLocal(`j`),c.i32_const(1))),c.br(0))),c.setLocal(`i`,c.i32_add(c.getLocal(`i`),c.i32_const(1))),c.br(0))))}function z(){let r=e.addFunction(t+`_fftFinal`);r.addParam(`pBuff`,`i32`),r.addParam(`n`,`i32`),r.addParam(`factor`,`i32`),r.addLocal(`idx1`,`i32`),r.addLocal(`idx2`,`i32`),r.addLocal(`i`,`i32`),r.addLocal(`ndiv2`,`i32`);let a=r.getCodeBuilder(),s=a.i32_const(e.alloc(o));r.addCode(a.setLocal(`ndiv2`,a.i32_shr_u(a.getLocal(`n`),a.i32_const(1))),a.if(a.i32_and(a.getLocal(`n`),a.i32_const(1)),a.call(i,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`ndiv2`),a.i32_const(o))),a.getLocal(`factor`),a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`ndiv2`),a.i32_const(o))))),a.setLocal(`i`,a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_ge_u(a.getLocal(`i`),a.getLocal(`ndiv2`))),a.setLocal(`idx1`,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.getLocal(`i`),a.i32_const(o)))),a.setLocal(`idx2`,a.i32_add(a.getLocal(`pBuff`),a.i32_mul(a.i32_sub(a.i32_sub(a.getLocal(`n`),a.i32_const(1)),a.getLocal(`i`)),a.i32_const(o)))),a.call(i,a.getLocal(`idx2`),a.getLocal(`factor`),s),a.call(i,a.getLocal(`idx1`),a.getLocal(`factor`),a.getLocal(`idx2`)),a.call(n+`_copy`,s,a.getLocal(`idx1`)),a.setLocal(`i`,a.i32_add(a.getLocal(`i`),a.i32_const(1))),a.br(0))))}N(),M(),j(),A(),D(),O(),k(),P(),F(),I(),R(),z(),L(),e.exportFunction(t+`_fft`),e.exportFunction(t+`_ifft`),e.exportFunction(t+`_rawfft`),e.exportFunction(t+`_fftJoin`),e.exportFunction(t+`_fftJoinExt`),e.exportFunction(t+`_fftJoinExtInv`),e.exportFunction(t+`_fftMix`),e.exportFunction(t+`_fftFinal`),e.exportFunction(t+`_prepareLagrangeEvaluation`)},It=function(e,t,n){let r=e.modules[n].n64*8;function i(){let i=e.addFunction(t+`_zero`);i.addParam(`px`,`i32`),i.addParam(`n`,`i32`),i.addLocal(`lastp`,`i32`),i.addLocal(`p`,`i32`);let a=i.getCodeBuilder();i.addCode(a.setLocal(`p`,a.getLocal(`px`)),a.setLocal(`lastp`,a.i32_add(a.getLocal(`px`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`p`),a.getLocal(`lastp`))),a.call(n+`_zero`,a.getLocal(`p`)),a.setLocal(`p`,a.i32_add(a.getLocal(`p`),a.i32_const(r))),a.br(0))))}function a(){let i=e.addFunction(t+`_constructLC`);i.addParam(`ppolynomials`,`i32`),i.addParam(`psignals`,`i32`),i.addParam(`nSignals`,`i32`),i.addParam(`pres`,`i32`),i.addLocal(`i`,`i32`),i.addLocal(`j`,`i32`),i.addLocal(`pp`,`i32`),i.addLocal(`ps`,`i32`),i.addLocal(`pd`,`i32`),i.addLocal(`ncoefs`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`i`,a.i32_const(0)),a.setLocal(`pp`,a.getLocal(`ppolynomials`)),a.setLocal(`ps`,a.getLocal(`psignals`)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`i`),a.getLocal(`nSignals`))),a.setLocal(`ncoefs`,a.i32_load(a.getLocal(`pp`))),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(4))),a.setLocal(`j`,a.i32_const(0)),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`j`),a.getLocal(`ncoefs`))),a.setLocal(`pd`,a.i32_add(a.getLocal(`pres`),a.i32_mul(a.i32_load(a.getLocal(`pp`)),a.i32_const(r)))),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(4))),a.call(n+`_mul`,a.getLocal(`ps`),a.getLocal(`pp`),o),a.call(n+`_add`,o,a.getLocal(`pd`),a.getLocal(`pd`)),a.setLocal(`pp`,a.i32_add(a.getLocal(`pp`),a.i32_const(r))),a.setLocal(`j`,a.i32_add(a.getLocal(`j`),a.i32_const(1))),a.br(0))),a.setLocal(`ps`,a.i32_add(a.getLocal(`ps`),a.i32_const(r))),a.setLocal(`i`,a.i32_add(a.getLocal(`i`),a.i32_const(1))),a.br(0))))}return i(),a(),e.exportFunction(t+`_zero`),e.exportFunction(t+`_constructLC`),t},Lt=function(e,t,n){let r=e.modules[n].n64*8;function i(){let i=e.addFunction(t+`_buildABC`);i.addParam(`pCoefs`,`i32`),i.addParam(`nCoefs`,`i32`),i.addParam(`pWitness`,`i32`),i.addParam(`pA`,`i32`),i.addParam(`pB`,`i32`),i.addParam(`pC`,`i32`),i.addParam(`offsetOut`,`i32`),i.addParam(`nOut`,`i32`),i.addParam(`offsetWitness`,`i32`),i.addParam(`nWitness`,`i32`),i.addLocal(`it`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`last`,`i32`),i.addLocal(`m`,`i32`),i.addLocal(`c`,`i32`),i.addLocal(`s`,`i32`),i.addLocal(`pOut`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`nOut`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_zero`,a.getLocal(`ita`)),a.call(n+`_zero`,a.getLocal(`itb`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.br(0))),a.setLocal(`it`,a.getLocal(`pCoefs`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pCoefs`),a.i32_mul(a.getLocal(`nCoefs`),a.i32_const(r+12)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`it`),a.getLocal(`last`))),a.setLocal(`s`,a.i32_load(a.getLocal(`it`),8)),a.if(a.i32_or(a.i32_lt_u(a.getLocal(`s`),a.getLocal(`offsetWitness`)),a.i32_ge_u(a.getLocal(`s`),a.i32_add(a.getLocal(`offsetWitness`),a.getLocal(`nWitness`)))),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)]),a.setLocal(`m`,a.i32_load(a.getLocal(`it`))),a.if(a.i32_eq(a.getLocal(`m`),a.i32_const(0)),a.setLocal(`pOut`,a.getLocal(`pA`)),a.if(a.i32_eq(a.getLocal(`m`),a.i32_const(1)),a.setLocal(`pOut`,a.getLocal(`pB`)),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)])),a.setLocal(`c`,a.i32_load(a.getLocal(`it`),4)),a.if(a.i32_or(a.i32_lt_u(a.getLocal(`c`),a.getLocal(`offsetOut`)),a.i32_ge_u(a.getLocal(`c`),a.i32_add(a.getLocal(`offsetOut`),a.getLocal(`nOut`)))),[...a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),...a.br(1)]),a.setLocal(`pOut`,a.i32_add(a.getLocal(`pOut`),a.i32_mul(a.i32_sub(a.getLocal(`c`),a.getLocal(`offsetOut`)),a.i32_const(r)))),a.call(n+`_mul`,a.i32_add(a.getLocal(`pWitness`),a.i32_mul(a.i32_sub(a.getLocal(`s`),a.getLocal(`offsetWitness`)),a.i32_const(r))),a.i32_add(a.getLocal(`it`),a.i32_const(12)),o),a.call(n+`_add`,a.getLocal(`pOut`),o,a.getLocal(`pOut`)),a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r+12))),a.br(0))),a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`it`,a.getLocal(`pC`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`nOut`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_mul`,a.getLocal(`ita`),a.getLocal(`itb`),a.getLocal(`it`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`it`,a.i32_add(a.getLocal(`it`),a.i32_const(r))),a.br(0))))}function a(){let i=e.addFunction(t+`_joinABC`);i.addParam(`pA`,`i32`),i.addParam(`pB`,`i32`),i.addParam(`pC`,`i32`),i.addParam(`n`,`i32`),i.addParam(`pP`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`itc`,`i32`),i.addLocal(`itp`,`i32`),i.addLocal(`last`,`i32`);let a=i.getCodeBuilder(),o=a.i32_const(e.alloc(r));i.addCode(a.setLocal(`ita`,a.getLocal(`pA`)),a.setLocal(`itb`,a.getLocal(`pB`)),a.setLocal(`itc`,a.getLocal(`pC`)),a.setLocal(`itp`,a.getLocal(`pP`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pA`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_mul`,a.getLocal(`ita`),a.getLocal(`itb`),o),a.call(n+`_sub`,o,a.getLocal(`itc`),a.getLocal(`itp`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`itc`,a.i32_add(a.getLocal(`itc`),a.i32_const(r))),a.setLocal(`itp`,a.i32_add(a.getLocal(`itp`),a.i32_const(r))),a.br(0))))}function o(){let i=e.addFunction(t+`_batchAdd`);i.addParam(`pa`,`i32`),i.addParam(`pb`,`i32`),i.addParam(`n`,`i32`),i.addParam(`pr`,`i32`),i.addLocal(`ita`,`i32`),i.addLocal(`itb`,`i32`),i.addLocal(`itr`,`i32`),i.addLocal(`last`,`i32`);let a=i.getCodeBuilder();i.addCode(a.setLocal(`ita`,a.getLocal(`pa`)),a.setLocal(`itb`,a.getLocal(`pb`)),a.setLocal(`itr`,a.getLocal(`pr`)),a.setLocal(`last`,a.i32_add(a.getLocal(`pa`),a.i32_mul(a.getLocal(`n`),a.i32_const(r)))),a.block(a.loop(a.br_if(1,a.i32_eq(a.getLocal(`ita`),a.getLocal(`last`))),a.call(n+`_add`,a.getLocal(`ita`),a.getLocal(`itb`),a.getLocal(`itr`)),a.setLocal(`ita`,a.i32_add(a.getLocal(`ita`),a.i32_const(r))),a.setLocal(`itb`,a.i32_add(a.getLocal(`itb`),a.i32_const(r))),a.setLocal(`itr`,a.i32_add(a.getLocal(`itr`),a.i32_const(r))),a.br(0))))}return i(),a(),o(),e.exportFunction(t+`_buildABC`),e.exportFunction(t+`_joinABC`),e.exportFunction(t+`_batchAdd`),t},Rt=function(e,t,n,r,i,a,o,s){let c=e.addFunction(t);c.addParam(`pIn`,`i32`),c.addParam(`n`,`i32`),c.addParam(`pFirst`,`i32`),c.addParam(`pInc`,`i32`),c.addParam(`pOut`,`i32`),c.addLocal(`pOldFree`,`i32`),c.addLocal(`i`,`i32`),c.addLocal(`pFrom`,`i32`),c.addLocal(`pTo`,`i32`);let l=c.getCodeBuilder(),u=l.i32_const(e.alloc(o));c.addCode(l.setLocal(`pFrom`,l.getLocal(`pIn`)),l.setLocal(`pTo`,l.getLocal(`pOut`))),c.addCode(l.call(r+`_copy`,l.getLocal(`pFirst`),u)),c.addCode(l.setLocal(`i`,l.i32_const(0)),l.block(l.loop(l.br_if(1,l.i32_eq(l.getLocal(`i`),l.getLocal(`n`))),l.call(s,l.getLocal(`pFrom`),u,l.getLocal(`pTo`)),l.setLocal(`pFrom`,l.i32_add(l.getLocal(`pFrom`),l.i32_const(i))),l.setLocal(`pTo`,l.i32_add(l.getLocal(`pTo`),l.i32_const(a))),l.call(r+`_mul`,u,l.getLocal(`pInc`),u),l.setLocal(`i`,l.i32_add(l.getLocal(`i`),l.i32_const(1))),l.br(0)))),e.exportFunction(t)},G=Ae,zt=mt,Bt=_t,Vt=xt,Ht=wt,Ut=At,Wt=Ft,Gt=It,Kt=Lt,qt=Rt,{bitLength:Jt,modInv:Yt,isOdd:Xt,isNegative:Zt}=W,Qt=function(e,t){let n=t||`bn128`;if(e.modules[n])return n;let r=21888242871839275222246405745257275088696311157297823662689037894645226208583n,i=21888242871839275222246405745257275088548364400416034343698204186575808495617n,a=Math.floor((Jt(r-1n)-1)/64)+1,o=a*8,s=o,c=o,l=c*2,u=c*12,d=e.alloc(G.bigInt2BytesLE(i,s)),f=zt(e,r,`f1m`);Bt(e,i,`fr`,`frm`);let p=e.alloc(G.bigInt2BytesLE(y(3n),c)),m=Ut(e,`g1m`,`f1m`,p);Wt(e,`frm`,`frm`,`frm`,`frm_mul`),Gt(e,`pol`,`frm`),Kt(e,`qap`,`frm`);let h=Vt(e,`f1m_neg`,`f2m`,`f1m`),g=e.alloc([...G.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...G.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]),_=Ut(e,`g2m`,`f2m`,g);function v(t,n){let r=e.addFunction(t);r.addParam(`pG`,`i32`),r.addParam(`pFr`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(o));r.addCode(i.call(`frm_fromMontgomery`,i.getLocal(`pFr`),a),i.call(n,i.getLocal(`pG`),a,i.i32_const(o),i.getLocal(`pr`))),e.exportFunction(t)}v(`g1m_timesFr`,`g1m_timesScalar`),Wt(e,`g1m`,`g1m`,`frm`,`g1m_timesFr`),v(`g2m_timesFr`,`g2m_timesScalar`),Wt(e,`g2m`,`g2m`,`frm`,`g2m_timesFr`),v(`g1m_timesFrAffine`,`g1m_timesScalarAffine`),v(`g2m_timesFrAffine`,`g2m_timesScalarAffine`),qt(e,`frm_batchApplyKey`,`fmr`,`frm`,o,o,o,`frm_mul`),qt(e,`g1m_batchApplyKey`,`g1m`,`frm`,o*3,o*3,o,`g1m_timesFr`),qt(e,`g1m_batchApplyKeyMixed`,`g1m`,`frm`,o*2,o*3,o,`g1m_timesFrAffine`),qt(e,`g2m_batchApplyKey`,`g2m`,`frm`,o*2*3,o*3*2,o,`g2m_timesFr`),qt(e,`g2m_batchApplyKeyMixed`,`g2m`,`frm`,o*2*2,o*3*2,o,`g2m_timesFrAffine`);function y(e){return BigInt(e)*(1n<<BigInt(c*8))%r}let b=[1n,2n,1n],x=e.alloc([...G.bigInt2BytesLE(y(b[0]),c),...G.bigInt2BytesLE(y(b[1]),c),...G.bigInt2BytesLE(y(b[2]),c)]),S=[0n,1n,0n],C=e.alloc([...G.bigInt2BytesLE(y(S[0]),c),...G.bigInt2BytesLE(y(S[1]),c),...G.bigInt2BytesLE(y(S[2]),c)]),w=[[10857046999023057135944570762232829481370756359578518086990519993285655852781n,11559732032986387107991004021392285783925812861821192530917403151452391805634n],[8495653923123431417604973247489272438418190587263600148770280649306958101930n,4082367875863433681332203403145435568316851327593401208105741076214120093531n],[1n,0n]],T=e.alloc([...G.bigInt2BytesLE(y(w[0][0]),c),...G.bigInt2BytesLE(y(w[0][1]),c),...G.bigInt2BytesLE(y(w[1][0]),c),...G.bigInt2BytesLE(y(w[1][1]),c),...G.bigInt2BytesLE(y(w[2][0]),c),...G.bigInt2BytesLE(y(w[2][1]),c)]),E=[[0n,0n],[1n,0n],[0n,0n]],D=e.alloc([...G.bigInt2BytesLE(y(E[0][0]),c),...G.bigInt2BytesLE(y(E[0][1]),c),...G.bigInt2BytesLE(y(E[1][0]),c),...G.bigInt2BytesLE(y(E[1][1]),c),...G.bigInt2BytesLE(y(E[2][0]),c),...G.bigInt2BytesLE(y(E[2][1]),c)]),O=e.alloc([...G.bigInt2BytesLE(y(1),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c),...G.bigInt2BytesLE(y(0),c)]),k=e.alloc([...G.bigInt2BytesLE(y(9),c),...G.bigInt2BytesLE(y(1),c)]),A=e.alloc([...G.bigInt2BytesLE(y(Yt(2n,r)),c),...G.bigInt2BytesLE(0n,c)]),j=k,M=e.alloc([...G.bigInt2BytesLE(y(19485874751759354771024239261021720505790618469301721065564631296452457478373n),c),...G.bigInt2BytesLE(y(266929791119991161246907387137283842545076965332900288569378510910307636690n),c)]);function N(){let t=e.addFunction(n+`_mulNR6`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(h+`_mul`,r.i32_const(k),r.getLocal(`x`),r.getLocal(`pr`)))}N();let P=Ht(e,n+`_mulNR6`,`f6m`,`f2m`);function F(){let t=e.addFunction(n+`_mulNR12`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(h+`_mul`,r.i32_const(k),r.i32_add(r.getLocal(`x`),r.i32_const(o*4)),r.getLocal(`pr`)),r.call(h+`_copy`,r.getLocal(`x`),r.i32_add(r.getLocal(`pr`),r.i32_const(o*2))),r.call(h+`_copy`,r.i32_add(r.getLocal(`x`),r.i32_const(o*2)),r.i32_add(r.getLocal(`pr`),r.i32_const(o*4))))}F();let I=Vt(e,n+`_mulNR12`,`ftm`,P),L=ne(29793968203157093288n),R=e.alloc(L),z=3*l,B=L.length-1,V=L.reduce((e,t)=>e+(t==0?0:1),0)+B+1,ee=6*o,H=3*o*2+V*z;e.modules[n]={n64:a,pG1gen:x,pG1zero:C,pG1b:p,pG2gen:T,pG2zero:D,pG2b:g,pq:e.modules.f1m.pq,pr:d,pOneT:O,prePSize:ee,preQSize:H,r:`21888242871839275222246405745257275088548364400416034343698204186575808495617`,q:`21888242871839275222246405745257275088696311157297823662689037894645226208583`};function te(e){let t=e,n=[];for(;t>0n;){if(Xt(t)){let e=2-Number(t%4n);n.push(e),t-=BigInt(e)}else n.push(0);t>>=1n}return n}function ne(e){let t=e,n=[];for(;t>0n;)Xt(t)?n.push(1):n.push(0),t>>=1n;return n}function re(){let t=e.addFunction(n+`_prepareG1`);t.addParam(`pP`,`i32`),t.addParam(`ppreP`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(m+`_normalize`,r.getLocal(`pP`),r.getLocal(`ppreP`)))}function ie(){let t=e.addFunction(n+`_prepAddStep`);t.addParam(`pQ`,`i32`),t.addParam(`pR`,`i32`),t.addParam(`pCoef`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=r.i32_add(r.getLocal(`pQ`),r.i32_const(l)),o=r.getLocal(`pR`),s=r.i32_add(r.getLocal(`pR`),r.i32_const(l)),c=r.i32_add(r.getLocal(`pR`),r.i32_const(2*l)),u=r.getLocal(`pCoef`),d=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),f=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),p=d,m=r.i32_const(e.alloc(l)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,i,c,p),r.call(h+`_sub`,o,p,p),r.call(h+`_mul`,a,c,m),r.call(h+`_sub`,s,m,m),r.call(h+`_square`,p,g),r.call(h+`_square`,m,_),r.call(h+`_mul`,p,g,v),r.call(h+`_mul`,o,g,y),r.call(h+`_add`,y,y,x),r.call(h+`_mul`,c,_,b),r.call(h+`_add`,v,b,b),r.call(h+`_sub`,b,x,b),r.call(h+`_mul`,p,b,o),r.call(h+`_mul`,v,s,s),r.call(h+`_sub`,y,b,x),r.call(h+`_mul`,m,x,x),r.call(h+`_sub`,x,s,s),r.call(h+`_mul`,c,v,c),r.call(h+`_mul`,p,a,x),r.call(h+`_mul`,m,i,u),r.call(h+`_sub`,u,x,u),r.call(h+`_mul`,u,r.i32_const(j),u),r.call(h+`_neg`,m,f))}function ae(){let t=e.addFunction(n+`_prepDblStep`);t.addParam(`pR`,`i32`),t.addParam(`pCoef`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pR`),a=r.i32_add(r.getLocal(`pR`),r.i32_const(l)),o=r.i32_add(r.getLocal(`pR`),r.i32_const(2*l)),s=r.getLocal(`pCoef`),c=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),u=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),d=r.i32_const(e.alloc(l)),f=r.i32_const(e.alloc(l)),p=r.i32_const(e.alloc(l)),m=r.i32_const(e.alloc(l)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,a,r.i32_const(A),d),r.call(h+`_mul`,i,d,d),r.call(h+`_square`,a,f),r.call(h+`_square`,o,p),r.call(h+`_add`,p,p,m),r.call(h+`_add`,m,p,m),r.call(h+`_mul`,r.i32_const(M),m,g),r.call(h+`_add`,g,g,_),r.call(h+`_add`,g,_,_),r.call(h+`_add`,f,_,v),r.call(h+`_mul`,v,r.i32_const(A),v),r.call(h+`_add`,f,p,C),r.call(h+`_add`,a,o,y),r.call(h+`_square`,y,y),r.call(h+`_sub`,y,C,y),r.call(h+`_sub`,g,f,b),r.call(h+`_square`,i,x),r.call(h+`_square`,g,S),r.call(h+`_sub`,f,_,C),r.call(h+`_mul`,d,C,i),r.call(h+`_add`,S,S,C),r.call(h+`_add`,S,C,C),r.call(h+`_square`,v,a),r.call(h+`_sub`,a,C,a),r.call(h+`_mul`,f,y,o),r.call(h+`_mul`,r.i32_const(j),b,s),r.call(h+`_neg`,y,c),r.call(h+`_add`,x,x,u),r.call(h+`_add`,x,u,u))}function oe(){let t=e.addFunction(n+`_mulByQ`);t.addParam(`p1`,`i32`),t.addParam(`pr`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`p1`),a=r.i32_add(r.getLocal(`p1`),r.i32_const(l)),o=r.i32_add(r.getLocal(`p1`),r.i32_const(l*2)),s=r.getLocal(`pr`),u=r.i32_add(r.getLocal(`pr`),r.i32_const(l)),d=r.i32_add(r.getLocal(`pr`),r.i32_const(l*2)),f=r.i32_const(e.alloc([...G.bigInt2BytesLE(y(`21575463638280843010398324269430826099269044274347216827212613867836435027261`),c),...G.bigInt2BytesLE(y(`10307601595873709700152284273816112264069230130616436755625194854815875713954`),c)])),p=r.i32_const(e.alloc([...G.bigInt2BytesLE(y(`2821565182194536844548159561693502659359617185244120367078079554186484126554`),c),...G.bigInt2BytesLE(y(`3505843767911556378687030309984248845540243509899259641013678093033130930403`),c)]));t.addCode(r.call(h+`_conjugate`,i,s),r.call(h+`_mul`,f,s,s),r.call(h+`_conjugate`,a,u),r.call(h+`_mul`,p,u,u),r.call(h+`_conjugate`,o,d))}function se(){oe();let t=e.addFunction(n+`_prepareG2`);t.addParam(`pQ`,`i32`),t.addParam(`ppreQ`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=e.alloc(l*3),o=r.i32_const(a),s=r.i32_const(a),c=r.i32_const(a+l),u=r.i32_const(a+2*l),d=r.i32_add(r.getLocal(`ppreQ`),r.i32_const(0)),f=r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l)),p=e.alloc(l*3),m=r.i32_const(p),g=e.alloc(l*3),v=r.i32_const(g),y=r.i32_const(g+l);t.addCode(r.call(_+`_normalize`,i,d),r.call(h+`_copy`,d,s),r.call(h+`_copy`,f,c),r.call(h+`_one`,u)),t.addCode(r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l*3))),r.setLocal(`i`,r.i32_const(L.length-2)),r.block(r.loop(r.call(n+`_prepDblStep`,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.if(r.i32_load8_s(r.getLocal(`i`),R),[...r.call(n+`_prepAddStep`,d,o,r.getLocal(`pCoef`)),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0)))),t.addCode(r.call(n+`_mulByQ`,d,m),r.call(n+`_mulByQ`,m,v)),t.addCode(r.call(h+`_neg`,y,y),r.call(n+`_prepAddStep`,m,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.call(n+`_prepAddStep`,v,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))))}function ce(){let t=e.addFunction(n+`__mulBy024Old`);t.addParam(`pEll0`,`i32`),t.addParam(`pEllVW`,`i32`),t.addParam(`pEllVV`,`i32`),t.addParam(`pR`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pEll0`),a=r.getLocal(`pEllVV`),o=r.getLocal(`pEllVW`),s=r.getLocal(`pR`),c=e.alloc(u),d=r.i32_const(c),f=r.i32_const(c),p=r.i32_const(c+l),m=r.i32_const(c+l*2),g=r.i32_const(c+l*3),_=r.i32_const(c+l*4),v=r.i32_const(c+l*5);t.addCode(r.call(h+`_copy`,i,f),r.call(h+`_zero`,p),r.call(h+`_copy`,a,m),r.call(h+`_zero`,g),r.call(h+`_copy`,o,_),r.call(h+`_zero`,v),r.call(I+`_mul`,d,s,s))}function le(){let t=e.addFunction(n+`__mulBy024`);t.addParam(`pEll0`,`i32`),t.addParam(`pEllVW`,`i32`),t.addParam(`pEllVV`,`i32`),t.addParam(`pR`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pEll0`),a=r.getLocal(`pEllVV`),s=r.getLocal(`pEllVW`),c=r.getLocal(`pR`),u=r.i32_add(r.getLocal(`pR`),r.i32_const(2*o)),d=r.i32_add(r.getLocal(`pR`),r.i32_const(4*o)),f=r.i32_add(r.getLocal(`pR`),r.i32_const(6*o)),p=r.i32_add(r.getLocal(`pR`),r.i32_const(8*o)),m=r.i32_add(r.getLocal(`pR`),r.i32_const(10*o)),g=r.i32_const(e.alloc(l)),_=r.i32_const(e.alloc(l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l)),w=r.i32_const(e.alloc(l)),T=r.i32_const(e.alloc(l)),E=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,c,i,S),r.call(h+`_mul`,d,a,C),r.call(h+`_mul`,p,s,w),r.call(h+`_add`,c,p,v),r.call(h+`_add`,c,d,_),r.call(h+`_add`,u,f,y),r.call(h+`_add`,y,m,y),r.call(h+`_mul`,u,a,T),r.call(h+`_add`,T,w,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_add`,x,S,c),r.call(h+`_mul`,m,s,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,b,C,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_mul`,u,i,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,x,b,u),r.call(h+`_add`,i,a,g),r.call(h+`_mul`,_,g,b),r.call(h+`_add`,S,C,E),r.call(h+`_sub`,b,E,b),r.call(h+`_mul`,f,s,x),r.call(h+`_add`,T,x,T),r.call(h+`_add`,d,p,g),r.call(h+`_add`,b,x,d),r.call(h+`_add`,a,s,_),r.call(h+`_mul`,_,g,b),r.call(h+`_add`,C,w,E),r.call(h+`_sub`,b,E,b),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_mul`,f,i,b),r.call(h+`_add`,T,b,T),r.call(h+`_add`,x,b,f),r.call(h+`_mul`,m,a,b),r.call(h+`_add`,T,b,T),r.call(h+`_mul`,r.i32_const(k),b,x),r.call(h+`_add`,i,s,g),r.call(h+`_mul`,v,g,b),r.call(h+`_add`,S,w,E),r.call(h+`_sub`,b,E,b),r.call(h+`_add`,x,b,p),r.call(h+`_add`,i,a,g),r.call(h+`_add`,g,s,g),r.call(h+`_mul`,y,g,b),r.call(h+`_sub`,b,T,m))}function ue(){let t=e.addFunction(n+`_millerLoop`);t.addParam(`ppreP`,`i32`),t.addParam(`ppreQ`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`ppreP`),a=r.i32_add(r.getLocal(`ppreP`),r.i32_const(c)),o=r.getLocal(`pCoef`),s=r.i32_add(r.getLocal(`pCoef`),r.i32_const(l)),u=r.i32_add(r.getLocal(`pCoef`),r.i32_const(2*l)),d=e.alloc(l),f=r.i32_const(d),p=e.alloc(l),m=r.i32_const(p),g=r.getLocal(`r`);t.addCode(r.call(I+`_one`,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(l*3))),r.setLocal(`i`,r.i32_const(L.length-2)),r.block(r.loop(r.call(I+`_square`,g,g),r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.if(r.i32_load8_s(r.getLocal(`i`),R),[...r.call(h+`_mul1`,s,a,f),...r.call(h+`_mul1`,u,i,m),...r.call(n+`__mulBy024`,o,f,m,g),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0)))),t.addCode(r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))),r.call(h+`_mul1`,s,a,f),r.call(h+`_mul1`,u,i,m),r.call(n+`__mulBy024`,o,f,m,g),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(z))))}function de(t){let i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[8376118865763821496583973867626364092589906065868298776909617916018768340080n,16469823323077808223889137241176536799009286646108169935659301613961712198316n],[21888242871839275220042445260109153167277707414472061641714758635765020556617n,0n],[11697423496358154304825782922584725312912383441159505038794027105778954184319n,303847389135065887422783454877609941456349188919719272345083954437860409601n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3321304630594332808241809054958361220322477375291206261884409189760185844239n,5722266937896532885780051958958348231143373700109372999374820235121374419868n],[21888242871839275222246405745257275088696311157297823662689037894645226208582n,0n],[13512124006075453725662431877630910996106405091429524885779419978626457868503n,5418419548761466998357268504080738289687024511189653727029736280683514010267n],[2203960485148121921418603742825762020974279258880205651966n,0n],[10190819375481120917420622822672549775783927716138318623895010788866272024264n,21584395482704209334823622290379665147239961968378104390343953940207365798982n],[2203960485148121921418603742825762020974279258880205651967n,0n],[18566938241244942414004596690298913868373833782006617400804628704885040364344n,16165975933942742336466353786298926857552937457188450663314217659523851788715n]]],a=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[21575463638280843010398324269430826099269044274347216827212613867836435027261n,10307601595873709700152284273816112264069230130616436755625194854815875713954n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[3772000881919853776433695186713858239009073593817195771773381919316419345261n,2236595495967245188281701248203181795121068902605861227855261137820944008926n],[2203960485148121921418603742825762020974279258880205651966n,0n],[18429021223477853657660792034369865839114504446431234726392080002137598044644n,9344045779998320333812420223237981029506012124075525679208581902008406485703n]],[[1n,0n],[2581911344467009335267311115468803099551665605076196740867805258568234346338n,19937756971775647987995932169929341994314640652964949448313374472400716661030n],[2203960485148121921418603742825762020974279258880205651966n,0n],[5324479202449903542726783395506214481928257762400643279780343368557297135718n,16208900380737693084919495127334387981393726419856888799917914180988844123039n],[21888242871839275220042445260109153167277707414472061641714758635765020556616n,0n],[13981852324922362344252311234282257507216387789820983642040889267519694726527n,7629828391165209371577384193250820201684255241773809077146787135900891633097n]]],o=e.addFunction(n+`__frobeniusMap`+t);o.addParam(`x`,`i32`),o.addParam(`r`,`i32`);let s=o.getCodeBuilder();for(let n=0;n<6;n++){let r=n==0?s.getLocal(`x`):s.i32_add(s.getLocal(`x`),s.i32_const(n*l)),d=r,p=s.i32_add(s.getLocal(`x`),s.i32_const(n*l+c)),m=n==0?s.getLocal(`r`):s.i32_add(s.getLocal(`r`),s.i32_const(n*l)),g=m,_=s.i32_add(s.getLocal(`r`),s.i32_const(n*l+c)),v=u(i[Math.floor(n/3)][t%12],a[n%3][t%6]),b=e.alloc([...G.bigInt2BytesLE(y(v[0]),32),...G.bigInt2BytesLE(y(v[1]),32)]);t%2==1?o.addCode(s.call(f+`_copy`,d,g),s.call(f+`_neg`,p,_),s.call(h+`_mul`,m,s.i32_const(b),m)):o.addCode(s.call(h+`_mul`,r,s.i32_const(b),m))}function u(e,t){let n=BigInt(e[0]),i=BigInt(e[1]),a=BigInt(t[0]),o=BigInt(t[1]),s=[(n*a-i*o)%r,(n*o+i*a)%r];return Zt(s[0])&&(s[0]+=r),s}}function fe(){let t=e.addFunction(n+`__finalExponentiationFirstChunk`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=i,s=r.i32_add(i,r.i32_const(o*6)),c=r.getLocal(`r`),l=e.alloc(u),d=r.i32_const(l),f=d,p=r.i32_const(l+o*6),m=r.i32_const(e.alloc(u)),h=r.i32_const(e.alloc(u)),g=r.i32_const(e.alloc(u));t.addCode(r.call(P+`_copy`,a,f),r.call(P+`_neg`,s,p),r.call(I+`_inverse`,i,m),r.call(I+`_mul`,d,m,h),r.call(n+`__frobeniusMap2`,h,g),r.call(I+`_mul`,h,g,c))}function pe(){let t=e.addFunction(n+`__cyclotomicSquare`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.i32_add(r.getLocal(`x`),r.i32_const(l)),o=r.i32_add(r.getLocal(`x`),r.i32_const(2*l)),s=r.i32_add(r.getLocal(`x`),r.i32_const(3*l)),c=r.i32_add(r.getLocal(`x`),r.i32_const(4*l)),u=r.i32_add(r.getLocal(`x`),r.i32_const(5*l)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(l)),p=r.i32_add(r.getLocal(`r`),r.i32_const(2*l)),m=r.i32_add(r.getLocal(`r`),r.i32_const(3*l)),g=r.i32_add(r.getLocal(`r`),r.i32_const(4*l)),_=r.i32_add(r.getLocal(`r`),r.i32_const(5*l)),v=r.i32_const(e.alloc(l)),y=r.i32_const(e.alloc(l)),b=r.i32_const(e.alloc(l)),x=r.i32_const(e.alloc(l)),S=r.i32_const(e.alloc(l)),C=r.i32_const(e.alloc(l)),w=r.i32_const(e.alloc(l)),T=r.i32_const(e.alloc(l));t.addCode(r.call(h+`_mul`,i,c,w),r.call(h+`_mul`,c,r.i32_const(k),v),r.call(h+`_add`,i,v,v),r.call(h+`_add`,i,c,T),r.call(h+`_mul`,T,v,v),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,v,T,v),r.call(h+`_add`,w,w,y),r.call(h+`_mul`,s,o,w),r.call(h+`_mul`,o,r.i32_const(k),b),r.call(h+`_add`,s,b,b),r.call(h+`_add`,s,o,T),r.call(h+`_mul`,T,b,b),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,b,T,b),r.call(h+`_add`,w,w,x),r.call(h+`_mul`,a,u,w),r.call(h+`_mul`,u,r.i32_const(k),S),r.call(h+`_add`,a,S,S),r.call(h+`_add`,a,u,T),r.call(h+`_mul`,T,S,S),r.call(h+`_mul`,r.i32_const(k),w,T),r.call(h+`_add`,w,T,T),r.call(h+`_sub`,S,T,S),r.call(h+`_add`,w,w,C),r.call(h+`_sub`,v,i,d),r.call(h+`_add`,d,d,d),r.call(h+`_add`,v,d,d),r.call(h+`_add`,y,c,g),r.call(h+`_add`,g,g,g),r.call(h+`_add`,y,g,g),r.call(h+`_mul`,C,r.i32_const(j),T),r.call(h+`_add`,T,s,m),r.call(h+`_add`,m,m,m),r.call(h+`_add`,T,m,m),r.call(h+`_sub`,S,o,p),r.call(h+`_add`,p,p,p),r.call(h+`_add`,S,p,p),r.call(h+`_sub`,b,a,f),r.call(h+`_add`,f,f,f),r.call(h+`_add`,b,f,f),r.call(h+`_add`,x,u,_),r.call(h+`_add`,_,_,_),r.call(h+`_add`,x,_,_))}function me(t,r){let i=te(t).map(e=>e==-1?255:e),a=e.alloc(i),o=e.addFunction(n+`__cyclotomicExp_`+r);o.addParam(`x`,`i32`),o.addParam(`r`,`i32`),o.addLocal(`bit`,`i32`),o.addLocal(`i`,`i32`);let s=o.getCodeBuilder(),c=s.getLocal(`x`),l=s.getLocal(`r`),d=s.i32_const(e.alloc(u));o.addCode(s.call(I+`_conjugate`,c,d),s.call(I+`_one`,l),s.if(s.teeLocal(`bit`,s.i32_load8_s(s.i32_const(i.length-1),a)),s.if(s.i32_eq(s.getLocal(`bit`),s.i32_const(1)),s.call(I+`_mul`,l,c,l),s.call(I+`_mul`,l,d,l))),s.setLocal(`i`,s.i32_const(i.length-2)),s.block(s.loop(s.call(n+`__cyclotomicSquare`,l,l),s.if(s.teeLocal(`bit`,s.i32_load8_s(s.getLocal(`i`),a)),s.if(s.i32_eq(s.getLocal(`bit`),s.i32_const(1)),s.call(I+`_mul`,l,c,l),s.call(I+`_mul`,l,d,l))),s.br_if(1,s.i32_eqz(s.getLocal(`i`))),s.setLocal(`i`,s.i32_sub(s.getLocal(`i`),s.i32_const(1))),s.br(0))))}function he(){pe(),me(4965661367192848881n,`w0`);let t=e.addFunction(n+`__finalExponentiationLastChunk`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(u)),s=r.i32_const(e.alloc(u)),c=r.i32_const(e.alloc(u)),l=r.i32_const(e.alloc(u)),d=r.i32_const(e.alloc(u)),f=r.i32_const(e.alloc(u)),p=r.i32_const(e.alloc(u)),m=r.i32_const(e.alloc(u)),h=r.i32_const(e.alloc(u)),g=r.i32_const(e.alloc(u)),_=r.i32_const(e.alloc(u)),v=r.i32_const(e.alloc(u)),y=r.i32_const(e.alloc(u)),b=r.i32_const(e.alloc(u)),x=r.i32_const(e.alloc(u)),S=r.i32_const(e.alloc(u)),C=r.i32_const(e.alloc(u)),w=r.i32_const(e.alloc(u)),T=r.i32_const(e.alloc(u)),E=r.i32_const(e.alloc(u)),D=r.i32_const(e.alloc(u));t.addCode(r.call(n+`__cyclotomicExp_w0`,i,o),r.call(I+`_conjugate`,o,o),r.call(n+`__cyclotomicSquare`,o,s),r.call(n+`__cyclotomicSquare`,s,c),r.call(I+`_mul`,c,s,l),r.call(n+`__cyclotomicExp_w0`,l,d),r.call(I+`_conjugate`,d,d),r.call(n+`__cyclotomicSquare`,d,f),r.call(n+`__cyclotomicExp_w0`,f,p),r.call(I+`_conjugate`,p,p),r.call(I+`_conjugate`,l,m),r.call(I+`_conjugate`,p,h),r.call(I+`_mul`,h,d,g),r.call(I+`_mul`,g,m,_),r.call(I+`_mul`,_,s,v),r.call(I+`_mul`,_,d,y),r.call(I+`_mul`,y,i,b),r.call(n+`__frobeniusMap1`,v,x),r.call(I+`_mul`,x,b,S),r.call(n+`__frobeniusMap2`,_,C),r.call(I+`_mul`,C,S,w),r.call(I+`_conjugate`,i,T),r.call(I+`_mul`,T,v,E),r.call(n+`__frobeniusMap3`,E,D),r.call(I+`_mul`,D,w,a))}function ge(){fe(),he();let t=e.addFunction(n+`_finalExponentiation`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(u));t.addCode(r.call(n+`__finalExponentiationFirstChunk`,i,o),r.call(n+`__finalExponentiationLastChunk`,o,a))}function _e(){let t=e.addFunction(n+`_finalExponentiationOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=e.alloc(G.bigInt2BytesLE(552484233613224096312617126783173147097382103762957654188882734314196910839907541213974502761540629817009608548654680343627701153829446747810907373256841551006201639677726139946029199968412598804882391702273019083653272047566316584365559776493027495458238373902875937659943504873220554161550525926302303331747463515644711876653177129578303191095900909191624817826566688241804408081892785725967931714097716709526092261278071952560171111444072049229123565057483750161460024353346284167282452756217662335528813519139808291170539072125381230815729071544861602750936964829313608137325426383735122175229541155376346436093930287402089517426973178917569713384748081827255472576937471496195752727188261435633271238710131736096299798168852925540549342330775279877006784354801422249722573783561685179618816480037695005515426162362431072245638324744480n,352)),i=t.getCodeBuilder();t.addCode(i.call(I+`_exp`,i.getLocal(`x`),i.i32_const(r),i.i32_const(352),i.getLocal(`r`)))}let U=e.alloc(ee),ve=e.alloc(H);function ye(t){let r=e.addFunction(n+`_pairingEq`+t);for(let e=0;e<t;e++)r.addParam(`p_`+e,`i32`),r.addParam(`q_`+e,`i32`);r.addParam(`c`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(u)),o=i.i32_const(e.alloc(u));r.addCode(i.call(I+`_one`,a));for(let e=0;e<t;e++)r.addCode(i.call(n+`_prepareG1`,i.getLocal(`p_`+e),i.i32_const(U))),r.addCode(i.call(n+`_prepareG2`,i.getLocal(`q_`+e),i.i32_const(ve))),r.addCode(i.call(n+`_millerLoop`,i.i32_const(U),i.i32_const(ve),o)),r.addCode(i.call(I+`_mul`,a,o,a));r.addCode(i.call(n+`_finalExponentiation`,a,a)),r.addCode(i.call(I+`_eq`,a,i.getLocal(`c`)))}function be(){let t=e.addFunction(n+`_pairing`);t.addParam(`p`,`i32`),t.addParam(`q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.i32_const(e.alloc(u));t.addCode(r.call(n+`_prepareG1`,r.getLocal(`p`),r.i32_const(U))),t.addCode(r.call(n+`_prepareG2`,r.getLocal(`q`),r.i32_const(ve))),t.addCode(r.call(n+`_millerLoop`,r.i32_const(U),r.i32_const(ve),i)),t.addCode(r.call(n+`_finalExponentiation`,i,r.getLocal(`r`)))}ie(),ae(),re(),se(),le(),ce(),ue();for(let t=0;t<10;t++)de(t),e.exportFunction(n+`__frobeniusMap`+t);_e(),ge();for(let t=1;t<=5;t++)ye(t),e.exportFunction(n+`_pairingEq`+t);be(),e.exportFunction(n+`_pairing`),e.exportFunction(n+`_prepareG1`),e.exportFunction(n+`_prepareG2`),e.exportFunction(n+`_millerLoop`),e.exportFunction(n+`_finalExponentiation`),e.exportFunction(n+`_finalExponentiationOld`),e.exportFunction(n+`__mulBy024`),e.exportFunction(n+`__mulBy024Old`),e.exportFunction(n+`__cyclotomicSquare`),e.exportFunction(n+`__cyclotomicExp_w0`)},K=Ae,$t=mt,en=_t,tn=xt,nn=wt,rn=At,an=Ft,on=It,sn=Lt,cn=Rt,{bitLength:ln,isOdd:un,isNegative:dn}=W,fn=function(e,t){let n=t||`bls12381`;if(e.modules[n])return n;let r=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787n,i=52435875175126190479447740508185965837690552500527637822603658699938581184513n,a=Math.floor((ln(r-1n)-1)/64)+1,o=a*8,s=o,c=s*2,l=s*12,u=Math.floor((ln(i-1n)-1)/64)+1,d=u*8,f=d,p=e.alloc(K.bigInt2BytesLE(i,f)),m=$t(e,r,`f1m`,`intq`);en(e,i,`fr`,`frm`,`intr`);let h=e.alloc(K.bigInt2BytesLE(x(4n),s)),g=rn(e,`g1m`,`f1m`,h);an(e,`frm`,`frm`,`frm`,`frm_mul`),on(e,`pol`,`frm`),sn(e,`qap`,`frm`);let _=tn(e,`f1m_neg`,`f2m`,`f1m`),v=e.alloc([...K.bigInt2BytesLE(x(4n),s),...K.bigInt2BytesLE(x(4n),s)]),y=rn(e,`g2m`,`f2m`,v);function b(t,n){let r=e.addFunction(t);r.addParam(`pG`,`i32`),r.addParam(`pFr`,`i32`),r.addParam(`pr`,`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(d));r.addCode(i.call(`frm_fromMontgomery`,i.getLocal(`pFr`),a),i.call(n,i.getLocal(`pG`),a,i.i32_const(d),i.getLocal(`pr`))),e.exportFunction(t)}b(`g1m_timesFr`,`g1m_timesScalar`),an(e,`g1m`,`g1m`,`frm`,`g1m_timesFr`),b(`g2m_timesFr`,`g2m_timesScalar`),an(e,`g2m`,`g2m`,`frm`,`g2m_timesFr`),b(`g1m_timesFrAffine`,`g1m_timesScalarAffine`),b(`g2m_timesFrAffine`,`g2m_timesScalarAffine`),cn(e,`frm_batchApplyKey`,`fmr`,`frm`,d,d,d,`frm_mul`),cn(e,`g1m_batchApplyKey`,`g1m`,`frm`,o*3,o*3,d,`g1m_timesFr`),cn(e,`g1m_batchApplyKeyMixed`,`g1m`,`frm`,o*2,o*3,d,`g1m_timesFrAffine`),cn(e,`g2m_batchApplyKey`,`g2m`,`frm`,o*2*3,o*3*2,d,`g2m_timesFr`),cn(e,`g2m_batchApplyKeyMixed`,`g2m`,`frm`,o*2*2,o*3*2,d,`g2m_timesFrAffine`);function x(e){return BigInt(e)*(1n<<BigInt(s*8))%r}let S=[3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507n,1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569n,1n],C=e.alloc([...K.bigInt2BytesLE(x(S[0]),s),...K.bigInt2BytesLE(x(S[1]),s),...K.bigInt2BytesLE(x(S[2]),s)]),w=[0n,1n,0n],T=e.alloc([...K.bigInt2BytesLE(x(w[0]),s),...K.bigInt2BytesLE(x(w[1]),s),...K.bigInt2BytesLE(x(w[2]),s)]),E=[[352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160n,3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758n],[1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905n,927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582n],[1n,0n]],D=e.alloc([...K.bigInt2BytesLE(x(E[0][0]),s),...K.bigInt2BytesLE(x(E[0][1]),s),...K.bigInt2BytesLE(x(E[1][0]),s),...K.bigInt2BytesLE(x(E[1][1]),s),...K.bigInt2BytesLE(x(E[2][0]),s),...K.bigInt2BytesLE(x(E[2][1]),s)]),O=[[0n,0n],[1n,0n],[0n,0n]],k=e.alloc([...K.bigInt2BytesLE(x(O[0][0]),s),...K.bigInt2BytesLE(x(O[0][1]),s),...K.bigInt2BytesLE(x(O[1][0]),s),...K.bigInt2BytesLE(x(O[1][1]),s),...K.bigInt2BytesLE(x(O[2][0]),s),...K.bigInt2BytesLE(x(O[2][1]),s)]),A=e.alloc([...K.bigInt2BytesLE(x(1n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s),...K.bigInt2BytesLE(x(0n),s)]),j=e.alloc([...K.bigInt2BytesLE(x(1n),s),...K.bigInt2BytesLE(x(1n),s)]);function M(){let t=e.addFunction(_+`_mulNR`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s)),i=n.getLocal(`x`),a=n.i32_add(n.getLocal(`x`),n.i32_const(s)),o=n.getLocal(`pr`),c=n.i32_add(n.getLocal(`pr`),n.i32_const(s));t.addCode(n.call(m+`_copy`,i,r),n.call(m+`_sub`,i,a,o),n.call(m+`_add`,r,a,c))}M();let N=nn(e,_+`_mulNR`,`f6m`,`f2m`);function P(){let t=e.addFunction(N+`_mulNR`);t.addParam(`x`,`i32`),t.addParam(`pr`,`i32`);let n=t.getCodeBuilder(),r=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_copy`,n.getLocal(`x`),r),n.call(_+`_mulNR`,n.i32_add(n.getLocal(`x`),n.i32_const(o*4)),n.getLocal(`pr`)),n.call(_+`_copy`,n.i32_add(n.getLocal(`x`),n.i32_const(o*2)),n.i32_add(n.getLocal(`pr`),n.i32_const(o*4))),n.call(_+`_copy`,r,n.i32_add(n.getLocal(`pr`),n.i32_const(o*2))))}P();let F=tn(e,N+`_mulNR`,`ftm`,N),I=ne(15132376222941642752n),L=e.alloc(I),R=3*c,z=I.length-1,B=I.reduce((e,t)=>e+(t==0?0:1),0)+z+1,V=6*o,ee=3*o*2+B*R,H=15132376222941642752n;e.modules[n]={n64q:a,n64r:u,n8q:o,n8r:d,pG1gen:C,pG1zero:T,pG1b:h,pG2gen:D,pG2zero:k,pG2b:v,pq:e.modules.f1m.pq,pr:p,pOneT:A,r:i,q:r,prePSize:V,preQSize:ee};function te(e){let t=e,n=[];for(;t>0n;){if(un(t)){let e=2-Number(t%4n);n.push(e),t-=BigInt(e)}else n.push(0);t>>=1n}return n}function ne(e){let t=e,n=[];for(;t>0n;)un(t)?n.push(1):n.push(0),t>>=1n;return n}function re(){let t=e.addFunction(n+`_prepareG1`);t.addParam(`pP`,`i32`),t.addParam(`ppreP`,`i32`);let r=t.getCodeBuilder();t.addCode(r.call(g+`_normalize`,r.getLocal(`pP`),r.getLocal(`ppreP`)))}function ie(){let t=e.addFunction(n+`_prepDblStep`);t.addParam(`R`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`R`),a=r.i32_add(r.getLocal(`R`),r.i32_const(2*o)),s=r.i32_add(r.getLocal(`R`),r.i32_const(4*o)),l=r.getLocal(`r`),u=r.i32_add(r.getLocal(`r`),r.i32_const(2*o)),d=r.i32_add(r.getLocal(`r`),r.i32_const(4*o)),f=r.i32_const(e.alloc(c)),p=r.i32_const(e.alloc(c)),m=r.i32_const(e.alloc(c)),h=r.i32_const(e.alloc(c)),g=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_square`,i,l),r.call(_+`_square`,a,p),r.call(_+`_square`,p,m),r.call(_+`_add`,p,i,u),r.call(_+`_square`,u,u),r.call(_+`_sub`,u,l,u),r.call(_+`_sub`,u,m,u),r.call(_+`_add`,u,u,u),r.call(_+`_add`,l,l,h),r.call(_+`_add`,h,l,h),r.call(_+`_add`,i,h,d),r.call(_+`_square`,h,g),r.call(_+`_square`,s,f),r.call(_+`_sub`,g,u,i),r.call(_+`_sub`,i,u,i),r.call(_+`_add`,s,a,s),r.call(_+`_square`,s,s),r.call(_+`_sub`,s,p,s),r.call(_+`_sub`,s,f,s),r.call(_+`_sub`,u,i,a),r.call(_+`_mul`,a,h,a),r.call(_+`_add`,m,m,m),r.call(_+`_add`,m,m,m),r.call(_+`_add`,m,m,m),r.call(_+`_sub`,a,m,a),r.call(_+`_mul`,h,f,u),r.call(_+`_add`,u,u,u),r.call(_+`_neg`,u,u),r.call(_+`_square`,d,d),r.call(_+`_sub`,d,l,d),r.call(_+`_sub`,d,g,d),r.call(_+`_add`,p,p,p),r.call(_+`_add`,p,p,p),r.call(_+`_sub`,d,p,d),r.call(_+`_mul`,s,f,l),r.call(_+`_add`,l,l,l))}function ae(){let t=e.addFunction(n+`_prepAddStep`);t.addParam(`R`,`i32`),t.addParam(`Q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`R`),a=r.i32_add(r.getLocal(`R`),r.i32_const(2*o)),s=r.i32_add(r.getLocal(`R`),r.i32_const(4*o)),l=r.getLocal(`Q`),u=r.i32_add(r.getLocal(`Q`),r.i32_const(2*o)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(2*o)),p=r.i32_add(r.getLocal(`r`),r.i32_const(4*o)),m=r.i32_const(e.alloc(c)),h=r.i32_const(e.alloc(c)),g=r.i32_const(e.alloc(c)),v=r.i32_const(e.alloc(c)),y=r.i32_const(e.alloc(c)),b=r.i32_const(e.alloc(c)),x=r.i32_const(e.alloc(c)),S=r.i32_const(e.alloc(c)),C=r.i32_const(e.alloc(c)),w=r.i32_const(e.alloc(c)),T=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_square`,s,m),r.call(_+`_square`,u,h),r.call(_+`_mul`,m,l,v),r.call(_+`_add`,u,s,f),r.call(_+`_square`,f,f),r.call(_+`_sub`,f,h,f),r.call(_+`_sub`,f,m,f),r.call(_+`_mul`,f,m,f),r.call(_+`_sub`,v,i,y),r.call(_+`_square`,y,b),r.call(_+`_add`,b,b,x),r.call(_+`_add`,x,x,x),r.call(_+`_mul`,x,y,S),r.call(_+`_sub`,f,a,C),r.call(_+`_sub`,C,a,C),r.call(_+`_mul`,C,l,p),r.call(_+`_mul`,x,i,w),r.call(_+`_square`,C,i),r.call(_+`_sub`,i,S,i),r.call(_+`_sub`,i,w,i),r.call(_+`_sub`,i,w,i),r.call(_+`_add`,s,y,s),r.call(_+`_square`,s,s),r.call(_+`_sub`,s,m,s),r.call(_+`_sub`,s,b,s),r.call(_+`_add`,u,s,d),r.call(_+`_sub`,w,i,T),r.call(_+`_mul`,T,C,T),r.call(_+`_mul`,a,S,v),r.call(_+`_add`,v,v,v),r.call(_+`_sub`,T,v,a),r.call(_+`_square`,d,d),r.call(_+`_sub`,d,h,d),r.call(_+`_square`,s,g),r.call(_+`_sub`,d,g,d),r.call(_+`_add`,p,p,p),r.call(_+`_sub`,p,d,p),r.call(_+`_add`,s,s,d),r.call(_+`_neg`,C,C),r.call(_+`_add`,C,C,f))}function oe(){let t=e.addFunction(n+`_prepareG2`);t.addParam(`pQ`,`i32`),t.addParam(`ppreQ`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pQ`),a=e.alloc(c*3),o=r.i32_const(a),s=r.getLocal(`ppreQ`);t.addCode(r.call(y+`_normalize`,i,s),r.if(r.call(y+`_isZero`,s),r.ret([])),r.call(y+`_copy`,s,o),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(c*3)))),t.addCode(r.setLocal(`i`,r.i32_const(I.length-2)),r.block(r.loop(r.call(n+`_prepDblStep`,o,r.getLocal(`pCoef`)),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R))),r.if(r.i32_load8_s(r.getLocal(`i`),L),[...r.call(n+`_prepAddStep`,o,s,r.getLocal(`pCoef`)),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R)))]),r.br_if(1,r.i32_eqz(r.getLocal(`i`))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0))))}function se(){let t=e.addFunction(N+`_mul1`);t.addParam(`pA`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*2)),a=n.i32_add(n.getLocal(`pA`),n.i32_const(s*4)),o=n.getLocal(`pC1`),c=n.getLocal(`pR`),l=n.i32_add(n.getLocal(`pR`),n.i32_const(s*2)),u=n.i32_add(n.getLocal(`pR`),n.i32_const(s*4)),d=n.i32_const(e.alloc(s*2)),f=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_add`,r,i,d),n.call(_+`_add`,i,a,f),n.call(_+`_mul`,i,o,u),n.call(_+`_mul`,f,o,c),n.call(_+`_sub`,c,u,c),n.call(_+`_mulNR`,c,c),n.call(_+`_mul`,d,o,l),n.call(_+`_sub`,l,u,l))}se();function ce(){let t=e.addFunction(N+`_mul01`);t.addParam(`pA`,`i32`),t.addParam(`pC0`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*2)),a=n.i32_add(n.getLocal(`pA`),n.i32_const(s*4)),o=n.getLocal(`pC0`),c=n.getLocal(`pC1`),l=n.getLocal(`pR`),u=n.i32_add(n.getLocal(`pR`),n.i32_const(s*2)),d=n.i32_add(n.getLocal(`pR`),n.i32_const(s*4)),f=n.i32_const(e.alloc(s*2)),p=n.i32_const(e.alloc(s*2)),m=n.i32_const(e.alloc(s*2)),h=n.i32_const(e.alloc(s*2));t.addCode(n.call(_+`_mul`,r,o,f),n.call(_+`_mul`,i,c,p),n.call(_+`_add`,r,i,m),n.call(_+`_add`,r,a,h),n.call(_+`_add`,i,a,l),n.call(_+`_mul`,l,c,l),n.call(_+`_sub`,l,p,l),n.call(_+`_mulNR`,l,l),n.call(_+`_add`,l,f,l),n.call(_+`_add`,o,c,u),n.call(_+`_mul`,u,m,u),n.call(_+`_sub`,u,f,u),n.call(_+`_sub`,u,p,u),n.call(_+`_mul`,h,o,d),n.call(_+`_sub`,d,f,d),n.call(_+`_add`,d,p,d))}ce();function le(){let t=e.addFunction(F+`_mul014`);t.addParam(`pA`,`i32`),t.addParam(`pC0`,`i32`),t.addParam(`pC1`,`i32`),t.addParam(`pC4`,`i32`),t.addParam(`pR`,`i32`);let n=t.getCodeBuilder(),r=n.getLocal(`pA`),i=n.i32_add(n.getLocal(`pA`),n.i32_const(s*6)),a=n.getLocal(`pC0`),o=n.getLocal(`pC1`),c=n.getLocal(`pC4`),l=n.i32_const(e.alloc(s*6)),u=n.i32_const(e.alloc(s*6)),d=n.i32_const(e.alloc(s*2)),f=n.getLocal(`pR`),p=n.i32_add(n.getLocal(`pR`),n.i32_const(s*6));t.addCode(n.call(N+`_mul01`,r,a,o,l),n.call(N+`_mul1`,i,c,u),n.call(_+`_add`,o,c,d),n.call(N+`_add`,i,r,p),n.call(N+`_mul01`,p,a,d,p),n.call(N+`_sub`,p,l,p),n.call(N+`_sub`,p,u,p),n.call(N+`_copy`,u,f),n.call(N+`_mulNR`,f,f),n.call(N+`_add`,f,l,f))}le();function ue(){let t=e.addFunction(n+`_ell`);t.addParam(`pP`,`i32`),t.addParam(`pCoefs`,`i32`),t.addParam(`pF`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`pP`),a=r.i32_add(r.getLocal(`pP`),r.i32_const(o)),c=r.getLocal(`pF`),l=r.getLocal(`pCoefs`),u=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s)),d=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*2)),f=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*3)),p=r.i32_add(r.getLocal(`pCoefs`),r.i32_const(s*4)),h=e.alloc(s*2),g=r.i32_const(h),_=r.i32_const(h),v=r.i32_const(h+s),y=e.alloc(s*2),b=r.i32_const(y),x=r.i32_const(y),S=r.i32_const(y+s);t.addCode(r.call(m+`_mul`,l,a,_),r.call(m+`_mul`,u,a,v),r.call(m+`_mul`,d,i,x),r.call(m+`_mul`,f,i,S),r.call(F+`_mul014`,c,p,b,g,c))}ue();function de(){let t=e.addFunction(n+`_millerLoop`);t.addParam(`ppreP`,`i32`),t.addParam(`ppreQ`,`i32`),t.addParam(`r`,`i32`),t.addLocal(`pCoef`,`i32`),t.addLocal(`i`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`ppreP`),a=r.getLocal(`pCoef`),o=r.getLocal(`r`);t.addCode(r.call(F+`_one`,o),r.if(r.call(g+`_isZero`,i),r.ret([])),r.if(r.call(g+`_isZero`,r.getLocal(`ppreQ`)),r.ret([])),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`ppreQ`),r.i32_const(c*3))),r.setLocal(`i`,r.i32_const(I.length-2)),r.block(r.loop(r.call(n+`_ell`,i,a,o),r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R))),r.if(r.i32_load8_s(r.getLocal(`i`),L),[...r.call(n+`_ell`,i,a,o),...r.setLocal(`pCoef`,r.i32_add(r.getLocal(`pCoef`),r.i32_const(R)))]),r.call(F+`_square`,o,o),r.br_if(1,r.i32_eq(r.getLocal(`i`),r.i32_const(1))),r.setLocal(`i`,r.i32_sub(r.getLocal(`i`),r.i32_const(1))),r.br(0))),r.call(n+`_ell`,i,a,o)),t.addCode(r.call(F+`_conjugate`,o,o))}function fe(t){let n=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n,151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n],[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n,877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027n,3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230n,3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557n]]],i=[[[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n],[1n,0n]],[[1n,0n],[0n,4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[0n,1n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[0n,793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n]],[[1n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437n,0n],[4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n,0n],[4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559786n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n,0n],[793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351n,0n]]],a=e.addFunction(F+`_frobeniusMap`+t);a.addParam(`x`,`i32`),a.addParam(`r`,`i32`);let l=a.getCodeBuilder();for(let r=0;r<6;r++){let d=r==0?l.getLocal(`x`):l.i32_add(l.getLocal(`x`),l.i32_const(r*c)),f=d,p=l.i32_add(l.getLocal(`x`),l.i32_const(r*c+s)),h=r==0?l.getLocal(`r`):l.i32_add(l.getLocal(`r`),l.i32_const(r*c)),g=h,v=l.i32_add(l.getLocal(`r`),l.i32_const(r*c+s)),y=u(n[Math.floor(r/3)][t%12],i[r%3][t%6]),b=e.alloc([...K.bigInt2BytesLE(x(y[0]),o),...K.bigInt2BytesLE(x(y[1]),o)]);t%2==1?a.addCode(l.call(m+`_copy`,f,g),l.call(m+`_neg`,p,v),l.call(_+`_mul`,h,l.i32_const(b),h)):a.addCode(l.call(_+`_mul`,d,l.i32_const(b),h))}function u(e,t){let n=e[0],i=e[1],a=t[0],o=t[1],s=[(n*a-i*o)%r,(n*o+i*a)%r];return dn(s[0])&&(s[0]+=r),s}}function pe(){let t=e.addFunction(n+`__cyclotomicSquare`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.i32_add(r.getLocal(`x`),r.i32_const(c)),o=r.i32_add(r.getLocal(`x`),r.i32_const(2*c)),s=r.i32_add(r.getLocal(`x`),r.i32_const(3*c)),l=r.i32_add(r.getLocal(`x`),r.i32_const(4*c)),u=r.i32_add(r.getLocal(`x`),r.i32_const(5*c)),d=r.getLocal(`r`),f=r.i32_add(r.getLocal(`r`),r.i32_const(c)),p=r.i32_add(r.getLocal(`r`),r.i32_const(2*c)),m=r.i32_add(r.getLocal(`r`),r.i32_const(3*c)),h=r.i32_add(r.getLocal(`r`),r.i32_const(4*c)),g=r.i32_add(r.getLocal(`r`),r.i32_const(5*c)),v=r.i32_const(e.alloc(c)),y=r.i32_const(e.alloc(c)),b=r.i32_const(e.alloc(c)),x=r.i32_const(e.alloc(c)),S=r.i32_const(e.alloc(c)),C=r.i32_const(e.alloc(c)),w=r.i32_const(e.alloc(c)),T=r.i32_const(e.alloc(c));t.addCode(r.call(_+`_mul`,i,l,w),r.call(_+`_mulNR`,l,v),r.call(_+`_add`,i,v,v),r.call(_+`_add`,i,l,T),r.call(_+`_mul`,T,v,v),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,v,T,v),r.call(_+`_add`,w,w,y),r.call(_+`_mul`,s,o,w),r.call(_+`_mulNR`,o,b),r.call(_+`_add`,s,b,b),r.call(_+`_add`,s,o,T),r.call(_+`_mul`,T,b,b),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,b,T,b),r.call(_+`_add`,w,w,x),r.call(_+`_mul`,a,u,w),r.call(_+`_mulNR`,u,S),r.call(_+`_add`,a,S,S),r.call(_+`_add`,a,u,T),r.call(_+`_mul`,T,S,S),r.call(_+`_mulNR`,w,T),r.call(_+`_add`,w,T,T),r.call(_+`_sub`,S,T,S),r.call(_+`_add`,w,w,C),r.call(_+`_sub`,v,i,d),r.call(_+`_add`,d,d,d),r.call(_+`_add`,v,d,d),r.call(_+`_add`,y,l,h),r.call(_+`_add`,h,h,h),r.call(_+`_add`,y,h,h),r.call(_+`_mul`,C,r.i32_const(j),T),r.call(_+`_add`,T,s,m),r.call(_+`_add`,m,m,m),r.call(_+`_add`,T,m,m),r.call(_+`_sub`,S,o,p),r.call(_+`_add`,p,p,p),r.call(_+`_add`,S,p,p),r.call(_+`_sub`,b,a,f),r.call(_+`_add`,f,f,f),r.call(_+`_add`,b,f,f),r.call(_+`_add`,x,u,g),r.call(_+`_add`,g,g,g),r.call(_+`_add`,x,g,g))}function me(t,r,i){let a=te(t).map(e=>e==-1?255:e),o=e.alloc(a),s=e.addFunction(n+`__cyclotomicExp_`+i);s.addParam(`x`,`i32`),s.addParam(`r`,`i32`),s.addLocal(`bit`,`i32`),s.addLocal(`i`,`i32`);let c=s.getCodeBuilder(),u=c.getLocal(`x`),d=c.getLocal(`r`),f=c.i32_const(e.alloc(l));s.addCode(c.call(F+`_conjugate`,u,f),c.call(F+`_one`,d),c.if(c.teeLocal(`bit`,c.i32_load8_s(c.i32_const(a.length-1),o)),c.if(c.i32_eq(c.getLocal(`bit`),c.i32_const(1)),c.call(F+`_mul`,d,u,d),c.call(F+`_mul`,d,f,d))),c.setLocal(`i`,c.i32_const(a.length-2)),c.block(c.loop(c.call(n+`__cyclotomicSquare`,d,d),c.if(c.teeLocal(`bit`,c.i32_load8_s(c.getLocal(`i`),o)),c.if(c.i32_eq(c.getLocal(`bit`),c.i32_const(1)),c.call(F+`_mul`,d,u,d),c.call(F+`_mul`,d,f,d))),c.br_if(1,c.i32_eqz(c.getLocal(`i`))),c.setLocal(`i`,c.i32_sub(c.getLocal(`i`),c.i32_const(1))),c.br(0)))),r&&s.addCode(c.call(F+`_conjugate`,d,d))}function he(){pe(),me(H,!0,`w0`);let t=e.addFunction(n+`_finalExponentiation`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.getLocal(`x`),a=r.getLocal(`r`),o=r.i32_const(e.alloc(l)),s=r.i32_const(e.alloc(l)),c=r.i32_const(e.alloc(l)),u=r.i32_const(e.alloc(l)),d=r.i32_const(e.alloc(l)),f=r.i32_const(e.alloc(l)),p=r.i32_const(e.alloc(l));t.addCode(r.call(F+`_frobeniusMap6`,i,o),r.call(F+`_inverse`,i,s),r.call(F+`_mul`,o,s,c),r.call(F+`_copy`,c,s),r.call(F+`_frobeniusMap2`,c,c),r.call(F+`_mul`,c,s,c),r.call(n+`__cyclotomicSquare`,c,s),r.call(F+`_conjugate`,s,s),r.call(n+`__cyclotomicExp_w0`,c,u),r.call(n+`__cyclotomicSquare`,u,d),r.call(F+`_mul`,s,u,f),r.call(n+`__cyclotomicExp_w0`,f,s),r.call(n+`__cyclotomicExp_w0`,s,o),r.call(n+`__cyclotomicExp_w0`,o,p),r.call(F+`_mul`,p,d,p),r.call(n+`__cyclotomicExp_w0`,p,d),r.call(F+`_conjugate`,f,f),r.call(F+`_mul`,d,f,d),r.call(F+`_mul`,d,c,d),r.call(F+`_conjugate`,c,f),r.call(F+`_mul`,s,c,s),r.call(F+`_frobeniusMap3`,s,s),r.call(F+`_mul`,p,f,p),r.call(F+`_frobeniusMap1`,p,p),r.call(F+`_mul`,u,o,u),r.call(F+`_frobeniusMap2`,u,u),r.call(F+`_mul`,u,s,u),r.call(F+`_mul`,u,p,u),r.call(F+`_mul`,u,d,a))}function ge(){let t=e.addFunction(n+`_finalExponentiationOld`);t.addParam(`x`,`i32`),t.addParam(`r`,`i32`);let r=e.alloc(K.bigInt2BytesLE(322277361516934140462891564586510139908379969514828494218366688025288661041104682794998680497580008899973249814104447692778988208376779573819485263026159588510513834876303014016798809919343532899164848730280942609956670917565618115867287399623286813270357901731510188149934363360381614501334086825442271920079363289954510565375378443704372994881406797882676971082200626541916413184642520269678897559532260949334760604962086348898118982248842634379637598665468817769075878555493752214492790122785850202957575200176084204422751485957336465472324810982833638490904279282696134323072515220044451592646885410572234451732790590013479358343841220074174848221722017083597872017638514103174122784843925578370430843522959600095676285723737049438346544753168912974976791528535276317256904336520179281145394686565050419250614107803233314658825463117900250701199181529205942363159325765991819433914303908860460720581408201373164047773794825411011922305820065611121544561808414055302212057471395719432072209245600258134364584636810093520285711072578721435517884103526483832733289802426157301542744476740008494780363354305116978805620671467071400711358839553375340724899735460480144599782014906586543813292157922220645089192130209334926661588737007768565838519456601560804957985667880395221049249803753582637708560n,544)),i=t.getCodeBuilder();t.addCode(i.call(F+`_exp`,i.getLocal(`x`),i.i32_const(r),i.i32_const(544),i.getLocal(`r`)))}let _e=e.alloc(V),U=e.alloc(ee);function ve(t){let r=e.addFunction(n+`_pairingEq`+t);for(let e=0;e<t;e++)r.addParam(`p_`+e,`i32`),r.addParam(`q_`+e,`i32`);r.addParam(`c`,`i32`),r.setReturnType(`i32`);let i=r.getCodeBuilder(),a=i.i32_const(e.alloc(l)),o=i.i32_const(e.alloc(l));r.addCode(i.call(F+`_one`,a));for(let e=0;e<t;e++)r.addCode(i.call(n+`_prepareG1`,i.getLocal(`p_`+e),i.i32_const(_e))),r.addCode(i.call(n+`_prepareG2`,i.getLocal(`q_`+e),i.i32_const(U))),r.addCode(i.if(i.i32_eqz(i.call(g+`_inGroupAffine`,i.i32_const(_e))),i.ret(i.i32_const(0))),i.if(i.i32_eqz(i.call(y+`_inGroupAffine`,i.i32_const(U))),i.ret(i.i32_const(0)))),r.addCode(i.call(n+`_millerLoop`,i.i32_const(_e),i.i32_const(U),o)),r.addCode(i.call(F+`_mul`,a,o,a));r.addCode(i.call(n+`_finalExponentiation`,a,a)),r.addCode(i.call(F+`_eq`,a,i.getLocal(`c`)))}function ye(){let t=e.addFunction(n+`_pairing`);t.addParam(`p`,`i32`),t.addParam(`q`,`i32`),t.addParam(`r`,`i32`);let r=t.getCodeBuilder(),i=r.i32_const(e.alloc(l));t.addCode(r.call(n+`_prepareG1`,r.getLocal(`p`),r.i32_const(_e))),t.addCode(r.call(n+`_prepareG2`,r.getLocal(`q`),r.i32_const(U))),t.addCode(r.call(n+`_millerLoop`,r.i32_const(_e),r.i32_const(U),i)),t.addCode(r.call(n+`_finalExponentiation`,i,r.getLocal(`r`)))}function be(){let t=e.addFunction(y+`_inGroupAffine`);t.addParam(`p`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=[2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279894n,2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279893n],i=[2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n,2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530n],a=n.i32_const(e.alloc([...K.bigInt2BytesLE(x(r[0]),o),...K.bigInt2BytesLE(x(r[1]),o)])),l=n.i32_const(e.alloc(K.bigInt2BytesLE(x(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),o))),u=n.i32_const(e.alloc([...K.bigInt2BytesLE(x(i[0]),o),...K.bigInt2BytesLE(x(i[1]),o)])),d=n.i32_const(e.alloc(K.bigInt2BytesLE(H,8))),f=n.getLocal(`p`),p=n.i32_add(n.getLocal(`p`),n.i32_const(c)),h=n.i32_const(e.alloc(s)),g=n.i32_const(e.alloc(c)),v=n.i32_const(e.alloc(c)),b=e.alloc(c*2),S=n.i32_const(b),C=n.i32_const(b),w=n.i32_const(b),T=n.i32_const(b+s),E=n.i32_const(b+c),D=n.i32_const(b+c),O=n.i32_const(b+c+s),k=e.alloc(c*3),A=n.i32_const(k),j=n.i32_const(k),M=n.i32_const(k),N=n.i32_const(k+s),P=n.i32_const(k+c),F=n.i32_const(k+c),I=n.i32_const(k+c+s),L=n.i32_const(k+c*2);t.addCode(n.if(n.call(y+`_isZeroAffine`,n.getLocal(`p`)),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(y+`_inCurveAffine`,n.getLocal(`p`))),n.ret(n.i32_const(0))),n.call(_+`_mul`,f,a,g),n.call(_+`_mul`,p,a,v),n.call(_+`_mul1`,g,l,C),n.call(_+`_neg`,v,E),n.call(_+`_neg`,g,j),n.call(_+`_mul`,v,u,P),n.call(m+`_sub`,w,T,h),n.call(m+`_add`,w,T,T),n.call(m+`_copy`,h,w),n.call(m+`_sub`,D,O,h),n.call(m+`_add`,D,O,O),n.call(m+`_copy`,h,D),n.call(m+`_add`,M,N,h),n.call(m+`_sub`,M,N,N),n.call(m+`_copy`,h,M),n.call(m+`_sub`,I,F,h),n.call(m+`_add`,F,I,I),n.call(m+`_copy`,h,F),n.call(_+`_one`,L),n.call(y+`_timesScalar`,A,d,n.i32_const(8),A),n.call(y+`_addMixed`,A,S,A),n.ret(n.call(y+`_eqMixed`,A,n.getLocal(`p`))));let R=e.addFunction(y+`_inGroup`);R.addParam(`pIn`,`i32`),R.setReturnType(`i32`);let z=R.getCodeBuilder(),B=z.i32_const(e.alloc(c*2));R.addCode(z.call(y+`_toAffine`,z.getLocal(`pIn`),B),z.ret(z.call(y+`_inGroupAffine`,B)))}function xe(){let t=e.addFunction(g+`_inGroupAffine`);t.addParam(`p`,`i32`),t.setReturnType(`i32`);let n=t.getCodeBuilder(),r=(H*H-1n)/3n,i=n.i32_const(e.alloc(K.bigInt2BytesLE(x(4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436n),o))),a=n.i32_const(e.alloc(K.bigInt2BytesLE(x(793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350n),o))),c=n.i32_const(e.alloc(K.bigInt2BytesLE(r,16))),l=n.getLocal(`p`),u=n.i32_add(n.getLocal(`p`),n.i32_const(s)),d=e.alloc(s*3),f=n.i32_const(d),p=n.i32_const(d),h=n.i32_const(d+s),_=e.alloc(s*2),v=n.i32_const(_),y=n.i32_const(_),b=n.i32_const(_+s);t.addCode(n.if(n.call(g+`_isZeroAffine`,n.getLocal(`p`)),n.ret(n.i32_const(1))),n.if(n.i32_eqz(n.call(g+`_inCurveAffine`,n.getLocal(`p`))),n.ret(n.i32_const(0))),n.call(m+`_mul`,l,i,p),n.call(m+`_copy`,u,h),n.call(m+`_mul`,l,a,y),n.call(m+`_copy`,u,b),n.call(g+`_doubleAffine`,f,f),n.call(g+`_subMixed`,f,n.getLocal(`p`),f),n.call(g+`_subMixed`,f,v,f),n.call(g+`_timesScalar`,f,c,n.i32_const(16),f),n.ret(n.call(g+`_eqMixed`,f,v)));let S=e.addFunction(g+`_inGroup`);S.addParam(`pIn`,`i32`),S.setReturnType(`i32`);let C=S.getCodeBuilder(),w=C.i32_const(e.alloc(s*2));S.addCode(C.call(g+`_toAffine`,C.getLocal(`pIn`),w),C.ret(C.call(g+`_inGroupAffine`,w)))}for(let t=0;t<10;t++)fe(t),e.exportFunction(F+`_frobeniusMap`+t);xe(),be(),ae(),ie(),re(),oe(),de(),ge(),he();for(let t=1;t<=5;t++)ve(t),e.exportFunction(n+`_pairingEq`+t);ye(),e.exportFunction(n+`_pairing`),e.exportFunction(n+`_prepareG1`),e.exportFunction(n+`_prepareG2`),e.exportFunction(n+`_millerLoop`),e.exportFunction(n+`_finalExponentiation`),e.exportFunction(n+`_finalExponentiationOld`),e.exportFunction(n+`__cyclotomicSquare`),e.exportFunction(n+`__cyclotomicExp_w0`),e.exportFunction(N+`_mul1`),e.exportFunction(N+`_mul01`),e.exportFunction(F+`_mul014`),e.exportFunction(g+`_inGroupAffine`),e.exportFunction(g+`_inGroup`),e.exportFunction(y+`_inGroupAffine`),e.exportFunction(y+`_inGroup`)},pn=Qt,mn=fn;function hn(e){if(typeof e==`bigint`||e.eq!==void 0)return e.toString(10);if(e instanceof Uint8Array)return ne(e,0);if(Array.isArray(e))return e.map(hn);if(typeof e==`object`){let t={};return Object.keys(e).forEach(n=>{t[n]=hn(e[n])}),t}else return e}function gn(e){if(typeof e==`string`&&/^[0-9]+$/.test(e)||typeof e==`string`&&/^0x[0-9a-fA-F]+$/.test(e))return BigInt(e);if(Array.isArray(e))return e.map(gn);if(typeof e==`object`){if(e===null)return null;let t={};return Object.keys(e).forEach(n=>{t[n]=gn(e[n])}),t}else return e}function _n(e){let t=BigInt(0),n=e.length,r=0,i=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;n>0;)n>=4?(n-=4,t+=BigInt(i.getUint32(n))<<BigInt(r*8),r+=4):n>=2?(n-=2,t+=BigInt(i.getUint16(n))<<BigInt(r*8),r+=2):(--n,t+=BigInt(i.getUint8(n))<<BigInt(r*8),r+=1);return t}function vn(e,t){let n=e,r=new Uint8Array(t),i=new DataView(r.buffer),a=t;for(;a>0;)a-4>=0?(a-=4,i.setUint32(a,Number(n&BigInt(4294967295))),n>>=BigInt(32)):a-2>=0?(a-=2,i.setUint16(a,Number(n&BigInt(65535))),n>>=BigInt(16)):(--a,i.setUint8(a,Number(n&BigInt(255))),n>>=BigInt(8));if(n)throw Error(`Number does not fit in this length`);return r}function yn(e){let t=BigInt(0),n=0,r=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;n<e.length;)n+4<=e.length?(t+=BigInt(r.getUint32(n,!0))<<BigInt(n*8),n+=4):n+2<=e.length?(t+=BigInt(r.getUint16(n,!0))<<BigInt(n*8),n+=2):(t+=BigInt(r.getUint8(n,!0))<<BigInt(n*8),n+=1);return t}function bn(e,t){let n=e;t===void 0&&(t=Math.floor((l(e)-1)/8)+1,t==0&&(t=1));let r=new Uint8Array(t),i=new DataView(r.buffer),a=0;for(;a<t;)a+4<=t?(i.setUint32(a,Number(n&BigInt(4294967295)),!0),a+=4,n>>=BigInt(32)):a+2<=t?(i.setUint16(a,Number(n&BigInt(65535)),!0),a+=2,n>>=BigInt(16)):(i.setUint8(a,Number(n&BigInt(255)),!0),a+=1,n>>=BigInt(8));if(n)throw Error(`Number does not fit in this length`);return r}function xn(e,t){if(typeof t==`bigint`||t.eq!==void 0)return t.toString(10);if(t instanceof Uint8Array)return e.toString(e.e(t));if(Array.isArray(t))return t.map(xn.bind(this,e));if(typeof t==`object`){let n={};return Object.keys(t).forEach(r=>{n[r]=xn(e,t[r])}),n}else return t}function Sn(e,t){if(typeof t==`string`&&/^[0-9]+$/.test(t)||typeof t==`string`&&/^0x[0-9a-fA-F]+$/.test(t))return e.e(t);if(Array.isArray(t))return t.map(Sn.bind(this,e));if(typeof t==`object`){if(t===null)return null;let n={};return Object.keys(t).forEach(r=>{n[r]=Sn(e,t[r])}),n}else return t}var Cn=[];for(let e=0;e<256;e++)Cn[e]=wn(e,8);function wn(e,t){let n=0,r=e;for(let e=0;e<t;e++)n<<=1,n|=r&1,r>>=1;return n}function Tn(e,t){return(Cn[e>>>24]|Cn[e>>>16&255]<<8|Cn[e>>>8&255]<<16|Cn[e&255]<<24)>>>32-t}function En(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}function Dn(e,t){let n=e.byteLength/t,r=En(n);if(n!=1<<r)throw Error(`Invalid number of pointers`);for(let i=0;i<n;i++){let n=Tn(i,r);if(i>n){let r=e.slice(i*t,(i+1)*t);e.set(e.slice(n*t,(n+1)*t),i*t),e.set(r,n*t)}}}function On(e,t){let n=new Uint8Array(t*e.length);for(let r=0;r<e.length;r++)n.set(e[r],r*t);return n}function kn(e,t){let n=e.byteLength/t,r=Array(n);for(let i=0;i<n;i++)r[i]=e.slice(i*t,i*t+t);return r}var An=Object.freeze({__proto__:null,array2buffer:On,beBuff2int:_n,beInt2Buff:vn,bitReverse:Tn,buffReverseBits:Dn,buffer2array:kn,leBuff2int:yn,leInt2Buff:bn,log2:En,stringifyBigInts:hn,stringifyFElements:xn,unstringifyBigInts:gn,unstringifyFElements:Sn}),q=1<<30,J=class e{constructor(e){this.buffers=[],this.byteLength=e;for(let t=0;t<e;t+=q){let n=Math.min(e-t,q);this.buffers.push(new Uint8Array(n))}}slice(t,n){n===void 0&&(n=this.byteLength),t===void 0&&(t=0);let r=n-t,i=Math.floor(t/q);if(i==Math.floor((t+r-1)/q)||r==0)return this.buffers[i].slice(t%q,t%q+r);let a,o=i,s=t%q,c=r;for(;c>0;){let t=s+c>q?q-s:c,n=new Uint8Array(this.buffers[o].buffer,this.buffers[o].byteOffset+s,t);if(t==r)return n.slice();a||=r<=q?new Uint8Array(r):new e(r),a.set(n,r-c),c-=t,o++,s=0}return a}set(t,n){n===void 0&&(n=0);let r=t.byteLength;if(r==0)return;let i=Math.floor(n/q);if(i==Math.floor((n+r-1)/q))return t instanceof e&&t.buffers.length==1?this.buffers[i].set(t.buffers[0],n%q):this.buffers[i].set(t,n%q);let a=i,o=n%q,s=r;for(;s>0;){let e=o+s>q?q-o:s,n=t.slice(r-s,r-s+e);new Uint8Array(this.buffers[a].buffer,this.buffers[a].byteOffset+o,e).set(n),s-=e,a++,o=0}}};function jn(e,t,n,r){return async function(i){let a=Math.floor(i.byteLength/n);if(a*n!==i.byteLength)throw Error(`Invalid buffer size`);let o=Math.floor(a/e.concurrency),s=[];for(let c=0;c<e.concurrency;c++){let l;if(l=c<e.concurrency-1?o:a-c*o,l==0)continue;let u=[{cmd:`ALLOCSET`,var:0,buff:i.slice(c*o*n,c*o*n+l*n)},{cmd:`ALLOC`,var:1,len:r*l},{cmd:`CALL`,fnName:t,params:[{var:0},{val:l},{var:1}]},{cmd:`GET`,out:0,var:1,len:r*l}];s.push(e.queueAction(u))}let c=await Promise.all(s),l;l=i instanceof J?new J(a*r):new Uint8Array(a*r);let u=0;for(let e=0;e<c.length;e++)l.set(c[e][0],u),u+=c[e][0].byteLength;return l}}var Mn=class{constructor(e,t,n,r){if(this.tm=e,this.prefix=t,this.p=r,this.n8=n,this.type=`F1`,this.m=1,this.half=p(r,se),this.bitLength=l(r),this.mask=S(f(se,this.bitLength),se),this.pOp1=e.alloc(n),this.pOp2=e.alloc(n),this.pOp3=e.alloc(n),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=this.tm.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.n64=Math.floor(n/8),this.n32=Math.floor(n/4),this.n64*8!=this.n8)throw Error(`n8 must be a multiple of 8`);this.half=p(this.p,se),this.nqr=this.two;let i=this.exp(this.nqr,this.half);for(;!this.eq(i,this.negone);)this.nqr=this.add(this.nqr,this.one),i=this.exp(this.nqr,this.half);this.shift=this.mul(this.nqr,this.nqr),this.shiftInv=this.inv(this.shift),this.s=0;let a=S(this.p,se);for(;!g(a);)this.s+=1,a=p(a,se);this.w=[],this.w[this.s]=this.exp(this.nqr,a);for(let e=this.s-1;e>=0;e--)this.w[e]=this.square(this.w[e+1]);if(!this.eq(this.w[0],this.one))throw Error(`Error calculating roots of unity`);this.batchToMontgomery=jn(e,t+`_batchToMontgomery`,this.n8,this.n8),this.batchFromMontgomery=jn(e,t+`_batchFromMontgomery`,this.n8,this.n8)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){return this.op2(`_add`,e,t)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=ae(s(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(e){return this.op1Bool(`_isNegative`,e)}e(e,t){if(e instanceof Uint8Array)return e;let n=s(e,t);u(n)?(n=C(n),P(n,this.p)&&(n=A(n,this.p)),n=S(this.p,n)):P(n,this.p)&&(n=A(n,this.p));let r=bn(n,this.n8);return this.toMontgomery(r)}toString(e,t){return ie(ne(this.fromMontgomery(e),0),t)}fromRng(e){let t,n=new Uint8Array(this.n8);do{t=oe;for(let n=0;n<this.n64;n++)t=x(t,f(e.nextU64(),64*n));t=L(t,this.mask)}while(I(t,this.p));return H(n,0,t,this.n8),n}random(){return this.fromRng(Te())}toObject(e){return ne(this.fromMontgomery(e),0)}fromObject(e){let t=new Uint8Array(this.n8);return H(t,0,e,this.n8),this.toMontgomery(t)}toRprLE(e,t,n){e.set(this.fromMontgomery(n),t)}toRprBE(e,t,n){let r=this.fromMontgomery(n);for(let e=0;e<this.n8/2;e++){let t=r[e];r[e]=r[this.n8-1-e],r[this.n8-1-e]=t}e.set(r,t)}fromRprLE(e,t){t||=0;let n=e.slice(t,t+this.n8);return this.toMontgomery(n)}async batchInverse(e){let t=!1,n=this.n8,r=this.n8;Array.isArray(e)?(e=On(e,n),t=!0):e=e.slice(0,e.byteLength);let i=Math.floor(e.byteLength/n);if(i*n!==e.byteLength)throw Error(`Invalid buffer size`);let a=Math.floor(i/this.tm.concurrency),o=[];for(let t=0;t<this.tm.concurrency;t++){let s;if(s=t<this.tm.concurrency-1?a:i-t*a,s==0)continue;let c=[{cmd:`ALLOCSET`,var:0,buff:e.slice(t*a*n,t*a*n+s*n)},{cmd:`ALLOC`,var:1,len:r*s},{cmd:`CALL`,fnName:this.prefix+`_batchInverse`,params:[{var:0},{val:n},{val:s},{var:1},{val:r}]},{cmd:`GET`,out:0,var:1,len:r*s}];o.push(this.tm.queueAction(c))}let s=await Promise.all(o),c;c=e instanceof J?new J(i*r):new Uint8Array(i*r);let l=0;for(let e=0;e<s.length;e++)c.set(s[e][0],l),l+=s[e][0].byteLength;return t?kn(c,r):c}},Nn=class{constructor(e,t,n){this.tm=e,this.prefix=t,this.F=n,this.type=`F2`,this.m=n.m*2,this.n8=this.F.n8*2,this.n32=this.F.n32*2,this.n64=this.F.n64*2,this.pOp1=e.alloc(n.n8*2),this.pOp2=e.alloc(n.n8*2),this.pOp3=e.alloc(n.n8*2),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=e.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=e.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){return this.op2(`_add`,e,t)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}isNegative(e){return this.op1Bool(`_isNegative`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}mul1(e,t){return this.op2(`_mul1`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=ae(s(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}e(e,t){if(e instanceof Uint8Array)return e;if(Array.isArray(e)&&e.length==2){let n=this.F.e(e[0],t),r=this.F.e(e[1],t),i=new Uint8Array(this.F.n8*2);return i.set(n),i.set(r,this.F.n8*2),i}else throw Error(`invalid F2`)}toString(e,t){return`[${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8),t)}]`}fromRng(e){let t=this.F.fromRng(e),n=this.F.fromRng(e),r=new Uint8Array(this.F.n8*2);return r.set(t),r.set(n,this.F.n8),r}random(){return this.fromRng(Te())}toObject(e){return[this.F.toObject(e.slice(0,this.F.n8)),this.F.toObject(e.slice(this.F.n8,this.F.n8*2))]}fromObject(e){let t=new Uint8Array(this.F.n8*2),n=this.F.fromObject(e[0]),r=this.F.fromObject(e[1]);return t.set(n),t.set(r,this.F.n8),t}c1(e){return e.slice(0,this.F.n8)}c2(e){return e.slice(this.F.n8)}},Pn=class{constructor(e,t,n){this.tm=e,this.prefix=t,this.F=n,this.type=`F3`,this.m=n.m*3,this.n8=this.F.n8*3,this.n32=this.F.n32*3,this.n64=this.F.n64*3,this.pOp1=e.alloc(n.n8*3),this.pOp2=e.alloc(n.n8*3),this.pOp3=e.alloc(n.n8*3),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=e.getBuff(this.pOp1,this.n8),this.tm.instance.exports[t+`_one`](this.pOp1),this.one=e.getBuff(this.pOp1,this.n8),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}eq(e,t){return this.op2Bool(`_eq`,e,t)}isZero(e){return this.op1Bool(`_isZero`,e)}add(e,t){return this.op2(`_add`,e,t)}sub(e,t){return this.op2(`_sub`,e,t)}neg(e){return this.op1(`_neg`,e)}inv(e){return this.op1(`_inverse`,e)}isNegative(e){return this.op1Bool(`_isNegative`,e)}toMontgomery(e){return this.op1(`_toMontgomery`,e)}fromMontgomery(e){return this.op1(`_fromMontgomery`,e)}mul(e,t){return this.op2(`_mul`,e,t)}div(e,t){return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_inverse`](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+`_mul`](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(e){return this.op1(`_square`,e)}isSquare(e){return this.op1Bool(`_isSquare`,e)}sqrt(e){return this.op1(`_sqrt`,e)}exp(e,t){return t instanceof Uint8Array||(t=ae(s(t))),this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+`_exp`](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.getBuff(this.pOp3,this.n8)}e(e,t){if(e instanceof Uint8Array)return e;if(Array.isArray(e)&&e.length==3){let n=this.F.e(e[0],t),r=this.F.e(e[1],t),i=this.F.e(e[2],t),a=new Uint8Array(this.F.n8*3);return a.set(n),a.set(r,this.F.n8),a.set(i,this.F.n8*2),a}else throw Error(`invalid F3`)}toString(e,t){return`[${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8,this.F.n8*2),t)}, ${this.F.toString(e.slice(this.F.n8*2),t)}]`}fromRng(e){let t=this.F.fromRng(e),n=this.F.fromRng(e),r=this.F.fromRng(e),i=new Uint8Array(this.F.n8*3);return i.set(t),i.set(n,this.F.n8),i.set(r,this.F.n8*2),i}random(){return this.fromRng(Te())}toObject(e){return[this.F.toObject(e.slice(0,this.F.n8)),this.F.toObject(e.slice(this.F.n8,this.F.n8*2)),this.F.toObject(e.slice(this.F.n8*2,this.F.n8*3))]}fromObject(e){let t=new Uint8Array(this.F.n8*3),n=this.F.fromObject(e[0]),r=this.F.fromObject(e[1]),i=this.F.fromObject(e[2]);return t.set(n),t.set(r,this.F.n8),t.set(i,this.F.n8*2),t}c1(e){return e.slice(0,this.F.n8)}c2(e){return e.slice(this.F.n8,this.F.n8*2)}c3(e){return e.slice(this.F.n8*2)}},Fn=class{constructor(e,t,n,r,i,a){this.tm=e,this.prefix=t,this.F=n,this.pOp1=e.alloc(n.n8*3),this.pOp2=e.alloc(n.n8*3),this.pOp3=e.alloc(n.n8*3),this.tm.instance.exports[t+`_zero`](this.pOp1),this.zero=this.tm.getBuff(this.pOp1,n.n8*3),this.tm.instance.exports[t+`_zeroAffine`](this.pOp1),this.zeroAffine=this.tm.getBuff(this.pOp1,n.n8*2),this.one=this.tm.getBuff(r,n.n8*3),this.g=this.one,this.oneAffine=this.tm.getBuff(r,n.n8*2),this.gAffine=this.oneAffine,this.b=this.tm.getBuff(i,n.n8),a&&(this.cofactor=ae(a)),this.negone=this.neg(this.one),this.two=this.add(this.one,this.one),this.batchLEMtoC=jn(e,t+`_batchLEMtoC`,n.n8*2,n.n8),this.batchLEMtoU=jn(e,t+`_batchLEMtoU`,n.n8*2,n.n8*2),this.batchCtoLEM=jn(e,t+`_batchCtoLEM`,n.n8,n.n8*2),this.batchUtoLEM=jn(e,t+`_batchUtoLEM`,n.n8*2,n.n8*2),this.batchToJacobian=jn(e,t+`_batchToJacobian`,n.n8*2,n.n8*3),this.batchToAffine=jn(e,t+`_batchToAffine`,n.n8*3,n.n8*2)}op2(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}op2bool(e,t,n){return this.tm.setBuff(this.pOp1,t),this.tm.setBuff(this.pOp2,n),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp2,this.pOp3)}op1(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}op1Affine(e,t){return this.tm.setBuff(this.pOp1,t),this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*2)}op1Bool(e,t){return this.tm.setBuff(this.pOp1,t),!!this.tm.instance.exports[this.prefix+e](this.pOp1,this.pOp3)}add(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2(`_add`,e,t);if(t.byteLength==this.F.n8*2)return this.op2(`_addMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2(`_addMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2(`_addAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}sub(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2(`_sub`,e,t);if(t.byteLength==this.F.n8*2)return this.op2(`_subMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2(`_subMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2(`_subAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}neg(e){if(e.byteLength==this.F.n8*3)return this.op1(`_neg`,e);if(e.byteLength==this.F.n8*2)return this.op1Affine(`_negAffine`,e);throw Error(`invalid point size`)}double(e){if(e.byteLength==this.F.n8*3)return this.op1(`_double`,e);if(e.byteLength==this.F.n8*2)return this.op1(`_doubleAffine`,e);throw Error(`invalid point size`)}isZero(e){if(e.byteLength==this.F.n8*3)return this.op1Bool(`_isZero`,e);if(e.byteLength==this.F.n8*2)return this.op1Bool(`_isZeroAffine`,e);throw Error(`invalid point size`)}timesScalar(e,t){t instanceof Uint8Array||(t=ae(s(t)));let n;if(e.byteLength==this.F.n8*3)n=this.prefix+`_timesScalar`;else if(e.byteLength==this.F.n8*2)n=this.prefix+`_timesScalarAffine`;else throw Error(`invalid point size`);return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[n](this.pOp1,this.pOp2,t.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}timesFr(e,t){let n;if(e.byteLength==this.F.n8*3)n=this.prefix+`_timesFr`;else if(e.byteLength==this.F.n8*2)n=this.prefix+`_timesFrAffine`;else throw Error(`invalid point size`);return this.tm.setBuff(this.pOp1,e),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[n](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.F.n8*3)}eq(e,t){if(e.byteLength==this.F.n8*3){if(t.byteLength==this.F.n8*3)return this.op2bool(`_eq`,e,t);if(t.byteLength==this.F.n8*2)return this.op2bool(`_eqMixed`,e,t);throw Error(`invalid point size`)}else if(e.byteLength==this.F.n8*2){if(t.byteLength==this.F.n8*3)return this.op2bool(`_eqMixed`,t,e);if(t.byteLength==this.F.n8*2)return this.op2bool(`_eqAffine`,e,t);throw Error(`invalid point size`)}else throw Error(`invalid point size`)}toAffine(e){if(e.byteLength==this.F.n8*3)return this.op1Affine(`_toAffine`,e);if(e.byteLength==this.F.n8*2)return e;throw Error(`invalid point size`)}toJacobian(e){if(e.byteLength==this.F.n8*3)return e;if(e.byteLength==this.F.n8*2)return this.op1(`_toJacobian`,e);throw Error(`invalid point size`)}toRprUncompressed(e,t,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==this.F.n8*3)this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);else if(n.byteLength!=this.F.n8*2)throw Error(`invalid point size`);this.tm.instance.exports[this.prefix+`_LEMtoU`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8*2);e.set(r,t)}fromRprUncompressed(e,t){let n=e.slice(t,t+this.F.n8*2);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_UtoLEM`](this.pOp1,this.pOp1),this.tm.getBuff(this.pOp1,this.F.n8*2)}toRprCompressed(e,t,n){if(this.tm.setBuff(this.pOp1,n),n.byteLength==this.F.n8*3)this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);else if(n.byteLength!=this.F.n8*2)throw Error(`invalid point size`);this.tm.instance.exports[this.prefix+`_LEMtoC`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8);e.set(r,t)}fromRprCompressed(e,t){let n=e.slice(t,t+this.F.n8);return this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_CtoLEM`](this.pOp1,this.pOp2),this.tm.getBuff(this.pOp2,this.F.n8*2)}toUncompressed(e){let t=new Uint8Array(this.F.n8*2);return this.toRprUncompressed(t,0,e),t}toRprLEM(e,t,n){if(n.byteLength==this.F.n8*2){e.set(n,t);return}else if(n.byteLength==this.F.n8*3){this.tm.setBuff(this.pOp1,n),this.tm.instance.exports[this.prefix+`_toAffine`](this.pOp1,this.pOp1);let r=this.tm.getBuff(this.pOp1,this.F.n8*2);e.set(r,t)}else throw Error(`invalid point size`)}fromRprLEM(e,t){return t||=0,e.slice(t,t+this.F.n8*2)}toString(e,t){if(e.byteLength==this.F.n8*3)return`[ ${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8,this.F.n8*2),t)}, ${this.F.toString(e.slice(this.F.n8*2),t)} ]`;if(e.byteLength==this.F.n8*2)return`[ ${this.F.toString(e.slice(0,this.F.n8),t)}, ${this.F.toString(e.slice(this.F.n8),t)} ]`;throw Error(`invalid point size`)}isValid(e){if(this.isZero(e))return!0;let t=this.F,n=this.toAffine(e),r=n.slice(0,this.F.n8),i=n.slice(this.F.n8,this.F.n8*2),a=t.add(t.mul(t.square(r),r),this.b),o=t.square(i);return t.eq(a,o)}fromRng(e){let t=this.F,n=[],r,i;do n[0]=t.fromRng(e),r=e.nextBool(),i=t.add(t.mul(t.square(n[0]),n[0]),this.b);while(!t.isSquare(i));n[1]=t.sqrt(i);let a=t.isNegative(n[1]);r^a&&(n[1]=t.neg(n[1]));let o=new Uint8Array(this.F.n8*2);return o.set(n[0]),o.set(n[1],this.F.n8),this.cofactor&&(o=this.timesScalar(o,this.cofactor)),o}toObject(e){if(this.isZero(e))return[this.F.toObject(this.F.zero),this.F.toObject(this.F.one),this.F.toObject(this.F.zero)];let t=this.F.toObject(e.slice(0,this.F.n8)),n=this.F.toObject(e.slice(this.F.n8,this.F.n8*2)),r;return r=e.byteLength==this.F.n8*3?this.F.toObject(e.slice(this.F.n8*2,this.F.n8*3)):this.F.toObject(this.F.one),[t,n,r]}fromObject(e){let t=this.F.fromObject(e[0]),n=this.F.fromObject(e[1]),r;if(r=e.length==3?this.F.fromObject(e[2]):this.F.one,this.F.isZero(r,this.F.one))return this.zeroAffine;if(this.F.eq(r,this.F.one)){let e=new Uint8Array(this.F.n8*2);return e.set(t),e.set(n,this.F.n8),e}else{let e=new Uint8Array(this.F.n8*3);return e.set(t),e.set(n,this.F.n8),e.set(r,this.F.n8*2),e}}e(e){return e instanceof Uint8Array?e:this.fromObject(e)}x(e){return this.toAffine(e).slice(0,this.F.n8)}y(e){return this.toAffine(e).slice(this.F.n8)}};function In(e){let t=32767,n,r;e&&(e.onmessage=function(t){let n;if(n=t.data?t.data:t,n[0].cmd==`INIT`)i(n[0]).then(function(){e.postMessage(n.result)});else if(n[0].cmd==`TERMINATE`)e.close();else{let t=l(n);e.postMessage(t)}});async function i(e){let i=new Uint8Array(e.code),a=await WebAssembly.compile(i);r=new WebAssembly.Memory({initial:e.init,maximum:t}),n=await WebAssembly.instantiate(a,{env:{memory:r}})}function a(e){let n=new Uint32Array(r.buffer,0,1);for(;n[0]&3;)n[0]++;let i=n[0];if(n[0]+=e,n[0]+e>r.buffer.byteLength){let i=r.buffer.byteLength/65536,a=Math.floor((n[0]+e)/65536)+1;a>t&&(a=t),r.grow(a-i)}return i}function o(e){let t=a(e.byteLength);return c(t,e),t}function s(e,t){let n=new Uint8Array(r.buffer);return new Uint8Array(n.buffer,n.byteOffset+e,t)}function c(e,t){new Uint8Array(r.buffer).set(new Uint8Array(t),e)}function l(e){if(e[0].cmd==`INIT`)return i(e[0]);let t={vars:[],out:[]},l=new Uint32Array(r.buffer,0,1)[0];for(let r=0;r<e.length;r++)switch(e[r].cmd){case`ALLOCSET`:t.vars[e[r].var]=o(e[r].buff);break;case`ALLOC`:t.vars[e[r].var]=a(e[r].len);break;case`SET`:c(t.vars[e[r].var],e[r].buff);break;case`CALL`:{let i=[];for(let n=0;n<e[r].params.length;n++){let a=e[r].params[n];a.var===void 0?a.val!==void 0&&i.push(a.val):i.push(t.vars[a.var]+(a.offset||0))}n.exports[e[r].fnName](...i);break}case`GET`:t.out[e[r].out]=s(t.vars[e[r].var],e[r].len).slice();break;default:throw Error(`Invalid cmd`)}let u=new Uint32Array(r.buffer,0,1);return u[0]=l,t.out}return l}var Ln=25,Rn=class{constructor(){this.promise=new Promise((e,t)=>{this.reject=t,this.resolve=e})}};function zn(e){return new Promise(t=>setTimeout(t,e))}var Bn,Vn=`(function thread(self) {
2
- const MAXMEM = 32767;
3
- let instance;
4
- let memory;
5
-
6
- if (self) {
7
- self.onmessage = function(e) {
8
- let data;
9
- if (e.data) {
10
- data = e.data;
11
- } else {
12
- data = e;
13
- }
14
-
15
- if (data[0].cmd == "INIT") {
16
- init(data[0]).then(function() {
17
- self.postMessage(data.result);
18
- });
19
- } else if (data[0].cmd == "TERMINATE") {
20
- self.close();
21
- } else {
22
- const res = runTask(data);
23
- self.postMessage(res);
24
- }
25
- };
26
- }
27
-
28
- async function init(data) {
29
- const code = new Uint8Array(data.code);
30
- const wasmModule = await WebAssembly.compile(code);
31
- memory = new WebAssembly.Memory({initial:data.init, maximum: MAXMEM});
32
-
33
- instance = await WebAssembly.instantiate(wasmModule, {
34
- env: {
35
- "memory": memory
36
- }
37
- });
38
- }
39
-
40
-
41
-
42
- function alloc(length) {
43
- const u32 = new Uint32Array(memory.buffer, 0, 1);
44
- while (u32[0] & 3) u32[0]++; // Return always aligned pointers
45
- const res = u32[0];
46
- u32[0] += length;
47
- if (u32[0] + length > memory.buffer.byteLength) {
48
- const currentPages = memory.buffer.byteLength / 0x10000;
49
- let requiredPages = Math.floor((u32[0] + length) / 0x10000)+1;
50
- if (requiredPages>MAXMEM) requiredPages=MAXMEM;
51
- memory.grow(requiredPages-currentPages);
52
- }
53
- return res;
54
- }
55
-
56
- function allocBuffer(buffer) {
57
- const p = alloc(buffer.byteLength);
58
- setBuffer(p, buffer);
59
- return p;
60
- }
61
-
62
- function getBuffer(pointer, length) {
63
- const u8 = new Uint8Array(memory.buffer);
64
- return new Uint8Array(u8.buffer, u8.byteOffset + pointer, length);
65
- }
66
-
67
- function setBuffer(pointer, buffer) {
68
- const u8 = new Uint8Array(memory.buffer);
69
- u8.set(new Uint8Array(buffer), pointer);
70
- }
71
-
72
- function runTask(task) {
73
- if (task[0].cmd == "INIT") {
74
- return init(task[0]);
75
- }
76
- const ctx = {
77
- vars: [],
78
- out: []
79
- };
80
- const u32a = new Uint32Array(memory.buffer, 0, 1);
81
- const oldAlloc = u32a[0];
82
- for (let i=0; i<task.length; i++) {
83
- switch (task[i].cmd) {
84
- case "ALLOCSET":
85
- ctx.vars[task[i].var] = allocBuffer(task[i].buff);
86
- break;
87
- case "ALLOC":
88
- ctx.vars[task[i].var] = alloc(task[i].len);
89
- break;
90
- case "SET":
91
- setBuffer(ctx.vars[task[i].var], task[i].buff);
92
- break;
93
- case "CALL": {
94
- const params = [];
95
- for (let j=0; j<task[i].params.length; j++) {
96
- const p = task[i].params[j];
97
- if (typeof p.var !== "undefined") {
98
- params.push(ctx.vars[p.var] + (p.offset || 0));
99
- } else if (typeof p.val != "undefined") {
100
- params.push(p.val);
101
- }
102
- }
103
- instance.exports[task[i].fnName](...params);
104
- break;
105
- }
106
- case "GET":
107
- ctx.out[task[i].out] = getBuffer(ctx.vars[task[i].var], task[i].len).slice();
108
- break;
109
- default:
110
- throw new Error("Invalid cmd");
111
- }
112
- }
113
- const u32b = new Uint32Array(memory.buffer, 0, 1);
114
- u32b[0] = oldAlloc;
115
- return ctx.out;
116
- }
117
-
118
-
119
- return runTask;
120
- })(self)`;if(globalThis?.Blob){let e=new TextEncoder().encode(Vn),t=new Blob([e],{type:`application/javascript`});Bn=URL.createObjectURL(t)}else Bn=`data:application/javascript;base64,`+globalThis.btoa(Vn);async function Hn(e,t){let n=new Un;n.memory=new WebAssembly.Memory({initial:Ln}),n.u8=new Uint8Array(n.memory.buffer),n.u32=new Uint32Array(n.memory.buffer);let r=await WebAssembly.compile(e.code);if(n.instance=await WebAssembly.instantiate(r,{env:{memory:n.memory}}),globalThis?.Worker||(t=!0),n.singleThread=t,n.initalPFree=n.u32[0],n.pq=e.pq,n.pr=e.pr,n.pG1gen=e.pG1gen,n.pG1zero=e.pG1zero,n.pG2gen=e.pG2gen,n.pG2zero=e.pG2zero,n.pOneT=e.pOneT,t)n.code=e.code,n.taskManager=In(),await n.taskManager([{cmd:`INIT`,init:Ln,code:n.code.slice()}]),n.concurrency=1;else{n.workers=[],n.pendingDeferreds=[],n.working=[];let t=2;typeof navigator==`object`&&navigator.hardwareConcurrency&&(t=navigator.hardwareConcurrency),t==0&&(t=2),t>64&&(t=64),n.concurrency=t;for(let e=0;e<t;e++)n.workers[e]=new Worker(Bn),n.workers[e].addEventListener(`message`,i(e)),n.working[e]=!1;let r=[];for(let t=0;t<n.workers.length;t++){let i=e.code.slice();r.push(n.postAction(t,[{cmd:`INIT`,init:Ln,code:i}],[i.buffer]))}await Promise.all(r)}return n;function i(e){return function(t){let r;r=t&&t.data?t.data:t,n.working[e]=!1,n.pendingDeferreds[e].resolve(r),n.processWorks()}}}var Un=class{constructor(){this.actionQueue=[],this.oldPFree=0}startSyncOp(){if(this.oldPFree!=0)throw Error(`Sync operation in progress`);this.oldPFree=this.u32[0]}endSyncOp(){if(this.oldPFree==0)throw Error(`No sync operation in progress`);this.u32[0]=this.oldPFree,this.oldPFree=0}postAction(e,t,n,r){if(this.working[e])throw Error(`Posting a job t a working worker`);return this.working[e]=!0,this.pendingDeferreds[e]=r||new Rn,this.workers[e].postMessage(t,n),this.pendingDeferreds[e].promise}processWorks(){for(let e=0;e<this.workers.length&&this.actionQueue.length>0;e++)if(this.working[e]==0){let t=this.actionQueue.shift();this.postAction(e,t.data,t.transfers,t.deferred)}}queueAction(e,t){let n=new Rn;if(this.singleThread){let t=this.taskManager(e);n.resolve(t)}else this.actionQueue.push({data:e,transfers:t,deferred:n}),this.processWorks();return n.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(e){let t=this.alloc(e.byteLength);return this.setBuff(t,e),t}getBuff(e,t){return this.u8.slice(e,e+t)}setBuff(e,t){this.u8.set(new Uint8Array(t),e)}alloc(e){for(;this.u32[0]&3;)this.u32[0]++;let t=this.u32[0];return this.u32[0]+=e,t}async terminate(){for(let e=0;e<this.workers.length;e++)this.workers[e].postMessage([{cmd:`TERMINATE`}]);await zn(200)}};function Wn(e,t){let n=e[t],r=e.Fr,i=e.tm;e[t].batchApplyKey=async function(e,a,o,s,c){s||=`affine`,c||=`affine`;let l,u,d,f,p;if(t==`G1`)s==`jacobian`?(d=n.F.n8*3,l=`g1m_batchApplyKey`):(d=n.F.n8*2,l=`g1m_batchApplyKeyMixed`),f=n.F.n8*3,c==`jacobian`?p=n.F.n8*3:(u=`g1m_batchToAffine`,p=n.F.n8*2);else if(t==`G2`)s==`jacobian`?(d=n.F.n8*3,l=`g2m_batchApplyKey`):(d=n.F.n8*2,l=`g2m_batchApplyKeyMixed`),f=n.F.n8*3,c==`jacobian`?p=n.F.n8*3:(u=`g2m_batchToAffine`,p=n.F.n8*2);else if(t==`Fr`)l=`frm_batchApplyKey`,d=n.n8,f=n.n8,p=n.n8;else throw Error(`Invalid group: `+t);let m=Math.floor(e.byteLength/d),h=Math.floor(m/i.concurrency),g=[];o=r.e(o);let _=r.e(a);for(let t=0;t<i.concurrency;t++){let n;if(n=t<i.concurrency-1?h:m-t*h,n==0)continue;let a=[];a.push({cmd:`ALLOCSET`,var:0,buff:e.slice(t*h*d,t*h*d+n*d)}),a.push({cmd:`ALLOCSET`,var:1,buff:_}),a.push({cmd:`ALLOCSET`,var:2,buff:o}),a.push({cmd:`ALLOC`,var:3,len:n*Math.max(f,p)}),a.push({cmd:`CALL`,fnName:l,params:[{var:0},{val:n},{var:1},{var:2},{var:3}]}),u&&a.push({cmd:`CALL`,fnName:u,params:[{var:3},{val:n},{var:3}]}),a.push({cmd:`GET`,out:0,var:3,len:n*p}),g.push(i.queueAction(a)),_=r.mul(_,r.exp(o,n))}let v=await Promise.all(g),y;y=e instanceof J?new J(m*p):new Uint8Array(m*p);let b=0;for(let e=0;e<v.length;e++)y.set(v[e][0],b),b+=v[e][0].byteLength;return y}}function Gn(e){let t=e.tm;e.pairing=function(n,r){t.startSyncOp();let i=t.allocBuff(e.G1.toJacobian(n)),a=t.allocBuff(e.G2.toJacobian(r)),o=t.alloc(e.Gt.n8);t.instance.exports[e.name+`_pairing`](i,a,o);let s=t.getBuff(o,e.Gt.n8);return t.endSyncOp(),s},e.pairingEq=async function(){let n,r;arguments.length%2==1?(n=arguments[arguments.length-1],r=(arguments.length-1)/2):(n=e.Gt.one,r=arguments.length/2);let i=[];for(let n=0;n<r;n++){let r=[],a=e.G1.toJacobian(arguments[n*2]);r.push({cmd:`ALLOCSET`,var:0,buff:a}),r.push({cmd:`ALLOC`,var:1,len:e.prePSize});let o=e.G2.toJacobian(arguments[n*2+1]);r.push({cmd:`ALLOCSET`,var:2,buff:o}),r.push({cmd:`ALLOC`,var:3,len:e.preQSize}),r.push({cmd:`ALLOC`,var:4,len:e.Gt.n8}),r.push({cmd:`CALL`,fnName:e.name+`_prepareG1`,params:[{var:0},{var:1}]}),r.push({cmd:`CALL`,fnName:e.name+`_prepareG2`,params:[{var:2},{var:3}]}),r.push({cmd:`CALL`,fnName:e.name+`_millerLoop`,params:[{var:1},{var:3},{var:4}]}),r.push({cmd:`GET`,out:0,var:4,len:e.Gt.n8}),i.push(t.queueAction(r))}let a=await Promise.all(i);t.startSyncOp();let o=t.alloc(e.Gt.n8);t.instance.exports.ftm_one(o);for(let e=0;e<a.length;e++){let n=t.allocBuff(a[e][0]);t.instance.exports.ftm_mul(o,n,o)}t.instance.exports[e.name+`_finalExponentiation`](o,o);let s=t.allocBuff(n),c=!!t.instance.exports.ftm_eq(o,s);return t.endSyncOp(),c},e.prepareG1=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.prePSize);this.tm.instance.exports[this.name+`_prepareG1`](t,n);let r=this.tm.getBuff(n,this.prePSize);return this.tm.endSyncOp(),r},e.prepareG2=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.preQSize);this.tm.instance.exports[this.name+`_prepareG2`](t,n);let r=this.tm.getBuff(n,this.preQSize);return this.tm.endSyncOp(),r},e.millerLoop=function(e,t){this.tm.startSyncOp();let n=this.tm.allocBuff(e),r=this.tm.allocBuff(t),i=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+`_millerLoop`](n,r,i);let a=this.tm.getBuff(i,this.Gt.n8);return this.tm.endSyncOp(),a},e.finalExponentiation=function(e){this.tm.startSyncOp();let t=this.tm.allocBuff(e),n=this.tm.alloc(this.Gt.n8);this.tm.instance.exports[this.name+`_finalExponentiation`](t,n);let r=this.tm.getBuff(n,this.Gt.n8);return this.tm.endSyncOp(),r}}var Kn=[1,1,1,1,2,3,4,5,6,7,7,8,9,10,11,12,13,13,14,15,16,16,17,17,17,17,17,17,17,17,17,17];function qn(e,t){let n=e[t],r=n.tm;async function i(e,r,i,a,o){if(!(e instanceof Uint8Array))throw a&&a.error(`${o} _multiExpChunk buffBases is not Uint8Array`),Error(`${o} _multiExpChunk buffBases is not Uint8Array`);if(!(r instanceof Uint8Array))throw a&&a.error(`${o} _multiExpChunk buffScalars is not Uint8Array`),Error(`${o} _multiExpChunk buffScalars is not Uint8Array`);i||=`affine`;let s,c;if(t==`G1`)i==`affine`?(c=`g1m_multiexpAffine_chunk`,s=n.F.n8*2):(c=`g1m_multiexp_chunk`,s=n.F.n8*3);else if(t==`G2`)i==`affine`?(c=`g2m_multiexpAffine_chunk`,s=n.F.n8*2):(c=`g2m_multiexp_chunk`,s=n.F.n8*3);else throw Error(`Invalid group`);let l=Math.floor(e.byteLength/s);if(l==0)return n.zero;let u=Math.floor(r.byteLength/l);if(u*l!=r.byteLength)throw Error(`Scalar size does not match`);let d=Kn[En(l)],f=Math.floor((u*8-1)/d)+1,p=[];for(let t=0;t<f;t++){let i=[{cmd:`ALLOCSET`,var:0,buff:e},{cmd:`ALLOCSET`,var:1,buff:r},{cmd:`ALLOC`,var:2,len:n.F.n8*3},{cmd:`CALL`,fnName:c,params:[{var:0},{var:1},{val:u},{val:l},{val:t*d},{val:Math.min(u*8-t*d,d)},{var:2}]},{cmd:`GET`,out:0,var:2,len:n.F.n8*3}];p.push(n.tm.queueAction(i))}let m=await Promise.all(p),h=n.zero;for(let e=m.length-1;e>=0;e--){if(!n.isZero(h))for(let e=0;e<d;e++)h=n.double(h);h=n.add(h,m[e][0])}return h}async function a(e,a,o,s,c){let l=1<<22,u=1024,d;if(t==`G1`)d=o==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`G2`)d=o==`affine`?n.F.n8*2:n.F.n8*3;else throw Error(`Invalid group`);let f=Math.floor(e.byteLength/d);if(f==0)return n.zero;let p=Math.floor(a.byteLength/f);if(p*f!=a.byteLength)throw Error(`Scalar size does not match`);let m=Kn[En(f)],h=Math.floor((p*8-1)/m)+1,g;g=Math.floor(f/(r.concurrency/h)),g>l&&(g=l),g<u&&(g=u);let _=[];for(let t=0;t<f;t+=g){s&&s.debug(`Multiexp start: ${c}: ${t}/${f}`);let n=Math.min(f-t,g),r=e.slice(t*d,(t+n)*d),l=a.slice(t*p,(t+n)*p);_.push(i(r,l,o,s,c).then(e=>(s&&s.debug(`Multiexp end: ${c}: ${t}/${f}`),e)))}let v=await Promise.all(_),y=n.zero;for(let e=v.length-1;e>=0;e--)y=n.add(y,v[e]);return y}n.multiExp=async function(e,t,n,r){return await a(e,t,`jacobian`,n,r)},n.multiExpAffine=async function(e,t,n,r){return await a(e,t,`affine`,n,r)}}function Jn(e,t){let n=e[t],r=e.Fr,i=n.tm;async function a(e,a,c,l,u,d){c||=`affine`,l||=`affine`;let f,p,m,h,g,_,v,y;t==`G1`?(c==`affine`?(f=n.F.n8*2,h=`g1m_batchToJacobian`):f=n.F.n8*3,p=n.F.n8*3,a&&(y=`g1m_fftFinal`),v=`g1m_fftJoin`,_=`g1m_fftMix`,l==`affine`?(m=n.F.n8*2,g=`g1m_batchToAffine`):m=n.F.n8*3):t==`G2`?(c==`affine`?(f=n.F.n8*2,h=`g2m_batchToJacobian`):f=n.F.n8*3,p=n.F.n8*3,a&&(y=`g2m_fftFinal`),v=`g2m_fftJoin`,_=`g2m_fftMix`,l==`affine`?(m=n.F.n8*2,g=`g2m_batchToAffine`):m=n.F.n8*3):t==`Fr`&&(f=n.n8,p=n.n8,m=n.n8,a&&(y=`frm_fftFinal`),_=`frm_fftMix`,v=`frm_fftJoin`);let b=!1;Array.isArray(e)?(e=On(e,f),b=!0):e=e.slice(0,e.byteLength);let x=e.byteLength/f,S=En(x);if(1<<S!=x)throw Error(`fft must be multiple of 2`);if(S==r.s+1){let t;return t=a?await s(e,c,l,u,d):await o(e,c,l,u,d),b?kn(t,m):t}let C;a&&(C=r.inv(r.e(x)));let w;Dn(e,f);let T,E=Math.min(16384,x),D=x/E;for(;D<i.concurrency&&E>=16;)D*=2,E/=2;let O=En(E),k=[];for(let t=0;t<D;t++){u&&u.debug(`${d}: fft ${S} mix start: ${t}/${D}`);let n=[];n.push({cmd:`ALLOC`,var:0,len:p*E});let r=e.slice(E*t*f,E*(t+1)*f);n.push({cmd:`SET`,var:0,buff:r}),h&&n.push({cmd:`CALL`,fnName:h,params:[{var:0},{val:E},{var:0}]});for(let e=1;e<=O;e++)n.push({cmd:`CALL`,fnName:_,params:[{var:0},{val:E},{val:e}]});O==S?(y&&(n.push({cmd:`ALLOCSET`,var:1,buff:C}),n.push({cmd:`CALL`,fnName:y,params:[{var:0},{val:E},{var:1}]})),g&&n.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:E},{var:0}]}),n.push({cmd:`GET`,out:0,var:0,len:E*m})):n.push({cmd:`GET`,out:0,var:0,len:p*E}),k.push(i.queueAction(n).then(e=>(u&&u.debug(`${d}: fft ${S} mix end: ${t}/${D}`),e)))}T=await Promise.all(k);for(let e=0;e<D;e++)T[e]=T[e][0];for(let e=O+1;e<=S;e++){u&&u.debug(`${d}: fft ${S} join: ${e}/${S}`);let t=1<<S-e,n=D/t,a=[];for(let o=0;o<t;o++)for(let s=0;s<n/2;s++){let c=r.exp(r.w[e],s*E),l=r.w[e],f=o*n+s,h=o*n+s+n/2,_=[];_.push({cmd:`ALLOCSET`,var:0,buff:T[f]}),_.push({cmd:`ALLOCSET`,var:1,buff:T[h]}),_.push({cmd:`ALLOCSET`,var:2,buff:c}),_.push({cmd:`ALLOCSET`,var:3,buff:l}),_.push({cmd:`CALL`,fnName:v,params:[{var:0},{var:1},{val:E},{var:2},{var:3}]}),e==S?(y&&(_.push({cmd:`ALLOCSET`,var:4,buff:C}),_.push({cmd:`CALL`,fnName:y,params:[{var:0},{val:E},{var:4}]}),_.push({cmd:`CALL`,fnName:y,params:[{var:1},{val:E},{var:4}]})),g&&(_.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:E},{var:0}]}),_.push({cmd:`CALL`,fnName:g,params:[{var:1},{val:E},{var:1}]})),_.push({cmd:`GET`,out:0,var:0,len:E*m}),_.push({cmd:`GET`,out:1,var:1,len:E*m})):(_.push({cmd:`GET`,out:0,var:0,len:E*p}),_.push({cmd:`GET`,out:1,var:1,len:E*p})),a.push(i.queueAction(_).then(r=>(u&&u.debug(`${d}: fft ${S} join ${e}/${S} ${o+1}/${t} ${s}/${n/2}`),r)))}let o=await Promise.all(a);for(let e=0;e<t;e++)for(let t=0;t<n/2;t++){let r=e*n+t,i=e*n+t+n/2,a=o.shift();T[r]=a[0],T[i]=a[1]}}if(w=e instanceof J?new J(x*m):new Uint8Array(x*m),a){w.set(T[0].slice((E-1)*m));let e=m;for(let t=D-1;t>0;t--)w.set(T[t],e),e+=E*m,delete T[t];w.set(T[0].slice(0,(E-1)*m),e),delete T[0]}else for(let e=0;e<D;e++)w.set(T[e],E*m*e),delete T[e];return b?kn(w,m):w}async function o(e,t,n,i,o){let s,l;s=e.slice(0,e.byteLength/2),l=e.slice(e.byteLength/2,e.byteLength);let u=[];[s,l]=await c(s,l,`fftJoinExt`,r.one,r.shift,t,`jacobian`,i,o),u.push(a(s,!1,`jacobian`,n,i,o)),u.push(a(l,!1,`jacobian`,n,i,o));let d=await Promise.all(u),f;return f=d[0].byteLength>1<<28?new J(d[0].byteLength*2):new Uint8Array(d[0].byteLength*2),f.set(d[0]),f.set(d[1],d[0].byteLength),f}async function s(e,t,n,i,o){let s,l;s=e.slice(0,e.byteLength/2),l=e.slice(e.byteLength/2,e.byteLength);let u=[];u.push(a(s,!0,t,`jacobian`,i,o)),u.push(a(l,!0,t,`jacobian`,i,o)),[s,l]=await Promise.all(u);let d=await c(s,l,`fftJoinExtInv`,r.one,r.shiftInv,`jacobian`,n,i,o),f;return f=d[0].byteLength>1<<28?new J(d[0].byteLength*2):new Uint8Array(d[0].byteLength*2),f.set(d[0]),f.set(d[1],d[0].byteLength),f}async function c(e,a,o,s,c,l,u,d,f){let p=65536,m,h,g,_,v,y;if(t==`G1`)l==`affine`?(v=n.F.n8*2,h=`g1m_batchToJacobian`):v=n.F.n8*3,y=n.F.n8*3,m=`g1m_`+o,u==`affine`?(g=`g1m_batchToAffine`,_=n.F.n8*2):_=n.F.n8*3;else if(t==`G2`)l==`affine`?(v=n.F.n8*2,h=`g2m_batchToJacobian`):v=n.F.n8*3,m=`g2m_`+o,y=n.F.n8*3,u==`affine`?(g=`g2m_batchToAffine`,_=n.F.n8*2):_=n.F.n8*3;else if(t==`Fr`)v=r.n8,_=r.n8,y=r.n8,m=`frm_`+o;else throw Error(`Invalid group`);if(e.byteLength!=a.byteLength)throw Error(`Invalid buffer size`);let b=Math.floor(e.byteLength/v);if(b!=1<<En(b))throw Error(`Invalid number of points`);let x=Math.floor(b/i.concurrency);x<16&&(x=16),x>p&&(x=p);let S=[];for(let t=0;t<b;t+=x){d&&d.debug(`${f}: fftJoinExt Start: ${t}/${b}`);let n=Math.min(b-t,x),o=r.mul(s,r.exp(c,t)),l=[],u=e.slice(t*v,(t+n)*v),p=a.slice(t*v,(t+n)*v);l.push({cmd:`ALLOC`,var:0,len:y*n}),l.push({cmd:`SET`,var:0,buff:u}),l.push({cmd:`ALLOC`,var:1,len:y*n}),l.push({cmd:`SET`,var:1,buff:p}),l.push({cmd:`ALLOCSET`,var:2,buff:o}),l.push({cmd:`ALLOCSET`,var:3,buff:c}),h&&(l.push({cmd:`CALL`,fnName:h,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:`CALL`,fnName:h,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:`CALL`,fnName:m,params:[{var:0},{var:1},{val:n},{var:2},{var:3},{val:r.s}]}),g&&(l.push({cmd:`CALL`,fnName:g,params:[{var:0},{val:n},{var:0}]}),l.push({cmd:`CALL`,fnName:g,params:[{var:1},{val:n},{var:1}]})),l.push({cmd:`GET`,out:0,var:0,len:n*_}),l.push({cmd:`GET`,out:1,var:1,len:n*_}),S.push(i.queueAction(l).then(e=>(d&&d.debug(`${f}: fftJoinExt End: ${t}/${b}`),e)))}let C=await Promise.all(S),w,T;b*_>1<<28?(w=new J(b*_),T=new J(b*_)):(w=new Uint8Array(b*_),T=new Uint8Array(b*_));let E=0;for(let e=0;e<C.length;e++)w.set(C[e][0],E),T.set(C[e][1],E),E+=C[e][0].byteLength;return[w,T]}n.fft=async function(e,t,n,r,i){return await a(e,!1,t,n,r,i)},n.ifft=async function(e,t,n,r,i){return await a(e,!0,t,n,r,i)},n.lagrangeEvaluations=async function(e,i,o,s,l){i||=`affine`,o||=`affine`;let u;if(t==`G1`)u=i==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`G2`)u=i==`affine`?n.F.n8*2:n.F.n8*3;else if(t==`Fr`)u=r.n8;else throw Error(`Invalid group`);let d=e.byteLength/u,f=En(d);if(2**f*u!=e.byteLength)throw s&&s.error(`lagrangeEvaluations iinvalid input size`),Error(`lagrangeEvaluations invalid Input size`);if(f<=r.s)return await n.ifft(e,i,o,s,l);if(f>r.s+1)throw s&&s.error(`lagrangeEvaluations input too big`),Error(`lagrangeEvaluations input too big`);let p=e.slice(0,e.byteLength/2),m=e.slice(e.byteLength/2,e.byteLength),h=r.exp(r.shift,d/2),g=r.inv(r.sub(r.one,h));[p,m]=await c(p,m,`prepareLagrangeEvaluation`,g,r.shiftInv,i,`jacobian`,s,l+` prep`);let _=[];_.push(a(p,!0,`jacobian`,o,s,l+` t0`)),_.push(a(m,!0,`jacobian`,o,s,l+` t1`)),[p,m]=await Promise.all(_);let v;return v=p.byteLength>1<<28?new J(p.byteLength*2):new Uint8Array(p.byteLength*2),v.set(p),v.set(m,p.byteLength),v},n.fftMix=async function(e){let a=n.F.n8*3,o,s;if(t==`G1`)o=`g1m_fftMix`,s=`g1m_fftJoin`;else if(t==`G2`)o=`g2m_fftMix`,s=`g2m_fftJoin`;else if(t==`Fr`)o=`frm_fftMix`,s=`frm_fftJoin`;else throw Error(`Invalid group`);let c=Math.floor(e.byteLength/a),l=En(c),u=1<<En(i.concurrency);c<=u*2&&(u=1);let d=c/u,f=En(d),p=[];for(let t=0;t<u;t++){let n=[],r=e.slice(t*d*a,(t+1)*d*a);n.push({cmd:`ALLOCSET`,var:0,buff:r});for(let e=1;e<=f;e++)n.push({cmd:`CALL`,fnName:o,params:[{var:0},{val:d},{val:e}]});n.push({cmd:`GET`,out:0,var:0,len:d*a}),p.push(i.queueAction(n))}let m=await Promise.all(p),h=[];for(let e=0;e<m.length;e++)h[e]=m[e][0];for(let e=f+1;e<=l;e++){let t=1<<l-e,n=u/t,o=[];for(let c=0;c<t;c++)for(let t=0;t<n/2;t++){let l=r.exp(r.w[e],t*d),u=r.w[e],f=c*n+t,p=c*n+t+n/2,m=[];m.push({cmd:`ALLOCSET`,var:0,buff:h[f]}),m.push({cmd:`ALLOCSET`,var:1,buff:h[p]}),m.push({cmd:`ALLOCSET`,var:2,buff:l}),m.push({cmd:`ALLOCSET`,var:3,buff:u}),m.push({cmd:`CALL`,fnName:s,params:[{var:0},{var:1},{val:d},{var:2},{var:3}]}),m.push({cmd:`GET`,out:0,var:0,len:d*a}),m.push({cmd:`GET`,out:1,var:1,len:d*a}),o.push(i.queueAction(m))}let c=await Promise.all(o);for(let e=0;e<t;e++)for(let t=0;t<n/2;t++){let r=e*n+t,i=e*n+t+n/2,a=c.shift();h[r]=a[0],h[i]=a[1]}}let g;g=e instanceof J?new J(c*a):new Uint8Array(c*a);let _=0;for(let e=0;e<u;e++)g.set(h[e],_),_+=h[e].byteLength;return g},n.fftJoin=async function(e,a,o,s){let c=n.F.n8*3,l;if(t==`G1`)l=`g1m_fftJoin`;else if(t==`G2`)l=`g2m_fftJoin`;else if(t==`Fr`)l=`frm_fftJoin`;else throw Error(`Invalid group`);if(e.byteLength!=a.byteLength)throw Error(`Invalid buffer size`);let u=Math.floor(e.byteLength/c);if(u!=1<<En(u))throw Error(`Invalid number of points`);let d=1<<En(i.concurrency);u<=d*2&&(d=1);let f=u/d,p=[];for(let t=0;t<d;t++){let n=[],u=r.mul(o,r.exp(s,t*f)),d=e.slice(t*f*c,(t+1)*f*c),m=a.slice(t*f*c,(t+1)*f*c);n.push({cmd:`ALLOCSET`,var:0,buff:d}),n.push({cmd:`ALLOCSET`,var:1,buff:m}),n.push({cmd:`ALLOCSET`,var:2,buff:u}),n.push({cmd:`ALLOCSET`,var:3,buff:s}),n.push({cmd:`CALL`,fnName:l,params:[{var:0},{var:1},{val:f},{var:2},{var:3}]}),n.push({cmd:`GET`,out:0,var:0,len:f*c}),n.push({cmd:`GET`,out:1,var:1,len:f*c}),p.push(i.queueAction(n))}let m=await Promise.all(p),h,g;e instanceof J?(h=new J(u*c),g=new J(u*c)):(h=new Uint8Array(u*c),g=new Uint8Array(u*c));let _=0;for(let e=0;e<m.length;e++)h.set(m[e][0],_),g.set(m[e][1],_),_+=m[e][0].byteLength;return[h,g]},n.fftFinal=async function(e,r){let a=n.F.n8*3,o=n.F.n8*2,s,c;if(t==`G1`)s=`g1m_fftFinal`,c=`g1m_batchToAffine`;else if(t==`G2`)s=`g2m_fftFinal`,c=`g2m_batchToAffine`;else throw Error(`Invalid group`);let l=Math.floor(e.byteLength/a);if(l!=1<<En(l))throw Error(`Invalid number of points`);let u=Math.floor(l/i.concurrency),d=[];for(let t=0;t<i.concurrency;t++){let n;if(n=t<i.concurrency-1?u:l-t*u,n==0)continue;let f=[],p=e.slice(t*u*a,(t*u+n)*a);f.push({cmd:`ALLOCSET`,var:0,buff:p}),f.push({cmd:`ALLOCSET`,var:1,buff:r}),f.push({cmd:`CALL`,fnName:s,params:[{var:0},{val:n},{var:1}]}),f.push({cmd:`CALL`,fnName:c,params:[{var:0},{val:n},{var:0}]}),f.push({cmd:`GET`,out:0,var:0,len:n*o}),d.push(i.queueAction(f))}let f=await Promise.all(d),p;p=e instanceof J?new J(l*o):new Uint8Array(l*o);let m=0;for(let e=f.length-1;e>=0;e--)p.set(f[e][0],m),m+=f[e][0].byteLength;return p}}async function Yn(e){let t=await Hn(e.wasm,e.singleThread),n={};return n.q=s(e.wasm.q.toString()),n.r=s(e.wasm.r.toString()),n.name=e.name,n.tm=t,n.prePSize=e.wasm.prePSize,n.preQSize=e.wasm.preQSize,n.Fr=new Mn(t,`frm`,e.n8r,e.r),n.F1=new Mn(t,`f1m`,e.n8q,e.q),n.F2=new Nn(t,`f2m`,n.F1),n.G1=new Fn(t,`g1m`,n.F1,e.wasm.pG1gen,e.wasm.pG1b,e.cofactorG1),n.G2=new Fn(t,`g2m`,n.F2,e.wasm.pG2gen,e.wasm.pG2b,e.cofactorG2),n.F6=new Pn(t,`f6m`,n.F2),n.F12=new Nn(t,`ftm`,n.F6),n.Gt=n.F12,Wn(n,`G1`),Wn(n,`G2`),Wn(n,`Fr`),qn(n,`G1`),qn(n,`G2`),Jn(n,`G1`),Jn(n,`G2`),Jn(n,`Fr`),Gn(n),n.array2buffer=function(e,t){let n=new Uint8Array(t*e.length);for(let r=0;r<e.length;r++)n.set(e[r],r*t);return n},n.buffer2array=function(e,t){let n=e.byteLength/t,r=Array(n);for(let i=0;i<n;i++)r[i]=e.slice(i*t,i*t+t);return r},n}function Xn(e){return BigInt(e)}function Zn(e){return e<0n}function Qn(e){return e===0n}function $n(e){return Zn(e)?e.toString(2).length-1:e.toString(2).length}function er(e){let t=[],n=Xn(e);return t.push(Number(n&255n)),t.push(Number(n>>8n&255n)),t.push(Number(n>>16n&255n)),t.push(Number(n>>24n&255n)),t}function tr(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return t}function nr(e){let t=tr(e);return[...Y(t.length),...t]}function rr(e){let t=[],n=Xn(e);if(Zn(n))throw Error(`Number cannot be negative`);for(;!Qn(n);)t.push(Number(n&127n)),n>>=7n;t.length==0&&t.push(0);for(let e=0;e<t.length-1;e++)t[e]=t[e]|128;return t}function ir(e){let t,n,r=$n(e);e<0?(n=!0,t=(1n<<BigInt(r))+e):(n=!1,t=Xn(e));let i=7-r%7,a=(1n<<BigInt(i))-1n<<BigInt(r),o=(1<<7-i)-1|128,s=rr(t+a);return n||(s[s.length-1]=s[s.length-1]&o),s}function ar(e){let t=Xn(e);if(t>4294967295n)throw Error(`Number too big`);if(t>2147483647n&&(t-=4294967296n),t<-2147483648n)throw Error(`Number too small`);return ir(t)}function or(e){let t=Xn(e);if(t>18446744073709551615n)throw Error(`Number too big`);if(t>9223372036854775807n&&(t-=18446744073709551616n),t<-9223372036854775808n)throw Error(`Number too small`);return ir(t)}function Y(e){let t=Xn(e);if(t>4294967295n)throw Error(`Number too big`);return rr(t)}function sr(e){return Array.from(e,function(e){return(`0`+(e&255).toString(16)).slice(-2)}).join(``)}var cr=class{constructor(e){this.func=e,this.functionName=e.functionName,this.module=e.module}setLocal(e,t){let n=this.func.localIdxByName[e];if(n===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[...t,33,...Y(n)]}teeLocal(e,t){let n=this.func.localIdxByName[e];if(n===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[...t,34,...Y(n)]}getLocal(e){let t=this.func.localIdxByName[e];if(t===void 0)throw Error(`Local Variable not defined: Function: ${this.functionName} local: ${e} `);return[32,...Y(t)]}i64_load8_s(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,48,i,...Y(r)]}i64_load8_u(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,49,i,...Y(r)]}i64_load16_s(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,50,i,...Y(r)]}i64_load16_u(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,51,i,...Y(r)]}i64_load32_s(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,52,i,...Y(r)]}i64_load32_u(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,53,i,...Y(r)]}i64_load(e,t,n){let r=t||0,i=n===void 0?3:n;return[...e,41,i,...Y(r)]}i64_store(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=3,o=t):Array.isArray(n)?(i=t,a=3,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,55,a,...Y(i)]}i64_store32(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=2,o=t):Array.isArray(n)?(i=t,a=2,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,62,a,...Y(i)]}i64_store16(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=1,o=t):Array.isArray(n)?(i=t,a=1,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,61,a,...Y(i)]}i64_store8(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=0,o=t):Array.isArray(n)?(i=t,a=0,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,60,a,...Y(i)]}i32_load8_s(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,44,i,...Y(r)]}i32_load8_u(e,t,n){let r=t||0,i=n===void 0?0:n;return[...e,45,i,...Y(r)]}i32_load16_s(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,46,i,...Y(r)]}i32_load16_u(e,t,n){let r=t||0,i=n===void 0?1:n;return[...e,47,i,...Y(r)]}i32_load(e,t,n){let r=t||0,i=n===void 0?2:n;return[...e,40,i,...Y(r)]}i32_store(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=2,o=t):Array.isArray(n)?(i=t,a=2,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,54,a,...Y(i)]}i32_store16(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=1,o=t):Array.isArray(n)?(i=t,a=1,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,59,a,...Y(i)]}i32_store8(e,t,n,r){let i,a,o;return Array.isArray(t)?(i=0,a=0,o=t):Array.isArray(n)?(i=t,a=0,o=n):Array.isArray(r)&&(i=t,a=n,o=r),[...e,...o,58,a,...Y(i)]}call(e,...t){let n=this.module.functionIdxByName[e];if(n===void 0)throw Error(`Function not defined: Function: ${e}`);return[...[].concat(...t),16,...Y(n)]}call_indirect(e,...t){return[...[].concat(...t),...e,17,0,0]}if(e,t,n){return n?[...e,4,64,...t,5,...n,11]:[...e,4,64,...t,11]}block(e){return[2,64,...e,11]}loop(...e){return[3,64,...[].concat(...e),11]}br_if(e,t){return[...t,13,...Y(e)]}br(e){return[12,...Y(e)]}ret(e){return[...e,15]}drop(e){return[...e,26]}i64_const(e){return[66,...or(e)]}i32_const(e){return[65,...ar(e)]}i64_eqz(e){return[...e,80]}i64_eq(e,t){return[...e,...t,81]}i64_ne(e,t){return[...e,...t,82]}i64_lt_s(e,t){return[...e,...t,83]}i64_lt_u(e,t){return[...e,...t,84]}i64_gt_s(e,t){return[...e,...t,85]}i64_gt_u(e,t){return[...e,...t,86]}i64_le_s(e,t){return[...e,...t,87]}i64_le_u(e,t){return[...e,...t,88]}i64_ge_s(e,t){return[...e,...t,89]}i64_ge_u(e,t){return[...e,...t,90]}i64_add(e,t){return[...e,...t,124]}i64_sub(e,t){return[...e,...t,125]}i64_mul(e,t){return[...e,...t,126]}i64_div_s(e,t){return[...e,...t,127]}i64_div_u(e,t){return[...e,...t,128]}i64_rem_s(e,t){return[...e,...t,129]}i64_rem_u(e,t){return[...e,...t,130]}i64_and(e,t){return[...e,...t,131]}i64_or(e,t){return[...e,...t,132]}i64_xor(e,t){return[...e,...t,133]}i64_shl(e,t){return[...e,...t,134]}i64_shr_s(e,t){return[...e,...t,135]}i64_shr_u(e,t){return[...e,...t,136]}i64_extend_i32_s(e){return[...e,172]}i64_extend_i32_u(e){return[...e,173]}i64_clz(e){return[...e,121]}i64_ctz(e){return[...e,122]}i32_eqz(e){return[...e,69]}i32_eq(e,t){return[...e,...t,70]}i32_ne(e,t){return[...e,...t,71]}i32_lt_s(e,t){return[...e,...t,72]}i32_lt_u(e,t){return[...e,...t,73]}i32_gt_s(e,t){return[...e,...t,74]}i32_gt_u(e,t){return[...e,...t,75]}i32_le_s(e,t){return[...e,...t,76]}i32_le_u(e,t){return[...e,...t,77]}i32_ge_s(e,t){return[...e,...t,78]}i32_ge_u(e,t){return[...e,...t,79]}i32_add(e,t){return[...e,...t,106]}i32_sub(e,t){return[...e,...t,107]}i32_mul(e,t){return[...e,...t,108]}i32_div_s(e,t){return[...e,...t,109]}i32_div_u(e,t){return[...e,...t,110]}i32_rem_s(e,t){return[...e,...t,111]}i32_rem_u(e,t){return[...e,...t,112]}i32_and(e,t){return[...e,...t,113]}i32_or(e,t){return[...e,...t,114]}i32_xor(e,t){return[...e,...t,115]}i32_shl(e,t){return[...e,...t,116]}i32_shr_s(e,t){return[...e,...t,117]}i32_shr_u(e,t){return[...e,...t,118]}i32_rotl(e,t){return[...e,...t,119]}i32_rotr(e,t){return[...e,...t,120]}i32_wrap_i64(e){return[...e,167]}i32_clz(e){return[...e,103]}i32_ctz(e){return[...e,104]}unreachable(){return[0]}current_memory(){return[63,0]}comment(){return[]}},lr={i32:127,i64:126,f32:125,f64:124,anyfunc:112,func:96,emptyblock:64},ur=class{constructor(e,t,n,r,i){if(n==`import`)this.fnType=`import`,this.moduleName=r,this.fieldName=i;else if(n==`internal`)this.fnType=`internal`;else throw Error(`Invalid function fnType: `+n);this.module=e,this.fnName=t,this.params=[],this.locals=[],this.localIdxByName={},this.code=[],this.returnType=null,this.nextLocal=0}addParam(e,t){if(this.localIdxByName[e])throw Error(`param already exists. Function: ${this.fnName}, Param: ${e} `);let n=this.nextLocal++;this.localIdxByName[e]=n,this.params.push({type:t})}addLocal(e,t,n){let r=n||1;if(this.localIdxByName[e])throw Error(`local already exists. Function: ${this.fnName}, Param: ${e} `);let i=this.nextLocal++;this.localIdxByName[e]=i,this.locals.push({type:t,length:r})}setReturnType(e){if(this.returnType)throw Error(`returnType already defined. Function: ${this.fnName}`);this.returnType=e}getSignature(){let e=[...Y(this.params.length),...this.params.map(e=>lr[e.type])],t=this.returnType?[1,lr[this.returnType]]:[0];return[96,...e,...t]}getBody(){let e=this.locals.map(e=>[...Y(e.length),lr[e.type]]),t=[...Y(this.locals.length),...[].concat(...e),...this.code,11];return[...Y(t.length),...t]}addCode(...e){this.code.push(...[].concat(...e))}getCodeBuilder(){return new cr(this)}},dr=class{constructor(){this.functions=[],this.functionIdxByName={},this.nImportFunctions=0,this.nInternalFunctions=0,this.memory={pagesSize:1,moduleName:`env`,fieldName:`memory`},this.free=8,this.datas=[],this.modules={},this.exports=[],this.functionsTable=[]}build(){return this._setSignatures(),new Uint8Array([...er(1836278016),...er(1),...this._buildType(),...this._buildImport(),...this._buildFunctionDeclarations(),...this._buildFunctionsTable(),...this._buildExports(),...this._buildElements(),...this._buildCode(),...this._buildData()])}addFunction(e){if(this.functionIdxByName[e]!==void 0)throw Error(`Function already defined: ${e}`);let t=this.functions.length;return this.functionIdxByName[e]=t,this.functions.push(new ur(this,e,`internal`)),this.nInternalFunctions++,this.functions[t]}addIimportFunction(e,t,n){if(this.functionIdxByName[e]!==void 0)throw Error(`Function already defined: ${e}`);if(this.functions.length>0&&this.functions[this.functions.length-1].type==`internal`)throw Error(`Import functions must be declared before internal: ${e}`);let r=n||e,i=this.functions.length;return this.functionIdxByName[e]=i,this.functions.push(new ur(this,e,`import`,t,r)),this.nImportFunctions++,this.functions[i]}setMemory(e,t,n){this.memory={pagesSize:e,moduleName:t||`env`,fieldName:n||`memory`}}exportFunction(e,t){let n=t||e;if(this.functionIdxByName[e]===void 0)throw Error(`Function not defined: ${e}`);let r=this.functionIdxByName[e];n!=e&&(this.functionIdxByName[n]=r),this.exports.push({exportName:n,idx:r})}addFunctionToTable(e){let t=this.functionIdxByName[e];this.functionsTable.push(t)}addData(e,t){this.datas.push({offset:e,bytes:t})}alloc(e,t){let n,r;(Array.isArray(e)||ArrayBuffer.isView(e))&&t===void 0?(n=e.length,r=e):(n=e,r=t),n=(n-1>>3)+1<<3;let i=this.free;return this.free+=n,r&&this.addData(i,r),i}allocString(e){let t=new globalThis.TextEncoder().encode(e);return this.alloc([...t,0])}_setSignatures(){this.signatures=[];let e={};if(this.functionsTable.length>0){let t=this.functions[this.functionsTable[0]].getSignature(),n=`s_`+sr(t);e[n]=0,this.signatures.push(t)}for(let t=0;t<this.functions.length;t++){let n=this.functions[t].getSignature(),r=`s_`+sr(n);e[r]===void 0&&(e[r]=this.signatures.length,this.signatures.push(n)),this.functions[t].signatureIdx=e[r]}}_buildSection(e,t){return[e,...Y(t.length),...t]}_buildType(){return this._buildSection(1,[...Y(this.signatures.length),...[].concat(...this.signatures)])}_buildImport(){let e=[];e.push([...nr(this.memory.moduleName),...nr(this.memory.fieldName),2,0,...Y(this.memory.pagesSize)]);for(let t=0;t<this.nImportFunctions;t++)e.push([...nr(this.functions[t].moduleName),...nr(this.functions[t].fieldName),0,...Y(this.functions[t].signatureIdx)]);return this._buildSection(2,Y(e.length).concat(...e))}_buildFunctionDeclarations(){let e=[];for(let t=this.nImportFunctions;t<this.nImportFunctions+this.nInternalFunctions;t++)e.push(...Y(this.functions[t].signatureIdx));return this._buildSection(3,[...Y(e.length),...[...e]])}_buildFunctionsTable(){return this.functionsTable.length==0?[]:this._buildSection(4,[...Y(1),112,0,...Y(this.functionsTable.length)])}_buildElements(){if(this.functionsTable.length==0)return[];let e=[];for(let t=0;t<this.functionsTable.length;t++)e.push(...Y(this.functionsTable[t]));return this._buildSection(9,[...Y(1),...Y(0),65,...ar(0),11,...Y(this.functionsTable.length),...[...e]])}_buildExports(){let e=[];for(let t=0;t<this.exports.length;t++)e.push([...nr(this.exports[t].exportName),0,...Y(this.exports[t].idx)]);return this._buildSection(7,Y(e.length).concat(...e))}_buildCode(){let e=[];for(let t=this.nImportFunctions;t<this.nImportFunctions+this.nInternalFunctions;t++)e.push(this.functions[t].getBody());return this._buildSection(10,Y(e.length).concat(...e))}_buildData(){let e=[];e.push([0,65,0,11,4,...er(this.free)]);for(let t=0;t<this.datas.length;t++)e.push([0,65,...ar(this.datas[t].offset),11,...Y(this.datas[t].bytes.length),...this.datas[t].bytes]);return this._buildSection(11,Y(e.length).concat(...e))}};globalThis.curve_bn128=null;async function fr(e,t){if(!e&&globalThis.curve_bn128)return globalThis.curve_bn128;let n=new dr;n.setMemory(25),pn(n),t&&t(n);let r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bn128.pG1gen,r.pG1zero=n.modules.bn128.pG1zero,r.pG1b=n.modules.bn128.pG1b,r.pG2gen=n.modules.bn128.pG2gen,r.pG2zero=n.modules.bn128.pG2zero,r.pG2b=n.modules.bn128.pG2b,r.pOneT=n.modules.bn128.pOneT,r.prePSize=n.modules.bn128.prePSize,r.preQSize=n.modules.bn128.preQSize,r.n8q=32,r.n8r=32,r.q=n.modules.bn128.q,r.r=n.modules.bn128.r;let i={name:`bn128`,wasm:r,q:s(`21888242871839275222246405745257275088696311157297823662689037894645226208583`),r:s(`21888242871839275222246405745257275088548364400416034343698204186575808495617`),n8q:32,n8r:32,cofactorG2:s(`30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d`,16),singleThread:!!e},a=await Yn(i);return a.terminate=async function(){i.singleThread||(globalThis.curve_bn128=null,await this.tm.terminate())},e||(globalThis.curve_bn128=a),a}globalThis.curve_bls12381=null;async function pr(e,t){if(!e&&globalThis.curve_bls12381)return globalThis.curve_bls12381;let n=new dr;n.setMemory(25),mn(n),t&&t(n);let r={};r.code=n.build(),r.pq=n.modules.f1m.pq,r.pr=n.modules.frm.pq,r.pG1gen=n.modules.bls12381.pG1gen,r.pG1zero=n.modules.bls12381.pG1zero,r.pG1b=n.modules.bls12381.pG1b,r.pG2gen=n.modules.bls12381.pG2gen,r.pG2zero=n.modules.bls12381.pG2zero,r.pG2b=n.modules.bls12381.pG2b,r.pOneT=n.modules.bls12381.pOneT,r.prePSize=n.modules.bls12381.prePSize,r.preQSize=n.modules.bls12381.preQSize,r.n8q=48,r.n8r=32,r.q=n.modules.bls12381.q,r.r=n.modules.bls12381.r;let i={name:`bls12381`,wasm:r,q:s(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),r:s(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),n8q:48,n8r:32,cofactorG1:s(`0x396c8c005555e1568c00aaab0000aaab`,16),cofactorG2:s(`0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5`,16),singleThread:!!e},a=await Yn(i);return a.terminate=async function(){i.singleThread||(globalThis.curve_bls12381=null,await this.tm.terminate())},e||(globalThis.curve_bls12381=a),a}s(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),s(`21888242871839275222246405745257275088548364400416034343698204186575808495617`),s(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),s(`21888242871839275222246405745257275088696311157297823662689037894645226208583`);var X=ce,Z=An,mr={};async function hr(e,t,n,r){if(n||=4096*64,typeof t!=`number`&&[`w+`,`wx+`,`r`,`ax+`,`a+`].indexOf(t)<0)throw Error(`Invalid open option`);let i=await mr.promises.open(e,t);return new gr(i,await i.stat(),n,r,e)}var gr=class{constructor(e,t,n,r,i){for(this.fileName=i,this.fd=e,this.pos=0,this.pageSize=r||256;this.pageSize<t.blksize;)this.pageSize*=2;this.totalSize=t.size,this.totalPages=Math.floor((t.size-1)/this.pageSize)+1,this.maxPagesLoaded=Math.floor(n/this.pageSize)+1,this.pages={},this.pendingLoads=[],this.writing=!1,this.reading=!1,this.avBuffs=[],this.history={}}_loadPage(e){let t=this,n=new Promise((n,r)=>{t.pendingLoads.push({page:e,resolve:n,reject:r})});return t.__statusPage(`After Load request: `,e),n}__statusPage(e,t){let n=[],r=this;if(!r.logHistory)return;n.push(`==`+e+` `+t);let i=``;for(let e=0;e<r.pendingLoads.length;e++)r.pendingLoads[e].page==t&&(i=i+` `+e);if(i&&n.push(`Pending loads:`+i),r.pages[t]!==void 0){let e=r.pages[t];n.push(`Loaded`),n.push(`pendingOps: `+e.pendingOps),e.loading&&n.push(`loading: `+e.loading),e.writing&&n.push(`writing`),e.dirty&&n.push(`dirty`)}n.push(`==`),r.history[t]||(r.history[t]=[]),r.history[t].push(n)}__printHistory(e){let t=this;t.history[e]||console.log(`Empty History `,e),console.log(`History `+e);for(let n=0;n<t.history[e].length;n++)for(let r=0;r<t.history[e][n].length;r++)console.log(`-> `+t.history[e][n][r])}_triggerLoad(){let e=this;if(e.reading||e.pendingLoads.length==0)return;let t=Object.keys(e.pages),n=[];for(let r=0;r<t.length;r++){let i=e.pages[parseInt(t[r])];i.dirty==0&&i.pendingOps==0&&!i.writing&&!i.loading&&n.push(parseInt(t[r]))}let r=e.maxPagesLoaded-t.length,i=[];for(;e.pendingLoads.length>0&&(e.pages[e.pendingLoads[0].page]!==void 0||r>0||n.length>0);){let t=e.pendingLoads.shift();if(e.pages[t.page]!==void 0){e.pages[t.page].pendingOps++;let r=n.indexOf(t.page);r>=0&&n.splice(r,1),e.pages[t.page].loading?e.pages[t.page].loading.push(t):t.resolve(),e.__statusPage(`After Load (cached): `,t.page)}else{if(r)r--;else{let t=n.shift();e.__statusPage(`Before Unload: `,t),e.avBuffs.unshift(e.pages[t]),delete e.pages[t],e.__statusPage(`After Unload: `,t)}t.page>=e.totalPages?(e.pages[t.page]=a(),t.resolve(),e.__statusPage(`After Load (new): `,t.page)):(e.reading=!0,e.pages[t.page]=a(),e.pages[t.page].loading=[t],i.push(e.fd.read(e.pages[t.page].buff,0,e.pageSize,t.page*e.pageSize).then(n=>{e.pages[t.page].size=n.bytesRead;let r=e.pages[t.page].loading;delete e.pages[t.page].loading;for(let e=0;e<r.length;e++)r[e].resolve();return e.__statusPage(`After Load (loaded): `,t.page),n},e=>{t.reject(e)})),e.__statusPage(`After Load (loading): `,t.page))}}Promise.all(i).then(()=>{e.reading=!1,e.pendingLoads.length>0&&setImmediate(e._triggerLoad.bind(e)),e._tryClose()});function a(){if(e.avBuffs.length>0){let t=e.avBuffs.shift();return t.dirty=!1,t.pendingOps=1,t.size=0,t}else return{dirty:!1,buff:new Uint8Array(e.pageSize),pendingOps:1,size:0}}}_triggerWrite(){let e=this;if(e.writing)return;let t=Object.keys(e.pages),n=[];for(let r=0;r<t.length;r++){let i=e.pages[parseInt(t[r])];i.dirty&&(i.dirty=!1,i.writing=!0,e.writing=!0,n.push(e.fd.write(i.buff,0,i.size,parseInt(t[r])*e.pageSize).then(()=>{i.writing=!1},t=>{console.log(`ERROR Writing: `+t),e.error=t,e._tryClose()})))}e.writing&&Promise.all(n).then(()=>{e.writing=!1,setImmediate(e._triggerWrite.bind(e)),e._tryClose(),e.pendingLoads.length>0&&setImmediate(e._triggerLoad.bind(e))})}_getDirtyPage(){for(let e in this.pages)if(this.pages[e].dirty)return e;return-1}async write(e,t){if(e.byteLength==0)return;let n=this;if(t===void 0&&(t=n.pos),n.pos=t+e.byteLength,n.totalSize<t+e.byteLength&&(n.totalSize=t+e.byteLength),n.pendingClose)throw Error(`Writing a closing file`);let r=Math.floor(t/n.pageSize),i=Math.floor((t+e.byteLength-1)/n.pageSize),a=[];for(let e=r;e<=i;e++)a.push(n._loadPage(e));n._triggerLoad();let o=r,s=t%n.pageSize,c=e.byteLength;for(;c>0;){await a[o-r];let t=s+c>n.pageSize?n.pageSize-s:c,i=e.slice(e.byteLength-c,e.byteLength-c+t);new Uint8Array(n.pages[o].buff.buffer,s,t).set(i),n.pages[o].dirty=!0,n.pages[o].pendingOps--,n.pages[o].size=Math.max(s+t,n.pages[o].size),o>=n.totalPages&&(n.totalPages=o+1),c-=t,o++,s=0,n.writing||setImmediate(n._triggerWrite.bind(n))}}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}async readToBuffer(e,t,n,r){if(n==0)return;let i=this;if(n>i.pageSize*i.maxPagesLoaded*.8){let e=Math.floor(n*1.1);this.maxPagesLoaded=Math.floor(e/i.pageSize)+1}if(r===void 0&&(r=i.pos),i.pos=r+n,i.pendingClose)throw Error(`Reading a closing file`);let a=Math.floor(r/i.pageSize),o=Math.floor((r+n-1)/i.pageSize),s=[];for(let e=a;e<=o;e++)s.push(i._loadPage(e));i._triggerLoad();let c=a,l=r%i.pageSize,u=r+n>i.totalSize?n-(r+n-i.totalSize):n;for(;u>0;){await s[c-a],i.__statusPage(`After Await (read): `,c);let r=l+u>i.pageSize?i.pageSize-l:u,o=new Uint8Array(i.pages[c].buff.buffer,i.pages[c].buff.byteOffset+l,r);e.set(o,t+n-u),i.pages[c].pendingOps--,i.__statusPage(`After Op done: `,c),u-=r,c++,l=0,i.pendingLoads.length>0&&setImmediate(i._triggerLoad.bind(i))}this.pos=r+n}_tryClose(){let e=this;e.pendingClose&&(e.error&&e.pendingCloseReject(e.error),!(e._getDirtyPage()>=0||e.writing||e.reading||e.pendingLoads.length>0)&&e.pendingClose())}close(){let e=this;if(e.pendingClose)throw Error(`Closing the file twice`);return new Promise((t,n)=>{e.pendingClose=t,e.pendingCloseReject=n,e._tryClose()}).then(()=>{e.fd.close()},t=>{throw e.fd.close(),t})}async discard(){await this.close(),await mr.promises.unlink(this.fileName)}async writeULE32(e,t){let n=this,r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e,!0),await n.write(r,t)}async writeUBE32(e,t){let n=this,r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e,!1),await n.write(r,t)}async writeULE64(e,t){let n=this,r=new Uint8Array(8),i=new DataView(r.buffer);i.setUint32(0,e&4294967295,!0),i.setUint32(4,Math.floor(e/4294967296),!0),await n.write(r,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this;if(t.pendingClose)throw Error(`Reading a closing file`);let n=e===void 0?t.pos:e,r=Math.floor(n/t.pageSize),i=!1,a=``;for(;!i;){let e=t._loadPage(r);t._triggerLoad(),await e,t.__statusPage(`After Await (read): `,r);let o=n%t.pageSize,s=new Uint8Array(t.pages[r].buff.buffer,t.pages[r].buff.byteOffset+o,t.pageSize-o),c=s.findIndex(e=>e===0);i=c!==-1,i?(a+=new TextDecoder().decode(s.slice(0,c)),t.pos=r*this.pageSize+o+c+1):(a+=new TextDecoder().decode(s),t.pos=r*this.pageSize+o+s.length),t.pages[r].pendingOps--,t.__statusPage(`After Op done: `,r),n=t.pos,r++,t.pendingLoads.length>0&&setImmediate(t._triggerLoad.bind(t))}return a}};function _r(e){let t=e.initialSize||1<<20,n=new Cr;return n.o=e,n.o.data=new Uint8Array(t),n.allocSize=t,n.totalSize=0,n.readOnly=!1,n.pos=0,n}function vr(e){let t=new Cr;return t.o=e,t.allocSize=e.data.byteLength,t.totalSize=e.data.byteLength,t.readOnly=!0,t.pos=0,t}var yr=new Uint8Array(4),br=new DataView(yr.buffer),xr=new Uint8Array(8),Sr=new DataView(xr.buffer),Cr=class{constructor(){this.pageSize=16384}_resizeIfNeeded(e){if(e>this.allocSize){let t=Math.max(this.allocSize+(1<<20),Math.floor(this.allocSize*1.1),e),n=new Uint8Array(t);n.set(this.o.data),this.o.data=n,this.allocSize=t}}async write(e,t){let n=this;if(t===void 0&&(t=n.pos),this.readOnly)throw Error(`Writing a read only file`);this._resizeIfNeeded(t+e.byteLength),this.o.data.set(e.slice(),t),t+e.byteLength>this.totalSize&&(this.totalSize=t+e.byteLength),this.pos=t+e.byteLength}async readToBuffer(e,t,n,r){let i=this;if(r===void 0&&(r=i.pos),this.readOnly&&r+n>this.totalSize)throw Error(`Reading out of bounds`);this._resizeIfNeeded(r+n);let a=new Uint8Array(this.o.data.buffer,this.o.data.byteOffset+r,n);e.set(a,t),this.pos=r+n}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(e,t){let n=this;br.setUint32(0,e,!0),await n.write(yr,t)}async writeUBE32(e,t){let n=this;br.setUint32(0,e,!1),await n.write(yr,t)}async writeULE64(e,t){let n=this;Sr.setUint32(0,e&4294967295,!0),Sr.setUint32(4,Math.floor(e/4294967296),!0),await n.write(xr,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this,n=e===void 0?t.pos:e;if(n>this.totalSize){if(this.readOnly)throw Error(`Reading out of bounds`);this._resizeIfNeeded(e)}let r=new Uint8Array(t.o.data.buffer,n,this.totalSize-n),i=r.findIndex(e=>e===0),a=i!==-1,o=``;return a?(o=new TextDecoder().decode(r.slice(0,i)),t.pos=n+i+1):t.pos=n,o}},Q=1<<22;function wr(e){let t=e.initialSize||0,n=new Ar;n.o=e;let r=t?Math.floor((t-1)/Q)+1:0;n.o.data=[];for(let e=0;e<r-1;e++)n.o.data.push(new Uint8Array(Q));return r&&n.o.data.push(new Uint8Array(t-Q*(r-1))),n.totalSize=0,n.readOnly=!1,n.pos=0,n}function Tr(e){let t=new Ar;return t.o=e,t.totalSize=(e.data.length-1)*Q+e.data[e.data.length-1].byteLength,t.readOnly=!0,t.pos=0,t}var Er=new Uint8Array(4),Dr=new DataView(Er.buffer),Or=new Uint8Array(8),kr=new DataView(Or.buffer),Ar=class{constructor(){this.pageSize=16384}_resizeIfNeeded(e){if(e<=this.totalSize)return;if(this.readOnly)throw Error(`Reading out of file bounds`);let t=Math.floor((e-1)/Q)+1;for(let n=Math.max(this.o.data.length-1,0);n<t;n++){let r=n<t-1?Q:e-(t-1)*Q,i=new Uint8Array(r);n==this.o.data.length-1&&i.set(this.o.data[n]),this.o.data[n]=i}this.totalSize=e}async write(e,t){let n=this;if(t===void 0&&(t=n.pos),this.readOnly)throw Error(`Writing a read only file`);this._resizeIfNeeded(t+e.byteLength);let r=Math.floor(t/Q),i=t%Q,a=e.byteLength;for(;a>0;){let t=i+a>Q?Q-i:a,o=e.slice(e.byteLength-a,e.byteLength-a+t);new Uint8Array(n.o.data[r].buffer,i,t).set(o),a-=t,r++,i=0}this.pos=t+e.byteLength}async readToBuffer(e,t,n,r){let i=this;if(r===void 0&&(r=i.pos),this.readOnly&&r+n>this.totalSize)throw Error(`Reading out of bounds`);this._resizeIfNeeded(r+n);let a=Math.floor(r/Q),o=r%Q,s=n;for(;s>0;){let r=o+s>Q?Q-o:s,c=new Uint8Array(i.o.data[a].buffer,o,r);e.set(c,t+n-s),s-=r,a++,o=0}this.pos=r+n}async read(e,t){let n=this,r=new Uint8Array(e);return await n.readToBuffer(r,0,e,t),r}close(){}async discard(){}async writeULE32(e,t){let n=this;Dr.setUint32(0,e,!0),await n.write(Er,t)}async writeUBE32(e,t){let n=this;Dr.setUint32(0,e,!1),await n.write(Er,t)}async writeULE64(e,t){let n=this;kr.setUint32(0,e&4294967295,!0),kr.setUint32(4,Math.floor(e/4294967296),!0),await n.write(Or,t)}async readULE32(e){let t=await this.read(4,e);return new Uint32Array(t.buffer)[0]}async readUBE32(e){let t=await this.read(4,e);return new DataView(t.buffer).getUint32(0,!1)}async readULE64(e){let t=await this.read(8,e),n=new Uint32Array(t.buffer);return n[1]*4294967296+n[0]}async readString(e){let t=this,n=e===void 0?t.pos:e;if(n>this.totalSize){if(this.readOnly)throw Error(`Reading out of bounds`);this._resizeIfNeeded(e)}let r=!1,i=``;for(;!r;){let e=Math.floor(n/Q),a=n%Q;if(t.o.data[e]===void 0)throw Error(`ERROR`);let o=Math.min(2048,t.o.data[e].length-a),s=new Uint8Array(t.o.data[e].buffer,a,o),c=s.findIndex(e=>e===0);r=c!==-1,r?(i+=new TextDecoder().decode(s.slice(0,c)),t.pos=e*Q+a+c+1):(i+=new TextDecoder().decode(s),t.pos=e*Q+a+s.length),n=t.pos}return i}},jr=512,Mr=0,Nr=65536,Pr=8192;async function Fr(e,t,n){if(typeof e==`string`&&(e={type:`file`,fileName:e,cacheSize:t||Nr,pageSize:n||Pr}),e.type==`file`)return await hr(e.fileName,jr|1026,e.cacheSize,e.pageSize);if(e.type==`mem`)return _r(e);if(e.type==`bigMem`)return wr(e);throw Error(`Invalid FastFile type: `+e.type)}async function Ir(e,t,n){if(e instanceof Uint8Array&&(e={type:`mem`,data:e}),typeof e==`string`&&(e={type:`mem`,data:await fetch(e).then(function(e){return e.arrayBuffer()}).then(function(e){return new Uint8Array(e)})}),e.type==`file`)return await hr(e.fileName,Mr,e.cacheSize,e.pageSize);if(e.type==`mem`)return await vr(e);if(e.type==`bigMem`)return await Tr(e);throw Error(`Invalid FastFile type: `+e.type)}async function Lr(e,t,n,r,i){let a=await Ir(e),o=await a.read(4),s=``;for(let e=0;e<4;e++)s+=String.fromCharCode(o[e]);if(s!=t)throw Error(e+`: Invalid File format`);if(await a.readULE32()>n)throw Error(`Version not supported`);let c=await a.readULE32(),l=[];for(let e=0;e<c;e++){let e=await a.readULE32(),t=await a.readULE64();l[e]===void 0&&(l[e]=[]),l[e].push({p:a.pos,size:t}),a.pos+=t}return{fd:a,sections:l}}async function Rr(e,t,n,r,i,a){let o=await Fr(e,i,a),s=new Uint8Array(4);for(let e=0;e<4;e++)s[e]=t.charCodeAt(e);return await o.write(s,0),await o.writeULE32(n),await o.writeULE32(r),o}async function zr(e,t){if(e.writingSection!==void 0)throw Error(`Already writing a section`);await e.writeULE32(t),e.writingSection={pSectionSize:e.pos},await e.writeULE64(0)}async function Br(e){if(e.writingSection===void 0)throw Error(`Not writing a section`);let t=e.pos-e.writingSection.pSectionSize-8,n=e.pos;e.pos=e.writingSection.pSectionSize,await e.writeULE64(t),e.pos=n,delete e.writingSection}async function Vr(e,t,n){if(e.readingSection!==void 0)throw Error(`Already reading a section`);if(!t[n])throw Error(e.fileName+`: Missing section `+n);if(t[n].length>1)throw Error(e.fileName+`: Section Duplicated `+n);e.pos=t[n][0].p,e.readingSection=t[n][0]}async function Hr(e,t){if(e.readingSection===void 0)throw Error(`Not reading a section`);if(!t&&e.pos-e.readingSection.p!=e.readingSection.size)throw Error(`Invalid section size reading`);delete e.readingSection}async function Ur(e,t,n,r){let i=new Uint8Array(n);X.toRprLE(i,0,t,n),await e.write(i,r)}async function Wr(e,t,n){let r=await e.read(t,n);return X.fromRprLE(r,0,t)}async function Gr(e,t,n,r,i){if(r=r===void 0?0:r,i=i===void 0?t[n][0].size-r:i,r+i>t[n][0].size)throw Error(`Reading out of the range of the section`);let a;return a=i<1<<30?new Uint8Array(i):new J(i),await e.readToBuffer(a,0,i,t[n][0].p+r),a}X.e(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),X.e(`21888242871839275222246405745257275088548364400416034343698204186575808495617`);var Kr=X.e(`1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab`,16),qr=X.e(`21888242871839275222246405745257275088696311157297823662689037894645226208583`);async function Jr(e,t){let n,r=t&&t.singleThread;if(X.eq(e,qr))n=await fr(r);else if(X.eq(e,Kr))n=await pr(r);else throw Error(`Curve not supported: ${X.toString(e)}`);return n}async function Yr(e,t){let n,r=t&&t.singleThread,i=a(e);if([`BN128`,`BN254`,`ALTBN128`].indexOf(i)>=0)n=await fr(r);else if([`BLS12381`].indexOf(i)>=0)n=await pr(r);else throw Error(`Curve not supported: ${e}`);return n;function a(e){return e.toUpperCase().match(/[A-Za-z0-9]+/g).join(``)}}var Xr=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},Zr={exports:{}},Qr=ei,$r=class extends Error{};$r.prototype.name=`AssertionError`;function ei(e,t){if(!e){var n=new $r(t);throw Error.captureStackTrace&&Error.captureStackTrace(n,ei),n}}var ti={exports:{}};function ni(e){return e.length}function ri(e){let t=e.byteLength,n=``;for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}function ii(e,t,n=0,r=ni(t)){let i=Math.min(r,e.byteLength-n);for(let r=0;r<i;r++)e[n+r]=t.charCodeAt(r);return i}var ai={byteLength:ni,toString:ri,write:ii},oi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,si=new Uint8Array(256);for(let e=0;e<64;e++)si[oi.charCodeAt(e)]=e;si[45]=62,si[95]=63;function ci(e){let t=e.length;return e.charCodeAt(t-1)===61&&t--,t>1&&e.charCodeAt(t-1)===61&&t--,t*3>>>2}function li(e){let t=e.byteLength,n=``;for(let r=0;r<t;r+=3)n+=oi[e[r]>>2]+oi[(e[r]&3)<<4|e[r+1]>>4]+oi[(e[r+1]&15)<<2|e[r+2]>>6]+oi[e[r+2]&63];return t%3==2?n=n.substring(0,n.length-1)+`=`:t%3==1&&(n=n.substring(0,n.length-2)+`==`),n}function ui(e,t,n=0,r=ci(t)){let i=Math.min(r,e.byteLength-n);for(let n=0,r=0;r<i;n+=4){let i=si[t.charCodeAt(n)],a=si[t.charCodeAt(n+1)],o=si[t.charCodeAt(n+2)],s=si[t.charCodeAt(n+3)];e[r++]=i<<2|a>>4,e[r++]=(a&15)<<4|o>>2,e[r++]=(o&3)<<6|s&63}return i}var di={byteLength:ci,toString:li,write:ui};function fi(e){return e.length>>>1}function pi(e){let t=e.byteLength;e=new DataView(e.buffer,e.byteOffset,t);let n=``,r=0;for(let i=t-t%4;r<i;r+=4)n+=e.getUint32(r).toString(16).padStart(8,`0`);for(;r<t;r++)n+=e.getUint8(r).toString(16).padStart(2,`0`);return n}function mi(e,t,n=0,r=fi(t)){let i=Math.min(r,e.byteLength-n);for(let r=0;r<i;r++){let i=gi(t.charCodeAt(r*2)),a=gi(t.charCodeAt(r*2+1));if(i===void 0||a===void 0)return e.subarray(0,r);e[n+r]=i<<4|a}return i}var hi={byteLength:fi,toString:pi,write:mi};function gi(e){if(e>=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}function _i(e){let t=0;for(let n=0,r=e.length;n<r;n++){let i=e.charCodeAt(n);if(i>=55296&&i<=56319&&n+1<r){let r=e.charCodeAt(n+1);if(r>=56320&&r<=57343){t+=4,n++;continue}}i<=127?t+=1:i<=2047?t+=2:t+=3}return t}var vi;if(typeof TextDecoder<`u`){let e=new TextDecoder;vi=function(t){return e.decode(t)}}else vi=function(e){let t=e.byteLength,n=``,r=0;for(;r<t;){let i=e[r];if(i<=127){n+=String.fromCharCode(i),r++;continue}let a=0,o=0;if(i<=223?(a=1,o=i&31):i<=239?(a=2,o=i&15):i<=244&&(a=3,o=i&7),t-r-a>0){let t=0;for(;t<a;)i=e[r+t+1],o=o<<6|i&63,t+=1}else o=65533,a=t-r;n+=String.fromCodePoint(o),r+=a+1}return n};var yi;if(typeof TextEncoder<`u`){let e=new TextEncoder;yi=function(t,n,r=0,i=_i(n)){let a=Math.min(i,t.byteLength-r);return e.encodeInto(n,t.subarray(r,r+a)),a}}else yi=function(e,t,n=0,r=_i(t)){let i=Math.min(r,e.byteLength-n);e=e.subarray(n,n+i);let a=0,o=0;for(;a<t.length;){let n=t.codePointAt(a);if(n<=127){e[o++]=n,a++;continue}let r=0,i=0;for(n<=2047?(r=6,i=192):n<=65535?(r=12,i=224):n<=2097151&&(r=18,i=240),e[o++]=i|n>>r,r-=6;r>=0;)e[o++]=128|n>>r&63,r-=6;a+=n>=65536?2:1}return i};var bi={byteLength:_i,toString:vi,write:yi};function xi(e){return e.length*2}function Si(e){let t=e.byteLength,n=``;for(let r=0;r<t-1;r+=2)n+=String.fromCharCode(e[r]+e[r+1]*256);return n}function Ci(e,t,n=0,r=xi(t)){let i=Math.min(r,e.byteLength-n),a=i;for(let r=0;r<t.length&&!((a-=2)<0);++r){let i=t.charCodeAt(r),a=i>>8,o=i%256;e[n+r*2]=o,e[n+r*2+1]=a}return i}var wi={byteLength:xi,toString:Si,write:Ci};(function(e,t){let n=ai,r=di,i=hi,a=bi,o=wi,s=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function c(e){switch(e){case`ascii`:return n;case`base64`:return r;case`hex`:return i;case`utf8`:case`utf-8`:case void 0:return a;case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return o;default:throw Error(`Unknown encoding: ${e}`)}}function l(e){return e instanceof Uint8Array}function u(e){try{return c(e),!0}catch{return!1}}function d(e,n,r){let i=new Uint8Array(e);return n!==void 0&&t.fill(i,n,0,i.byteLength,r),i}function f(e){return new Uint8Array(e)}function p(e){return new Uint8Array(e)}function m(e,t){return c(t).byteLength(e)}function h(e,t){if(e===t)return 0;let n=Math.min(e.byteLength,t.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),t=new DataView(t.buffer,t.byteOffset,t.byteLength);let r=0;for(let i=n-n%4;r<i&&e.getUint32(r,s)===t.getUint32(r,s);r+=4);for(;r<n;r++){let n=e.getUint8(r),i=t.getUint8(r);if(n<i)return-1;if(n>i)return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function g(e,t){t===void 0&&(t=e.reduce((e,t)=>e+t.byteLength,0));let n=new Uint8Array(t),r=0;for(let t of e){if(r+t.byteLength>n.byteLength){let e=t.subarray(0,n.byteLength-r);return n.set(e,r),n}n.set(t,r),r+=t.byteLength}return n}function _(e,t,n=0,r=0,i=e.byteLength){if(i>0&&i<r||i===r||e.byteLength===0||t.byteLength===0)return 0;if(n<0)throw RangeError(`targetStart is out of range`);if(r<0||r>=e.byteLength)throw RangeError(`sourceStart is out of range`);if(i<0)throw RangeError(`sourceEnd is out of range`);n>=t.byteLength&&(n=t.byteLength),i>e.byteLength&&(i=e.byteLength),t.byteLength-n<i-r&&(i=t.length-n+r);let a=i-r;return e===t?t.copyWithin(n,r,i):t.set(e.subarray(r,i),n),a}function v(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;let n=e.byteLength;e=new DataView(e.buffer,e.byteOffset,e.byteLength),t=new DataView(t.buffer,t.byteOffset,t.byteLength);let r=0;for(let i=n-n%4;r<i;r+=4)if(e.getUint32(r,s)!==t.getUint32(r,s))return!1;for(;r<n;r++)if(e.getUint8(r)!==t.getUint8(r))return!1;return!0}function y(e,t,n,r,i){if(typeof t==`string`?typeof n==`string`?(i=n,n=0,r=e.byteLength):typeof r==`string`&&(i=r,r=e.byteLength):typeof t==`number`?t&=255:typeof t==`boolean`&&(t=+t),n<0||e.byteLength<n||e.byteLength<r)throw RangeError(`Out of range index`);if(n===void 0&&(n=0),r===void 0&&(r=e.byteLength),r<=n)return e;if(t||=0,typeof t==`number`)for(let i=n;i<r;++i)e[i]=t;else{t=l(t)?t:b(t,i);let a=t.byteLength;for(let i=0;i<r-n;++i)e[i+n]=t[i%a]}return e}function b(e,t,n){return typeof e==`string`?x(e,t):Array.isArray(e)?S(e):ArrayBuffer.isView(e)?C(e):w(e,t,n)}function x(e,t){let n=c(t),r=new Uint8Array(n.byteLength(e));return n.write(r,e,0,r.byteLength),r}function S(e){let t=new Uint8Array(e.length);return t.set(e),t}function C(e){let t=new Uint8Array(e.byteLength);return t.set(e),t}function w(e,t,n){return new Uint8Array(e,t,n)}function T(e,t,n,r){return D(e,t,n,r)!==-1}function E(e,t,n,r,i){if(e.byteLength===0)return-1;if(typeof n==`string`?(r=n,n=0):n===void 0?n=i?0:e.length-1:n<0&&(n+=e.byteLength),n>=e.byteLength){if(i)return-1;n=e.byteLength-1}else if(n<0)if(i)n=0;else return-1;if(typeof t==`string`)t=b(t,r);else if(typeof t==`number`)return t&=255,i?e.indexOf(t,n):e.lastIndexOf(t,n);if(t.byteLength===0)return-1;if(i){let r=-1;for(let i=n;i<e.byteLength;i++)if(e[i]===t[r===-1?0:i-r]){if(r===-1&&(r=i),i-r+1===t.byteLength)return r}else r!==-1&&(i-=i-r),r=-1}else{n+t.byteLength>e.byteLength&&(n=e.byteLength-t.byteLength);for(let r=n;r>=0;r--){let n=!0;for(let i=0;i<t.byteLength;i++)if(e[r+i]!==t[i]){n=!1;break}if(n)return r}}return-1}function D(e,t,n,r){return E(e,t,n,r,!0)}function O(e,t,n,r){return E(e,t,n,r,!1)}function k(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function A(e){let t=e.byteLength;if(t%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let n=0;n<t;n+=2)k(e,n,n+1);return e}function j(e){let t=e.byteLength;if(t%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let n=0;n<t;n+=4)k(e,n,n+3),k(e,n+1,n+2);return e}function M(e){let t=e.byteLength;if(t%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let n=0;n<t;n+=8)k(e,n,n+7),k(e,n+1,n+6),k(e,n+2,n+5),k(e,n+3,n+4);return e}function N(e){return e}function P(e,t,n=0,r=e.byteLength){let i=e.byteLength;return n>=i||r<=n?``:(n<0&&(n=0),r>i&&(r=i),(n!==0||r<i)&&(e=e.subarray(n,r)),c(t).toString(e))}function F(e,t,n,r,i){return n===void 0?i=`utf8`:r===void 0&&typeof n==`string`?(i=n,n=void 0):i===void 0&&typeof r==`string`&&(i=r,r=void 0),c(i).write(e,t,n,r)}function I(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setFloat64(n,t,!0),n+8}function L(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setFloat32(n,t,!0),n+4}function R(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(n,t,!0),n+4}function z(e,t,n){return n===void 0&&(n=0),new DataView(e.buffer,e.byteOffset,e.byteLength).setInt32(n,t,!0),n+4}function B(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(t,!0)}function V(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat32(t,!0)}function ee(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,!0)}function H(e,t){return t===void 0&&(t=0),new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t,!0)}e.exports=t={isBuffer:l,isEncoding:u,alloc:d,allocUnsafe:f,allocUnsafeSlow:p,byteLength:m,compare:h,concat:g,copy:_,equals:v,fill:y,from:b,includes:T,indexOf:D,lastIndexOf:O,swap16:A,swap32:j,swap64:M,toBuffer:N,toString:P,write:F,writeDoubleLE:I,writeFloatLE:L,writeUInt32LE:R,writeInt32LE:z,readDoubleLE:B,readFloatLE:V,readUInt32LE:ee,readInt32LE:H}})(ti,ti.exports);var Ti,Ei;function Di(){if(Ei)return Ti;Ei=1;var e=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},t=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})(),n=e({"wasm-binary:./blake2b.wat"(e,n){n.exports=t(`AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMKvz8EwAIAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAAQoiS853/zPmE6gBBACkDAIU3A4ABIABCu86qptjQ67O7f0EIKQMAhTcDiAEgAEKr8NP0r+68tzxBECkDAIU3A5ABIABC8e30+KWn/aelf0EYKQMAhTcDmAEgAELRhZrv+s+Uh9EAQSApAwCFNwOgASAAQp/Y+dnCkdqCm39BKCkDAIU3A6gBIABC6/qG2r+19sEfQTApAwCFNwOwASAAQvnC+JuRo7Pw2wBBOCkDAIU3A7gBIABCADcDwAEgAEIANwPIASAAQgA3A9ABC20BA38gAEHAAWohAyAAQcgBaiEEIAQpAwCnIQUCQANAIAEgAkYNASAFQYABRgRAIAMgAykDACAFrXw3AwBBACEFIAAQAwsgACAFaiABLQAAOgAAIAVBAWohBSABQQFqIQEMAAsLIAQgBa03AwALYQEDfyAAQcABaiEBIABByAFqIQIgASABKQMAIAIpAwB8NwMAIABCfzcD0AEgAikDAKchAwJAA0AgA0GAAUYNASAAIANqQQA6AAAgA0EBaiEDDAALCyACIAOtNwMAIAAQAwuqOwIgfgl/IABBgAFqISEgAEGIAWohIiAAQZABaiEjIABBmAFqISQgAEGgAWohJSAAQagBaiEmIABBsAFqIScgAEG4AWohKCAhKQMAIQEgIikDACECICMpAwAhAyAkKQMAIQQgJSkDACEFICYpAwAhBiAnKQMAIQcgKCkDACEIQoiS853/zPmE6gAhCUK7zqqm2NDrs7t/IQpCq/DT9K/uvLc8IQtC8e30+KWn/aelfyEMQtGFmu/6z5SH0QAhDUKf2PnZwpHagpt/IQ5C6/qG2r+19sEfIQ9C+cL4m5Gjs/DbACEQIAApAwAhESAAKQMIIRIgACkDECETIAApAxghFCAAKQMgIRUgACkDKCEWIAApAzAhFyAAKQM4IRggACkDQCEZIAApA0ghGiAAKQNQIRsgACkDWCEcIAApA2AhHSAAKQNoIR4gACkDcCEfIAApA3ghICANIAApA8ABhSENIA8gACkD0AGFIQ8gASAFIBF8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSASfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgE3x8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBR8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAVfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgFnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBd8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAYfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgGXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBp8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAbfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgHHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIB18fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAefHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgH3x8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFICB8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAffHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgG3x8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBV8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAZfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgGnx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHICB8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAefHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggF3x8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBJ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAdfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgEXx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBN8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAcfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGHx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBZ8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAUfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgHHx8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBl8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAdfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgEXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBZ8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByATfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggIHx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIB58fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAbfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgH3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBR8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAXfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggGHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBJ8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAafHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFXx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBh8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAafHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgFHx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBJ8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAefHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHXx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBx8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAffHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgE3x8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBd8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAWfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgG3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBV8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCARfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgIHx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBl8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAafHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEXx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBZ8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAYfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgE3x8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBV8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAbfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggIHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIB98fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiASfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgHHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIB18fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAXfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGXx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBR8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAefHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgE3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIB18fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAXfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgG3x8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBF8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAcfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggGXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBR8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAVfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHnx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBh8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAWfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggIHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIB98fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSASfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgGnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIB18fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAWfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgEnx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGICB8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAffHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBV8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAbfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgEXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBh8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAXfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgFHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBp8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCATfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgGXx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBx8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAefHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgHHx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBh8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAffHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgHXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBJ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAUfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGnx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBZ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiARfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgIHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBV8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAZfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggF3x8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBN8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAbfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgF3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFICB8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAffHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGnx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBx8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAUfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggEXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBl8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAdfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgE3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIB58fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAYfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggEnx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBV8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAbfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBt8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSATfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgGXx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBV8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAYfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgF3x8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBJ8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAWfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgIHx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBx8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAafHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgH3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBR8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAdfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgHnx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBF8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSARfHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEnx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBN8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAUfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgFXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBZ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAXfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBl8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAafHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgG3x8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBx8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAdfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggHnx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIB98fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAgfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgH3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBt8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAVfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBp8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAgfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggHnx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBd8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiASfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHXx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBF8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByATfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggHHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBh8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAWfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFHx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgISAhKQMAIAEgCYWFNwMAICIgIikDACACIAqFhTcDACAjICMpAwAgAyALhYU3AwAgJCAkKQMAIAQgDIWFNwMAICUgJSkDACAFIA2FhTcDACAmICYpAwAgBiAOhYU3AwAgJyAnKQMAIAcgD4WFNwMAICggKCkDACAIIBCFhTcDAAs=`)}})(),r=WebAssembly.compile(n);return Ti=async e=>(await WebAssembly.instantiate(await r,e)).exports,Ti}var Oi=Qr,ki=ti.exports,Ai=null,ji=typeof WebAssembly<`u`&&Di()().then(e=>{Ai=e}),Mi=64,Ni=[];Zr.exports=$;var Pi=Zr.exports.BYTES_MIN=16,Fi=Zr.exports.BYTES_MAX=64;Zr.exports.BYTES=32;var Ii=Zr.exports.KEYBYTES_MIN=16,Li=Zr.exports.KEYBYTES_MAX=64;Zr.exports.KEYBYTES=32;var Ri=Zr.exports.SALTBYTES=16,zi=Zr.exports.PERSONALBYTES=16;function $(e,t,n,r,i){if(!(this instanceof $))return new $(e,t,n,r,i);if(!Ai)throw Error(`WASM not loaded. Wait for Blake2b.ready(cb)`);e||=32,i!==!0&&(Oi(e>=Pi,`digestLength must be at least `+Pi+`, was given `+e),Oi(e<=Fi,`digestLength must be at most `+Fi+`, was given `+e),t!=null&&(Oi(t instanceof Uint8Array,`key must be Uint8Array or Buffer`),Oi(t.length>=Ii,`key must be at least `+Ii+`, was given `+t.length),Oi(t.length<=Li,`key must be at least `+Li+`, was given `+t.length)),n!=null&&(Oi(n instanceof Uint8Array,`salt must be Uint8Array or Buffer`),Oi(n.length===Ri,`salt must be exactly `+Ri+`, was given `+n.length)),r!=null&&(Oi(r instanceof Uint8Array,`personal must be Uint8Array or Buffer`),Oi(r.length===zi,`personal must be exactly `+zi+`, was given `+r.length))),Ni.length||(Ni.push(Mi),Mi+=216),this.digestLength=e,this.finalized=!1,this.pointer=Ni.pop(),this._memory=new Uint8Array(Ai.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=t?t.length:0,this._memory[2]=1,this._memory[3]=1,n&&this._memory.set(n,32),r&&this._memory.set(r,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),Ai.blake2b_init(this.pointer,this.digestLength),t&&(this.update(t),this._memory.fill(0,Mi,Mi+t.length),this._memory[this.pointer+200]=128)}$.prototype._realloc=function(e){Ai.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(Ai.memory.buffer)},$.prototype.update=function(e){return Oi(this.finalized===!1,`Hash instance finalized`),Oi(e instanceof Uint8Array,`input must be Uint8Array or Buffer`),Mi+e.length>this._memory.length&&this._realloc(Mi+e.length),this._memory.set(e,Mi),Ai.blake2b_update(this.pointer,Mi,Mi+e.length),this},$.prototype.digest=function(e){if(Oi(this.finalized===!1,`Hash instance finalized`),this.finalized=!0,Ni.push(this.pointer),Ai.blake2b_final(this.pointer),!e||e===`binary`)return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e==`string`)return ki.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);Oi(e instanceof Uint8Array&&e.length>=this.digestLength,`input must be Uint8Array or Buffer`);for(var t=0;t<this.digestLength;t++)e[t]=this._memory[this.pointer+128+t];return e},$.prototype.final=$.prototype.digest,$.WASM=Ai,$.SUPPORTED=typeof WebAssembly<`u`,$.ready=function(e){return e||=Bi,ji?ji.then(()=>e(),e):e(Error(`WebAssembly not supported`))},$.prototype.ready=$.ready,$.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)},$.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function Bi(){}function Vi(e){return(e&4294901760?(e&=4294901760,16):0)|(e&4278255360?(e&=4278255360,8):0)|(e&4042322160?(e&=4042322160,4):0)|(e&3435973836?(e&=3435973836,2):0)|(e&2863311530)!=0}var Hi=1,Ui=2,Wi=10,Gi=2;async function Ki(e,t,n){let r=await e.read(t.G1.F.n8*2),i=t.G1.fromRprLEM(r,0);return n?t.G1.toObject(i):i}async function qi(e,t,n){let r=await e.read(t.G2.F.n8*2),i=t.G2.fromRprLEM(r,0);return n?t.G2.toObject(i):i}async function Ji(e,t,n,r){await Vr(e,t,1);let i=await e.readULE32();if(await Hr(e),i===Hi)return await Yi(e,t,n,r);if(i===Ui)return await Xi(e,t,n,r);if(i===Wi)return await Zi(e,t,n,r);throw Error(`Protocol not supported: `)}async function Yi(e,t,n,r){let i={};i.protocol=`groth16`,await Vr(e,t,2);let a=await e.readULE32();i.n8q=a,i.q=await Wr(e,a);let o=await e.readULE32();return i.n8r=o,i.r=await Wr(e,o),i.curve=await Jr(i.q,r),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Vi(i.domainSize),i.vk_alpha_1=await Ki(e,i.curve,n),i.vk_beta_1=await Ki(e,i.curve,n),i.vk_beta_2=await qi(e,i.curve,n),i.vk_gamma_2=await qi(e,i.curve,n),i.vk_delta_1=await Ki(e,i.curve,n),i.vk_delta_2=await qi(e,i.curve,n),await Hr(e),i}async function Xi(e,t,n,r){let i={};i.protocol=`plonk`,await Vr(e,t,2);let a=await e.readULE32();i.n8q=a,i.q=await Wr(e,a);let o=await e.readULE32();return i.n8r=o,i.r=await Wr(e,o),i.curve=await Jr(i.q,r),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Vi(i.domainSize),i.nAdditions=await e.readULE32(),i.nConstraints=await e.readULE32(),i.k1=await e.read(o),i.k2=await e.read(o),i.Qm=await Ki(e,i.curve,n),i.Ql=await Ki(e,i.curve,n),i.Qr=await Ki(e,i.curve,n),i.Qo=await Ki(e,i.curve,n),i.Qc=await Ki(e,i.curve,n),i.S1=await Ki(e,i.curve,n),i.S2=await Ki(e,i.curve,n),i.S3=await Ki(e,i.curve,n),i.X_2=await qi(e,i.curve,n),await Hr(e),i}async function Zi(e,t,n,r){let i={};i.protocol=`fflonk`,i.protocolId=Wi,await Vr(e,t,Gi);let a=await e.readULE32();i.n8q=a,i.q=await Wr(e,a),i.curve=await Jr(i.q,r);let o=await e.readULE32();return i.n8r=o,i.r=await Wr(e,o),i.nVars=await e.readULE32(),i.nPublic=await e.readULE32(),i.domainSize=await e.readULE32(),i.power=Vi(i.domainSize),i.nAdditions=await e.readULE32(),i.nConstraints=await e.readULE32(),i.k1=await e.read(o),i.k2=await e.read(o),i.w3=await e.read(o),i.w4=await e.read(o),i.w8=await e.read(o),i.wr=await e.read(o),i.X_2=await qi(e,i.curve,n),i.C0=await Ki(e,i.curve,n),await Hr(e),i}async function Qi(e,t,n){await zr(e,1);let r=(Math.floor((X.bitLength(n)-1)/64)+1)*8;if(await e.writeULE32(r),await Ur(e,n,r),t.byteLength%r!=0)throw Error(`Invalid witness length`);await e.writeULE32(t.byteLength/r),await Br(e),await zr(e,2),await e.write(t),await Br(e)}async function $i(e,t){await Vr(e,t,1);let n=await e.readULE32(),r=await Wr(e,n),i=await e.readULE32();return await Hr(e),{n8:n,q:r,nWitness:i}}var{stringifyBigInts:ea}=Z;async function ta(e,t,n,r){let{fd:i,sections:a}=await Lr(t,`wtns`,2),o=await $i(i,a),{fd:s,sections:c}=await Lr(e,`zkey`,2),l=await Ji(s,c,void 0,r);if(l.protocol!=`groth16`)throw Error(`zkey file is not groth16`);if(!X.eq(l.r,o.q))throw Error(`Curve of the witness does not match the curve of the proving key`);if(o.nWitness!=l.nVars)throw Error(`Invalid witness length. Circuit: ${l.nVars}, witness: ${o.nWitness}`);let u=l.curve,d=u.Fr,f=u.G1,p=u.G2,m=Vi(l.domainSize);n&&n.debug(`Reading Wtns`);let h=await Gr(i,a,2);n&&n.debug(`Reading Coeffs`);let g=await Gr(s,c,4);n&&n.debug(`Building ABC`);let[_,v,y]=await na(u,l,h,g,n),b=m==d.s?u.Fr.shift:u.Fr.w[m+1],x=await d.ifft(_,``,``,n,`IFFT_A`),S=await d.batchApplyKey(x,d.e(1),b),C=await d.fft(S,``,``,n,`FFT_A`),w=await d.ifft(v,``,``,n,`IFFT_B`),T=await d.batchApplyKey(w,d.e(1),b),E=await d.fft(T,``,``,n,`FFT_B`),D=await d.ifft(y,``,``,n,`IFFT_C`),O=await d.batchApplyKey(D,d.e(1),b),k=await d.fft(O,``,``,n,`FFT_C`);n&&n.debug(`Join ABC`);let A=await ra(u,l,C,E,k,n),j={};n&&n.debug(`Reading A Points`);let M=await Gr(s,c,5);j.pi_a=await u.G1.multiExpAffine(M,h,n,`multiexp A`),n&&n.debug(`Reading B1 Points`);let N=await Gr(s,c,6),P=await u.G1.multiExpAffine(N,h,n,`multiexp B1`);n&&n.debug(`Reading B2 Points`);let F=await Gr(s,c,7);j.pi_b=await u.G2.multiExpAffine(F,h,n,`multiexp B2`),n&&n.debug(`Reading C Points`);let I=await Gr(s,c,8);j.pi_c=await u.G1.multiExpAffine(I,h.slice((l.nPublic+1)*u.Fr.n8),n,`multiexp C`),n&&n.debug(`Reading H Points`);let L=await Gr(s,c,9),R=await u.G1.multiExpAffine(L,A,n,`multiexp H`),z=u.Fr.random(),B=u.Fr.random();j.pi_a=f.add(j.pi_a,l.vk_alpha_1),j.pi_a=f.add(j.pi_a,f.timesFr(l.vk_delta_1,z)),j.pi_b=p.add(j.pi_b,l.vk_beta_2),j.pi_b=p.add(j.pi_b,p.timesFr(l.vk_delta_2,B)),P=f.add(P,l.vk_beta_1),P=f.add(P,f.timesFr(l.vk_delta_1,B)),j.pi_c=f.add(j.pi_c,R),j.pi_c=f.add(j.pi_c,f.timesFr(j.pi_a,B)),j.pi_c=f.add(j.pi_c,f.timesFr(P,z)),j.pi_c=f.add(j.pi_c,f.timesFr(l.vk_delta_1,d.neg(d.mul(z,B))));let V=[];for(let e=1;e<=l.nPublic;e++){let t=h.slice(e*d.n8,e*d.n8+d.n8);V.push(X.fromRprLE(t))}return j.pi_a=f.toObject(f.toAffine(j.pi_a)),j.pi_b=p.toObject(p.toAffine(j.pi_b)),j.pi_c=f.toObject(f.toAffine(j.pi_c)),j.protocol=`groth16`,j.curve=u.name,await s.close(),await i.close(),j=ea(j),V=ea(V),{proof:j,publicSignals:V}}async function na(e,t,n,r,i){let a=e.Fr.n8,o=12+t.n8r,s=(r.byteLength-4)/o,c=new J(t.domainSize*a),l=new J(t.domainSize*a),u=new J(t.domainSize*a),d=[c,l];for(let t=0;t<s;t++){i&&t%1e6==0&&i.debug(`QAP AB: ${t}/${s}`);let c=r.slice(4+t*o,4+t*o+o),l=new DataView(c.buffer),u=l.getUint32(0,!0),f=l.getUint32(4,!0),p=l.getUint32(8,!0),m=c.slice(12,12+a);d[u].set(e.Fr.add(d[u].slice(f*a,f*a+a),e.Fr.mul(m,n.slice(p*a,p*a+a))),f*a)}for(let n=0;n<t.domainSize;n++)i&&n%1e6==0&&i.debug(`QAP C: ${n}/${t.domainSize}`),u.set(e.Fr.mul(c.slice(n*a,n*a+a),l.slice(n*a,n*a+a)),n*a);return[c,l,u]}async function ra(e,t,n,r,i,a){let o=1<<22,s=e.Fr.n8,c=Math.floor(n.byteLength/e.Fr.n8),l=[];for(let t=0;t<c;t+=o){a&&a.debug(`JoinABC: ${t}/${c}`);let u=Math.min(c-t,o),d=[],f=n.slice(t*s,(t+u)*s),p=r.slice(t*s,(t+u)*s),m=i.slice(t*s,(t+u)*s);d.push({cmd:`ALLOCSET`,var:0,buff:f}),d.push({cmd:`ALLOCSET`,var:1,buff:p}),d.push({cmd:`ALLOCSET`,var:2,buff:m}),d.push({cmd:`ALLOC`,var:3,len:u*s}),d.push({cmd:`CALL`,fnName:`qap_joinABC`,params:[{var:0},{var:1},{var:2},{val:u},{var:3}]}),d.push({cmd:`CALL`,fnName:`frm_batchFromMontgomery`,params:[{var:3},{val:u},{var:3}]}),d.push({cmd:`GET`,out:0,var:3,len:u*s}),l.push(e.tm.queueAction(d))}let u=await Promise.all(l),d;d=n instanceof J?new J(n.byteLength):new Uint8Array(n.byteLength);let f=0;for(let e=0;e<u.length;e++)d.set(u[e][0],f),f+=u[e][0].byteLength;return d}function ia(e){let t=[];return n(t,e),t;function n(e,t){if(Array.isArray(t))for(let r=0;r<t.length;r++)n(e,t[r]);else e.push(t)}}function aa(e,t){let n=BigInt(e)%t;return n<0&&(n+=t),n}function oa(e){let t=BigInt(2)**BigInt(64),n=BigInt(`0xCBF29CE484222325`);for(let r=0;r<e.length;r++)n^=BigInt(e[r].charCodeAt(0)),n*=BigInt(1099511628211),n%=t;let r=n.toString(16),i=16-r.length;return r=`0`.repeat(i).concat(r),r}function sa(e,t){let n=[],r=BigInt(e),i=BigInt(4294967296);for(;r;)n.unshift(Number(r%i)),r/=i;if(t){let e=t-n.length;for(;e>0;)n.unshift(0),e--}return n}async function ca(e,t){let n,r,i;t||={};let a=1,o=0,s=0,c=!1;if(e instanceof WebAssembly.Instance)n=e,c=!0;else{let c=32767;if(t.memorySize&&(c=parseInt(t.memorySize),c<0))throw Error(`Invalid memory size`);let l=!1;for(;!l;)try{i=new WebAssembly.Memory({initial:c}),l=!0}catch(e){if(c<=1)throw e;console.warn(`Could not allocate `+c*1024*64+` bytes. This may cause severe instability. Trying with `+c*1024*64/2+` bytes`),c=Math.floor(c/2)}let f=await WebAssembly.compile(e),p=``,m=``;n=await WebAssembly.instantiate(f,{env:{memory:i},runtime:{printDebug:function(e){console.log(`printDebug:`,e)},exceptionHandler:function(e){let t;throw t=e===1?`Signal not found. `:e===2?`Too many signals set. `:e===3?`Signal already set. `:e===4?`Assert Failed. `:e===5?`Not enough memory. `:e===6?`Input signal array access exceeds the size. `:`Unknown error. `,console.error(`ERROR: `,e,p),Error(t+p)},printErrorMessage:function(){p+=u()+`
121
- `},writeBufferMessage:function(){let e=u();e===`
122
- `?(console.log(m),m=``):(m!==``&&(m+=` `),m+=e)},showSharedRWMemory:function(){let e=n.exports.getFieldNumLen32(),t=new Uint32Array(e);for(let r=0;r<e;r++)t[e-1-r]=n.exports.readSharedRWMemory(r);if(a>=2&&(o>=1||s>=7)){m!==``&&(m+=` `);let e=X.fromArray(t,4294967296).toString();m+=e}else console.log(X.fromArray(t,4294967296))},error:function(e,n,i,a,o,s){let c;throw c=e===7?d(n)+` `+r.getFr(a).toString()+` != `+r.getFr(o).toString()+` `+d(s):e===9?d(n)+` `+r.getFr(a).toString()+` `+d(o):e===5&&t.sym?d(n)+` `+t.sym.labelIdx2Name[o]:d(n)+` `+i+` `+a+` `+o+` `+s,console.log(`ERROR: `,e,c),Error(c)},log:function(e){console.log(r.getFr(e).toString())},logGetSignal:function(e,n){t.logGetSignal&&t.logGetSignal(e,r.getFr(n))},logSetSignal:function(e,n){t.logSetSignal&&t.logSetSignal(e,r.getFr(n))},logStartComponent:function(e){t.logStartComponent&&t.logStartComponent(e)},logFinishComponent:function(e){t.logFinishComponent&&t.logFinishComponent(e)}}})}typeof n.exports.getVersion==`function`&&(a=n.exports.getVersion()),typeof n.exports.getMinorVersion==`function`&&(o=n.exports.getMinorVersion()),typeof n.exports.getPatchVersion==`function`&&(s=n.exports.getPatchVersion());let l=t&&(t.sanityCheck||t.logGetSignal||t.logSetSignal||t.logStartComponent||t.logFinishComponent);if(a===2)r=new ua(n,l);else if(a===1){if(c)throw Error(`Loading code from WebAssembly instance is not supported for circom version 1`);r=new la(i,n,l)}else throw Error(`Unsupported circom version: ${a}`);return r;function u(){let e=``,t=n.exports.getMessageChar();for(;t!==0;)e+=String.fromCharCode(t),t=n.exports.getMessageChar();return e}function d(e){let t=new Uint8Array(i.buffer),n=[];for(let r=0;t[e+r]>0;r++)n.push(t[e+r]);return String.fromCharCode.apply(null,n)}}var la=class{constructor(e,t,n){this.memory=e,this.i32=new Uint32Array(e.buffer),this.instance=t,this.n32=(this.instance.exports.getFrLen()>>2)-2;let r=this.instance.exports.getPRawPrime(),i=Array(this.n32);for(let e=0;e<this.n32;e++)i[this.n32-1-e]=this.i32[(r>>2)+e];this.prime=X.fromArray(i,4294967296),this.Fr=new ke(this.prime),this.mask32=X.fromString(`FFFFFFFF`,16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(X.shiftLeft(1,this.n64*64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=n}circom_version(){return 1}async _doCalculateWitness(e,t){this.instance.exports.init(this.sanityCheck||t?1:0);let n=this.allocInt(),r=this.allocFr();Object.keys(e).forEach(t=>{let i=oa(t),a=parseInt(i.slice(0,8),16),o=parseInt(i.slice(8,16),16);try{this.instance.exports.getSignalOffset32(n,0,a,o)}catch{throw Error(`Signal ${t} is not an input of the circuit.`)}let s=this.getInt(n),c=ia(e[t]);for(let e=0;e<c.length;e++)this.setFr(r,c[e]),this.instance.exports.setSignal(0,0,s+e,r)})}async calculateWitness(e,t){let n=this,r=n.i32[0],i=[];await n._doCalculateWitness(e,t);for(let e=0;e<n.NVars;e++){let t=n.instance.exports.getPWitness(e);i.push(n.getFr(t))}return n.i32[0]=r,i}async calculateBinWitness(e,t){let n=this,r=n.i32[0];await n._doCalculateWitness(e,t);let i=n.instance.exports.getWitnessBuffer();n.i32[0]=r;let a=n.memory.buffer.slice(i,i+n.NVars*n.n64*8);return new Uint8Array(a)}allocInt(){let e=this.i32[0];return this.i32[0]=e+8,e}allocFr(){let e=this.i32[0];return this.i32[0]=e+this.n32*4+8,e}getInt(e){return this.i32[e>>2]}setInt(e,t){this.i32[e>>2]=t}getFr(e){let t=this,n=e>>2;if(t.i32[n+1]&2147483648){let e=Array(t.n32);for(let r=0;r<t.n32;r++)e[t.n32-1-r]=t.i32[n+2+r];let i=t.Fr.e(X.fromArray(e,4294967296));return t.i32[n+1]&1073741824?r(i):i}else if(t.i32[n]&2147483648)return t.Fr.e(t.i32[n]-4294967296);else return t.Fr.e(t.i32[n]);function r(e){return t.Fr.mul(t.RInv,e)}}setFr(e,t){let n=this;t=n.Fr.e(t);let r=n.Fr.neg(n.Fr.e(`80000000`,16)),i=n.Fr.e(`7FFFFFFF`,16);if(n.Fr.geq(t,r)&&n.Fr.leq(t,i)){let i;n.Fr.geq(t,n.Fr.zero)?i=X.toNumber(t):(i=X.toNumber(n.Fr.sub(t,r)),i-=2147483648,i=4294967296+i),n.i32[e>>2]=i,n.i32[(e>>2)+1]=0;return}n.i32[e>>2]=0,n.i32[(e>>2)+1]=2147483648;let a=X.toArray(t,4294967296);for(let t=0;t<n.n32;t++){let r=a.length-1-t;r>=0?n.i32[(e>>2)+2+t]=a[r]:n.i32[(e>>2)+2+t]=0}}},ua=class{constructor(e,t){this.instance=e,this.version=this.instance.exports.getVersion(),this.n32=this.instance.exports.getFieldNumLen32(),this.instance.exports.getRawPrime();let n=new Uint32Array(this.n32);for(let e=0;e<this.n32;e++)n[this.n32-1-e]=this.instance.exports.readSharedRWMemory(e);this.prime=X.fromArray(n,4294967296),this.witnessSize=this.instance.exports.getWitnessSize(),this.sanityCheck=t}circom_version(){return this.instance.exports.getVersion()}async _doCalculateWitness(e,t){this.instance.exports.init(this.sanityCheck||t?1:0);let n=Object.keys(e),r=0;if(n.forEach(t=>{let n=oa(t),i=parseInt(n.slice(0,8),16),a=parseInt(n.slice(8,16),16),o=ia(e[t]);if(typeof this.instance.exports.getInputSignalSize==`function`){let e=this.instance.exports.getInputSignalSize(i,a);if(e<0)throw Error(`Signal ${t} not found\n`);if(o.length<e)throw Error(`Not enough values for input signal ${t}\n`);if(o.length>e)throw Error(`Too many values for input signal ${t}\n`)}for(let e=0;e<o.length;e++){let t=sa(aa(o[e],this.prime),this.n32);for(let e=0;e<this.n32;e++)this.instance.exports.writeSharedRWMemory(e,t[this.n32-1-e]);try{this.instance.exports.setInputSignal(i,a,e),r++}catch(e){throw Error(e)}}}),r<this.instance.exports.getInputSize())throw Error(`Not all inputs have been set. Only ${r} out of ${this.instance.exports.getInputSize()}`)}async calculateWitness(e,t){let n=[];await this._doCalculateWitness(e,t);for(let e=0;e<this.witnessSize;e++){this.instance.exports.getWitness(e);let t=new Uint32Array(this.n32);for(let e=0;e<this.n32;e++)t[this.n32-1-e]=this.instance.exports.readSharedRWMemory(e);n.push(X.fromArray(t,4294967296))}return n}async calculateWTNSBin(e,t){let n=new Uint32Array(this.witnessSize*this.n32+this.n32+11),r=new Uint8Array(n.buffer);await this._doCalculateWitness(e,t),r[0]=119,r[1]=116,r[2]=110,r[3]=115,n[1]=2,n[2]=2,n[3]=1;let i=this.n32*4,a=(8+i).toString(16);n[4]=parseInt(a.slice(0,8),16),n[5]=parseInt(a.slice(8,16),16),n[6]=i,this.instance.exports.getRawPrime();let o=7;for(let e=0;e<this.n32;e++)n[o+e]=this.instance.exports.readSharedRWMemory(e);o+=this.n32,n[o]=this.witnessSize,o++,n[o]=2,o++;let s=(i*this.witnessSize).toString(16);n[o]=parseInt(s.slice(0,8),16),n[o+1]=parseInt(s.slice(8,16),16),o+=2;for(let e=0;e<this.witnessSize;e++){this.instance.exports.getWitness(e);for(let e=0;e<this.n32;e++)n[o+e]=this.instance.exports.readSharedRWMemory(e);o+=this.n32}return r}},{unstringifyBigInts:da}=Z;async function fa(e,t,n,r){let i=da(e),a=await Ir(t),o=await a.read(a.totalSize);await a.close();let s=await ca(o,r);if(s.circom_version()===1){let e=await s.calculateBinWitness(i),t=await Rr(n,`wtns`,2,2);await Qi(t,e,s.prime),await t.close()}else{let e=await Fr(n),t=await s.calculateWTNSBin(i);await e.write(t),await e.close()}}var{unstringifyBigInts:pa}=Z;async function ma(e,t,n,r,i,a){let o=pa(e),s={type:`mem`};return await fa(o,t,s,i),await ta(n,s,r,a)}var{unstringifyBigInts:ha}=Z;async function ga(e,t,n,r){let i=ha(e),a=ha(n),o=ha(t),s=await Yr(i.curve),c=s.G1.fromObject(i.IC[0]),l=new Uint8Array(s.G1.F.n8*2*o.length),u=new Uint8Array(s.Fr.n8*o.length);if(!va(s,o))return r&&r.error(`Public inputs are not valid.`),!1;for(let e=0;e<o.length;e++){let t=s.G1.fromObject(i.IC[e+1]);l.set(t,e*s.G1.F.n8*2),X.toRprLE(u,s.Fr.n8*e,o[e],s.Fr.n8)}let d=await s.G1.multiExpAffine(l,u);d=s.G1.add(d,c);let f=s.G1.fromObject(a.pi_a),p=s.G2.fromObject(a.pi_b),m=s.G1.fromObject(a.pi_c);if(!_a(s,{pi_a:f,pi_b:p,pi_c:m}))return r&&r.error(`Proof commitments are not valid.`),!1;let h=s.G2.fromObject(i.vk_gamma_2),g=s.G2.fromObject(i.vk_delta_2),_=s.G1.fromObject(i.vk_alpha_1),v=s.G2.fromObject(i.vk_beta_2);return await s.pairingEq(s.G1.neg(f),p,d,h,m,g,_,v)?(r&&r.info(`OK!`),!0):(r&&r.error(`Invalid proof`),!1)}function _a(e,t){let n=e.G1,r=e.G2;return n.isValid(t.pi_a)&&r.isValid(t.pi_b)&&n.isValid(t.pi_c)}function va(e,t){for(let n=0;n<t.length;n++)if(!X.lt(t[n],e.r))return!1;return!0}var{unstringifyBigInts:ya}=Z;function ba(e){let t=e.toString(16);for(;t.length<64;)t=`0`+t;return t=`"0x${t}"`,t}async function xa(e,t){let n=ya(e),r=ya(t),i=``;for(let e=0;e<r.length;e++)i!=``&&(i+=`,`),i+=ba(r[e]);let a;return a=`[${ba(n.pi_a[0])}, ${ba(n.pi_a[1])}],[[${ba(n.pi_b[0][1])}, ${ba(n.pi_b[0][0])}],[${ba(n.pi_b[1][1])}, ${ba(n.pi_b[1][0])}]],[${ba(n.pi_c[0])}, ${ba(n.pi_c[1])}],[${i}]`,a}var Sa=Object.freeze({__proto__:null,fullProve:ma,prove:ta,verify:ga,exportSolidityCallData:xa});X.e(`73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`,16),X.e(`21888242871839275222246405745257275088548364400416034343698204186575808495617`);var{unstringifyBigInts:Ca}=Z,{stringifyBigInts:wa}=Z,{unstringifyBigInts:Ta,stringifyBigInts:Ea}=Z,Da={exports:{}};(function(e){(function(){var t=`input is invalid type`,n=`finalize already called`,r=typeof window==`object`,i=r?window:{};i.JS_SHA3_NO_WINDOW&&(r=!1);var a=!r&&typeof self==`object`;!i.JS_SHA3_NO_NODE_JS&&typeof process==`object`&&process.versions&&process.versions.node?i=Xr:a&&(i=self);var o=!i.JS_SHA3_NO_COMMON_JS&&e.exports,s=!i.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<`u`,c=`0123456789abcdef`.split(``),l=[31,7936,2031616,520093696],u=[4,1024,262144,67108864],d=[1,256,65536,16777216],f=[6,1536,393216,100663296],p=[0,8,16,24],m=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],h=[224,256,384,512],g=[128,256],_=[`hex`,`buffer`,`arrayBuffer`,`array`,`digest`],v={128:168,256:136};(i.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)===`[object Array]`}),s&&(i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e==`object`&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,n){return function(r){return new P(e,t,e).update(r)[n]()}},b=function(e,t,n){return function(r,i){return new P(e,t,i).update(r)[n]()}},x=function(e,t,n){return function(t,r,i,a){return E[`cshake`+e].update(t,r,i,a)[n]()}},S=function(e,t,n){return function(t,r,i,a){return E[`kmac`+e].update(t,r,i,a)[n]()}},C=function(e,t,n,r){for(var i=0;i<_.length;++i){var a=_[i];e[a]=t(n,r,a)}return e},w=function(e,t){var n=y(e,t,`hex`);return n.create=function(){return new P(e,t,e)},n.update=function(e){return n.create().update(e)},C(n,y,e,t)},T=[{name:`keccak`,padding:d,bits:h,createMethod:w},{name:`sha3`,padding:f,bits:h,createMethod:w},{name:`shake`,padding:l,bits:g,createMethod:function(e,t){var n=b(e,t,`hex`);return n.create=function(n){return new P(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},C(n,b,e,t)}},{name:`cshake`,padding:u,bits:g,createMethod:function(e,t){var n=v[e],r=x(e,t,`hex`);return r.create=function(r,i,a){return!i&&!a?E[`shake`+e].create(r):new P(e,t,r).bytepad([i,a],n)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},C(r,x,e,t)}},{name:`kmac`,padding:u,bits:g,createMethod:function(e,t){var n=v[e],r=S(e,t,`hex`);return r.create=function(r,i,a){return new F(e,t,i).bytepad([`KMAC`,a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},C(r,S,e,t)}}],E={},D=[],O=0;O<T.length;++O)for(var k=T[O],A=k.bits,j=0;j<A.length;++j){var M=k.name+`_`+A[j];if(D.push(M),E[M]=k.createMethod(A[j],k.padding),k.name!==`sha3`){var N=k.name+A[j];D.push(N),E[N]=E[M]}}function P(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(n&31)>>3;for(var r=0;r<50;++r)this.s[r]=0}P.prototype.update=function(e){if(this.finalized)throw Error(n);var r,i=typeof e;if(i!==`string`){if(i===`object`){if(e===null)throw Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!s||!ArrayBuffer.isView(e)))throw Error(t)}else throw Error(t);r=!0}for(var a=this.blocks,o=this.byteCount,c=e.length,l=this.blockCount,u=0,d=this.s,f,m;u<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,f=1;f<l+1;++f)a[f]=0;if(r)for(f=this.start;u<c&&f<o;++u)a[f>>2]|=e[u]<<p[f++&3];else for(f=this.start;u<c&&f<o;++u)m=e.charCodeAt(u),m<128?a[f>>2]|=m<<p[f++&3]:m<2048?(a[f>>2]|=(192|m>>6)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]):m<55296||m>=57344?(a[f>>2]|=(224|m>>12)<<p[f++&3],a[f>>2]|=(128|m>>6&63)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]):(m=65536+((m&1023)<<10|e.charCodeAt(++u)&1023),a[f>>2]|=(240|m>>18)<<p[f++&3],a[f>>2]|=(128|m>>12&63)<<p[f++&3],a[f>>2]|=(128|m>>6&63)<<p[f++&3],a[f>>2]|=(128|m&63)<<p[f++&3]);if(this.lastByteIndex=f,f>=o){for(this.start=f-o,this.block=a[l],f=0;f<l;++f)d[f]^=a[f];I(d),this.reset=!0}else this.start=f}return this},P.prototype.encode=function(e,t){var n=e&255,r=1,i=[n];for(e>>=8,n=e&255;n>0;)i.unshift(n),e>>=8,n=e&255,++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},P.prototype.encodeString=function(e){var n,r=typeof e;if(r!==`string`){if(r===`object`){if(e===null)throw Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!s||!ArrayBuffer.isView(e)))throw Error(t)}else throw Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var o=0;o<e.length;++o){var c=e.charCodeAt(o);c<128?i+=1:c<2048?i+=2:c<55296||c>=57344?i+=3:(c=65536+((c&1023)<<10|e.charCodeAt(++o)&1023),i+=4)}return i+=this.encode(i*8),this.update(e),i},P.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},P.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[t&3],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];I(r)}},P.prototype.toString=P.prototype.hex=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=``,s;a<n;){for(i=0;i<e&&a<n;++i,++a)s=t[i],o+=c[s>>4&15]+c[s&15]+c[s>>12&15]+c[s>>8&15]+c[s>>20&15]+c[s>>16&15]+c[s>>28&15]+c[s>>24&15];a%e===0&&(I(t),i=0)}return r&&(s=t[i],o+=c[s>>4&15]+c[s&15],r>1&&(o+=c[s>>12&15]+c[s>>8&15]),r>2&&(o+=c[s>>20&15]+c[s>>16&15])),o},P.prototype.arrayBuffer=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=this.outputBits>>3,s=r?new ArrayBuffer(n+1<<2):new ArrayBuffer(o),c=new Uint32Array(s);a<n;){for(i=0;i<e&&a<n;++i,++a)c[a]=t[i];a%e===0&&I(t)}return r&&(c[i]=t[i],s=s.slice(0,o)),s},P.prototype.buffer=P.prototype.arrayBuffer,P.prototype.digest=P.prototype.array=function(){this.finalize();for(var e=this.blockCount,t=this.s,n=this.outputBlocks,r=this.extraBytes,i=0,a=0,o=[],s,c;a<n;){for(i=0;i<e&&a<n;++i,++a)s=a<<2,c=t[i],o[s]=c&255,o[s+1]=c>>8&255,o[s+2]=c>>16&255,o[s+3]=c>>24&255;a%e===0&&I(t)}return r&&(s=a<<2,c=t[i],o[s]=c&255,r>1&&(o[s+1]=c>>8&255),r>2&&(o[s+2]=c>>16&255)),o};function F(e,t,n){P.call(this,e,t,n)}F.prototype=new P,F.prototype.finalize=function(){return this.encode(this.outputBits,!0),P.prototype.finalize.call(this)};var I=function(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,ee,H,te,ne,re,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,U,ve,ye,be;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],f=e[8]^e[18]^e[28]^e[38]^e[48],p=e[9]^e[19]^e[29]^e[39]^e[49],t=f^(o<<1|s>>>31),n=p^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(c<<1|l>>>31),n=a^(l<<1|c>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(u<<1|d>>>31),n=s^(d<<1|u>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=c^(f<<1|p>>>31),n=l^(p<<1|f>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=u^(i<<1|a>>>31),n=d^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,h=e[0],g=e[1],ie=e[11]<<4|e[10]>>>28,ae=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,A=e[21]<<3|e[20]>>>29,U=e[31]<<9|e[30]>>>23,ve=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,te=e[41]<<18|e[40]>>>14,F=e[2]<<1|e[3]>>>31,I=e[3]<<1|e[2]>>>31,_=e[13]<<12|e[12]>>>20,v=e[12]<<12|e[13]>>>20,oe=e[22]<<10|e[23]>>>22,se=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,ye=e[42]<<2|e[43]>>>30,be=e[43]<<2|e[42]>>>30,fe=e[5]<<30|e[4]>>>2,pe=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,R=e[15]<<6|e[14]>>>26,y=e[25]<<11|e[24]>>>21,b=e[24]<<11|e[25]>>>21,ce=e[34]<<15|e[35]>>>17,le=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,P=e[44]<<29|e[45]>>>3,T=e[6]<<28|e[7]>>>4,E=e[7]<<28|e[6]>>>4,me=e[17]<<23|e[16]>>>9,he=e[16]<<23|e[17]>>>9,z=e[26]<<25|e[27]>>>7,B=e[27]<<25|e[26]>>>7,x=e[36]<<21|e[37]>>>11,S=e[37]<<21|e[36]>>>11,ue=e[47]<<24|e[46]>>>8,de=e[46]<<24|e[47]>>>8,ne=e[8]<<27|e[9]>>>5,re=e[9]<<27|e[8]>>>5,D=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ge=e[29]<<7|e[28]>>>25,_e=e[28]<<7|e[29]>>>25,V=e[38]<<8|e[39]>>>24,ee=e[39]<<8|e[38]>>>24,C=e[48]<<14|e[49]>>>18,w=e[49]<<14|e[48]>>>18,e[0]=h^~_&y,e[1]=g^~v&b,e[10]=T^~D&k,e[11]=E^~O&A,e[20]=F^~L&z,e[21]=I^~R&B,e[30]=ne^~ie&oe,e[31]=re^~ae&se,e[40]=fe^~me&ge,e[41]=pe^~he&_e,e[2]=_^~y&x,e[3]=v^~b&S,e[12]=D^~k&j,e[13]=O^~A&M,e[22]=L^~z&V,e[23]=R^~B&ee,e[32]=ie^~oe&ce,e[33]=ae^~se&le,e[42]=me^~ge&U,e[43]=he^~_e&ve,e[4]=y^~x&C,e[5]=b^~S&w,e[14]=k^~j&N,e[15]=A^~M&P,e[24]=z^~V&H,e[25]=B^~ee&te,e[34]=oe^~ce&ue,e[35]=se^~le&de,e[44]=ge^~U&ye,e[45]=_e^~ve&be,e[6]=x^~C&h,e[7]=S^~w&g,e[16]=j^~N&T,e[17]=M^~P&E,e[26]=V^~H&F,e[27]=ee^~te&I,e[36]=ce^~ue&ne,e[37]=le^~de&re,e[46]=U^~ye&fe,e[47]=ve^~be&pe,e[8]=C^~h&_,e[9]=w^~g&v,e[18]=N^~T&D,e[19]=P^~E&O,e[28]=H^~F&L,e[29]=te^~I&R,e[38]=ue^~ne&ie,e[39]=de^~re&ae,e[48]=ye^~fe&me,e[49]=be^~pe&he,e[0]^=m[r],e[1]^=m[r+1]};if(o)e.exports=E;else for(O=0;O<D.length;++O)i[D[O]]=E[D[O]]})()})(Da);var{keccak256:Oa}=Da.exports,{stringifyBigInts:ka}=Z,{unstringifyBigInts:Aa}=Z,{unstringifyBigInts:ja}=Z,{unstringifyBigInts:Ma}=Z,{stringifyBigInts:Na}=Z,{unstringifyBigInts:Pa}=Z,{unstringifyBigInts:Fa}=Z,{unstringifyBigInts:Ia}=Z,La=new class{axiosInstance;constructor(){this.axiosInstance=i.default.create()}async get(e,t){return(await this.axiosInstance.get(e,t)).data}async post(e,t,n){return(await this.axiosInstance.post(e,t,n)).data}async put(e,t,n){return(await this.axiosInstance.put(e,t,n)).data}async patch(e,t,n){return(await this.axiosInstance.patch(e,t,n)).data}async delete(e,t){return(await this.axiosInstance.delete(e,t)).data}},Ra={setHttpClient:e=>{La=e},get:(e,t)=>La.get(e,t),post:(e,t,n)=>La.post(e,t,n),put:(e,t,n)=>La.put(e,t,n),patch:(e,t,n)=>La.patch(e,t,n),delete:(e,t)=>La.delete(e,t)},za=new e.t,Ba=async e=>new Uint8Array(await Ra.get(e,{responseType:`arraybuffer`})),Va=async t=>{try{let{input:n,wasmFilePath:r,zKeyFilePath:i,chainId:a}=t.payload.data,{hostLocation:{origin:o},constants:{isDevelopment:s,chains:{chainIds:c}}}=t.metadata,l=r,u=i,d,f,p=l.startsWith(`https://`);if(e.i&&!p){e.o?(l=`libs/hardhat/test/circuits/${r}`,u=`libs/hardhat/test/circuits/${i}`):!e.o&&s&&(a===e.n.solanaLocalnet?(l=`tests/circuits/${r}`,u=`tests/circuits/${i}`):(l=`test/circuits/${r}`,u=`test/circuits/${i}`));let t=require(`path`);l=t.resolve(l),u=t.resolve(u)}e.i&&p?(d=await Ba(l),f=await Ba(u)):(a===c.localhost||a===e.n.solanaLocalnet||a===c.tronLocalnet)&&!e.i&&(l=`${o}/${r}`,u=`${o}/${i}`);let{proof:m,publicSignals:h}=await Sa.fullProve(n,d??l,f??u,void 0,void 0,e.i?{singleThread:!0}:void 0),g=await Sa.exportSolidityCallData(m,h),_=JSON.parse(`[${g}]`);za.postMessageToMainThread({zkCallData:_,proof:m,publicSignals:h})}catch(e){console.error(e),za.postErrorToMainThread(e)}};e.l(),globalThis.process=r.default,globalThis.Buffer=n.Buffer,t.parentPort.on(`message`,async e=>{await Va(e)});