solve-engine 2.38.26 → 2.38.28

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 (126) hide show
  1. package/dist/{PackageCompatibility-C7ILySsH.d.ts → PackageCompatibility-BfRpqwmD.d.ts} +1 -1
  2. package/dist/{PackageCompatibility-CzDzOIg9.d.cts → PackageCompatibility-CcfNMlWN.d.cts} +1 -1
  3. package/dist/{PackageRegistry-D7_B0mxv.d.ts → PackageRegistry-ClAKDDOP.d.ts} +25 -4
  4. package/dist/{PackageRegistry-Bd8ErpwZ.d.cts → PackageRegistry-DLLVZW0S.d.cts} +25 -4
  5. package/dist/{Parselet-DmMY2s9Y.d.cts → Parselet-ClR3Blwp.d.cts} +1 -1
  6. package/dist/{Parselet-Br1tHash.d.ts → Parselet-DkAFnfU2.d.ts} +1 -1
  7. package/dist/{VMBuiltins-BqkoJtHt.d.ts → VMBuiltins-Bk8TQNF1.d.ts} +2 -2
  8. package/dist/{VMBuiltins-Baa90D2v.d.cts → VMBuiltins-ClXnXk9K.d.cts} +2 -2
  9. package/dist/{Value-B55Hvn3e.d.cts → Value-wMuCzPn0.d.cts} +18 -2
  10. package/dist/{Value-B55Hvn3e.d.ts → Value-wMuCzPn0.d.ts} +18 -2
  11. package/dist/{chunk-L2JQQ5EO.js → chunk-34RTVUU3.js} +3 -3
  12. package/dist/{chunk-L2JQQ5EO.js.map → chunk-34RTVUU3.js.map} +1 -1
  13. package/dist/{chunk-QP4VIEXZ.js → chunk-36JGHDZR.js} +2 -2
  14. package/dist/chunk-36JGHDZR.js.map +1 -0
  15. package/dist/chunk-3ZFJLH4W.cjs +2 -0
  16. package/dist/chunk-3ZFJLH4W.cjs.map +1 -0
  17. package/dist/{chunk-EZ7R3ZHM.cjs → chunk-4AX7GIZY.cjs} +3 -3
  18. package/dist/{chunk-EZ7R3ZHM.cjs.map → chunk-4AX7GIZY.cjs.map} +1 -1
  19. package/dist/chunk-4H27GUVY.js +2 -0
  20. package/dist/chunk-4H27GUVY.js.map +1 -0
  21. package/dist/{chunk-ZWDLC4MR.cjs → chunk-5BRJQREI.cjs} +4 -4
  22. package/dist/{chunk-ZWDLC4MR.cjs.map → chunk-5BRJQREI.cjs.map} +1 -1
  23. package/dist/{chunk-AWGSR2GZ.js → chunk-BNVE6I22.js} +2 -2
  24. package/dist/{chunk-AWGSR2GZ.js.map → chunk-BNVE6I22.js.map} +1 -1
  25. package/dist/chunk-CAJKB4WQ.js +2 -0
  26. package/dist/chunk-CAJKB4WQ.js.map +1 -0
  27. package/dist/{chunk-ZSFOIBIH.js → chunk-CUH3FEWI.js} +2 -2
  28. package/dist/chunk-CUH3FEWI.js.map +1 -0
  29. package/dist/{chunk-NMZRAJLJ.cjs → chunk-FZTGWNVU.cjs} +2 -2
  30. package/dist/{chunk-NMZRAJLJ.cjs.map → chunk-FZTGWNVU.cjs.map} +1 -1
  31. package/dist/{chunk-RMBUP4XA.js → chunk-GMHYWVOG.js} +2 -2
  32. package/dist/{chunk-RMBUP4XA.js.map → chunk-GMHYWVOG.js.map} +1 -1
  33. package/dist/chunk-HPJ5SQEL.js +3 -0
  34. package/dist/chunk-HPJ5SQEL.js.map +1 -0
  35. package/dist/chunk-HTB3D3FU.cjs +3 -0
  36. package/dist/chunk-HTB3D3FU.cjs.map +1 -0
  37. package/dist/chunk-KVHLLR67.cjs +3 -0
  38. package/dist/chunk-KVHLLR67.cjs.map +1 -0
  39. package/dist/{chunk-Z4MIX43O.cjs → chunk-NIDVZMKV.cjs} +2 -2
  40. package/dist/chunk-NIDVZMKV.cjs.map +1 -0
  41. package/dist/chunk-NW5MM3Q6.js +3 -0
  42. package/dist/chunk-NW5MM3Q6.js.map +1 -0
  43. package/dist/{chunk-TCDB45AW.js → chunk-QXZVDT54.js} +2 -2
  44. package/dist/{chunk-TCDB45AW.js.map → chunk-QXZVDT54.js.map} +1 -1
  45. package/dist/chunk-SXLHFK7M.cjs +2 -0
  46. package/dist/{chunk-NH74IT7B.cjs.map → chunk-SXLHFK7M.cjs.map} +1 -1
  47. package/dist/{chunk-OBQC7KDY.cjs → chunk-TIWNKFSD.cjs} +2 -2
  48. package/dist/{chunk-OBQC7KDY.cjs.map → chunk-TIWNKFSD.cjs.map} +1 -1
  49. package/dist/chunk-TSVKHY5E.js +2 -0
  50. package/dist/{chunk-A34R65WT.js.map → chunk-TSVKHY5E.js.map} +1 -1
  51. package/dist/chunk-U5PPRJ3B.cjs +2 -0
  52. package/dist/chunk-U5PPRJ3B.cjs.map +1 -0
  53. package/dist/chunk-VOWMVLVV.cjs +2 -0
  54. package/dist/chunk-VOWMVLVV.cjs.map +1 -0
  55. package/dist/{chunk-R6NGKIBC.cjs → chunk-VZ4FEVWA.cjs} +2 -2
  56. package/dist/{chunk-R6NGKIBC.cjs.map → chunk-VZ4FEVWA.cjs.map} +1 -1
  57. package/dist/{chunk-TFZNEEJR.js → chunk-XAKFFIMQ.js} +3 -3
  58. package/dist/{chunk-TFZNEEJR.js.map → chunk-XAKFFIMQ.js.map} +1 -1
  59. package/dist/constants.cjs +1 -1
  60. package/dist/constants.js +1 -1
  61. package/dist/engine.cjs +1 -1
  62. package/dist/engine.d.cts +7 -7
  63. package/dist/engine.d.ts +7 -7
  64. package/dist/engine.js +1 -1
  65. package/dist/engine.worker.cjs +1 -1
  66. package/dist/engine.worker.js +1 -1
  67. package/dist/format.cjs +1 -1
  68. package/dist/format.d.cts +1 -1
  69. package/dist/format.d.ts +1 -1
  70. package/dist/format.js +1 -1
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.d.cts +7 -7
  73. package/dist/index.d.ts +7 -7
  74. package/dist/index.js +1 -1
  75. package/dist/language.d.cts +6 -6
  76. package/dist/language.d.ts +6 -6
  77. package/dist/packages.cjs +1 -1
  78. package/dist/packages.d.cts +5 -5
  79. package/dist/packages.d.ts +5 -5
  80. package/dist/packages.js +1 -1
  81. package/dist/parser.d.cts +3 -3
  82. package/dist/parser.d.ts +3 -3
  83. package/dist/{pipeline-CADMN2D1.d.ts → pipeline-CLegjVrf.d.ts} +1 -1
  84. package/dist/{pipeline-C1-CJnFJ.d.cts → pipeline-DKNPr6s8.d.cts} +1 -1
  85. package/dist/resolvers.d.cts +1 -1
  86. package/dist/resolvers.d.ts +1 -1
  87. package/dist/testing.cjs +2 -2
  88. package/dist/testing.d.cts +6 -6
  89. package/dist/testing.d.ts +6 -6
  90. package/dist/testing.js +1 -1
  91. package/dist/uom.cjs +1 -1
  92. package/dist/uom.d.cts +1 -1
  93. package/dist/uom.d.ts +1 -1
  94. package/dist/uom.js +1 -1
  95. package/dist/vm.cjs +1 -1
  96. package/dist/vm.d.cts +4 -4
  97. package/dist/vm.d.ts +4 -4
  98. package/dist/vm.js +1 -1
  99. package/dist/worker.cjs +2 -2
  100. package/dist/worker.d.cts +5 -5
  101. package/dist/worker.d.ts +5 -5
  102. package/dist/worker.js +1 -1
  103. package/package.json +1 -1
  104. package/dist/chunk-44E7U4O5.js +0 -3
  105. package/dist/chunk-44E7U4O5.js.map +0 -1
  106. package/dist/chunk-54QMY2VL.cjs +0 -2
  107. package/dist/chunk-54QMY2VL.cjs.map +0 -1
  108. package/dist/chunk-5TCSFTZD.js +0 -2
  109. package/dist/chunk-5TCSFTZD.js.map +0 -1
  110. package/dist/chunk-5TVI2UPZ.cjs +0 -2
  111. package/dist/chunk-5TVI2UPZ.cjs.map +0 -1
  112. package/dist/chunk-6FBXJYWO.cjs +0 -3
  113. package/dist/chunk-6FBXJYWO.cjs.map +0 -1
  114. package/dist/chunk-A34R65WT.js +0 -2
  115. package/dist/chunk-KSOB5FCI.js +0 -3
  116. package/dist/chunk-KSOB5FCI.js.map +0 -1
  117. package/dist/chunk-NH74IT7B.cjs +0 -2
  118. package/dist/chunk-QP4VIEXZ.js.map +0 -1
  119. package/dist/chunk-QT4IQADG.cjs +0 -3
  120. package/dist/chunk-QT4IQADG.cjs.map +0 -1
  121. package/dist/chunk-Y5ZY6DPX.cjs +0 -2
  122. package/dist/chunk-Y5ZY6DPX.cjs.map +0 -1
  123. package/dist/chunk-Z4MIX43O.cjs.map +0 -1
  124. package/dist/chunk-ZISAN7NW.js +0 -2
  125. package/dist/chunk-ZISAN7NW.js.map +0 -1
  126. package/dist/chunk-ZSFOIBIH.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-EOKHRS2T.js';import {b}from'./chunk-PICFFFJV.js';import {n}from'./chunk-A34R65WT.js';var g="currency",h=class{constructor(a){this.namespace=g;this.watchedOpcodes=[13];this.exchange=a??b;}preflight(a$1,C,d,f,p){let{opcodes:o,strings:y}=C,x=o.length,r=0,s=-1,c=-1;for(;r<x;){let e=o[r];if(e===13&&(c=s,s=o[r+1]),(e===84||e===81||e===20||e===21||e===22||e===23)&&c>=0&&s>=0){let t=y[c],n$1=y[s];if(this.exchange.isCurrency(t)&&this.exchange.isCurrency(n$1)&&t.toUpperCase()!==n$1.toUpperCase()&&this.exchange.getRateSync(t,n$1)===null){let R=t.toUpperCase(),U=n$1.toUpperCase(),i=[g,R,U];if(p.getQueryData(i)!==void 0){r++;continue}let v=p.fetchQuery({queryKey:i,queryFn:({signal:S})=>this.exchange.getRate(t,n$1,S).then(O=>n(O)),staleTime:300*1e3});return {queryKey:i.join(":"),resolver:v,packageId:d,signal:f,metadata:{fromUnit:t,toUnit:n$1}}}}r=a(o,r);}return null}destroy(){}};export{h as a};//# sourceMappingURL=chunk-AWGSR2GZ.js.map
2
- //# sourceMappingURL=chunk-AWGSR2GZ.js.map
1
+ import {a}from'./chunk-EOKHRS2T.js';import {b}from'./chunk-PICFFFJV.js';import {n}from'./chunk-TSVKHY5E.js';var g="currency",h=class{constructor(a){this.namespace=g;this.watchedOpcodes=[13];this.exchange=a??b;}preflight(a$1,C,d,f,p){let{opcodes:o,strings:y}=C,x=o.length,r=0,s=-1,c=-1;for(;r<x;){let e=o[r];if(e===13&&(c=s,s=o[r+1]),(e===84||e===81||e===20||e===21||e===22||e===23)&&c>=0&&s>=0){let t=y[c],n$1=y[s];if(this.exchange.isCurrency(t)&&this.exchange.isCurrency(n$1)&&t.toUpperCase()!==n$1.toUpperCase()&&this.exchange.getRateSync(t,n$1)===null){let R=t.toUpperCase(),U=n$1.toUpperCase(),i=[g,R,U];if(p.getQueryData(i)!==void 0){r++;continue}let v=p.fetchQuery({queryKey:i,queryFn:({signal:S})=>this.exchange.getRate(t,n$1,S).then(O=>n(O)),staleTime:300*1e3});return {queryKey:i.join(":"),resolver:v,packageId:d,signal:f,metadata:{fromUnit:t,toUnit:n$1}}}}r=a(o,r);}return null}destroy(){}};export{h as a};//# sourceMappingURL=chunk-BNVE6I22.js.map
2
+ //# sourceMappingURL=chunk-BNVE6I22.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/uom/CurrencyResolver.ts"],"names":["CURRENCY_NS","CurrencyAsyncResolver","exchange","currencyExchangeService","_tokens","bytecode","packageId","signal","queryClient","opcodes","strings","len","i","lastStrIdx","prevStrIdx","op","fromUnit","toUnit","fromUpper","toUpper","cacheKey","resolver","qSignal","rate","numberValue","nextInstruction"],"mappings":"4GAkBA,IAAMA,CAAAA,CAAc,WAQPC,CAAAA,CAAN,KAAsD,CAc5D,WAAA,CAAYC,CAAAA,CAAoC,CAbhD,IAAA,CAAS,SAAA,CAAYF,CAAAA,CASrB,KAAS,cAAA,CAAoC,CAAA,EAAmB,EAK/D,IAAA,CAAK,QAAA,CAAWE,GAAYC,EAC7B,CAEA,SAAA,CAAUC,GAAAA,CAAkBC,CAAAA,CAA2BC,CAAAA,CAAmBC,EAAqBC,CAAAA,CAAmD,CACjJ,GAAM,CAAE,OAAA,CAAAC,EAAS,OAAA,CAAAC,CAAQ,CAAA,CAAIL,CAAAA,CACvBM,CAAAA,CAAMF,CAAAA,CAAQ,OAChBG,CAAAA,CAAI,CAAA,CAEJC,EAAa,EAAA,CACbC,CAAAA,CAAa,GAEjB,KAAOF,CAAAA,CAAID,CAAAA,EAAK,CACf,IAAMI,CAAAA,CAAKN,EAAQG,CAAC,CAAA,CAkBpB,GAhBIG,CAAAA,GAAO,EAAA,GACVD,EAAaD,CAAAA,CACbA,CAAAA,CAAaJ,CAAAA,CAAQG,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAY1BG,IAAO,EAAA,EAAyBA,CAAAA,GAAO,IACvCA,CAAAA,GAAO,EAAA,EAAcA,IAAO,EAAA,EAAcA,CAAAA,GAAO,EAAA,EAAcA,CAAAA,GAAO,EAAA,GAElED,CAAAA,EAAc,GAAKD,CAAAA,EAAc,CAAA,CAAG,CACvC,IAAMG,CAAAA,CAAWN,EAAQI,CAAU,CAAA,CAC7BG,GAAAA,CAASP,CAAAA,CAAQG,CAAU,CAAA,CAEjC,GACC,IAAA,CAAK,QAAA,CAAS,WAAWG,CAAQ,CAAA,EACjC,KAAK,QAAA,CAAS,UAAA,CAAWC,GAAM,CAAA,EAC/BD,CAAAA,CAAS,WAAA,KAAkBC,GAAAA,CAAO,WAAA,IAEjB,IAAA,CAAK,QAAA,CAAS,YAAYD,CAAAA,CAAUC,GAAM,CAAA,GAC1C,IAAA,CAAM,CACtB,IAAMC,EAAYF,CAAAA,CAAS,WAAA,GACrBG,CAAAA,CAAUF,GAAAA,CAAO,aAAY,CAG7BG,CAAAA,CAAW,CAACpB,CAAAA,CAAakB,CAAAA,CAAWC,CAAO,EACjD,GAAIX,CAAAA,CAAY,aAAaY,CAAQ,CAAA,GAAM,OAAW,CACrDR,CAAAA,EAAAA,CACA,QACD,CAGA,IAAMS,CAAAA,CAAWb,EAAY,UAAA,CAAW,CACvC,SAAUY,CAAAA,CACV,OAAA,CAAS,CAAC,CAAE,MAAA,CAAQE,CAAQ,CAAA,GACpB,IAAA,CAAK,QAAA,CAAS,QAAQN,CAAAA,CAAUC,GAAAA,CAAQK,CAAO,CAAA,CAAE,IAAA,CAAMC,GAASC,CAAAA,CAAYD,CAAI,CAAC,CAAA,CAEzF,SAAA,CAAW,GAAA,CAAS,GACrB,CAAC,CAAA,CAED,OAAO,CAAE,QAAA,CAAUH,EAAS,IAAA,CAAK,GAAG,CAAA,CAAG,QAAA,CAAAC,CAAAA,CAAU,SAAA,CAAAf,EAAW,MAAA,CAAAC,CAAAA,CAAQ,SAAU,CAAE,QAAA,CAAAS,EAAU,MAAA,CAAAC,GAAO,CAAE,CACpG,CAEF,CAKDL,EAAIa,CAAAA,CAAgBhB,CAAAA,CAASG,CAAC,EAC/B,CAEA,OAAO,IACR,CAEA,OAAA,EAAgB,CAEhB,CACD","file":"chunk-AWGSR2GZ.js","sourcesContent":["/**\n * Currency async resolver, bridges CurrencyExchangeService to the\n * IAsyncResolver interface for the Suspense architecture.\n *\n * Uses TanStack Query (injected via queryClient) as the single cache layer.\n */\nimport type { QueryClient } from \"@tanstack/query-core\";\nimport type { Token } from \"@solve-js/lexer\";\nimport type { BytecodeProgram } from \"@solve-js/parser/BytecodeBuilder\";\nimport { OpCode } from \"@solve-js/parser/OpCode\";\nimport { numberValue } from \"@solve-js/vm/Value\";\nimport {\n\tcurrencyExchangeService,\n\tCurrencyExchangeService,\n} from \"@solve-js/uom/CurrencyExchange\";\nimport type { IAsyncResolver, AsyncCheckResult } from \"@solve-js/resolvers/ResolverRegistry\";\nimport { nextInstruction } from \"@solve-js/parser/OperandWidth\";\n\nconst CURRENCY_NS = \"currency\";\n\n/**\n * Fetches exchange rates before the VM runs, so a conversion has real numbers.\n *\n * Until rates arrive the line evaluates to a pending value rather than a\n * guessed one, and re-evaluates when they land.\n */\nexport class CurrencyAsyncResolver implements IAsyncResolver {\n\treadonly namespace = CURRENCY_NS;\n\n\t/**\n\t * Every unit the scan below reads arrives as a `PUSH_STRING` operand, so a\n\t * program with no string constant cannot name a currency and the engine\n\t * need not ask. Deliberately not the arithmetic opcodes the scan also\n\t * checks: `ADD` is in nearly every line, and declaring it would spare\n\t * nothing. See {@link IAsyncResolver.watchedOpcodes}.\n\t */\n\treadonly watchedOpcodes: readonly OpCode[] = [OpCode.PUSH_STRING];\n\n\tprivate exchange: CurrencyExchangeService;\n\n\tconstructor(exchange?: CurrencyExchangeService) {\n\t\tthis.exchange = exchange ?? currencyExchangeService;\n\t}\n\n\tpreflight(_tokens: Token[], bytecode: BytecodeProgram, packageId: string, signal: AbortSignal, queryClient: QueryClient): AsyncCheckResult | null {\n\t\tconst { opcodes, strings } = bytecode;\n\t\tconst len = opcodes.length;\n\t\tlet i = 0;\n\n\t\tlet lastStrIdx = -1;\n\t\tlet prevStrIdx = -1;\n\n\t\twhile (i < len) {\n\t\t\tconst op = opcodes[i] as OpCode;\n\n\t\t\tif (op === OpCode.PUSH_STRING) {\n\t\t\t\tprevStrIdx = lastStrIdx;\n\t\t\t\tlastStrIdx = opcodes[i + 1];\n\t\t\t}\n\n\t\t\t// Explicit \"X to Y\"/\"X in Y\" conversions (UOM_CONVERT_IN/_TO) are\n\t\t\t// the obvious case, but arithmetic directly on two differently-\n\t\t\t// denominated currency literals, \"0.01 BTC + 1 ETH\", needs the\n\t\t\t// exact same preflight fetch and previously never got it: this\n\t\t\t// scanner only looked for the CONVERT opcodes, so ADD/SUB/MUL/DIV\n\t\t\t// between two currency UOMs skipped preflight entirely, ran with\n\t\t\t// no cached rate, and fell through to the VM's silent-wrong-math\n\t\t\t// fallback instead of ever reaching a network fetch.\n\t\t\tconst isCurrencyCombiningOp =\n\t\t\t\top === OpCode.UOM_CONVERT_IN || op === OpCode.UOM_CONVERT_TO ||\n\t\t\t\top === OpCode.ADD || op === OpCode.SUB || op === OpCode.MUL || op === OpCode.DIV;\n\t\t\tif (isCurrencyCombiningOp) {\n\t\t\t\tif (prevStrIdx >= 0 && lastStrIdx >= 0) {\n\t\t\t\t\tconst fromUnit = strings[prevStrIdx];\n\t\t\t\t\tconst toUnit = strings[lastStrIdx];\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.exchange.isCurrency(fromUnit) &&\n\t\t\t\t\t\tthis.exchange.isCurrency(toUnit) &&\n\t\t\t\t\t\tfromUnit.toUpperCase() !== toUnit.toUpperCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst syncRate = this.exchange.getRateSync(fromUnit, toUnit);\n\t\t\t\t\t\tif (syncRate === null) {\n\t\t\t\t\t\t\tconst fromUpper = fromUnit.toUpperCase();\n\t\t\t\t\t\t\tconst toUpper = toUnit.toUpperCase();\n\n\t\t\t\t\t\t\t// Check TanStack Query cache\n\t\t\t\t\t\t\tconst cacheKey = [CURRENCY_NS, fromUpper, toUpper];\n\t\t\t\t\t\t\tif (queryClient.getQueryData(cacheKey) !== undefined) {\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Fetch via TanStack Query (dedup + retry automatic)\n\t\t\t\t\t\t\tconst resolver = queryClient.fetchQuery({\n\t\t\t\t\t\t\t\tqueryKey: cacheKey,\n\t\t\t\t\t\t\t\tqueryFn: ({ signal: qSignal }) => {\n\t\t\t\t\t\t\t\t\treturn this.exchange.getRate(fromUnit, toUnit, qSignal).then((rate) => numberValue(rate));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstaleTime: 5 * 60 * 1000,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn { queryKey: cacheKey.join(\":\"), resolver, packageId, signal, metadata: { fromUnit, toUnit } };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Step over this instruction and its operands. Shared table, because\n\t\t\t// three hand-copied versions of this had already drifted.\n\t\t\ti = nextInstruction(opcodes, i);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tdestroy(): void {\n\t\t// Cache cleared by ResolverRegistry.unregister() via removeQueries({ queryKey: [\"currency\"] })\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../src/uom/CurrencyResolver.ts"],"names":["CURRENCY_NS","CurrencyAsyncResolver","exchange","currencyExchangeService","_tokens","bytecode","packageId","signal","queryClient","opcodes","strings","len","i","lastStrIdx","prevStrIdx","op","fromUnit","toUnit","fromUpper","toUpper","cacheKey","resolver","qSignal","rate","numberValue","nextInstruction"],"mappings":"4GAkBA,IAAMA,CAAAA,CAAc,WAQPC,CAAAA,CAAN,KAAsD,CAc5D,WAAA,CAAYC,CAAAA,CAAoC,CAbhD,IAAA,CAAS,SAAA,CAAYF,CAAAA,CASrB,KAAS,cAAA,CAAoC,CAAA,EAAmB,EAK/D,IAAA,CAAK,QAAA,CAAWE,GAAYC,EAC7B,CAEA,SAAA,CAAUC,GAAAA,CAAkBC,CAAAA,CAA2BC,CAAAA,CAAmBC,EAAqBC,CAAAA,CAAmD,CACjJ,GAAM,CAAE,OAAA,CAAAC,EAAS,OAAA,CAAAC,CAAQ,CAAA,CAAIL,CAAAA,CACvBM,CAAAA,CAAMF,CAAAA,CAAQ,OAChBG,CAAAA,CAAI,CAAA,CAEJC,EAAa,EAAA,CACbC,CAAAA,CAAa,GAEjB,KAAOF,CAAAA,CAAID,CAAAA,EAAK,CACf,IAAMI,CAAAA,CAAKN,EAAQG,CAAC,CAAA,CAkBpB,GAhBIG,CAAAA,GAAO,EAAA,GACVD,EAAaD,CAAAA,CACbA,CAAAA,CAAaJ,CAAAA,CAAQG,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAY1BG,IAAO,EAAA,EAAyBA,CAAAA,GAAO,IACvCA,CAAAA,GAAO,EAAA,EAAcA,IAAO,EAAA,EAAcA,CAAAA,GAAO,EAAA,EAAcA,CAAAA,GAAO,EAAA,GAElED,CAAAA,EAAc,GAAKD,CAAAA,EAAc,CAAA,CAAG,CACvC,IAAMG,CAAAA,CAAWN,EAAQI,CAAU,CAAA,CAC7BG,GAAAA,CAASP,CAAAA,CAAQG,CAAU,CAAA,CAEjC,GACC,IAAA,CAAK,QAAA,CAAS,WAAWG,CAAQ,CAAA,EACjC,KAAK,QAAA,CAAS,UAAA,CAAWC,GAAM,CAAA,EAC/BD,CAAAA,CAAS,WAAA,KAAkBC,GAAAA,CAAO,WAAA,IAEjB,IAAA,CAAK,QAAA,CAAS,YAAYD,CAAAA,CAAUC,GAAM,CAAA,GAC1C,IAAA,CAAM,CACtB,IAAMC,EAAYF,CAAAA,CAAS,WAAA,GACrBG,CAAAA,CAAUF,GAAAA,CAAO,aAAY,CAG7BG,CAAAA,CAAW,CAACpB,CAAAA,CAAakB,CAAAA,CAAWC,CAAO,EACjD,GAAIX,CAAAA,CAAY,aAAaY,CAAQ,CAAA,GAAM,OAAW,CACrDR,CAAAA,EAAAA,CACA,QACD,CAGA,IAAMS,CAAAA,CAAWb,EAAY,UAAA,CAAW,CACvC,SAAUY,CAAAA,CACV,OAAA,CAAS,CAAC,CAAE,MAAA,CAAQE,CAAQ,CAAA,GACpB,IAAA,CAAK,QAAA,CAAS,QAAQN,CAAAA,CAAUC,GAAAA,CAAQK,CAAO,CAAA,CAAE,IAAA,CAAMC,GAASC,CAAAA,CAAYD,CAAI,CAAC,CAAA,CAEzF,SAAA,CAAW,GAAA,CAAS,GACrB,CAAC,CAAA,CAED,OAAO,CAAE,QAAA,CAAUH,EAAS,IAAA,CAAK,GAAG,CAAA,CAAG,QAAA,CAAAC,CAAAA,CAAU,SAAA,CAAAf,EAAW,MAAA,CAAAC,CAAAA,CAAQ,SAAU,CAAE,QAAA,CAAAS,EAAU,MAAA,CAAAC,GAAO,CAAE,CACpG,CAEF,CAKDL,EAAIa,CAAAA,CAAgBhB,CAAAA,CAASG,CAAC,EAC/B,CAEA,OAAO,IACR,CAEA,OAAA,EAAgB,CAEhB,CACD","file":"chunk-BNVE6I22.js","sourcesContent":["/**\n * Currency async resolver, bridges CurrencyExchangeService to the\n * IAsyncResolver interface for the Suspense architecture.\n *\n * Uses TanStack Query (injected via queryClient) as the single cache layer.\n */\nimport type { QueryClient } from \"@tanstack/query-core\";\nimport type { Token } from \"@solve-js/lexer\";\nimport type { BytecodeProgram } from \"@solve-js/parser/BytecodeBuilder\";\nimport { OpCode } from \"@solve-js/parser/OpCode\";\nimport { numberValue } from \"@solve-js/vm/Value\";\nimport {\n\tcurrencyExchangeService,\n\tCurrencyExchangeService,\n} from \"@solve-js/uom/CurrencyExchange\";\nimport type { IAsyncResolver, AsyncCheckResult } from \"@solve-js/resolvers/ResolverRegistry\";\nimport { nextInstruction } from \"@solve-js/parser/OperandWidth\";\n\nconst CURRENCY_NS = \"currency\";\n\n/**\n * Fetches exchange rates before the VM runs, so a conversion has real numbers.\n *\n * Until rates arrive the line evaluates to a pending value rather than a\n * guessed one, and re-evaluates when they land.\n */\nexport class CurrencyAsyncResolver implements IAsyncResolver {\n\treadonly namespace = CURRENCY_NS;\n\n\t/**\n\t * Every unit the scan below reads arrives as a `PUSH_STRING` operand, so a\n\t * program with no string constant cannot name a currency and the engine\n\t * need not ask. Deliberately not the arithmetic opcodes the scan also\n\t * checks: `ADD` is in nearly every line, and declaring it would spare\n\t * nothing. See {@link IAsyncResolver.watchedOpcodes}.\n\t */\n\treadonly watchedOpcodes: readonly OpCode[] = [OpCode.PUSH_STRING];\n\n\tprivate exchange: CurrencyExchangeService;\n\n\tconstructor(exchange?: CurrencyExchangeService) {\n\t\tthis.exchange = exchange ?? currencyExchangeService;\n\t}\n\n\tpreflight(_tokens: Token[], bytecode: BytecodeProgram, packageId: string, signal: AbortSignal, queryClient: QueryClient): AsyncCheckResult | null {\n\t\tconst { opcodes, strings } = bytecode;\n\t\tconst len = opcodes.length;\n\t\tlet i = 0;\n\n\t\tlet lastStrIdx = -1;\n\t\tlet prevStrIdx = -1;\n\n\t\twhile (i < len) {\n\t\t\tconst op = opcodes[i] as OpCode;\n\n\t\t\tif (op === OpCode.PUSH_STRING) {\n\t\t\t\tprevStrIdx = lastStrIdx;\n\t\t\t\tlastStrIdx = opcodes[i + 1];\n\t\t\t}\n\n\t\t\t// Explicit \"X to Y\"/\"X in Y\" conversions (UOM_CONVERT_IN/_TO) are\n\t\t\t// the obvious case, but arithmetic directly on two differently-\n\t\t\t// denominated currency literals, \"0.01 BTC + 1 ETH\", needs the\n\t\t\t// exact same preflight fetch and previously never got it: this\n\t\t\t// scanner only looked for the CONVERT opcodes, so ADD/SUB/MUL/DIV\n\t\t\t// between two currency UOMs skipped preflight entirely, ran with\n\t\t\t// no cached rate, and fell through to the VM's silent-wrong-math\n\t\t\t// fallback instead of ever reaching a network fetch.\n\t\t\tconst isCurrencyCombiningOp =\n\t\t\t\top === OpCode.UOM_CONVERT_IN || op === OpCode.UOM_CONVERT_TO ||\n\t\t\t\top === OpCode.ADD || op === OpCode.SUB || op === OpCode.MUL || op === OpCode.DIV;\n\t\t\tif (isCurrencyCombiningOp) {\n\t\t\t\tif (prevStrIdx >= 0 && lastStrIdx >= 0) {\n\t\t\t\t\tconst fromUnit = strings[prevStrIdx];\n\t\t\t\t\tconst toUnit = strings[lastStrIdx];\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.exchange.isCurrency(fromUnit) &&\n\t\t\t\t\t\tthis.exchange.isCurrency(toUnit) &&\n\t\t\t\t\t\tfromUnit.toUpperCase() !== toUnit.toUpperCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst syncRate = this.exchange.getRateSync(fromUnit, toUnit);\n\t\t\t\t\t\tif (syncRate === null) {\n\t\t\t\t\t\t\tconst fromUpper = fromUnit.toUpperCase();\n\t\t\t\t\t\t\tconst toUpper = toUnit.toUpperCase();\n\n\t\t\t\t\t\t\t// Check TanStack Query cache\n\t\t\t\t\t\t\tconst cacheKey = [CURRENCY_NS, fromUpper, toUpper];\n\t\t\t\t\t\t\tif (queryClient.getQueryData(cacheKey) !== undefined) {\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Fetch via TanStack Query (dedup + retry automatic)\n\t\t\t\t\t\t\tconst resolver = queryClient.fetchQuery({\n\t\t\t\t\t\t\t\tqueryKey: cacheKey,\n\t\t\t\t\t\t\t\tqueryFn: ({ signal: qSignal }) => {\n\t\t\t\t\t\t\t\t\treturn this.exchange.getRate(fromUnit, toUnit, qSignal).then((rate) => numberValue(rate));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstaleTime: 5 * 60 * 1000,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn { queryKey: cacheKey.join(\":\"), resolver, packageId, signal, metadata: { fromUnit, toUnit } };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Step over this instruction and its operands. Shared table, because\n\t\t\t// three hand-copied versions of this had already drifted.\n\t\t\ti = nextInstruction(opcodes, i);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tdestroy(): void {\n\t\t// Cache cleared by ResolverRegistry.unregister() via removeQueries({ queryKey: [\"currency\"] })\n\t}\n}\n"]}
@@ -0,0 +1,2 @@
1
+ var d={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function s(r){return Math.min(255,Math.max(0,Math.round(r)))}function b(r){return Math.min(1,Math.max(0,r))}function f(r){return s(r).toString(16).padStart(2,"0")}function v(r){return String(Number(r.toFixed(3)))}function R(r){let e=r.startsWith("#")?r.slice(1):r;if(!/^[0-9a-fA-F]+$/.test(e))return null;let n=o=>parseInt(o+o,16),t=o=>parseInt(o,16);switch(e.length){case 3:return {r:n(e[0]),g:n(e[1]),b:n(e[2]),a:1,format:"hex"};case 4:return {r:n(e[0]),g:n(e[1]),b:n(e[2]),a:n(e[3])/255,format:"hex"};case 6:return {r:t(e.slice(0,2)),g:t(e.slice(2,4)),b:t(e.slice(4,6)),a:1,format:"hex"};case 8:return {r:t(e.slice(0,2)),g:t(e.slice(2,4)),b:t(e.slice(4,6)),a:t(e.slice(6,8))/255,format:"hex"};default:return null}}function F(r){let e=r.trim().toLowerCase();if(e==="transparent")return {r:0,g:0,b:0,a:0,format:"named",name:"transparent"};let n=Object.prototype.hasOwnProperty.call(d,e)?d[e]:void 0;return n?{r:n[0],g:n[1],b:n[2],a:1,format:"named",name:e}:null}function W(r){let e=r.trim();if(e.startsWith("#")||/^[0-9a-fA-F]{3,8}$/.test(e)){let n=R(e);if(n)return n}return F(e)}function C(r,e,n){let t=r/255,o=e/255,a=n/255,l=Math.max(t,o,a),u=Math.min(t,o,a),i=(l+u)/2;if(l===u)return {h:0,s:0,l:i};let m=l-u,q=i>.5?m/(2-l-u):m/(l+u),c;return l===t?c=(o-a)/m+(o<a?6:0):l===o?c=(a-t)/m+2:c=(t-o)/m+4,{h:c*60,s:q,l:i}}function M(r,e,n){if(e===0){let u=s(n*255);return {r:u,g:u,b:u}}let t=n<.5?n*(1+e):n+e-n*e,o=2*n-t,a=(r%360+360)%360/360,l=u=>{let i=u;return i<0&&(i+=1),i>1&&(i-=1),i<1/6?o+(t-o)*6*i:i<1/2?t:i<2/3?o+(t-o)*(2/3-i)*6:o};return {r:s(l(a+1/3)*255),g:s(l(a)*255),b:s(l(a-1/3)*255)}}function A(r){let e=`#${f(r.r)}${f(r.g)}${f(r.b)}`;return r.a<1?`${e}${f(r.a*255)}`:e}function _(r){switch(r.format){case "rgb":return `rgb(${r.r}, ${r.g}, ${r.b})`;case "rgba":return `rgba(${r.r}, ${r.g}, ${r.b}, ${v(r.a)})`;case "hsl":{let{h:e,s:n,l:t}=C(r.r,r.g,r.b);return `hsl(${Math.round(e)}, ${Math.round(n*100)}%, ${Math.round(t*100)}%)`}case "hsla":{let{h:e,s:n,l:t}=C(r.r,r.g,r.b);return `hsla(${Math.round(e)}, ${Math.round(n*100)}%, ${Math.round(t*100)}%, ${v(r.a)})`}case "named":return r.name??A(r);default:return A(r)}}function h(r){let e=r/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function $(r){return .2126*h(r.r)+.7152*h(r.g)+.0722*h(r.b)}function x(r,e){let n=$(r)+.05,t=$(e)+.05;return n>t?n/t:t/n}function D(r,e){let n=r.format==="named"?"hex":r.format;return {r:e.r??r.r,g:e.g??r.g,b:e.b??r.b,a:e.a??r.a,format:n}}function g(r,e){let n=C(r.r,r.g,r.b);e(n);let{r:t,g:o,b:a}=M(n.h,n.s,n.l);return D(r,{r:t,g:o,b:a})}function j(r,e){return g(r,n=>n.l=b(n.l+e))}function E(r,e){return g(r,n=>n.l=b(n.l-e))}function B(r,e){return g(r,n=>n.s=b(n.s+e))}function P(r,e){return g(r,n=>n.s=b(n.s-e))}function H(r,e){return g(r,n=>n.h=((n.h+e)%360+360)%360)}function G(r){return H(r,180)}function U(r){let e=s(.299*r.r+.587*r.g+.114*r.b);return D(r,{r:e,g:e,b:e})}function z(r,e=1){let n=b(e);return D(r,{r:s(r.r+(255-2*r.r)*n),g:s(r.g+(255-2*r.g)*n),b:s(r.b+(255-2*r.b)*n)})}function y(r,e,n=.5){let t=b(n),o=(l,u)=>l*(1-t)+u*t,a=r.format==="named"?"hex":r.format;return {r:s(o(r.r,e.r)),g:s(o(r.g,e.g)),b:s(o(r.b,e.b)),a:b(o(r.a,e.a)),format:a}}function K(r,e){let n=b(e),t=r.format;return n<1&&(t==="rgb"?t="rgba":t==="hsl"?t="hsla":t==="named"&&(t="hex")),{r:r.r,g:r.g,b:r.b,a:n,format:t}}var k={r:255,g:255,b:255,a:1,format:"hex"},w={r:0,g:0,b:0,a:1,format:"hex"},I={r:128,g:128,b:128,a:1};function V(r,e,n){let t=(r%360+360)%360/60,o=n*e,a=o*(1-Math.abs(t%2-1)),l=n-o,u=0,i=0,m=0;return t<1?[u,i,m]=[o,a,0]:t<2?[u,i,m]=[a,o,0]:t<3?[u,i,m]=[0,o,a]:t<4?[u,i,m]=[0,a,o]:t<5?[u,i,m]=[a,0,o]:[u,i,m]=[o,0,a],{r:s((u+l)*255),g:s((i+l)*255),b:s((m+l)*255)}}function Y(r,e,n){let t=b(e),o=b(n);if(t+o>=1){let u=s(t/(t+o)*255);return {r:u,g:u,b:u}}let a=M(r,1,.5),l=u=>s(u*(1-t-o)+t*255);return {r:l(a.r),g:l(a.g),b:l(a.b)}}function J(r,e){return y(r,k,e)}function Q(r,e){return y(r,w,e)}function X(r,e){return y(r,I,e)}function N(r){return x(r,k)>=x(r,w)}function Z(r){return N(r)?k:w}var p={aa:4.5,aaa:7,aaLarge:3,aaaLarge:4.5};function rr(r,e){let n=x(r,e);return n>=p.aaa?"AAA":n>=p.aa?"AA":n>=p.aaLarge?"AA Large":"Fail"}function nr(r){let e=/^\/(\d{1,2})$/.exec(r);if(e){let l=Number(e[1]);return l<=32?{prefix:l}:null}let n=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?:\/(\d{1,2}))?$/.exec(r);if(!n)return null;let t=[Number(n[1]),Number(n[2]),Number(n[3]),Number(n[4])];if(t.some(l=>l>255))return null;let o=(t[0]<<24|t[1]<<16|t[2]<<8|t[3])>>>0;if(n[5]===void 0)return {addr:o};let a=Number(n[5]);return a>32?null:{addr:o,prefix:a}}function tr(r){return [r>>>24&255,r>>>16&255,r>>>8&255,r&255].join(".")}function S(r){return r===0?0:4294967295<<32-r>>>0}function or(r){return r>=31?r===32?1:2:Math.pow(2,32-r)-2}function L(r,e){return (r&S(e))>>>0}function ar(r,e){return (r|~S(e)>>>0)>>>0}function ur(r,e,n){return L(r,n)===L(e,n)}export{p as A,rr as B,nr as C,tr as D,S as E,or as F,ar as G,ur as H,s as a,b,W as c,C as d,M as e,A as f,_ as g,$ as h,x as i,j,E as k,B as l,P as m,H as n,G as o,U as p,z as q,y as r,K as s,V as t,Y as u,J as v,Q as w,X as x,N as y,Z as z};//# sourceMappingURL=chunk-CAJKB4WQ.js.map
2
+ //# sourceMappingURL=chunk-CAJKB4WQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/packages/colour/CssNamedColours.ts","../src/packages/colour/ColourMath.ts","../src/packages/ip/IpMath.ts"],"names":["CSS_NAMED_COLOURS","clamp255","x","clamp01","hexByte","n","formatAlpha","a","parseHex","input","s","dbl","h","pair","namedColour","name","key","rgb","parseColour","trimmed","hex","rgbToHsl","g","b","rn","gn","bn","max","min","l","d","hslToRgb","v","q","p","hn","hue","t","tt","toHexString","c","base","formatColour","linearise","channel8","cs","relativeLuminance","contrastRatio","la","lb","derive","next","format","adjustHsl","fn","hsl","r","lighten","amount","darken","saturate","desaturate","rotateHue","degrees","complement","grayscale","y","invert","mix","weight","lerp","withAlpha","alpha","WHITE","BLACK","MID_GREY","hsvToRgb","hh","m","hwbToRgb","w","wh","bl","grey","channel","ch","tint","shade","tone","isDark","readableColour","background","WCAG_THRESHOLDS","wcagLevel","ratio","parseIpCidr","text","bareprefix","prefix","match","octets","o","addr","formatIp","netmask","usableHosts","networkAddress","broadcastAddress","addressInBlock","blockAddr"],"mappings":"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","file":"chunk-CAJKB4WQ.js","sourcesContent":["/**\n * The complete CSS Color Module Level 4 named-colour set, as canonical sRGB\n * `[r, g, b]` triples (0-255). These are the same values every browser resolves\n * a keyword to, so `color(\"rebeccapurple\")` matches what the page would render.\n *\n * `transparent` is handled by the caller (it is `rgba(0, 0, 0, 0)`, an alpha the\n * triples here cannot express) and `currentColor` is deliberately absent: it is\n * context-dependent, not a fixed colour.\n */\nexport const CSS_NAMED_COLOURS: Readonly<Record<string, readonly [number, number, number]>> = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n};\n","/**\n * Pure colour maths for the colour package. Everything here is a plain function\n * over numbers and {@link ColourData} with no engine imports and no side effects,\n * so it is trivially unit-testable and can be reused by a host renderer (the docs\n * notepad reads these to draw a swatch). Canonical storage is sRGB: `r`,`g`,`b`\n * are integers 0-255 and `a` is 0-1. HSL is derived on demand and re-quantised,\n * never stored, so equal-and-opposite operations return to a stable colour.\n */\nimport type { ColourData, ColourFormat } from \"@solve-js/vm/Value\";\nimport { CSS_NAMED_COLOURS } from \"./CssNamedColours\";\n\n/** Round and clamp a value to a valid 0-255 sRGB channel. */\nexport function clamp255(x: number): number {\n\treturn Math.min(255, Math.max(0, Math.round(x)));\n}\n\n/** Clamp a value to the 0-1 range used for alpha and normalised HSL. */\nexport function clamp01(x: number): number {\n\treturn Math.min(1, Math.max(0, x));\n}\n\nfunction hexByte(n: number): string {\n\treturn clamp255(n).toString(16).padStart(2, \"0\");\n}\n\n/**\n * Render the alpha channel the way CSS does: a plain decimal with no trailing\n * zeros (`1`, `0.5`, `0.333`), so `rgba(255, 0, 0, 0.5)` reads back cleanly.\n */\nfunction formatAlpha(a: number): string {\n\treturn String(Number(a.toFixed(3)));\n}\n\n// ── Parsing ─────────────────────────────────────────────────────────────\n\n/**\n * Parse a CSS hex colour: `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`,\n * case-insensitive, leading `#` optional. Three and four digit forms expand each\n * nibble (`f` becomes `ff`), matching a browser. Any other length or a non-hex\n * character returns null so the caller can raise a clear error.\n */\nexport function parseHex(input: string): ColourData | null {\n\tconst s = input.startsWith(\"#\") ? input.slice(1) : input;\n\tif (!/^[0-9a-fA-F]+$/.test(s)) return null;\n\tconst dbl = (h: string): number => parseInt(h + h, 16);\n\tconst pair = (h: string): number => parseInt(h, 16);\n\tswitch (s.length) {\n\t\tcase 3:\n\t\t\treturn { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: 1, format: \"hex\" };\n\t\tcase 4:\n\t\t\treturn { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: dbl(s[3]) / 255, format: \"hex\" };\n\t\tcase 6:\n\t\t\treturn { r: pair(s.slice(0, 2)), g: pair(s.slice(2, 4)), b: pair(s.slice(4, 6)), a: 1, format: \"hex\" };\n\t\tcase 8:\n\t\t\treturn {\n\t\t\t\tr: pair(s.slice(0, 2)),\n\t\t\t\tg: pair(s.slice(2, 4)),\n\t\t\t\tb: pair(s.slice(4, 6)),\n\t\t\t\ta: pair(s.slice(6, 8)) / 255,\n\t\t\t\tformat: \"hex\",\n\t\t\t};\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n/**\n * Resolve a CSS named colour (case-insensitive), including `transparent`. Returns\n * null for an unknown keyword so the caller can raise an error.\n */\nexport function namedColour(name: string): ColourData | null {\n\tconst key = name.trim().toLowerCase();\n\tif (key === \"transparent\") return { r: 0, g: 0, b: 0, a: 0, format: \"named\", name: \"transparent\" };\n\tconst rgb = Object.prototype.hasOwnProperty.call(CSS_NAMED_COLOURS, key) ? CSS_NAMED_COLOURS[key] : undefined;\n\tif (!rgb) return null;\n\treturn { r: rgb[0], g: rgb[1], b: rgb[2], a: 1, format: \"named\", name: key };\n}\n\n/** Parse either a hex string or a named colour; null if neither. */\nexport function parseColour(input: string): ColourData | null {\n\tconst trimmed = input.trim();\n\tif (trimmed.startsWith(\"#\") || /^[0-9a-fA-F]{3,8}$/.test(trimmed)) {\n\t\tconst hex = parseHex(trimmed);\n\t\tif (hex) return hex;\n\t}\n\treturn namedColour(trimmed);\n}\n\n// ── RGB <-> HSL ─────────────────────────────────────────────────────────\n\n/** Convert sRGB (0-255) to HSL with h in [0, 360), s and l in [0, 1]. */\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n\tconst rn = r / 255;\n\tconst gn = g / 255;\n\tconst bn = b / 255;\n\tconst max = Math.max(rn, gn, bn);\n\tconst min = Math.min(rn, gn, bn);\n\tconst l = (max + min) / 2;\n\tif (max === min) return { h: 0, s: 0, l };\n\tconst d = max - min;\n\tconst s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\tlet h: number;\n\tif (max === rn) h = (gn - bn) / d + (gn < bn ? 6 : 0);\n\telse if (max === gn) h = (bn - rn) / d + 2;\n\telse h = (rn - gn) / d + 4;\n\treturn { h: h * 60, s, l };\n}\n\n/** Convert HSL (h in degrees, s and l in [0, 1]) to sRGB (0-255 integers). */\nexport function hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {\n\tif (s === 0) {\n\t\tconst v = clamp255(l * 255);\n\t\treturn { r: v, g: v, b: v };\n\t}\n\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\tconst p = 2 * l - q;\n\tconst hn = (((h % 360) + 360) % 360) / 360;\n\tconst hue = (t: number): number => {\n\t\tlet tt = t;\n\t\tif (tt < 0) tt += 1;\n\t\tif (tt > 1) tt -= 1;\n\t\tif (tt < 1 / 6) return p + (q - p) * 6 * tt;\n\t\tif (tt < 1 / 2) return q;\n\t\tif (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;\n\t\treturn p;\n\t};\n\treturn {\n\t\tr: clamp255(hue(hn + 1 / 3) * 255),\n\t\tg: clamp255(hue(hn) * 255),\n\t\tb: clamp255(hue(hn - 1 / 3) * 255),\n\t};\n}\n\n// ── Display ─────────────────────────────────────────────────────────────\n\n/** Canonical hex string, `#rrggbb`, extended to `#rrggbbaa` only when a < 1. */\nexport function toHexString(c: ColourData): string {\n\tconst base = `#${hexByte(c.r)}${hexByte(c.g)}${hexByte(c.b)}`;\n\treturn c.a < 1 ? `${base}${hexByte(c.a * 255)}` : base;\n}\n\n/**\n * Render a colour as the CSS string matching its authored `format`. Always valid\n * CSS, so a host can drop it straight into a `background` (this is both the\n * displayed answer text and the DTO `css` field).\n */\nexport function formatColour(c: ColourData): string {\n\tswitch (c.format) {\n\t\tcase \"rgb\":\n\t\t\treturn `rgb(${c.r}, ${c.g}, ${c.b})`;\n\t\tcase \"rgba\":\n\t\t\treturn `rgba(${c.r}, ${c.g}, ${c.b}, ${formatAlpha(c.a)})`;\n\t\tcase \"hsl\": {\n\t\t\tconst { h, s, l } = rgbToHsl(c.r, c.g, c.b);\n\t\t\treturn `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;\n\t\t}\n\t\tcase \"hsla\": {\n\t\t\tconst { h, s, l } = rgbToHsl(c.r, c.g, c.b);\n\t\t\treturn `hsla(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%, ${formatAlpha(c.a)})`;\n\t\t}\n\t\tcase \"named\":\n\t\t\treturn c.name ?? toHexString(c);\n\t\tcase \"hex\":\n\t\tdefault:\n\t\t\treturn toHexString(c);\n\t}\n}\n\n// ── WCAG luminance and contrast ─────────────────────────────────────────\n\nfunction linearise(channel8: number): number {\n\tconst cs = channel8 / 255;\n\treturn cs <= 0.03928 ? cs / 12.92 : Math.pow((cs + 0.055) / 1.055, 2.4);\n}\n\n/** WCAG relative luminance, 0 (black) to 1 (white). Alpha is ignored, per WCAG. */\nexport function relativeLuminance(c: ColourData): number {\n\treturn 0.2126 * linearise(c.r) + 0.7152 * linearise(c.g) + 0.0722 * linearise(c.b);\n}\n\n/** WCAG contrast ratio between two colours, 1 (identical) to 21 (black on white). */\nexport function contrastRatio(a: ColourData, b: ColourData): number {\n\tconst la = relativeLuminance(a) + 0.05;\n\tconst lb = relativeLuminance(b) + 0.05;\n\treturn la > lb ? la / lb : lb / la;\n}\n\n// ── Operations ──────────────────────────────────────────────────────────\n\n/**\n * Rebuild a colour from new channels, preserving the display format and alpha\n * unless overridden. A `named` colour whose channels change is no longer that\n * keyword, so it falls back to hex display.\n */\nfunction derive(c: ColourData, next: { r?: number; g?: number; b?: number; a?: number }): ColourData {\n\tconst format: ColourFormat = c.format === \"named\" ? \"hex\" : c.format;\n\treturn {\n\t\tr: next.r ?? c.r,\n\t\tg: next.g ?? c.g,\n\t\tb: next.b ?? c.b,\n\t\ta: next.a ?? c.a,\n\t\tformat,\n\t};\n}\n\nfunction adjustHsl(c: ColourData, fn: (hsl: { h: number; s: number; l: number }) => void): ColourData {\n\tconst hsl = rgbToHsl(c.r, c.g, c.b);\n\tfn(hsl);\n\tconst { r, g, b } = hslToRgb(hsl.h, hsl.s, hsl.l);\n\treturn derive(c, { r, g, b });\n}\n\n/** Increase lightness by `amount` (a fraction 0-1). */\nexport function lighten(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.l = clamp01(hsl.l + amount)));\n}\n\n/** Decrease lightness by `amount`. */\nexport function darken(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.l = clamp01(hsl.l - amount)));\n}\n\n/** Increase saturation by `amount`. */\nexport function saturate(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.s = clamp01(hsl.s + amount)));\n}\n\n/** Decrease saturation by `amount`. */\nexport function desaturate(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.s = clamp01(hsl.s - amount)));\n}\n\n/** Rotate the hue by `degrees` (wraps at 360). */\nexport function rotateHue(c: ColourData, degrees: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.h = ((hsl.h + degrees) % 360 + 360) % 360));\n}\n\n/** The colour on the opposite side of the wheel (hue + 180). */\nexport function complement(c: ColourData): ColourData {\n\treturn rotateHue(c, 180);\n}\n\n/** Convert to grey using Rec.601 luma, preserving alpha. */\nexport function grayscale(c: ColourData): ColourData {\n\tconst y = clamp255(0.299 * c.r + 0.587 * c.g + 0.114 * c.b);\n\treturn derive(c, { r: y, g: y, b: y });\n}\n\n/** Invert each channel by `amount` (1 = full inversion), preserving alpha. */\nexport function invert(c: ColourData, amount = 1): ColourData {\n\tconst t = clamp01(amount);\n\treturn derive(c, {\n\t\tr: clamp255(c.r + (255 - 2 * c.r) * t),\n\t\tg: clamp255(c.g + (255 - 2 * c.g) * t),\n\t\tb: clamp255(c.b + (255 - 2 * c.b) * t),\n\t});\n}\n\n/**\n * Blend two colours by linear sRGB interpolation, `weight` toward `b` (0.5 is the\n * midpoint). This matches Sass `mix()` and DevTools blending; it is not\n * perceptually uniform (that would be Oklab), a deliberate zero-dependency choice.\n */\nexport function mix(a: ColourData, b: ColourData, weight = 0.5): ColourData {\n\tconst t = clamp01(weight);\n\tconst lerp = (x: number, y: number): number => x * (1 - t) + y * t;\n\tconst format: ColourFormat = a.format === \"named\" ? \"hex\" : a.format;\n\treturn {\n\t\tr: clamp255(lerp(a.r, b.r)),\n\t\tg: clamp255(lerp(a.g, b.g)),\n\t\tb: clamp255(lerp(a.b, b.b)),\n\t\ta: clamp01(lerp(a.a, b.a)),\n\t\tformat,\n\t};\n}\n\n/** Set the alpha channel, upgrading the display format so the alpha shows. */\nexport function withAlpha(c: ColourData, alpha: number): ColourData {\n\tconst a = clamp01(alpha);\n\tlet format: ColourFormat = c.format;\n\tif (a < 1) {\n\t\tif (format === \"rgb\") format = \"rgba\";\n\t\telse if (format === \"hsl\") format = \"hsla\";\n\t\telse if (format === \"named\") format = \"hex\";\n\t}\n\treturn { r: c.r, g: c.g, b: c.b, a, format };\n}\n\n// ── Additional colour spaces and helpers ────────────────────────────────\n\n/** Opaque white and black, reused by the luminance-based helpers below. */\nconst WHITE: ColourData = { r: 255, g: 255, b: 255, a: 1, format: \"hex\" };\nconst BLACK: ColourData = { r: 0, g: 0, b: 0, a: 1, format: \"hex\" };\nconst MID_GREY: ColourData = { r: 128, g: 128, b: 128, a: 1, format: \"hex\" };\n\n/**\n * Convert HSV/HSB (hue in degrees, saturation and value in 0-1) to sRGB. HSV is\n * the wheel most colour pickers present (DevTools included), distinct from HSL:\n * `value` is how bright the colour is, where HSL's `lightness` is how close to\n * white or black.\n */\nexport function hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {\n\tconst hh = ((((h % 360) + 360) % 360)) / 60;\n\tconst c = v * s;\n\tconst x = c * (1 - Math.abs((hh % 2) - 1));\n\tconst m = v - c;\n\tlet r = 0;\n\tlet g = 0;\n\tlet b = 0;\n\tif (hh < 1) [r, g, b] = [c, x, 0];\n\telse if (hh < 2) [r, g, b] = [x, c, 0];\n\telse if (hh < 3) [r, g, b] = [0, c, x];\n\telse if (hh < 4) [r, g, b] = [0, x, c];\n\telse if (hh < 5) [r, g, b] = [x, 0, c];\n\telse [r, g, b] = [c, 0, x];\n\treturn { r: clamp255((r + m) * 255), g: clamp255((g + m) * 255), b: clamp255((b + m) * 255) };\n}\n\n/**\n * Convert HWB (hue in degrees, whiteness and blackness in 0-1) to sRGB, the CSS\n * Color 4 model: start from the pure hue and mix in white and black. When\n * whiteness and blackness sum to 1 or more the hue washes out to grey.\n */\nexport function hwbToRgb(h: number, w: number, b: number): { r: number; g: number; b: number } {\n\tconst wh = clamp01(w);\n\tconst bl = clamp01(b);\n\tif (wh + bl >= 1) {\n\t\tconst grey = clamp255((wh / (wh + bl)) * 255);\n\t\treturn { r: grey, g: grey, b: grey };\n\t}\n\tconst base = hslToRgb(h, 1, 0.5);\n\tconst channel = (ch: number): number => clamp255(ch * (1 - wh - bl) + wh * 255);\n\treturn { r: channel(base.r), g: channel(base.g), b: channel(base.b) };\n}\n\n/** Mix toward white by `amount` (a tint). */\nexport function tint(c: ColourData, amount: number): ColourData {\n\treturn mix(c, WHITE, amount);\n}\n\n/** Mix toward black by `amount` (a shade). */\nexport function shade(c: ColourData, amount: number): ColourData {\n\treturn mix(c, BLACK, amount);\n}\n\n/** Mix toward mid-grey by `amount` (a tone). */\nexport function tone(c: ColourData, amount: number): ColourData {\n\treturn mix(c, MID_GREY, amount);\n}\n\n/**\n * Whether a colour reads as dark, meaning white text on it has at least as much\n * WCAG contrast as black text does. Backs {@link readableColour} and the\n * `isdark`/`islight` predicates.\n */\nexport function isDark(c: ColourData): boolean {\n\treturn contrastRatio(c, WHITE) >= contrastRatio(c, BLACK);\n}\n\n/** Black or white, whichever has the higher WCAG contrast against `background`. */\nexport function readableColour(background: ColourData): ColourData {\n\treturn isDark(background) ? WHITE : BLACK;\n}\n\n/**\n * WCAG 2.x minimum contrast ratios. Normal text needs 4.5 (AA) or 7 (AAA); large\n * text (>= 18pt, or >= 14pt bold) and UI components need 3 (AA) or 4.5 (AAA).\n */\nexport const WCAG_THRESHOLDS = { aa: 4.5, aaa: 7, aaLarge: 3, aaaLarge: 4.5 } as const;\n\n/** The four WCAG ratings this package reports, best first. */\nexport type WcagLevel = \"AAA\" | \"AA\" | \"AA Large\" | \"Fail\";\n\n/**\n * The best WCAG 2.x rating two colours pass for normal-size text: `AAA` (ratio\n * >= 7), `AA` (>= 4.5), `AA Large` (>= 3, which meets AA only for large text or\n * UI), or `Fail` (< 3). This is the badge a contrast checker shows.\n */\nexport function wcagLevel(a: ColourData, b: ColourData): WcagLevel {\n\tconst ratio = contrastRatio(a, b);\n\tif (ratio >= WCAG_THRESHOLDS.aaa) return \"AAA\";\n\tif (ratio >= WCAG_THRESHOLDS.aa) return \"AA\";\n\tif (ratio >= WCAG_THRESHOLDS.aaLarge) return \"AA Large\";\n\treturn \"Fail\";\n}\n","/**\n * IPv4 subnet arithmetic, as pure functions (issue #189). An IPv4 address is a\n * 32-bit number written as four 0-255 parts (`192.168.1.10`); a CIDR block is\n * such an address with a prefix length (`192.168.1.0/24`), where the prefix says\n * how many leading bits name the network and the rest name hosts within it. The\n * netmask is those network bits set to 1; the broadcast address is every host\n * bit set to 1. Everything here is plain 32-bit maths, so it carries no engine\n * import and is easy to test.\n *\n * All addresses are held as unsigned 32-bit integers; `>>> 0` keeps JavaScript's\n * signed bitwise operators in the unsigned range.\n */\n\n/** A parsed address and/or prefix. A bare address has no prefix; a bare `/24` has no address. */\nexport interface ParsedIp {\n\treadonly addr?: number;\n\treadonly prefix?: number;\n}\n\n/**\n * Parses `a.b.c.d`, `a.b.c.d/n` or `/n`, or null when it is not one of those (a\n * part over 255, a prefix over 32, the wrong shape). This is what a normalizer\n * uses to decide whether a run of digits and dots is really an address.\n */\nexport function parseIpCidr(text: string): ParsedIp | null {\n\tconst bareprefix = /^\\/(\\d{1,2})$/.exec(text);\n\tif (bareprefix) {\n\t\tconst prefix = Number(bareprefix[1]);\n\t\treturn prefix <= 32 ? { prefix } : null;\n\t}\n\tconst match = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})(?:\\/(\\d{1,2}))?$/.exec(text);\n\tif (!match) return null;\n\tconst octets = [Number(match[1]), Number(match[2]), Number(match[3]), Number(match[4])];\n\tif (octets.some((o) => o > 255)) return null;\n\tconst addr = ((octets[0] << 24) | (octets[1] << 16) | (octets[2] << 8) | octets[3]) >>> 0;\n\tif (match[5] === undefined) return { addr };\n\tconst prefix = Number(match[5]);\n\tif (prefix > 32) return null;\n\treturn { addr, prefix };\n}\n\n/** A 32-bit address as its four dotted parts, e.g. `3232235786` becomes `192.168.1.10`. */\nexport function formatIp(addr: number): string {\n\treturn [(addr >>> 24) & 255, (addr >>> 16) & 255, (addr >>> 8) & 255, addr & 255].join(\".\");\n}\n\n/** The netmask for a prefix, as a 32-bit address (`/24` gives `255.255.255.0`). */\nexport function netmask(prefix: number): number {\n\treturn prefix === 0 ? 0 : (0xffffffff << (32 - prefix)) >>> 0;\n}\n\n/** The number of usable host addresses in a prefix (`/24` gives 254: 256 minus the network and broadcast). */\nexport function usableHosts(prefix: number): number {\n\tif (prefix >= 31) return prefix === 32 ? 1 : 2; // RFC 3021: a /31 is a two-host point-to-point link\n\treturn Math.pow(2, 32 - prefix) - 2;\n}\n\n/** The network address of a block: the address with its host bits cleared. */\nexport function networkAddress(addr: number, prefix: number): number {\n\treturn (addr & netmask(prefix)) >>> 0;\n}\n\n/** The broadcast address of a block: the address with its host bits all set. */\nexport function broadcastAddress(addr: number, prefix: number): number {\n\treturn (addr | (~netmask(prefix) >>> 0)) >>> 0;\n}\n\n/** Whether an address falls inside a block, i.e. shares its network. */\nexport function addressInBlock(addr: number, blockAddr: number, prefix: number): boolean {\n\treturn networkAddress(addr, prefix) === networkAddress(blockAddr, prefix);\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {L,K as K$1,n,C as C$1,P as P$1,e,Q as Q$1}from'./chunk-A34R65WT.js';import {c}from'./chunk-6G2NES2I.js';var p={n:0n,d:1n},y={n:1n,d:1n},Z={n:-1n,d:1n},ln=4096,Gn=1n<<BigInt(ln);function V(n,t){let e=1n,r=n,o=t;for(;o>0n;)o%2n===1n&&(e*=r),r*=r,o/=2n;return e}function Rt(n,t){let e=n<0n?-n:n,r=t<0n?-t:t;for(;r!==0n;){let o=e%r;e=r,r=o;}return e}function ht(n,t){if((n<0n?-n:n)>=Gn||t>=Gn)throw c.execution("SYMBOLIC_RATIONAL_OVERFLOW",`This calculation produced a fraction too large to represent exactly (over ${ln} bits).`,{limitBits:ln})}function $(n,t){if(t===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a symbolic expression.");if(n===0n)return p;let e=t<0n?-n:n,r=t<0n?-t:t,o=Rt(e,r);return e/=o,r/=o,ht(e,r),{n:e,d:r}}function Sn(n,t=1n){return $(n,t)}var St=/^(-?)(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/;function In(n){if(!Number.isFinite(n))throw c.execution("SYMBOLIC_NONFINITE_OPERAND",`"${String(n)}" has no exact value, so it cannot appear in a symbolic expression.`,{value:String(n)});if(Number.isInteger(n))return $(BigInt(n),1n);let t=St.exec(String(n));if(t===null)throw c.internal("INTERNAL_RATIONAL_PARSE",`Internal error: could not read "${String(n)}" as a decimal number.`,{value:String(n)});let[,e,r,o="",i]=t,l=BigInt(r+o),a=V(10n,BigInt(o.length)),c$1=i===void 0?0:Number(i);return c$1>0?l*=V(10n,BigInt(c$1)):c$1<0&&(a*=V(10n,BigInt(-c$1))),$(e==="-"?-l:l,a)}function J(n){if(n.d===1n)return Number(n.n);let t=Number(n.n)/Number(n.d);return Number.isNaN(t)?Number((n.n<<64n)/n.d)/2**64:t}function b(n,t){return $(n.n*t.d+t.n*n.d,n.d*t.d)}function C(n,t){return $(n.n*t.d-t.n*n.d,n.d*t.d)}function d(n,t){return $(n.n*t.n,n.d*t.d)}function S(n,t){if(t.n===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a symbolic expression.");return $(n.n*t.d,n.d*t.n)}function I(n){return n.n===0n?p:{n:-n.n,d:n.d}}function vn(n,t){if(t===0n)return y;if(t<0n){if(n.n===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Zero raised to a negative power is undefined.");let e=-t;return $(V(n.d,e),V(n.n,e))}return $(V(n.n,t),V(n.d,t))}function It(n,t){let e=n.n*t.d,r=t.n*n.d;return e<r?-1:e>r?1:0}function u(n){return n.n===0n}function N(n){return n.n===1n&&n.d===1n}function nn(n){return n.n===-1n&&n.d===1n}function P(n){return n.d===1n}var vt=10,Wn=1000000n;function D(n){if(n.d===1n)return String(n.n);let t=n.d,e=0,r=0;for(;t%2n===0n;)t/=2n,e++;for(;t%5n===0n;)t/=5n,r++;let o=t===1n,i=Math.max(e,r);if(!o||i>vt)return (n.n<0n?-n.n:n.n)<=Wn&&n.d<=Wn?`${n.n}/${n.d}`:String(Math.round(J(n)*1e10)/1e10);let l=(n.n<0n?-n.n:n.n)*V(10n,BigInt(i))/n.d,a=String(l).padStart(i+1,"0"),c=a.slice(0,a.length-i),f=a.slice(a.length-i).replace(/0+$/,""),m=n.n<0n?"-":"";return f.length===0?`${m}${c}`:`${m}${c}.${f}`}var zn={re:p,im:p},an={re:y,im:p},kn={re:p,im:y};function cn(n,t=p){return {re:n,im:t}}function K(n){return u(n.re)&&u(n.im)}function Dn(n,t){return {re:b(n.re,t.re),im:b(n.im,t.im)}}function En(n,t){return {re:C(n.re,t.re),im:C(n.im,t.im)}}function tn(n,t){return {re:C(d(n.re,t.re),d(n.im,t.im)),im:b(d(n.re,t.im),d(n.im,t.re))}}function sn(n,t){if(K(t))throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a complex expression.");let e=b(d(t.re,t.re),d(t.im,t.im));return {re:S(b(d(n.re,t.re),d(n.im,t.im)),e),im:S(C(d(n.im,t.re),d(n.re,t.im)),e)}}function Cn(n){return {re:I(n.re),im:I(n.im)}}function An(n){return {re:n.re,im:I(n.im)}}function un(n){return b(d(n.re,n.re),d(n.im,n.im))}function fn(n,t){if(t===0n)return an;if(t<0n){if(K(n))throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Zero raised to a negative power is undefined.");return sn(an,fn(n,-t))}let e=an,r=n,o=t;for(;o>0n;)o%2n===1n&&(e=tn(e,r)),r=tn(r,r),o/=2n;return e}function wn(n,t){return n.re.n===t.re.n&&n.re.d===t.re.d&&n.im.n===t.im.n&&n.im.d===t.im.d}function mn(n){if(u(n.im))return D(n.re);let t=n.im.n<0n?I(n.im):n.im,e=N(t)?"i":`${D(t)}i`;return u(n.re)?n.im.n<0n?`-${e}`:e:n.im.n<0n?`${D(n.re)}-${e}`:`${D(n.re)}+${e}`}function dn(n){if(K(n))return zn;let t=Mn(un(n));if(t===null)return null;let e={n:2n,d:1n},r=Mn(S(b(t,n.re),e));if(r===null)return null;if(u(r)){let i=Mn(S(C(t,n.re),e));return i===null?null:{re:p,im:i}}let o=S(n.im,d(e,r));return {re:r,im:o}}function Mn(n){if(n.n<0n)return null;let t=Qn(n.n),e=Qn(n.d);return t===null||e===null?null:{n:t,d:e}}function Qn(n){if(n<0n)return null;if(n<2n)return n;let t=n,e=(n+1n)/2n;for(;e<t;)t=e,e=(t+n/t)/2n;return t*t===n?t:null}var j=1e4;function s(n){return {kind:"const",value:typeof n=="number"?In(n):n}}function U(n){return {kind:"var",name:n}}function _n(n,t){return {kind:"pow",base:n,exponent:t}}function Mt(n,t){return {kind:"call",name:n,args:t}}function v(n){switch(n.kind){case "const":return `${n.value.n}/${n.value.d}`;case "complex":return `C(${n.value.re.n}/${n.value.re.d},${n.value.im.n}/${n.value.im.d})`;case "var":return `v:${n.name}`;case "neg":return `-(${v(n.operand)})`;case "pow":return `^(${v(n.base)},${v(n.exponent)})`;case "call":return `${n.name}(${n.args.map(v).join(",")})`;case "add":return `+(${v(n.left)},${v(n.right)})`;case "sub":return `-(${v(n.left)},${v(n.right)})`;case "mul":return `*(${v(n.left)},${v(n.right)})`;case "div":return `/(${v(n.left)},${v(n.right)})`}}function E(n,t){if(n.kind!==t.kind)return false;switch(n.kind){case "const":{let e=t;return n.value.n===e.value.n&&n.value.d===e.value.d}case "complex":return wn(n.value,t.value);case "var":return n.name===t.name;case "neg":return E(n.operand,t.operand);case "pow":{let e=t;return E(n.base,e.base)&&E(n.exponent,e.exponent)}case "call":{let e=t;return n.name!==e.name||n.args.length!==e.args.length?false:n.args.every((r,o)=>E(r,e.args[o]))}case "add":case "sub":case "mul":case "div":{let e=t;return E(n.left,e.left)&&E(n.right,e.right)}}}function On(n,t=Number.POSITIVE_INFINITY){let e=[n],r=0;for(;e.length>0;){let o=e.pop();if(r++,r>t)return r;switch(o.kind){case "const":case "complex":case "var":break;case "neg":e.push(o.operand);break;case "pow":e.push(o.base,o.exponent);break;case "call":for(let i of o.args)e.push(i);break;case "add":case "sub":case "mul":case "div":e.push(o.left,o.right);break}}return r}function kt(n){let t=new Set;return Y(n,t),t}function Y(n,t){switch(n.kind){case "const":case "complex":return;case "var":t.add(n.name);return;case "neg":Y(n.operand,t);return;case "pow":Y(n.base,t),Y(n.exponent,t);return;case "call":for(let e of n.args)Y(e,t);return;case "add":case "sub":case "mul":case "div":Y(n.left,t),Y(n.right,t);}}function q(n,t,e){switch(n.kind){case "const":case "complex":return n;case "var":return n.name===t?e:n;case "neg":return {kind:"neg",operand:q(n.operand,t,e)};case "pow":return {kind:"pow",base:q(n.base,t,e),exponent:q(n.exponent,t,e)};case "call":return {kind:"call",name:n.name,args:n.args.map(r=>q(r,t,e))};case "add":case "sub":case "mul":case "div":return {kind:n.kind,left:q(n.left,t,e),right:q(n.right,t,e)}}}function A(n){return n.im.n===0n?{kind:"const",value:n.re}:{kind:"complex",value:n}}var Dt=32,Jn=2e3,Et=64;function Ct(n){return [...n.keys()].sort().map(e=>n.get(e)===1?e:`${e}^${n.get(e)}`).join("*")}function T(n){let t=new Map;if(n==="")return t;for(let e of n.split("*")){let r=e.indexOf("^");r===-1?t.set(e,1):t.set(e.slice(0,r),Number(e.slice(r+1)));}return t}function pn(n){let t=0;for(let e of T(n).values())t+=e;return t}function nt(n){let t=new Map,e=new Set;for(let[r,o]of n)if(!u(o)){if(pn(r)>Et)return null;t.set(r,o);for(let i of T(r).keys())e.add(i);}return t.size>Jn?null:{terms:t,vars:[...e].sort()}}function tt(n){return u(n)?{terms:new Map,vars:[]}:{terms:new Map([["",n]]),vars:[]}}function et(n,t){let e=new Map(n.terms);for(let[r,o]of t.terms){let i=e.get(r);e.set(r,i===void 0?o:b(i,o));}return nt(e)}function At(n,t){return et(n,Pn(t,Z))}function rt(n,t){if(n.terms.size*t.terms.size>Jn)return null;let e=new Map;for(let[r,o]of n.terms){let i=T(r);for(let[l,a]of t.terms){let c=new Map(i);for(let[L,Rn]of T(l))c.set(L,(c.get(L)??0)+Rn);let f=Ct(c),m=d(o,a),x=e.get(f);e.set(f,x===void 0?m:b(x,m));}}return nt(e)}function wt(n,t){if(t<0||!Number.isInteger(t)||t>Dt)return null;let e=tt(y);for(let r=0;r<t;r++){let o=rt(e,n);if(o===null)return null;e=o;}return e}function Pn(n,t){if(u(t))return {terms:new Map,vars:[]};let e=new Map;for(let[r,o]of n.terms)e.set(r,d(o,t));return {terms:e,vars:n.vars}}function gn(n,t){let e=0;for(let r of n.terms.keys()){let o=t===void 0?pn(r):T(r).get(t)??0;o>e&&(e=o);}return e}function ot(n){return n.vars.length===1?n.vars[0]:null}function H(n,t){let e=gn(n,t),r=new Array(e+1).fill(p);for(let[o,i]of n.terms)r[T(o).get(t)??0]=i;return r}function h(n,t=true){switch(n.kind){case "const":return tt(n.value);case "var":return {terms:new Map([[n.name,y]]),vars:[n.name]};case "neg":{let e=h(n.operand,t);return e===null?null:Pn(e,Z)}case "add":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null?null:et(e,r)}case "sub":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null?null:At(e,r)}case "mul":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null||!t&&(e.terms.size>1||r.terms.size>1)?null:rt(e,r)}case "div":{let e=h(n.right,t);if(e===null||e.vars.length>0)return null;let r=e.terms.get("")??p;if(u(r))return null;let o=h(n.left,t);return o===null?null:Pn(o,S(y,r))}case "pow":{if(n.exponent.kind!=="const"||!P(n.exponent.value))return null;let e=Number(n.exponent.value.n),r=h(n.base,t);return r===null||!t&&r.terms.size>1?null:wt(r,e)}case "complex":return null;case "call":return null}}function _t(n,t,e){let r=pn(t)-pn(n);if(r!==0)return r;let o=T(n),i=T(t);for(let l of e){let a=(i.get(l)??0)-(o.get(l)??0);if(a!==0)return a}return 0}function Ot(n){let t=T(n),e=[...t.keys()].sort(),r=null;for(let o of e){let i=t.get(o),l=i===1?U(o):_n(U(o),s({n:BigInt(i),d:1n}));r=r===null?l:{kind:"mul",left:r,right:l};}return r??s(y)}function $n(n,t){if(n==="")return s(t);let e=t.n<0n?I(t):t,r=Ot(n),o=N(e)?r:{kind:"mul",left:s(e),right:r};return t.n<0n?{kind:"neg",operand:o}:o}function X(n){let t=[...n.terms.keys()].sort((r,o)=>_t(r,o,n.vars));if(t.length===0)return s(p);if(n.terms.get(t[0]).n<0n){let r=t.findIndex(o=>n.terms.get(o).n>0n);r>0&&t.unshift(...t.splice(r,1));}let e=$n(t[0],n.terms.get(t[0]));for(let r=1;r<t.length;r++){let o=n.terms.get(t[r]);o.n<0n?e={kind:"sub",left:e,right:$n(t[r],I(o))}:e={kind:"add",left:e,right:$n(t[r],o)};}return e}function ke(n){let t=h(n);return t===null?n:X(t)}function F(n){let t=n.length-1;for(;t>=0&&u(n[t]);)t--;return n.slice(0,t+1)}function Ae(n){return n.every(u)}function yn(n,t){let e=F([...n]),r=F([...t]);if(r.length===0)throw new Error("polynomialDivide: division by the zero polynomial");let o=r.length-1,i=r[o],l=[...e],a=new Array(Math.max(0,e.length-o)).fill(p);for(let c=l.length-1;c>=o;c--){if(u(l[c]))continue;let f=S(l[c],i),m=c-o;a[m]=f;for(let x=0;x<=o;x++)l[m+x]=C(l[m+x],d(f,r[x]));}return {quotient:F(a),remainder:F(l)}}function xn(n){let t=F(n);if(t.length===0)return t;let e=t[t.length-1];return N(e)?t:t.map(r=>S(r,e))}function it(n,t){let e=F([...n]),r=F([...t]);for(;r.length>0;){let{remainder:o}=yn(e,r);e=r,r=o;}return xn(e)}function $t(n,t){let e=Pt(n,t);if(e===void 0)return null;if(e===null)return h({kind:"const",value:y});let r=it(H(n,e),H(t,e));return Tn(r,e)}function Pt(n,t){let e=new Set([...n.vars,...t.vars]);if(e.size===0)return null;if(!(e.size>1))return [...e][0]}function Tn(n,t){let e=new Map;return n.forEach((r,o)=>{u(r)||e.set(o===0?"":o===1?t:`${t}^${o}`,r);}),{terms:e,vars:e.size>0&&n.length>1?[t]:[]}}function Tt(n,t){let e=$t(n,t);if(e===null||gn(e)===0)return null;let r=ot(e);if(r===null)return null;let o=H(e,r),i=yn(H(n,r),o),l=yn(H(t,r),o);return {numerator:Tn(i.quotient,r),denominator:Tn(l.quotient,r)}}function lt(n){if(n.kind!=="div")return n;let t=h(n.left),e=h(n.right);if(t===null||e===null)return n;let r=Tt(t,e);return r===null?n:Lt(r.numerator,r.denominator,n)}function Lt(n,t,e){if(gn(t)===0){let r=t.terms.get("")??y;if(u(r))return e;let o=new Map;for(let[i,l]of n.terms)o.set(i,S(l,r));return X({terms:o,vars:n.vars})}return {kind:"div",left:X(n),right:X(t)}}function we(n){let t=F([...n]);if(t.length<=1)return xn(t);let e=[];for(let o=1;o<t.length;o++)e.push(d(t[o],{n:BigInt(o),d:1n}));let r=it(t,e);return r.length<=1?xn(t):xn(yn(t,r).quotient)}function en(n){if(n<0n)return null;if(n<2n)return n;let t=n,e=(n+1n)/2n;for(;e<t;)t=e,e=(t+n/t)/2n;return t*t===n?t:null}function Ln(n){let t=n<0n,e=t?-n:n;if(e<2n)return t?-e:e;let r=1n,o=e;for(;r<=o;){let i=(r+o)/2n,l=i*i*i;if(l===e)return t?-i:i;l<e?r=i+1n:o=i-1n;}return null}function Pe(n){let t=en(n.n),e=en(n.d);return t===null||e===null?null:{n:t,d:e}}function Bt(n){let t=n.n*n.d,e=1n,r=t;for(let l=2n;l*l<=r;l++){let a=l*l;for(;r%a===0n;)r/=a,e*=l;}let o=Sn(e,n.d);if(r===1n)return s(o);let i={kind:"call",name:"sqrt",args:[s({n:r,d:1n})]};return o.n===1n&&o.d===1n?i:{kind:"mul",left:s(o),right:i}}function Te(n){return n.n>=0n?Bt(n):{kind:"call",name:"sqrt",args:[s(n)]}}function G(n,t,e,r=0){if(r>=ct)return false;switch(n.kind){case "add":return G(n.left,t,e,r+1)&&G(n.right,t,e,r+1);case "sub":return G(n.left,t,e,r+1)&&G(n.right,!t,e,r+1);case "neg":return G(n.operand,!t,e,r+1);case "const":return e.push({coeff:t?I(n.value):n.value,name:null}),true;case "var":return e.push({coeff:t?Z:y,name:n.name}),true;default:return false}}function Vt(n){let t=[];if(!G(n,false,t))return n;let e=[],r=new Map,o=p;for(let a of t){if(a.name===null){o=b(o,a.coeff);continue}let c=r.get(a.name);c===void 0?(e.push(a.name),r.set(a.name,a.coeff)):r.set(a.name,b(c,a.coeff));}let i=[];for(let a of e){let c=r.get(a);u(c)||(N(c)?i.push(U(a)):nn(c)?i.push({kind:"neg",operand:U(a)}):i.push({kind:"mul",left:s(c),right:U(a)}));}if(i.length===0)return s(o);let l=i[0];for(let a=1;a<i.length;a++)l={kind:"add",left:l,right:i[a]};return u(o)||(l={kind:"add",left:l,right:s(o)}),l}function at(n){let t=h(n,false);return t!==null?X(t):Vt(n)}function Bn(n){let t=n.n/n.d;return n.n<0n&&t*n.d!==n.n?t-1n:t}var Ut=500n;function Ft(n,t){let e=t[0];switch(n){case "abs":return t.length===1?e.n<0n?I(e):e:null;case "sign":return t.length!==1?null:e.n===0n?p:{n:e.n<0n?-1n:1n,d:1n};case "floor":return t.length===1?{n:Bn(e),d:1n}:null;case "ceil":return t.length===1?{n:-Bn(I(e)),d:1n}:null;case "trunc":return t.length===1?{n:e.n/e.d,d:1n}:null;case "round":return t.length===1?{n:Bn(b(e,{n:1n,d:2n})),d:1n}:null;case "sqrt":{if(t.length!==1||e.n<0n)return null;let r=en(e.n),o=en(e.d);return r===null||o===null?null:{n:r,d:o}}case "cbrt":{if(t.length!==1)return null;let r=Ln(e.n),o=Ln(e.d);return r===null||o===null?null:{n:r,d:o}}case "sin":case "tan":case "asin":case "atan":case "sinh":case "tanh":return t.length===1&&u(e)?p:null;case "cos":case "exp":case "cosh":return t.length===1&&u(e)?y:null;case "log":return t.length===1&&N(e)?p:null;case "acos":return t.length===1&&N(e)?p:null;case "fact":{if(t.length!==1||!P(e)||e.n<0n||e.n>Ut)return null;let r=1n;for(let o=2n;o<=e.n;o++)r*=o;return {n:r,d:1n}}default:return null}}function M(n){if(On(n,j)>j)throw c.execution("SYMBOLIC_NODE_LIMIT_EXCEEDED",`This symbolic expression is too large to simplify (over ${j} terms).`,{limit:j});let t=rn;try{return g(n)}finally{rn=t;}}var ct=900,rn=0;function g(n){if(rn>=ct)return n;rn++;let t=qt(n);return rn--,t}function Vn(n){return n.kind==="complex"?n.value:n.kind==="const"?cn(n.value):null}function bn(n,t,e){if(t.kind!=="complex"&&e.kind!=="complex")return null;let r=Vn(t),o=Vn(e);if(r===null||o===null)return null;switch(n){case "add":return A(Dn(r,o));case "sub":return A(En(r,o));case "mul":return A(tn(r,o));case "div":return K(o)?null:A(sn(r,o))}}function Yt(n,t){if(t.length!==1)return null;let e=Vn(t[0]);if(e===null)return null;switch(n){case "sqrt":{let r=dn(e);return r!==null?A(r):u(e.im)&&e.re.n<0n?{kind:"mul",left:{kind:"call",name:"sqrt",args:[s(I(e.re))]},right:A(kn)}:null}case "conj":return A(An(e));case "re":return s(e.re);case "im":return s(e.im);case "abs":{if(u(e.im))return null;let r=dn(cn(un(e)));return r===null||!u(r.im)?null:s(r.re)}default:return null}}function qt(n){switch(n.kind){case "const":case "complex":case "var":return n;case "neg":{let t=g(n.operand);return t.kind==="const"?s(I(t.value)):t.kind==="complex"?A(Cn(t.value)):t.kind==="neg"?t.operand:{kind:"neg",operand:t}}case "add":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(b(t.value,e.value));let r=bn("add",t,e);return r!==null?r:t.kind==="const"&&u(t.value)?e:e.kind==="const"&&u(e.value)?t:at({kind:"add",left:t,right:e})}case "sub":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(C(t.value,e.value));let r=bn("sub",t,e);return r!==null?r:e.kind==="const"&&u(e.value)?t:t.kind==="const"&&u(t.value)?g({kind:"neg",operand:e}):at({kind:"sub",left:t,right:e})}case "mul":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(d(t.value,e.value));let r=bn("mul",t,e);return r!==null?r:t.kind==="const"&&u(t.value)||e.kind==="const"&&u(e.value)?s(p):t.kind==="const"&&N(t.value)?e:e.kind==="const"&&N(e.value)?t:t.kind==="const"&&nn(t.value)?g({kind:"neg",operand:e}):e.kind==="const"&&nn(e.value)?g({kind:"neg",operand:t}):t.kind==="const"&&e.kind==="mul"&&e.left.kind==="const"?g({kind:"mul",left:s(d(t.value,e.left.value)),right:e.right}):e.kind==="const"&&t.kind==="mul"&&t.left.kind==="const"?g({kind:"mul",left:s(d(e.value,t.left.value)),right:t.right}):t.kind==="div"&&t.left.kind==="const"&&N(t.left.value)?g({kind:"div",left:e,right:t.right}):e.kind==="div"&&e.left.kind==="const"&&N(e.left.value)?g({kind:"div",left:t,right:e.right}):{kind:"mul",left:t,right:e}}case "div":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const"&&!u(e.value))return s(S(t.value,e.value));let r=bn("div",t,e);if(r!==null)return r;if(e.kind==="const"&&N(e.value))return t;if(t.kind==="const"&&u(t.value))return s(p);if(t.kind==="mul"){if(E(t.left,e))return t.right;if(E(t.right,e))return t.left}let o=lt({kind:"div",left:t,right:e});if(o.kind!=="div"||o.left!==t||o.right!==e)return g(o);if(t.kind==="neg"&&t.operand.kind==="mul"){let i=t.operand;if(E(i.left,e))return g({kind:"neg",operand:i.right});if(E(i.right,e))return g({kind:"neg",operand:i.left})}return {kind:"div",left:t,right:e}}case "pow":{let t=g(n.base),e=g(n.exponent);if(e.kind==="const"){if(u(e.value))return s(y);if(N(e.value))return t;if(t.kind==="const"&&P(e.value))return s(vn(t.value,e.value.n));if(t.kind==="complex"&&P(e.value))return A(fn(t.value,e.value.n))}return t.kind==="const"&&N(t.value)?s(y):t.kind==="const"&&u(t.value)&&e.kind==="const"&&e.value.n>0n?s(p):t.kind==="pow"&&t.exponent.kind==="const"&&e.kind==="const"&&P(t.exponent.value)&&P(e.value)?g({kind:"pow",base:t.base,exponent:s(d(t.exponent.value,e.value))}):{kind:"pow",base:t,exponent:e}}case "call":{let t=n.args.map(g);if(t.every(r=>r.kind==="const")){let r=Ft(n.name,t.map(o=>o.value));if(r!==null)return s(r)}let e=Yt(n.name,t);return e!==null?e:{kind:"call",name:n.name,args:t}}}}function Xt(n){return n.left.kind==="const"&&n.right.kind==="var"?{coeff:n.left.value,name:n.right.name}:n.right.kind==="const"&&n.left.kind==="var"?{coeff:n.right.value,name:n.left.name}:null}function Zt(n){return n.left.kind==="const"&&n.right.kind==="pow"?{coeff:n.left.value,power:n.right}:n.right.kind==="const"&&n.left.kind==="pow"?{coeff:n.right.value,power:n.left}:null}function st(n){return n.kind==="var"||n.kind==="call"?true:n.kind==="const"&&n.value.n>=0n}function Un(n,t){return n.n===1n&&n.d===1n?t:n.n===-1n&&n.d===1n?`-${t}`:`${D(n)}${t}`}var ut=600,Fn="...";function w(n,t){if(t>=ut)return Fn;switch(n.kind){case "const":return D(n.value);case "complex":return n.value.re.n!==0n&&n.value.im.n!==0n?`(${mn(n.value)})`:mn(n.value);case "var":return n.name;case "add":case "sub":return `(${on(n,t)})`;case "neg":return `-${w(n.operand,t+1)}`;case "call":return `${n.name}(${n.args.map(e=>on(e,t+1)).join(", ")})`;case "pow":{let e=st(n.base)?w(n.base,t+1):`(${on(n.base,t+1)})`,r=st(n.exponent)?w(n.exponent,t+1):`(${on(n.exponent,t+1)})`;return `${e}^${r}`}case "mul":{let e=Xt(n);if(e)return Un(e.coeff,e.name);let r=Zt(n);if(r)return Un(r.coeff,w(r.power,t+1));if(n.left.kind==="const"&&n.right.kind==="mul"){let o=w(n.right,t+1);if(!/^[\d.]/.test(o))return Un(n.left.value,o)}return `${w(n.left,t+1)}*${w(n.right,t+1)}`}case "div":{let e=w(n.right,t+1),r=n.right.kind==="mul"||n.right.kind==="div";return `${w(n.left,t+1)}/${r?`(${e})`:e}`}}}function W(n,t,e,r){if(r>=ut){e.push({negated:t,text:Fn});return}switch(n.kind){case "add":W(n.left,t,e,r+1),W(n.right,t,e,r+1);return;case "sub":W(n.left,t,e,r+1),W(n.right,!t,e,r+1);return;case "neg":W(n.operand,!t,e,r+1);return;case "const":{if(n.value.n===0n)return;let o=n.value.n<0n,i=o?{n:-n.value.n,d:n.value.d}:n.value;e.push({negated:o!==t,text:D(i)});return}case "complex":{let{re:o,im:i}=n.value;if(o.n!==0n){let l=o.n<0n;e.push({negated:l!==t,text:D(l?{n:-o.n,d:o.d}:o)});}if(i.n!==0n){let l=i.n<0n,a=l?{n:-i.n,d:i.d}:i,c=a.n===1n&&a.d===1n?"i":`${D(a)}i`;e.push({negated:l!==t,text:c});}return}default:{let o=w(n,r);(n.kind==="mul"||n.kind==="div")&&o.startsWith("-")?e.push({negated:!t,text:o.slice(1)}):e.push({negated:t,text:o});}}}function Kt(n){try{return on(n,0)}catch(t){if(t instanceof RangeError)return Fn;throw t}}function on(n,t){let e=[];if(W(n,false,e,t),e.length===0)return "0";let r="";return e.forEach((o,i)=>{i===0?r+=o.negated?`-${o.text}`:o.text:r+=o.negated?`-${o.text}`:`+${o.text}`;}),r}function ar(n,t){return n.data[t]}function _(n,t,e){return n.data[t+e*n.rows]}function cr(n,t,e){return t>=0&&t<n.rows&&e>=0&&e<n.cols}function jt(n,t){return n.rows===t.rows&&n.cols===t.cols}function Xn(n){return n.rows===n.cols}function Q(n){return typeof n=="object"&&n!==null?n:typeof n=="boolean"?s(n?1:0):s(n)}function qn(n){let t=M(n);return t.kind==="const"?J(t.value):t}function Ht(n$1){return typeof n$1=="boolean"?L(n$1):typeof n$1=="object"&&n$1!==null?K$1(n$1):n(n$1)}function sr(n,t,e){let r=new Array(n*t);for(let o=0;o<n;o++)for(let i=0;i<t;i++)r[o+i*n]=e[o*t+i];return r}function ur(n){let t=new Array(n.rows*n.cols);for(let e=0;e<n.rows;e++)for(let r=0;r<n.cols;r++)t[e*n.cols+r]=_(n,e,r);return t}function ft(n,t){let e$1=n.rows===1&&n.cols===1,r=t.rows===1&&t.cols===1,o=n.hasSymbolic||t.hasSymbolic;if(e$1||r){let[c,f]=e$1?[n,t]:[t,n];if(o){let L=Q(c.data[0]),Rn=f.data.map(Nt=>qn(M({kind:"mul",left:Q(Nt),right:L})));return C$1(f.rows,f.cols,Rn)}let m=c.data[0],x=f.data.map(L=>L*m);return C$1(f.rows,f.cols,x)}if(n.cols!==t.rows)return P$1("DIMENSION_MISMATCH",`Cannot multiply a ${n.rows}x${n.cols} matrix by a ${t.rows}x${t.cols} matrix \u2014 inner dimensions must match (${n.cols} !== ${t.rows}).`);let i=n.rows,l=t.cols,a=e(i*l,"matrix cells");for(let c=0;c<i;c++)for(let f=0;f<l;f++)if(o){let m=s(0);for(let x=0;x<n.cols;x++){let L={kind:"mul",left:Q(_(n,c,x)),right:Q(_(t,x,f))};m=M({kind:"add",left:m,right:L});}a[c+f*i]=qn(m);}else {let m=0;for(let x=0;x<n.cols;x++)m+=_(n,c,x)*_(t,x,f);a[c+f*i]=m;}return C$1(i,l,a)}function fr(n,t){if(!Xn(n))return P$1("MATRIX_POWER_REQUIRES_SQUARE_MATRIX",`^: only a square matrix can be raised to a power (got ${n.rows}x${n.cols}).`);if(!Number.isInteger(t)||t<0)return P$1("MATRIX_POWER_REQUIRES_WHOLE_EXPONENT",`^: a matrix can only be raised to a whole number of 0 or more (got ${t}); "^-1" means the inverse and "^T" the transpose.`);let e=n.rows,r=new Array(e*e).fill(0);for(let a=0;a<e;a++)r[a+a*e]=1;let o={rows:e,cols:e,data:r,hasSymbolic:false},i=n,l=t;for(;l>0;){if(l%2===1){let a=ft(o,i);if(a.type===13)return a;o=a.value;}if(l=Math.floor(l/2),l>0){let a=ft(i,i);if(a.type===13)return a;i=a.value;}}return C$1(o.rows,o.cols,o.data)}function mr(n,t,e){if(!jt(n,t))return P$1("DIMENSION_MISMATCH",`Cannot compare matrices of different shapes: ${n.rows}x${n.cols} and ${t.rows}x${t.cols}`);let r=new Array(n.data.length);for(let o=0;o<n.data.length;o++)r[o]=e(n.data[o],t.data[o]);return C$1(n.rows,n.cols,r)}function dr(n){let t=new Array(n.rows*n.cols);for(let e=0;e<n.cols;e++)for(let r=0;r<n.rows;r++)t[e+r*n.cols]=_(n,r,e);return C$1(n.cols,n.rows,t)}function dt(n){let t=[];for(let e=0;e<n.rows;e++){let r=[];for(let o=0;o<n.cols;o++)r.push(_(n,e,o));t.push(r);}return t}var Gt=12;function Wt(n){if(n.rows>Gt)return null;let t=[];for(let e=0;e<n.rows;e++){let r=[];for(let o=0;o<n.cols;o++){let i=_(n,e,o);if(typeof i!="number"||!Number.isSafeInteger(i))return null;r.push(BigInt(i));}t.push(r);}return t}function Qt(n){let t=n.length;if(t===0)return 1n;let e=1n,r=1n;for(let o=0;o<t-1;o++){if(n[o][o]===0n){let i=-1;for(let a=o+1;a<t;a++)if(n[a][o]!==0n){i=a;break}if(i===-1)return 0n;let l=n[o];n[o]=n[i],n[i]=l,r=-r;}for(let i=o+1;i<t;i++)for(let l=o+1;l<t;l++)n[i][l]=(n[i][l]*n[o][o]-n[i][o]*n[o][l])/e;e=n[o][o];}return r*n[t-1][t-1]}function zt(n$1){let t=Wt(n$1);if(t!==null)return n(Number(Qt(t)));let e=n$1.rows,r=dt(n$1),o=1;for(let i=0;i<e;i++){let l=i,a=Math.abs(r[i][i]);for(let c=i+1;c<e;c++)Math.abs(r[c][i])>a&&(a=Math.abs(r[c][i]),l=c);if(a===0)return n(0);if(l!==i){let c=r[i];r[i]=r[l],r[l]=c,o=-o;}o*=r[i][i];for(let c=i+1;c<e;c++){let f=r[c][i]/r[i][i];if(f!==0)for(let m=i;m<e;m++)r[c][m]-=f*r[i][m];}}return n(o)}function Jt(n$1){let t=n$1.rows,e=[];for(let o=0;o<t;o++){let i=[];for(let l=0;l<t;l++)i.push(Q(_(n$1,o,l)));e.push(i);}let r=s(1);for(let o=0;o<t;o++){let i=M(e[o][o]);if(i.kind==="const"&&u(i.value))return n(0);r=M({kind:"mul",left:r,right:i});for(let l=o+1;l<t;l++){let a=M({kind:"div",left:e[l][o],right:i});for(let c=o;c<t;c++)e[l][c]=M({kind:"sub",left:e[l][c],right:{kind:"mul",left:a,right:e[o][c]}});}}return r.kind==="const"?n(J(r.value)):K$1(r)}function pr(n){return Xn(n)?n.hasSymbolic?Jt(n):zt(n):P$1("DETERMINANT_REQUIRES_SQUARE_MATRIX",`det: matrix must be square (got ${n.rows}x${n.cols}).`)}function ne(n){let t=n.rows,e=dt(n);for(let o=0;o<t;o++)for(let i=0;i<t;i++)e[o].push(i===o?1:0);for(let o=0;o<t;o++){let i=o,l=Math.abs(e[o][o]);for(let c=o+1;c<t;c++)Math.abs(e[c][o])>l&&(l=Math.abs(e[c][o]),i=c);if(l<1e-10)return P$1("SINGULAR_MATRIX",`inv: a ${t}x${t} matrix with a zero (or near-zero) pivot column is not invertible.`);if(i!==o){let c=e[o];e[o]=e[i],e[i]=c;}let a=e[o][o];for(let c=0;c<2*t;c++)e[o][c]/=a;for(let c=0;c<t;c++){if(c===o)continue;let f=e[c][o];if(f!==0)for(let m=0;m<2*t;m++)e[c][m]-=f*e[o][m];}}let r=new Array(t*t);for(let o=0;o<t;o++)for(let i=0;i<t;i++)r[o+i*t]=e[o][t+i];return C$1(t,t,r)}var Yn=9;function te(n){let t=n.rows;if(t>=Yn)return P$1("SYMBOLIC_INVERSE_DIMENSION_LIMIT",`Symbolic matrix inversion is limited to matrices smaller than ${Yn}x${Yn} (got ${t}x${t}).`);let e=[];for(let o=0;o<t;o++){let i=[];for(let l=0;l<t;l++)i.push(Q(_(n,o,l)));for(let l=0;l<t;l++)i.push(s(l===o?1:0));e.push(i);}for(let o=0;o<t;o++){let i=M(e[o][o]);if(i.kind==="const"&&u(i.value))return P$1("SYMBOLIC_SINGULAR_OR_UNSUPPORTED_PIVOT",`Symbolic inverse: the pivot at row/col ${o} is exactly zero \u2014 this matrix's structure isn't invertible via this engine's diagonal-first symbolic elimination (no row-swapping); try reordering rows manually.`);for(let l=0;l<t;l++){if(l===o)continue;let a=M({kind:"div",left:e[l][o],right:i});if(!(a.kind==="const"&&u(a.value)))for(let c=0;c<2*t;c++)e[l][c]=M({kind:"sub",left:e[l][c],right:{kind:"mul",left:a,right:e[o][c]}});}for(let l=0;l<2*t;l++)e[o][l]=M({kind:"div",left:e[o][l],right:i});}let r=new Array(t*t);for(let o=0;o<t;o++)for(let i=0;i<t;i++)r[o+i*t]=qn(e[o][t+i]);return C$1(t,t,r)}function gr(n){return Xn(n)?n.hasSymbolic?te(n):ne(n):P$1("INVERSE_REQUIRES_SQUARE_MATRIX",`inv: matrix must be square (got ${n.rows}x${n.cols}).`)}function mt(n,t){return P$1("COLLECTION_TOO_LARGE",`This collection has ${n} elements, past the limit of ${t} (see the engine's vm.maxCollectionSize setting).`)}function xr(n$1,t=Number.POSITIVE_INFINITY){let e=Q$1(n$1);if(e)return e;if(n$1.type===7){let r=n$1.value;return r.data.length>t?mt(r.data.length,t):r.data.map(Ht)}if(n$1.type===8){let r=n$1.value,o=r.max-r.min+1;if(o>t)return mt(o,t);let i=new Array(o);for(let l=0;l<o;l++)i[l]=n(r.min+l);return i}return P$1("MAP_REDUCE_REQUIRES_COLLECTION",'map/reduce requires a Matrix or Range collection (e.g. "[1,2,3]" or "0:3").')}var pt=20,Nn=[1n];function z(n){if(n<0)throw c.internal("DECIMAL_NEGATIVE_POWER",`pow10 needs a non-negative exponent, got ${n}`,{exponent:n});for(let t=Nn.length;t<=n;t++)Nn[t]=Nn[t-1]*10n;return Nn[n]}function ee(n,t){if(!Number.isInteger(t)||t<0)throw c.internal("DECIMAL_INVALID_SCALE",`A decimal scale must be a non-negative integer, got ${t}`,{scale:t});return {coef:n,scale:t}}function gt(n){return {coef:typeof n=="bigint"?n:BigInt(n),scale:0}}function re(n){return !Number.isFinite(n)||!Number.isInteger(n)?null:gt(BigInt(n))}function oe(n){let t=n,e=false;t.startsWith("-")?(e=true,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r=t.indexOf("."),o=r<0?t:t.slice(0,r),i=r<0?"":t.slice(r+1),l=o+i||"0";if(!/^[0-9]+$/.test(l))throw c.parsing("INVALID_DECIMAL_LITERAL",`Not a decimal literal: "${n}"`,{raw:n});let a=BigInt(l);return e&&(a=-a),{coef:a,scale:i.length}}function Zn(n,t){return n.scale===t.scale?{ca:n.coef,cb:t.coef,scale:n.scale}:n.scale>t.scale?{ca:n.coef,cb:t.coef*z(n.scale-t.scale),scale:n.scale}:{ca:n.coef*z(t.scale-n.scale),cb:t.coef,scale:t.scale}}function ie(n,t){let{ca:e,cb:r,scale:o}=Zn(n,t);return {coef:e+r,scale:o}}function le(n,t){let{ca:e,cb:r,scale:o}=Zn(n,t);return {coef:e-r,scale:o}}function ae(n,t){return {coef:n.coef*t.coef,scale:n.scale+t.scale}}function ce(n){return {coef:-n.coef,scale:n.scale}}function xt(n){return n.coef===0n}function se(n,t,e){if(e>=t)return n*z(e-t);let r=z(t-e),o=n<0n,i=o?-n:n,l=i/r;return i%r*2n>=r&&(l+=1n),o?-l:l}function yt(n,t){return {coef:se(n.coef,n.scale,t),scale:t}}function ue(n,t,e=pt){if(xt(t))throw c.internal("DECIMAL_DIVISION_BY_ZERO","decimalDivide was called with a zero divisor",{});let r=e,o=n.coef*z(r+t.scale),i=t.coef*z(n.scale),l=o<0n!=i<0n,a=o<0n?-o:o,c$1=i<0n?-i:i,f=a/c$1;return a%c$1*2n>=c$1&&(f+=1n),{coef:l?-f:f,scale:r}}function fe(n,t){let{ca:e,cb:r}=Zn(n,t);return e<r?-1:e>r?1:0}function bt(n){let t=n.coef<0n,e=(t?-n.coef:n.coef).toString();if(n.scale===0)return t?`-${e}`:e;e.length<=n.scale&&(e=e.padStart(n.scale+1,"0"));let r=e.length-n.scale,o=e.slice(0,r),i=e.slice(r);return `${t?"-":""}${o}.${i}`}function me(n){return Number(bt(n))}function de(n,t){let e=yt(n,t),r=e.coef<0n&&e.coef!==0n,o=(e.coef<0n?-e.coef:e.coef).toString();if(t===0)return r?`-${o}`:o;o.length<=t&&(o=o.padStart(t+1,"0"));let i=o.length-t,l=o.slice(0,i),a=o.slice(i);return `${r?"-":""}${l}.${a}`}var pe={$:"USD","\xA3":"GBP","\u20AC":"EUR","\xA5":"JPY","\u20BD":"RUB","\u20A9":"KRW","\u20B9":"INR","\u20BA":"TRY","\u20B4":"UAH","\u20AA":"ILS","\u20AB":"VND","\u20A6":"NGN","\u20B1":"PHP"},ge={dollar:"USD",dollars:"USD",euro:"EUR",euros:"EUR",yen:"JPY",ruble:"RUB",rubles:"RUB",rouble:"RUB",roubles:"RUB",won:"KRW",rupee:"INR",rupees:"INR",yuan:"CNY",renminbi:"CNY",franc:"CHF",francs:"CHF",rand:"ZAR",krona:"SEK",kronor:"SEK",krone:"NOK",kroner:"NOK",real:"BRL",reais:"BRL",peso:"MXN",pesos:"MXN",shekel:"ILS",shekels:"ILS",lira:"TRY",hryvnia:"UAH",hryvnias:"UAH",zloty:"PLN",zlotys:"PLN",forint:"HUF",koruna:"CZK",dirham:"AED",dirhams:"AED",riyal:"SAR",riyals:"SAR",rial:"SAR",rials:"SAR",ringgit:"MYR",rupiah:"IDR",baht:"THB",dong:"VND",naira:"NGN"};function Sr(n){return pe[n]??ge[n.toLowerCase()]}var Ir={USD:{symbol:"$",position:"prefix",spaced:false},AUD:{symbol:"$",position:"prefix",spaced:false},CAD:{symbol:"$",position:"prefix",spaced:false},NZD:{symbol:"$",position:"prefix",spaced:false},HKD:{symbol:"$",position:"prefix",spaced:false},SGD:{symbol:"$",position:"prefix",spaced:false},MXN:{symbol:"$",position:"prefix",spaced:false},GBP:{symbol:"\xA3",position:"prefix",spaced:false},EUR:{symbol:"\u20AC",position:"prefix",spaced:false},JPY:{symbol:"\xA5",position:"prefix",spaced:false},CNY:{symbol:"\xA5",position:"prefix",spaced:false},KRW:{symbol:"\u20A9",position:"prefix",spaced:false},INR:{symbol:"\u20B9",position:"prefix",spaced:false},RUB:{symbol:"\u20BD",position:"suffix",spaced:true},TRY:{symbol:"\u20BA",position:"prefix",spaced:false},UAH:{symbol:"\u20B4",position:"suffix",spaced:true},ILS:{symbol:"\u20AA",position:"prefix",spaced:false},VND:{symbol:"\u20AB",position:"suffix",spaced:false},NGN:{symbol:"\u20A6",position:"prefix",spaced:false},PHP:{symbol:"\u20B1",position:"prefix",spaced:false},BRL:{symbol:"R$",position:"prefix",spaced:false},ZAR:{symbol:"R",position:"prefix",spaced:false},SEK:{symbol:"kr",position:"suffix",spaced:true},NOK:{symbol:"kr",position:"suffix",spaced:true},DKK:{symbol:"kr",position:"suffix",spaced:true},PLN:{symbol:"z\u0142",position:"suffix",spaced:true},CHF:{symbol:"Fr",position:"suffix",spaced:true},HUF:{symbol:"Ft",position:"suffix",spaced:true},CZK:{symbol:"K\u010D",position:"suffix",spaced:true}};export{fr as $,ot as A,H as B,h as C,_t as D,X as E,ke as F,Ae as G,yn as H,it as I,lt as J,we as K,en as L,Ln as M,Pe as N,Bt as O,Te as P,M as Q,Kt as R,ar as S,_ as T,cr as U,jt as V,qn as W,Ht as X,sr as Y,ur as Z,ft as _,p as a,mr as aa,y as b,dr as ba,Sn as c,pr as ca,In as d,gr as da,J as e,xr as ea,b as f,ee as fa,C as g,gt as ga,d as h,re as ha,S as i,oe as ia,I as j,ie as ja,It as k,le as ka,u as l,ae as la,N as m,ce as ma,kn as n,xt as na,cn as o,yt as oa,s as p,ue as pa,U as q,fe as qa,_n as r,me as ra,Mt as s,de as sa,v as t,Sr as ta,kt as u,Ir as ua,q as v,A as w,Ct as x,T as y,gn as z};//# sourceMappingURL=chunk-ZSFOIBIH.js.map
2
- //# sourceMappingURL=chunk-ZSFOIBIH.js.map
1
+ import {L,K as K$1,n,C as C$1,P as P$1,e,Q as Q$1}from'./chunk-TSVKHY5E.js';import {c}from'./chunk-6G2NES2I.js';var p={n:0n,d:1n},y={n:1n,d:1n},Z={n:-1n,d:1n},ln=4096,Gn=1n<<BigInt(ln);function V(n,t){let e=1n,r=n,o=t;for(;o>0n;)o%2n===1n&&(e*=r),r*=r,o/=2n;return e}function St(n,t){let e=n<0n?-n:n,r=t<0n?-t:t;for(;r!==0n;){let o=e%r;e=r,r=o;}return e}function It(n,t){if((n<0n?-n:n)>=Gn||t>=Gn)throw c.execution("SYMBOLIC_RATIONAL_OVERFLOW",`This calculation produced a fraction too large to represent exactly (over ${ln} bits).`,{limitBits:ln})}function $(n,t){if(t===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a symbolic expression.");if(n===0n)return p;let e=t<0n?-n:n,r=t<0n?-t:t,o=St(e,r);return e/=o,r/=o,It(e,r),{n:e,d:r}}function Sn(n,t=1n){return $(n,t)}var vt=/^(-?)(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/;function In(n){if(!Number.isFinite(n))throw c.execution("SYMBOLIC_NONFINITE_OPERAND",`"${String(n)}" has no exact value, so it cannot appear in a symbolic expression.`,{value:String(n)});if(Number.isInteger(n))return $(BigInt(n),1n);let t=vt.exec(String(n));if(t===null)throw c.internal("INTERNAL_RATIONAL_PARSE",`Internal error: could not read "${String(n)}" as a decimal number.`,{value:String(n)});let[,e,r,o="",i]=t,l=BigInt(r+o),a=V(10n,BigInt(o.length)),c$1=i===void 0?0:Number(i);return c$1>0?l*=V(10n,BigInt(c$1)):c$1<0&&(a*=V(10n,BigInt(-c$1))),$(e==="-"?-l:l,a)}function J(n){if(n.d===1n)return Number(n.n);let t=Number(n.n)/Number(n.d);return Number.isNaN(t)?Number((n.n<<64n)/n.d)/2**64:t}function b(n,t){return $(n.n*t.d+t.n*n.d,n.d*t.d)}function w(n,t){return $(n.n*t.d-t.n*n.d,n.d*t.d)}function d(n,t){return $(n.n*t.n,n.d*t.d)}function S(n,t){if(t.n===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a symbolic expression.");return $(n.n*t.d,n.d*t.n)}function I(n){return n.n===0n?p:{n:-n.n,d:n.d}}function vn(n,t){if(t===0n)return y;if(t<0n){if(n.n===0n)throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Zero raised to a negative power is undefined.");let e=-t;return $(V(n.d,e),V(n.n,e))}return $(V(n.n,t),V(n.d,t))}function Mt(n,t){let e=n.n*t.d,r=t.n*n.d;return e<r?-1:e>r?1:0}function u(n){return n.n===0n}function N(n){return n.n===1n&&n.d===1n}function nn(n){return n.n===-1n&&n.d===1n}function P(n){return n.d===1n}var kt=10,Wn=1000000n;function D(n){if(n.d===1n)return String(n.n);let t=n.d,e=0,r=0;for(;t%2n===0n;)t/=2n,e++;for(;t%5n===0n;)t/=5n,r++;let o=t===1n,i=Math.max(e,r);if(!o||i>kt)return (n.n<0n?-n.n:n.n)<=Wn&&n.d<=Wn?`${n.n}/${n.d}`:String(Math.round(J(n)*1e10)/1e10);let l=(n.n<0n?-n.n:n.n)*V(10n,BigInt(i))/n.d,a=String(l).padStart(i+1,"0"),c=a.slice(0,a.length-i),f=a.slice(a.length-i).replace(/0+$/,""),m=n.n<0n?"-":"";return f.length===0?`${m}${c}`:`${m}${c}.${f}`}var zn={re:p,im:p},an={re:y,im:p},kn={re:p,im:y};function cn(n,t=p){return {re:n,im:t}}function K(n){return u(n.re)&&u(n.im)}function Dn(n,t){return {re:b(n.re,t.re),im:b(n.im,t.im)}}function En(n,t){return {re:w(n.re,t.re),im:w(n.im,t.im)}}function tn(n,t){return {re:w(d(n.re,t.re),d(n.im,t.im)),im:b(d(n.re,t.im),d(n.im,t.re))}}function sn(n,t){if(K(t))throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Division by zero in a complex expression.");let e=b(d(t.re,t.re),d(t.im,t.im));return {re:S(b(d(n.re,t.re),d(n.im,t.im)),e),im:S(w(d(n.im,t.re),d(n.re,t.im)),e)}}function wn(n){return {re:I(n.re),im:I(n.im)}}function Cn(n){return {re:n.re,im:I(n.im)}}function un(n){return b(d(n.re,n.re),d(n.im,n.im))}function fn(n,t){if(t===0n)return an;if(t<0n){if(K(n))throw c.execution("SYMBOLIC_DIVISION_BY_ZERO","Zero raised to a negative power is undefined.");return sn(an,fn(n,-t))}let e=an,r=n,o=t;for(;o>0n;)o%2n===1n&&(e=tn(e,r)),r=tn(r,r),o/=2n;return e}function An(n,t){return n.re.n===t.re.n&&n.re.d===t.re.d&&n.im.n===t.im.n&&n.im.d===t.im.d}function mn(n){if(u(n.im))return D(n.re);let t=n.im.n<0n?I(n.im):n.im,e=N(t)?"i":`${D(t)}i`;return u(n.re)?n.im.n<0n?`-${e}`:e:n.im.n<0n?`${D(n.re)}-${e}`:`${D(n.re)}+${e}`}function dn(n){if(K(n))return zn;let t=Mn(un(n));if(t===null)return null;let e={n:2n,d:1n},r=Mn(S(b(t,n.re),e));if(r===null)return null;if(u(r)){let i=Mn(S(w(t,n.re),e));return i===null?null:{re:p,im:i}}let o=S(n.im,d(e,r));return {re:r,im:o}}function Mn(n){if(n.n<0n)return null;let t=Qn(n.n),e=Qn(n.d);return t===null||e===null?null:{n:t,d:e}}function Qn(n){if(n<0n)return null;if(n<2n)return n;let t=n,e=(n+1n)/2n;for(;e<t;)t=e,e=(t+n/t)/2n;return t*t===n?t:null}var j=1e4;function s(n){return {kind:"const",value:typeof n=="number"?In(n):n}}function U(n){return {kind:"var",name:n}}function On(n,t){return {kind:"pow",base:n,exponent:t}}function Dt(n,t){return {kind:"call",name:n,args:t}}function v(n){switch(n.kind){case "const":return `${n.value.n}/${n.value.d}`;case "complex":return `C(${n.value.re.n}/${n.value.re.d},${n.value.im.n}/${n.value.im.d})`;case "var":return `v:${n.name}`;case "neg":return `-(${v(n.operand)})`;case "pow":return `^(${v(n.base)},${v(n.exponent)})`;case "call":return `${n.name}(${n.args.map(v).join(",")})`;case "add":return `+(${v(n.left)},${v(n.right)})`;case "sub":return `-(${v(n.left)},${v(n.right)})`;case "mul":return `*(${v(n.left)},${v(n.right)})`;case "div":return `/(${v(n.left)},${v(n.right)})`}}function E(n,t){if(n.kind!==t.kind)return false;switch(n.kind){case "const":{let e=t;return n.value.n===e.value.n&&n.value.d===e.value.d}case "complex":return An(n.value,t.value);case "var":return n.name===t.name;case "neg":return E(n.operand,t.operand);case "pow":{let e=t;return E(n.base,e.base)&&E(n.exponent,e.exponent)}case "call":{let e=t;return n.name!==e.name||n.args.length!==e.args.length?false:n.args.every((r,o)=>E(r,e.args[o]))}case "add":case "sub":case "mul":case "div":{let e=t;return E(n.left,e.left)&&E(n.right,e.right)}}}function _n(n,t=Number.POSITIVE_INFINITY){let e=[n],r=0;for(;e.length>0;){let o=e.pop();if(r++,r>t)return r;switch(o.kind){case "const":case "complex":case "var":break;case "neg":e.push(o.operand);break;case "pow":e.push(o.base,o.exponent);break;case "call":for(let i of o.args)e.push(i);break;case "add":case "sub":case "mul":case "div":e.push(o.left,o.right);break}}return r}function Et(n){let t=new Set;return Y(n,t),t}function Y(n,t){switch(n.kind){case "const":case "complex":return;case "var":t.add(n.name);return;case "neg":Y(n.operand,t);return;case "pow":Y(n.base,t),Y(n.exponent,t);return;case "call":for(let e of n.args)Y(e,t);return;case "add":case "sub":case "mul":case "div":Y(n.left,t),Y(n.right,t);}}function q(n,t,e){switch(n.kind){case "const":case "complex":return n;case "var":return n.name===t?e:n;case "neg":return {kind:"neg",operand:q(n.operand,t,e)};case "pow":return {kind:"pow",base:q(n.base,t,e),exponent:q(n.exponent,t,e)};case "call":return {kind:"call",name:n.name,args:n.args.map(r=>q(r,t,e))};case "add":case "sub":case "mul":case "div":return {kind:n.kind,left:q(n.left,t,e),right:q(n.right,t,e)}}}function C(n){return n.im.n===0n?{kind:"const",value:n.re}:{kind:"complex",value:n}}var wt=32,Jn=2e3,Ct=64;function At(n){return [...n.keys()].sort().map(e=>n.get(e)===1?e:`${e}^${n.get(e)}`).join("*")}function T(n){let t=new Map;if(n==="")return t;for(let e of n.split("*")){let r=e.indexOf("^");r===-1?t.set(e,1):t.set(e.slice(0,r),Number(e.slice(r+1)));}return t}function pn(n){let t=0;for(let e of T(n).values())t+=e;return t}function nt(n){let t=new Map,e=new Set;for(let[r,o]of n)if(!u(o)){if(pn(r)>Ct)return null;t.set(r,o);for(let i of T(r).keys())e.add(i);}return t.size>Jn?null:{terms:t,vars:[...e].sort()}}function tt(n){return u(n)?{terms:new Map,vars:[]}:{terms:new Map([["",n]]),vars:[]}}function et(n,t){let e=new Map(n.terms);for(let[r,o]of t.terms){let i=e.get(r);e.set(r,i===void 0?o:b(i,o));}return nt(e)}function Ot(n,t){return et(n,Pn(t,Z))}function rt(n,t){if(n.terms.size*t.terms.size>Jn)return null;let e=new Map;for(let[r,o]of n.terms){let i=T(r);for(let[l,a]of t.terms){let c=new Map(i);for(let[L,Rn]of T(l))c.set(L,(c.get(L)??0)+Rn);let f=At(c),m=d(o,a),x=e.get(f);e.set(f,x===void 0?m:b(x,m));}}return nt(e)}function _t(n,t){if(t<0||!Number.isInteger(t)||t>wt)return null;let e=tt(y);for(let r=0;r<t;r++){let o=rt(e,n);if(o===null)return null;e=o;}return e}function Pn(n,t){if(u(t))return {terms:new Map,vars:[]};let e=new Map;for(let[r,o]of n.terms)e.set(r,d(o,t));return {terms:e,vars:n.vars}}function gn(n,t){let e=0;for(let r of n.terms.keys()){let o=t===void 0?pn(r):T(r).get(t)??0;o>e&&(e=o);}return e}function ot(n){return n.vars.length===1?n.vars[0]:null}function H(n,t){let e=gn(n,t),r=new Array(e+1).fill(p);for(let[o,i]of n.terms)r[T(o).get(t)??0]=i;return r}function h(n,t=true){switch(n.kind){case "const":return tt(n.value);case "var":return {terms:new Map([[n.name,y]]),vars:[n.name]};case "neg":{let e=h(n.operand,t);return e===null?null:Pn(e,Z)}case "add":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null?null:et(e,r)}case "sub":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null?null:Ot(e,r)}case "mul":{let e=h(n.left,t),r=e===null?null:h(n.right,t);return e===null||r===null||!t&&(e.terms.size>1||r.terms.size>1)?null:rt(e,r)}case "div":{let e=h(n.right,t);if(e===null||e.vars.length>0)return null;let r=e.terms.get("")??p;if(u(r))return null;let o=h(n.left,t);return o===null?null:Pn(o,S(y,r))}case "pow":{if(n.exponent.kind!=="const"||!P(n.exponent.value))return null;let e=Number(n.exponent.value.n),r=h(n.base,t);return r===null||!t&&r.terms.size>1?null:_t(r,e)}case "complex":return null;case "call":return null}}function $t(n,t,e){let r=pn(t)-pn(n);if(r!==0)return r;let o=T(n),i=T(t);for(let l of e){let a=(i.get(l)??0)-(o.get(l)??0);if(a!==0)return a}return 0}function Pt(n){let t=T(n),e=[...t.keys()].sort(),r=null;for(let o of e){let i=t.get(o),l=i===1?U(o):On(U(o),s({n:BigInt(i),d:1n}));r=r===null?l:{kind:"mul",left:r,right:l};}return r??s(y)}function $n(n,t){if(n==="")return s(t);let e=t.n<0n?I(t):t,r=Pt(n),o=N(e)?r:{kind:"mul",left:s(e),right:r};return t.n<0n?{kind:"neg",operand:o}:o}function X(n){let t=[...n.terms.keys()].sort((r,o)=>$t(r,o,n.vars));if(t.length===0)return s(p);if(n.terms.get(t[0]).n<0n){let r=t.findIndex(o=>n.terms.get(o).n>0n);r>0&&t.unshift(...t.splice(r,1));}let e=$n(t[0],n.terms.get(t[0]));for(let r=1;r<t.length;r++){let o=n.terms.get(t[r]);o.n<0n?e={kind:"sub",left:e,right:$n(t[r],I(o))}:e={kind:"add",left:e,right:$n(t[r],o)};}return e}function ke(n){let t=h(n);return t===null?n:X(t)}function F(n){let t=n.length-1;for(;t>=0&&u(n[t]);)t--;return n.slice(0,t+1)}function Ce(n){return n.every(u)}function yn(n,t){let e=F([...n]),r=F([...t]);if(r.length===0)throw new Error("polynomialDivide: division by the zero polynomial");let o=r.length-1,i=r[o],l=[...e],a=new Array(Math.max(0,e.length-o)).fill(p);for(let c=l.length-1;c>=o;c--){if(u(l[c]))continue;let f=S(l[c],i),m=c-o;a[m]=f;for(let x=0;x<=o;x++)l[m+x]=w(l[m+x],d(f,r[x]));}return {quotient:F(a),remainder:F(l)}}function xn(n){let t=F(n);if(t.length===0)return t;let e=t[t.length-1];return N(e)?t:t.map(r=>S(r,e))}function it(n,t){let e=F([...n]),r=F([...t]);for(;r.length>0;){let{remainder:o}=yn(e,r);e=r,r=o;}return xn(e)}function Tt(n,t){let e=Lt(n,t);if(e===void 0)return null;if(e===null)return h({kind:"const",value:y});let r=it(H(n,e),H(t,e));return Tn(r,e)}function Lt(n,t){let e=new Set([...n.vars,...t.vars]);if(e.size===0)return null;if(!(e.size>1))return [...e][0]}function Tn(n,t){let e=new Map;return n.forEach((r,o)=>{u(r)||e.set(o===0?"":o===1?t:`${t}^${o}`,r);}),{terms:e,vars:e.size>0&&n.length>1?[t]:[]}}function Bt(n,t){let e=Tt(n,t);if(e===null||gn(e)===0)return null;let r=ot(e);if(r===null)return null;let o=H(e,r),i=yn(H(n,r),o),l=yn(H(t,r),o);return {numerator:Tn(i.quotient,r),denominator:Tn(l.quotient,r)}}function lt(n){if(n.kind!=="div")return n;let t=h(n.left),e=h(n.right);if(t===null||e===null)return n;let r=Bt(t,e);return r===null?n:Vt(r.numerator,r.denominator,n)}function Vt(n,t,e){if(gn(t)===0){let r=t.terms.get("")??y;if(u(r))return e;let o=new Map;for(let[i,l]of n.terms)o.set(i,S(l,r));return X({terms:o,vars:n.vars})}return {kind:"div",left:X(n),right:X(t)}}function Ae(n){let t=F([...n]);if(t.length<=1)return xn(t);let e=[];for(let o=1;o<t.length;o++)e.push(d(t[o],{n:BigInt(o),d:1n}));let r=it(t,e);return r.length<=1?xn(t):xn(yn(t,r).quotient)}function en(n){if(n<0n)return null;if(n<2n)return n;let t=n,e=(n+1n)/2n;for(;e<t;)t=e,e=(t+n/t)/2n;return t*t===n?t:null}function Ln(n){let t=n<0n,e=t?-n:n;if(e<2n)return t?-e:e;let r=1n,o=e;for(;r<=o;){let i=(r+o)/2n,l=i*i*i;if(l===e)return t?-i:i;l<e?r=i+1n:o=i-1n;}return null}function Pe(n){let t=en(n.n),e=en(n.d);return t===null||e===null?null:{n:t,d:e}}function Ut(n){let t=n.n*n.d,e=1n,r=t;for(let l=2n;l*l<=r;l++){let a=l*l;for(;r%a===0n;)r/=a,e*=l;}let o=Sn(e,n.d);if(r===1n)return s(o);let i={kind:"call",name:"sqrt",args:[s({n:r,d:1n})]};return o.n===1n&&o.d===1n?i:{kind:"mul",left:s(o),right:i}}function Te(n){return n.n>=0n?Ut(n):{kind:"call",name:"sqrt",args:[s(n)]}}function G(n,t,e,r=0){if(r>=ct)return false;switch(n.kind){case "add":return G(n.left,t,e,r+1)&&G(n.right,t,e,r+1);case "sub":return G(n.left,t,e,r+1)&&G(n.right,!t,e,r+1);case "neg":return G(n.operand,!t,e,r+1);case "const":return e.push({coeff:t?I(n.value):n.value,name:null}),true;case "var":return e.push({coeff:t?Z:y,name:n.name}),true;default:return false}}function Ft(n){let t=[];if(!G(n,false,t))return n;let e=[],r=new Map,o=p;for(let a of t){if(a.name===null){o=b(o,a.coeff);continue}let c=r.get(a.name);c===void 0?(e.push(a.name),r.set(a.name,a.coeff)):r.set(a.name,b(c,a.coeff));}let i=[];for(let a of e){let c=r.get(a);u(c)||(N(c)?i.push(U(a)):nn(c)?i.push({kind:"neg",operand:U(a)}):i.push({kind:"mul",left:s(c),right:U(a)}));}if(i.length===0)return s(o);let l=i[0];for(let a=1;a<i.length;a++)l={kind:"add",left:l,right:i[a]};return u(o)||(l={kind:"add",left:l,right:s(o)}),l}function at(n){let t=h(n,false);return t!==null?X(t):Ft(n)}function Bn(n){let t=n.n/n.d;return n.n<0n&&t*n.d!==n.n?t-1n:t}var Yt=500n;function qt(n,t){let e=t[0];switch(n){case "abs":return t.length===1?e.n<0n?I(e):e:null;case "sign":return t.length!==1?null:e.n===0n?p:{n:e.n<0n?-1n:1n,d:1n};case "floor":return t.length===1?{n:Bn(e),d:1n}:null;case "ceil":return t.length===1?{n:-Bn(I(e)),d:1n}:null;case "trunc":return t.length===1?{n:e.n/e.d,d:1n}:null;case "round":return t.length===1?{n:Bn(b(e,{n:1n,d:2n})),d:1n}:null;case "sqrt":{if(t.length!==1||e.n<0n)return null;let r=en(e.n),o=en(e.d);return r===null||o===null?null:{n:r,d:o}}case "cbrt":{if(t.length!==1)return null;let r=Ln(e.n),o=Ln(e.d);return r===null||o===null?null:{n:r,d:o}}case "sin":case "tan":case "asin":case "atan":case "sinh":case "tanh":return t.length===1&&u(e)?p:null;case "cos":case "exp":case "cosh":return t.length===1&&u(e)?y:null;case "log":return t.length===1&&N(e)?p:null;case "acos":return t.length===1&&N(e)?p:null;case "fact":{if(t.length!==1||!P(e)||e.n<0n||e.n>Yt)return null;let r=1n;for(let o=2n;o<=e.n;o++)r*=o;return {n:r,d:1n}}default:return null}}function M(n){if(_n(n,j)>j)throw c.execution("SYMBOLIC_NODE_LIMIT_EXCEEDED",`This symbolic expression is too large to simplify (over ${j} terms).`,{limit:j});let t=rn;try{return g(n)}finally{rn=t;}}var ct=900,rn=0;function g(n){if(rn>=ct)return n;rn++;let t=Zt(n);return rn--,t}function Vn(n){return n.kind==="complex"?n.value:n.kind==="const"?cn(n.value):null}function bn(n,t,e){if(t.kind!=="complex"&&e.kind!=="complex")return null;let r=Vn(t),o=Vn(e);if(r===null||o===null)return null;switch(n){case "add":return C(Dn(r,o));case "sub":return C(En(r,o));case "mul":return C(tn(r,o));case "div":return K(o)?null:C(sn(r,o))}}function Xt(n,t){if(t.length!==1)return null;let e=Vn(t[0]);if(e===null)return null;switch(n){case "sqrt":{let r=dn(e);return r!==null?C(r):u(e.im)&&e.re.n<0n?{kind:"mul",left:{kind:"call",name:"sqrt",args:[s(I(e.re))]},right:C(kn)}:null}case "conj":return C(Cn(e));case "re":return s(e.re);case "im":return s(e.im);case "abs":{if(u(e.im))return null;let r=dn(cn(un(e)));return r===null||!u(r.im)?null:s(r.re)}default:return null}}function Zt(n){switch(n.kind){case "const":case "complex":case "var":return n;case "neg":{let t=g(n.operand);return t.kind==="const"?s(I(t.value)):t.kind==="complex"?C(wn(t.value)):t.kind==="neg"?t.operand:{kind:"neg",operand:t}}case "add":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(b(t.value,e.value));let r=bn("add",t,e);return r!==null?r:t.kind==="const"&&u(t.value)?e:e.kind==="const"&&u(e.value)?t:at({kind:"add",left:t,right:e})}case "sub":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(w(t.value,e.value));let r=bn("sub",t,e);return r!==null?r:e.kind==="const"&&u(e.value)?t:t.kind==="const"&&u(t.value)?g({kind:"neg",operand:e}):at({kind:"sub",left:t,right:e})}case "mul":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const")return s(d(t.value,e.value));let r=bn("mul",t,e);return r!==null?r:t.kind==="const"&&u(t.value)||e.kind==="const"&&u(e.value)?s(p):t.kind==="const"&&N(t.value)?e:e.kind==="const"&&N(e.value)?t:t.kind==="const"&&nn(t.value)?g({kind:"neg",operand:e}):e.kind==="const"&&nn(e.value)?g({kind:"neg",operand:t}):t.kind==="const"&&e.kind==="mul"&&e.left.kind==="const"?g({kind:"mul",left:s(d(t.value,e.left.value)),right:e.right}):e.kind==="const"&&t.kind==="mul"&&t.left.kind==="const"?g({kind:"mul",left:s(d(e.value,t.left.value)),right:t.right}):t.kind==="div"&&t.left.kind==="const"&&N(t.left.value)?g({kind:"div",left:e,right:t.right}):e.kind==="div"&&e.left.kind==="const"&&N(e.left.value)?g({kind:"div",left:t,right:e.right}):{kind:"mul",left:t,right:e}}case "div":{let t=g(n.left),e=g(n.right);if(t.kind==="const"&&e.kind==="const"&&!u(e.value))return s(S(t.value,e.value));let r=bn("div",t,e);if(r!==null)return r;if(e.kind==="const"&&N(e.value))return t;if(t.kind==="const"&&u(t.value))return s(p);if(t.kind==="mul"){if(E(t.left,e))return t.right;if(E(t.right,e))return t.left}let o=lt({kind:"div",left:t,right:e});if(o.kind!=="div"||o.left!==t||o.right!==e)return g(o);if(t.kind==="neg"&&t.operand.kind==="mul"){let i=t.operand;if(E(i.left,e))return g({kind:"neg",operand:i.right});if(E(i.right,e))return g({kind:"neg",operand:i.left})}return {kind:"div",left:t,right:e}}case "pow":{let t=g(n.base),e=g(n.exponent);if(e.kind==="const"){if(u(e.value))return s(y);if(N(e.value))return t;if(t.kind==="const"&&P(e.value))return s(vn(t.value,e.value.n));if(t.kind==="complex"&&P(e.value))return C(fn(t.value,e.value.n))}return t.kind==="const"&&N(t.value)?s(y):t.kind==="const"&&u(t.value)&&e.kind==="const"&&e.value.n>0n?s(p):t.kind==="pow"&&t.exponent.kind==="const"&&e.kind==="const"&&P(t.exponent.value)&&P(e.value)?g({kind:"pow",base:t.base,exponent:s(d(t.exponent.value,e.value))}):{kind:"pow",base:t,exponent:e}}case "call":{let t=n.args.map(g);if(t.every(r=>r.kind==="const")){let r=qt(n.name,t.map(o=>o.value));if(r!==null)return s(r)}let e=Xt(n.name,t);return e!==null?e:{kind:"call",name:n.name,args:t}}}}function Kt(n){return n.left.kind==="const"&&n.right.kind==="var"?{coeff:n.left.value,name:n.right.name}:n.right.kind==="const"&&n.left.kind==="var"?{coeff:n.right.value,name:n.left.name}:null}function jt(n){return n.left.kind==="const"&&n.right.kind==="pow"?{coeff:n.left.value,power:n.right}:n.right.kind==="const"&&n.left.kind==="pow"?{coeff:n.right.value,power:n.left}:null}function st(n){return n.kind==="var"||n.kind==="call"?true:n.kind==="const"&&n.value.n>=0n}function Un(n,t){return n.n===1n&&n.d===1n?t:n.n===-1n&&n.d===1n?`-${t}`:`${D(n)}${t}`}var ut=600,Fn="...";function A(n,t){if(t>=ut)return Fn;switch(n.kind){case "const":return D(n.value);case "complex":return n.value.re.n!==0n&&n.value.im.n!==0n?`(${mn(n.value)})`:mn(n.value);case "var":return n.name;case "add":case "sub":return `(${on(n,t)})`;case "neg":return `-${A(n.operand,t+1)}`;case "call":return `${n.name}(${n.args.map(e=>on(e,t+1)).join(", ")})`;case "pow":{let e=st(n.base)?A(n.base,t+1):`(${on(n.base,t+1)})`,r=st(n.exponent)?A(n.exponent,t+1):`(${on(n.exponent,t+1)})`;return `${e}^${r}`}case "mul":{let e=Kt(n);if(e)return Un(e.coeff,e.name);let r=jt(n);if(r)return Un(r.coeff,A(r.power,t+1));if(n.left.kind==="const"&&n.right.kind==="mul"){let o=A(n.right,t+1);if(!/^[\d.]/.test(o))return Un(n.left.value,o)}return `${A(n.left,t+1)}*${A(n.right,t+1)}`}case "div":{let e=A(n.right,t+1),r=n.right.kind==="mul"||n.right.kind==="div";return `${A(n.left,t+1)}/${r?`(${e})`:e}`}}}function W(n,t,e,r){if(r>=ut){e.push({negated:t,text:Fn});return}switch(n.kind){case "add":W(n.left,t,e,r+1),W(n.right,t,e,r+1);return;case "sub":W(n.left,t,e,r+1),W(n.right,!t,e,r+1);return;case "neg":W(n.operand,!t,e,r+1);return;case "const":{if(n.value.n===0n)return;let o=n.value.n<0n,i=o?{n:-n.value.n,d:n.value.d}:n.value;e.push({negated:o!==t,text:D(i)});return}case "complex":{let{re:o,im:i}=n.value;if(o.n!==0n){let l=o.n<0n;e.push({negated:l!==t,text:D(l?{n:-o.n,d:o.d}:o)});}if(i.n!==0n){let l=i.n<0n,a=l?{n:-i.n,d:i.d}:i,c=a.n===1n&&a.d===1n?"i":`${D(a)}i`;e.push({negated:l!==t,text:c});}return}default:{let o=A(n,r);(n.kind==="mul"||n.kind==="div")&&o.startsWith("-")?e.push({negated:!t,text:o.slice(1)}):e.push({negated:t,text:o});}}}function Ht(n){try{return on(n,0)}catch(t){if(t instanceof RangeError)return Fn;throw t}}function on(n,t){let e=[];if(W(n,false,e,t),e.length===0)return "0";let r="";return e.forEach((o,i)=>{i===0?r+=o.negated?`-${o.text}`:o.text:r+=o.negated?`-${o.text}`:`+${o.text}`;}),r}function ar(n,t){return n.data[t]}function O(n,t,e){return n.data[t+e*n.rows]}function cr(n,t,e){return t>=0&&t<n.rows&&e>=0&&e<n.cols}function Gt(n,t){return n.rows===t.rows&&n.cols===t.cols}function Xn(n){return n.rows===n.cols}function Q(n){return typeof n=="object"&&n!==null?n:typeof n=="boolean"?s(n?1:0):s(n)}function qn(n){let t=M(n);return t.kind==="const"?J(t.value):t}function Wt(n$1){return typeof n$1=="boolean"?L(n$1):typeof n$1=="object"&&n$1!==null?K$1(n$1):n(n$1)}function sr(n,t,e){let r=new Array(n*t);for(let o=0;o<n;o++)for(let i=0;i<t;i++)r[o+i*n]=e[o*t+i];return r}function ur(n){let t=new Array(n.rows*n.cols);for(let e=0;e<n.rows;e++)for(let r=0;r<n.cols;r++)t[e*n.cols+r]=O(n,e,r);return t}function ft(n,t){let e$1=n.rows===1&&n.cols===1,r=t.rows===1&&t.cols===1,o=n.hasSymbolic||t.hasSymbolic;if(e$1||r){let[c,f]=e$1?[n,t]:[t,n];if(o){let L=Q(c.data[0]),Rn=f.data.map(ht=>qn(M({kind:"mul",left:Q(ht),right:L})));return C$1(f.rows,f.cols,Rn)}let m=c.data[0],x=f.data.map(L=>L*m);return C$1(f.rows,f.cols,x)}if(n.cols!==t.rows)return P$1("DIMENSION_MISMATCH",`Cannot multiply a ${n.rows}x${n.cols} matrix by a ${t.rows}x${t.cols} matrix \u2014 inner dimensions must match (${n.cols} !== ${t.rows}).`);let i=n.rows,l=t.cols,a=e(i*l,"matrix cells");for(let c=0;c<i;c++)for(let f=0;f<l;f++)if(o){let m=s(0);for(let x=0;x<n.cols;x++){let L={kind:"mul",left:Q(O(n,c,x)),right:Q(O(t,x,f))};m=M({kind:"add",left:m,right:L});}a[c+f*i]=qn(m);}else {let m=0;for(let x=0;x<n.cols;x++)m+=O(n,c,x)*O(t,x,f);a[c+f*i]=m;}return C$1(i,l,a)}function fr(n,t){if(!Xn(n))return P$1("MATRIX_POWER_REQUIRES_SQUARE_MATRIX",`^: only a square matrix can be raised to a power (got ${n.rows}x${n.cols}).`);if(!Number.isInteger(t)||t<0)return P$1("MATRIX_POWER_REQUIRES_WHOLE_EXPONENT",`^: a matrix can only be raised to a whole number of 0 or more (got ${t}); "^-1" means the inverse and "^T" the transpose.`);let e=n.rows,r=new Array(e*e).fill(0);for(let a=0;a<e;a++)r[a+a*e]=1;let o={rows:e,cols:e,data:r,hasSymbolic:false},i=n,l=t;for(;l>0;){if(l%2===1){let a=ft(o,i);if(a.type===13)return a;o=a.value;}if(l=Math.floor(l/2),l>0){let a=ft(i,i);if(a.type===13)return a;i=a.value;}}return C$1(o.rows,o.cols,o.data)}function mr(n,t,e){if(!Gt(n,t))return P$1("DIMENSION_MISMATCH",`Cannot compare matrices of different shapes: ${n.rows}x${n.cols} and ${t.rows}x${t.cols}`);let r=new Array(n.data.length);for(let o=0;o<n.data.length;o++)r[o]=e(n.data[o],t.data[o]);return C$1(n.rows,n.cols,r)}function dr(n){let t=new Array(n.rows*n.cols);for(let e=0;e<n.cols;e++)for(let r=0;r<n.rows;r++)t[e+r*n.cols]=O(n,r,e);return C$1(n.cols,n.rows,t)}function dt(n){let t=[];for(let e=0;e<n.rows;e++){let r=[];for(let o=0;o<n.cols;o++)r.push(O(n,e,o));t.push(r);}return t}var Qt=12;function zt(n){if(n.rows>Qt)return null;let t=[];for(let e=0;e<n.rows;e++){let r=[];for(let o=0;o<n.cols;o++){let i=O(n,e,o);if(typeof i!="number"||!Number.isSafeInteger(i))return null;r.push(BigInt(i));}t.push(r);}return t}function Jt(n){let t=n.length;if(t===0)return 1n;let e=1n,r=1n;for(let o=0;o<t-1;o++){if(n[o][o]===0n){let i=-1;for(let a=o+1;a<t;a++)if(n[a][o]!==0n){i=a;break}if(i===-1)return 0n;let l=n[o];n[o]=n[i],n[i]=l,r=-r;}for(let i=o+1;i<t;i++)for(let l=o+1;l<t;l++)n[i][l]=(n[i][l]*n[o][o]-n[i][o]*n[o][l])/e;e=n[o][o];}return r*n[t-1][t-1]}function ne(n$1){let t=zt(n$1);if(t!==null)return n(Number(Jt(t)));let e=n$1.rows,r=dt(n$1),o=1;for(let i=0;i<e;i++){let l=i,a=Math.abs(r[i][i]);for(let c=i+1;c<e;c++)Math.abs(r[c][i])>a&&(a=Math.abs(r[c][i]),l=c);if(a===0)return n(0);if(l!==i){let c=r[i];r[i]=r[l],r[l]=c,o=-o;}o*=r[i][i];for(let c=i+1;c<e;c++){let f=r[c][i]/r[i][i];if(f!==0)for(let m=i;m<e;m++)r[c][m]-=f*r[i][m];}}return n(o)}function te(n$1){let t=n$1.rows,e=[];for(let o=0;o<t;o++){let i=[];for(let l=0;l<t;l++)i.push(Q(O(n$1,o,l)));e.push(i);}let r=s(1);for(let o=0;o<t;o++){let i=M(e[o][o]);if(i.kind==="const"&&u(i.value))return n(0);r=M({kind:"mul",left:r,right:i});for(let l=o+1;l<t;l++){let a=M({kind:"div",left:e[l][o],right:i});for(let c=o;c<t;c++)e[l][c]=M({kind:"sub",left:e[l][c],right:{kind:"mul",left:a,right:e[o][c]}});}}return r.kind==="const"?n(J(r.value)):K$1(r)}function pr(n){return Xn(n)?n.hasSymbolic?te(n):ne(n):P$1("DETERMINANT_REQUIRES_SQUARE_MATRIX",`det: matrix must be square (got ${n.rows}x${n.cols}).`)}function ee(n){let t=n.rows,e=dt(n);for(let o=0;o<t;o++)for(let i=0;i<t;i++)e[o].push(i===o?1:0);for(let o=0;o<t;o++){let i=o,l=Math.abs(e[o][o]);for(let c=o+1;c<t;c++)Math.abs(e[c][o])>l&&(l=Math.abs(e[c][o]),i=c);if(l<1e-10)return P$1("SINGULAR_MATRIX",`inv: a ${t}x${t} matrix with a zero (or near-zero) pivot column is not invertible.`);if(i!==o){let c=e[o];e[o]=e[i],e[i]=c;}let a=e[o][o];for(let c=0;c<2*t;c++)e[o][c]/=a;for(let c=0;c<t;c++){if(c===o)continue;let f=e[c][o];if(f!==0)for(let m=0;m<2*t;m++)e[c][m]-=f*e[o][m];}}let r=new Array(t*t);for(let o=0;o<t;o++)for(let i=0;i<t;i++)r[o+i*t]=e[o][t+i];return C$1(t,t,r)}var Yn=9;function re(n){let t=n.rows;if(t>=Yn)return P$1("SYMBOLIC_INVERSE_DIMENSION_LIMIT",`Symbolic matrix inversion is limited to matrices smaller than ${Yn}x${Yn} (got ${t}x${t}).`);let e=[];for(let o=0;o<t;o++){let i=[];for(let l=0;l<t;l++)i.push(Q(O(n,o,l)));for(let l=0;l<t;l++)i.push(s(l===o?1:0));e.push(i);}for(let o=0;o<t;o++){let i=M(e[o][o]);if(i.kind==="const"&&u(i.value))return P$1("SYMBOLIC_SINGULAR_OR_UNSUPPORTED_PIVOT",`Symbolic inverse: the pivot at row/col ${o} is exactly zero \u2014 this matrix's structure isn't invertible via this engine's diagonal-first symbolic elimination (no row-swapping); try reordering rows manually.`);for(let l=0;l<t;l++){if(l===o)continue;let a=M({kind:"div",left:e[l][o],right:i});if(!(a.kind==="const"&&u(a.value)))for(let c=0;c<2*t;c++)e[l][c]=M({kind:"sub",left:e[l][c],right:{kind:"mul",left:a,right:e[o][c]}});}for(let l=0;l<2*t;l++)e[o][l]=M({kind:"div",left:e[o][l],right:i});}let r=new Array(t*t);for(let o=0;o<t;o++)for(let i=0;i<t;i++)r[o+i*t]=qn(e[o][t+i]);return C$1(t,t,r)}function gr(n){return Xn(n)?n.hasSymbolic?re(n):ee(n):P$1("INVERSE_REQUIRES_SQUARE_MATRIX",`inv: matrix must be square (got ${n.rows}x${n.cols}).`)}function mt(n,t){return P$1("COLLECTION_TOO_LARGE",`This collection has ${n} elements, past the limit of ${t} (see the engine's vm.maxCollectionSize setting).`)}function xr(n$1,t=Number.POSITIVE_INFINITY){let e=Q$1(n$1);if(e)return e;if(n$1.type===7){let r=n$1.value;return r.data.length>t?mt(r.data.length,t):r.data.map(Wt)}if(n$1.type===8){let r=n$1.value,o=r.max-r.min+1;if(o>t)return mt(o,t);let i=new Array(o);for(let l=0;l<o;l++)i[l]=n(r.min+l);return i}return P$1("MAP_REDUCE_REQUIRES_COLLECTION",'map/reduce requires a Matrix or Range collection (e.g. "[1,2,3]" or "0:3").')}var pt=20,Nn=[1n];function z(n){if(n<0)throw c.internal("DECIMAL_NEGATIVE_POWER",`pow10 needs a non-negative exponent, got ${n}`,{exponent:n});for(let t=Nn.length;t<=n;t++)Nn[t]=Nn[t-1]*10n;return Nn[n]}function oe(n,t){if(!Number.isInteger(t)||t<0)throw c.internal("DECIMAL_INVALID_SCALE",`A decimal scale must be a non-negative integer, got ${t}`,{scale:t});return {coef:n,scale:t}}function gt(n){return {coef:typeof n=="bigint"?n:BigInt(n),scale:0}}function ie(n){return !Number.isFinite(n)||!Number.isInteger(n)?null:gt(BigInt(n))}function le(n){let t=n,e=false;t.startsWith("-")?(e=true,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r=t.indexOf("."),o=r<0?t:t.slice(0,r),i=r<0?"":t.slice(r+1),l=o+i||"0";if(!/^[0-9]+$/.test(l))throw c.parsing("INVALID_DECIMAL_LITERAL",`Not a decimal literal: "${n}"`,{raw:n});let a=BigInt(l);return e&&(a=-a),{coef:a,scale:i.length}}function Zn(n,t){return n.scale===t.scale?{ca:n.coef,cb:t.coef,scale:n.scale}:n.scale>t.scale?{ca:n.coef,cb:t.coef*z(n.scale-t.scale),scale:n.scale}:{ca:n.coef*z(t.scale-n.scale),cb:t.coef,scale:t.scale}}function ae(n,t){let{ca:e,cb:r,scale:o}=Zn(n,t);return {coef:e+r,scale:o}}function ce(n,t){let{ca:e,cb:r,scale:o}=Zn(n,t);return {coef:e-r,scale:o}}function se(n,t){return {coef:n.coef*t.coef,scale:n.scale+t.scale}}function ue(n){return {coef:-n.coef,scale:n.scale}}function xt(n){return n.coef===0n}function fe(n,t,e){if(e>=t)return n*z(e-t);let r=z(t-e),o=n<0n,i=o?-n:n,l=i/r;return i%r*2n>=r&&(l+=1n),o?-l:l}function yt(n,t){return {coef:fe(n.coef,n.scale,t),scale:t}}function me(n,t,e=pt){if(xt(t))throw c.internal("DECIMAL_DIVISION_BY_ZERO","decimalDivide was called with a zero divisor",{});let r=e,o=n.coef*z(r+t.scale),i=t.coef*z(n.scale),l=o<0n!=i<0n,a=o<0n?-o:o,c$1=i<0n?-i:i,f=a/c$1;return a%c$1*2n>=c$1&&(f+=1n),{coef:l?-f:f,scale:r}}function de(n,t){let{ca:e,cb:r}=Zn(n,t);return e<r?-1:e>r?1:0}function bt(n){let t=n.coef<0n,e=(t?-n.coef:n.coef).toString();if(n.scale===0)return t?`-${e}`:e;e.length<=n.scale&&(e=e.padStart(n.scale+1,"0"));let r=e.length-n.scale,o=e.slice(0,r),i=e.slice(r);return `${t?"-":""}${o}.${i}`}function pe(n){return Number(bt(n))}function ge(n,t){let e=yt(n,t),r=e.coef<0n&&e.coef!==0n,o=(e.coef<0n?-e.coef:e.coef).toString();if(t===0)return r?`-${o}`:o;o.length<=t&&(o=o.padStart(t+1,"0"));let i=o.length-t,l=o.slice(0,i),a=o.slice(i);return `${r?"-":""}${l}.${a}`}var Nt={$:"USD","\xA3":"GBP","\u20AC":"EUR","\xA5":"JPY","\u20BD":"RUB","\u20A9":"KRW","\u20B9":"INR","\u20BA":"TRY","\u20B4":"UAH","\u20AA":"ILS","\u20AB":"VND","\u20A6":"NGN","\u20B1":"PHP"},Rt={dollar:"USD",dollars:"USD",euro:"EUR",euros:"EUR",yen:"JPY",ruble:"RUB",rubles:"RUB",rouble:"RUB",roubles:"RUB",won:"KRW",rupee:"INR",rupees:"INR",yuan:"CNY",renminbi:"CNY",franc:"CHF",francs:"CHF",rand:"ZAR",krona:"SEK",kronor:"SEK",krone:"NOK",kroner:"NOK",real:"BRL",reais:"BRL",peso:"MXN",pesos:"MXN",shekel:"ILS",shekels:"ILS",lira:"TRY",hryvnia:"UAH",hryvnias:"UAH",zloty:"PLN",zlotys:"PLN",forint:"HUF",koruna:"CZK",dirham:"AED",dirhams:"AED",riyal:"SAR",riyals:"SAR",rial:"SAR",rials:"SAR",ringgit:"MYR",rupiah:"IDR",baht:"THB",dong:"VND",naira:"NGN"};function Sr(n){let t=n.toLowerCase();if(Object.prototype.hasOwnProperty.call(Nt,n))return Nt[n];if(Object.prototype.hasOwnProperty.call(Rt,t))return Rt[t]}var Ir={USD:{symbol:"$",position:"prefix",spaced:false},AUD:{symbol:"$",position:"prefix",spaced:false},CAD:{symbol:"$",position:"prefix",spaced:false},NZD:{symbol:"$",position:"prefix",spaced:false},HKD:{symbol:"$",position:"prefix",spaced:false},SGD:{symbol:"$",position:"prefix",spaced:false},MXN:{symbol:"$",position:"prefix",spaced:false},GBP:{symbol:"\xA3",position:"prefix",spaced:false},EUR:{symbol:"\u20AC",position:"prefix",spaced:false},JPY:{symbol:"\xA5",position:"prefix",spaced:false},CNY:{symbol:"\xA5",position:"prefix",spaced:false},KRW:{symbol:"\u20A9",position:"prefix",spaced:false},INR:{symbol:"\u20B9",position:"prefix",spaced:false},RUB:{symbol:"\u20BD",position:"suffix",spaced:true},TRY:{symbol:"\u20BA",position:"prefix",spaced:false},UAH:{symbol:"\u20B4",position:"suffix",spaced:true},ILS:{symbol:"\u20AA",position:"prefix",spaced:false},VND:{symbol:"\u20AB",position:"suffix",spaced:false},NGN:{symbol:"\u20A6",position:"prefix",spaced:false},PHP:{symbol:"\u20B1",position:"prefix",spaced:false},BRL:{symbol:"R$",position:"prefix",spaced:false},ZAR:{symbol:"R",position:"prefix",spaced:false},SEK:{symbol:"kr",position:"suffix",spaced:true},NOK:{symbol:"kr",position:"suffix",spaced:true},DKK:{symbol:"kr",position:"suffix",spaced:true},PLN:{symbol:"z\u0142",position:"suffix",spaced:true},CHF:{symbol:"Fr",position:"suffix",spaced:true},HUF:{symbol:"Ft",position:"suffix",spaced:true},CZK:{symbol:"K\u010D",position:"suffix",spaced:true}};export{fr as $,ot as A,H as B,h as C,$t as D,X as E,ke as F,Ce as G,yn as H,it as I,lt as J,Ae as K,en as L,Ln as M,Pe as N,Ut as O,Te as P,M as Q,Ht as R,ar as S,O as T,cr as U,Gt as V,qn as W,Wt as X,sr as Y,ur as Z,ft as _,p as a,mr as aa,y as b,dr as ba,Sn as c,pr as ca,In as d,gr as da,J as e,xr as ea,b as f,oe as fa,w as g,gt as ga,d as h,ie as ha,S as i,le as ia,I as j,ae as ja,Mt as k,ce as ka,u as l,se as la,N as m,ue as ma,kn as n,xt as na,cn as o,yt as oa,s as p,me as pa,U as q,de as qa,On as r,pe as ra,Dt as s,ge as sa,v as t,Sr as ta,Et as u,Ir as ua,q as v,C as w,At as x,T as y,gn as z};//# sourceMappingURL=chunk-CUH3FEWI.js.map
2
+ //# sourceMappingURL=chunk-CUH3FEWI.js.map