@poe-platform/safe-bash 0.1.726 → 0.1.727

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 (207) hide show
  1. package/dist/safe-bash/chunks/{chunk-6VZX7ESE.js → chunk-26N7BLXE.js} +3 -3
  2. package/dist/safe-bash/chunks/{chunk-ZZ7JQBPX.js → chunk-4A2OLEML.js} +2 -2
  3. package/dist/safe-bash/chunks/{chunk-LTREB3HX.js → chunk-54MC6XF5.js} +4 -4
  4. package/dist/safe-bash/chunks/{chunk-Z3CCN6Y2.js → chunk-6J5FUESH.js} +2 -2
  5. package/dist/safe-bash/chunks/{chunk-YR5RZBWS.js → chunk-6TBFZ5JE.js} +2 -2
  6. package/dist/safe-bash/chunks/{chunk-6HJNJ625.js → chunk-7MMYQG3P.js} +2 -2
  7. package/dist/safe-bash/chunks/{chunk-WTZZX4LV.js → chunk-A4MB2KXV.js} +2 -2
  8. package/dist/safe-bash/chunks/{chunk-EM2JW7ZH.js → chunk-ATYJKRBZ.js} +2 -2
  9. package/dist/safe-bash/chunks/{chunk-VV24PRPB.js → chunk-AZQOEGP3.js} +1050 -101
  10. package/dist/safe-bash/chunks/chunk-AZQOEGP3.js.map +7 -0
  11. package/dist/safe-bash/chunks/{chunk-EFMXWUYE.js → chunk-B6JEJ6AT.js} +2 -2
  12. package/dist/safe-bash/chunks/{chunk-JFGGQUYP.js → chunk-BFXGHT3R.js} +2 -2
  13. package/dist/safe-bash/chunks/{chunk-RP5IZOOR.js → chunk-BJYV5J65.js} +1050 -101
  14. package/dist/safe-bash/chunks/chunk-BJYV5J65.js.map +7 -0
  15. package/dist/safe-bash/chunks/{chunk-HNHOPD3P.js → chunk-DIEFWGXO.js} +46 -26
  16. package/dist/safe-bash/chunks/{chunk-HNHOPD3P.js.map → chunk-DIEFWGXO.js.map} +2 -2
  17. package/dist/safe-bash/chunks/{chunk-SME47P4B.js → chunk-DV6EZOKM.js} +46 -26
  18. package/dist/safe-bash/chunks/{chunk-SME47P4B.js.map → chunk-DV6EZOKM.js.map} +2 -2
  19. package/dist/safe-bash/chunks/{chunk-646RTREQ.js → chunk-EEDOYIPC.js} +2 -2
  20. package/dist/safe-bash/chunks/{chunk-OFAAHWL5.js → chunk-GCQ5A2T2.js} +2 -2
  21. package/dist/safe-bash/chunks/{chunk-MJW4KSKV.js → chunk-GLPJEDLY.js} +2 -2
  22. package/dist/safe-bash/chunks/{chunk-FOOJWH7J.js → chunk-GO5OKPBO.js} +4 -4
  23. package/dist/safe-bash/chunks/{chunk-5JANWFJ3.js → chunk-GWYXCCGO.js} +4 -4
  24. package/dist/safe-bash/chunks/{chunk-DPHRNHPT.js → chunk-H6KJ4L22.js} +2 -2
  25. package/dist/safe-bash/chunks/{chunk-FLX2BZBF.js → chunk-HGBYIDAK.js} +4 -4
  26. package/dist/safe-bash/chunks/{chunk-VGJIDLZM.js → chunk-KS5VSJYM.js} +15 -8
  27. package/dist/safe-bash/chunks/chunk-KS5VSJYM.js.map +7 -0
  28. package/dist/safe-bash/chunks/{chunk-PO3Z7W3A.js → chunk-MUHYGUFD.js} +4 -4
  29. package/dist/safe-bash/chunks/{chunk-5DLGYPGJ.js → chunk-PDSTXORC.js} +126 -58
  30. package/dist/safe-bash/chunks/chunk-PDSTXORC.js.map +7 -0
  31. package/dist/safe-bash/chunks/{chunk-TIHMU25L.js → chunk-PQ37GDJF.js} +3 -3
  32. package/dist/safe-bash/chunks/{chunk-OTM5RCWZ.js → chunk-QNEDWYC2.js} +15 -8
  33. package/dist/safe-bash/chunks/chunk-QNEDWYC2.js.map +7 -0
  34. package/dist/safe-bash/chunks/{chunk-LZ7FUN6K.js → chunk-RHHDOA67.js} +5 -5
  35. package/dist/safe-bash/chunks/{chunk-DSCL3VA2.js → chunk-SJ3B26XV.js} +4 -4
  36. package/dist/safe-bash/chunks/{chunk-6JBTVWHH.js → chunk-SWACYEIT.js} +5 -5
  37. package/dist/safe-bash/chunks/{chunk-7UJW7TYR.js → chunk-TD6NWAUK.js} +126 -58
  38. package/dist/safe-bash/chunks/chunk-TD6NWAUK.js.map +7 -0
  39. package/dist/safe-bash/chunks/{chunk-Q4I754TV.js → chunk-THOBFD5C.js} +2 -2
  40. package/dist/safe-bash/chunks/{chunk-XELW5O3R.js → chunk-U2STHT7S.js} +2 -2
  41. package/dist/safe-bash/chunks/{chunk-5X4SOSTT.js → chunk-UJHE5PTK.js} +2 -2
  42. package/dist/safe-bash/chunks/{chunk-B6YFFKYG.js → chunk-X4I3RHTC.js} +5 -1
  43. package/dist/safe-bash/chunks/chunk-X4I3RHTC.js.map +7 -0
  44. package/dist/safe-bash/chunks/{chunk-YOK5UHA7.js → chunk-XKXFX3RH.js} +5 -1
  45. package/dist/safe-bash/chunks/chunk-XKXFX3RH.js.map +7 -0
  46. package/dist/safe-bash/chunks/{chunk-PLCYP2E5.js → chunk-XV4K3UUF.js} +2 -2
  47. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  48. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  49. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  50. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  51. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  52. package/dist/safe-bash/commands/internal.d.ts.map +1 -1
  53. package/dist/safe-bash/commands/internal.js +4 -3
  54. package/dist/safe-bash/commands/internal.js.map +1 -1
  55. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  56. package/dist/safe-bash/commands/llm/index.browser.js +4 -4
  57. package/dist/safe-bash/commands/network/index.browser.js +4 -4
  58. package/dist/safe-bash/commands/node/index.browser.js +4 -4
  59. package/dist/safe-bash/commands/pandoc/index.js.map +1 -1
  60. package/dist/safe-bash/commands/pr/index.browser.js +3 -3
  61. package/dist/safe-bash/commands/python/index.browser.js +2 -2
  62. package/dist/safe-bash/commands/record-buffer.d.ts.map +1 -1
  63. package/dist/safe-bash/commands/record-buffer.js +12 -4
  64. package/dist/safe-bash/commands/record-buffer.js.map +1 -1
  65. package/dist/safe-bash/commands/regex-execution/bounded-provider.d.ts.map +1 -1
  66. package/dist/safe-bash/commands/regex-execution/bounded-provider.js +75 -8
  67. package/dist/safe-bash/commands/regex-execution/bounded-provider.js.map +1 -1
  68. package/dist/safe-bash/commands/regex-execution/ere/limits.d.ts +1 -1
  69. package/dist/safe-bash/commands/regex-execution/ere/limits.d.ts.map +1 -1
  70. package/dist/safe-bash/commands/regex-execution/ere/limits.js +6 -4
  71. package/dist/safe-bash/commands/regex-execution/ere/limits.js.map +1 -1
  72. package/dist/safe-bash/commands/regex-execution/portable.d.ts.map +1 -1
  73. package/dist/safe-bash/commands/regex-execution/portable.js +7 -2
  74. package/dist/safe-bash/commands/regex-execution/portable.js.map +1 -1
  75. package/dist/safe-bash/commands/regex-execution/protocol.d.ts +2 -0
  76. package/dist/safe-bash/commands/regex-execution/protocol.d.ts.map +1 -1
  77. package/dist/safe-bash/commands/regex-execution/protocol.js +26 -0
  78. package/dist/safe-bash/commands/regex-execution/protocol.js.map +1 -1
  79. package/dist/safe-bash/commands/regex-execution/utf8.d.ts +1 -1
  80. package/dist/safe-bash/commands/regex-execution/utf8.d.ts.map +1 -1
  81. package/dist/safe-bash/commands/regex-execution/utf8.js +26 -2
  82. package/dist/safe-bash/commands/regex-execution/utf8.js.map +1 -1
  83. package/dist/safe-bash/commands/search/grep.d.ts.map +1 -1
  84. package/dist/safe-bash/commands/search/grep.js +109 -15
  85. package/dist/safe-bash/commands/search/grep.js.map +1 -1
  86. package/dist/safe-bash/commands/search/matcher.d.ts +1 -1
  87. package/dist/safe-bash/commands/search/matcher.d.ts.map +1 -1
  88. package/dist/safe-bash/commands/search/matcher.js +2 -0
  89. package/dist/safe-bash/commands/search/matcher.js.map +1 -1
  90. package/dist/safe-bash/commands/search/shared.d.ts.map +1 -1
  91. package/dist/safe-bash/commands/search/shared.js +23 -12
  92. package/dist/safe-bash/commands/search/shared.js.map +1 -1
  93. package/dist/safe-bash/commands/standard.d.ts.map +1 -1
  94. package/dist/safe-bash/commands/standard.js +22 -0
  95. package/dist/safe-bash/commands/standard.js.map +1 -1
  96. package/dist/safe-bash/commands/streams.d.ts.map +1 -1
  97. package/dist/safe-bash/commands/streams.js +54 -10
  98. package/dist/safe-bash/commands/streams.js.map +1 -1
  99. package/dist/safe-bash/commands/structured/input.d.ts.map +1 -1
  100. package/dist/safe-bash/commands/structured/input.js +484 -55
  101. package/dist/safe-bash/commands/structured/input.js.map +1 -1
  102. package/dist/safe-bash/commands/structured/interpreter.d.ts +3 -0
  103. package/dist/safe-bash/commands/structured/interpreter.d.ts.map +1 -1
  104. package/dist/safe-bash/commands/structured/interpreter.js +157 -1
  105. package/dist/safe-bash/commands/structured/interpreter.js.map +1 -1
  106. package/dist/safe-bash/commands/structured/jq.d.ts.map +1 -1
  107. package/dist/safe-bash/commands/structured/jq.js +50 -24
  108. package/dist/safe-bash/commands/structured/jq.js.map +1 -1
  109. package/dist/safe-bash/commands/structured/limits.d.ts +5 -0
  110. package/dist/safe-bash/commands/structured/limits.d.ts.map +1 -1
  111. package/dist/safe-bash/commands/structured/limits.js +51 -36
  112. package/dist/safe-bash/commands/structured/limits.js.map +1 -1
  113. package/dist/safe-bash/commands/structured/numbers.d.ts +1 -0
  114. package/dist/safe-bash/commands/structured/numbers.d.ts.map +1 -1
  115. package/dist/safe-bash/commands/structured/numbers.js +32 -0
  116. package/dist/safe-bash/commands/structured/numbers.js.map +1 -1
  117. package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -0
  118. package/dist/safe-bash/commands/text-programs/awk-reader.d.ts.map +1 -1
  119. package/dist/safe-bash/commands/text-programs/awk-reader.js +41 -5
  120. package/dist/safe-bash/commands/text-programs/awk-reader.js.map +1 -1
  121. package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -0
  122. package/dist/safe-bash/commands/text-programs/awk-retention.d.ts.map +1 -1
  123. package/dist/safe-bash/commands/text-programs/awk-retention.js +9 -0
  124. package/dist/safe-bash/commands/text-programs/awk-retention.js.map +1 -1
  125. package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +13 -0
  126. package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts.map +1 -1
  127. package/dist/safe-bash/commands/text-programs/awk-runtime.js +421 -83
  128. package/dist/safe-bash/commands/text-programs/awk-runtime.js.map +1 -1
  129. package/dist/safe-bash/commands/text-programs/awk-values.d.ts.map +1 -1
  130. package/dist/safe-bash/commands/text-programs/awk-values.js +21 -0
  131. package/dist/safe-bash/commands/text-programs/awk-values.js.map +1 -1
  132. package/dist/safe-bash/commands/text-programs/regex.d.ts +15 -2
  133. package/dist/safe-bash/commands/text-programs/regex.d.ts.map +1 -1
  134. package/dist/safe-bash/commands/text-programs/regex.js +501 -13
  135. package/dist/safe-bash/commands/text-programs/regex.js.map +1 -1
  136. package/dist/safe-bash/commands/text-programs/sed.d.ts.map +1 -1
  137. package/dist/safe-bash/commands/text-programs/sed.js +242 -102
  138. package/dist/safe-bash/commands/text-programs/sed.js.map +1 -1
  139. package/dist/safe-bash/commands/text-programs/shared.d.ts +2 -0
  140. package/dist/safe-bash/commands/text-programs/shared.d.ts.map +1 -1
  141. package/dist/safe-bash/commands/text-programs/shared.js +36 -0
  142. package/dist/safe-bash/commands/text-programs/shared.js.map +1 -1
  143. package/dist/safe-bash/commands/text.d.ts.map +1 -1
  144. package/dist/safe-bash/commands/text.js +136 -19
  145. package/dist/safe-bash/commands/text.js.map +1 -1
  146. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  147. package/dist/safe-bash/commands/xml/index.browser.js +5 -5
  148. package/dist/safe-bash/commands/yq/index.browser.js +5 -5
  149. package/dist/safe-bash/contracts/yield.d.ts +1 -0
  150. package/dist/safe-bash/contracts/yield.d.ts.map +1 -1
  151. package/dist/safe-bash/contracts/yield.js +3 -0
  152. package/dist/safe-bash/contracts/yield.js.map +1 -1
  153. package/dist/safe-bash/core.browser.js +1052 -256
  154. package/dist/safe-bash/core.browser.js.map +3 -3
  155. package/dist/safe-bash/plugins/composition.d.ts +1 -0
  156. package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
  157. package/dist/safe-bash/plugins/composition.js +80 -2
  158. package/dist/safe-bash/plugins/composition.js.map +1 -1
  159. package/dist/safe-bash/plugins/index.d.ts.map +1 -1
  160. package/dist/safe-bash/plugins/index.js +2 -2
  161. package/dist/safe-bash/plugins/index.js.map +1 -1
  162. package/dist/safe-bash-command-fold/arguments.d.ts +1 -1
  163. package/dist/safe-bash-command-fold/contracts.d.ts +2 -1
  164. package/dist/safe-bash-command-fold/engine.d.ts +1 -1
  165. package/dist/safe-bash-command-fold/index.js +10 -8
  166. package/dist/safe-bash-command-fold/index.js.map +2 -2
  167. package/dist/safe-bash-command-sips/index.js +231 -67
  168. package/dist/safe-bash-command-sips/index.js.map +2 -2
  169. package/dist/safe-bash-command-unrtf/contracts.d.ts +5 -2
  170. package/dist/safe-bash-command-unrtf/index.js +6 -5
  171. package/dist/safe-bash-command-unrtf/index.js.map +2 -2
  172. package/dist/safe-playwright-cloudflare/browser-run-code.js +22 -6
  173. package/package.json +2 -2
  174. package/dist/safe-bash/chunks/chunk-5DLGYPGJ.js.map +0 -7
  175. package/dist/safe-bash/chunks/chunk-7UJW7TYR.js.map +0 -7
  176. package/dist/safe-bash/chunks/chunk-B6YFFKYG.js.map +0 -7
  177. package/dist/safe-bash/chunks/chunk-OTM5RCWZ.js.map +0 -7
  178. package/dist/safe-bash/chunks/chunk-RP5IZOOR.js.map +0 -7
  179. package/dist/safe-bash/chunks/chunk-VGJIDLZM.js.map +0 -7
  180. package/dist/safe-bash/chunks/chunk-VV24PRPB.js.map +0 -7
  181. package/dist/safe-bash/chunks/chunk-YOK5UHA7.js.map +0 -7
  182. /package/dist/safe-bash/chunks/{chunk-6VZX7ESE.js.map → chunk-26N7BLXE.js.map} +0 -0
  183. /package/dist/safe-bash/chunks/{chunk-ZZ7JQBPX.js.map → chunk-4A2OLEML.js.map} +0 -0
  184. /package/dist/safe-bash/chunks/{chunk-LTREB3HX.js.map → chunk-54MC6XF5.js.map} +0 -0
  185. /package/dist/safe-bash/chunks/{chunk-Z3CCN6Y2.js.map → chunk-6J5FUESH.js.map} +0 -0
  186. /package/dist/safe-bash/chunks/{chunk-YR5RZBWS.js.map → chunk-6TBFZ5JE.js.map} +0 -0
  187. /package/dist/safe-bash/chunks/{chunk-6HJNJ625.js.map → chunk-7MMYQG3P.js.map} +0 -0
  188. /package/dist/safe-bash/chunks/{chunk-WTZZX4LV.js.map → chunk-A4MB2KXV.js.map} +0 -0
  189. /package/dist/safe-bash/chunks/{chunk-EM2JW7ZH.js.map → chunk-ATYJKRBZ.js.map} +0 -0
  190. /package/dist/safe-bash/chunks/{chunk-EFMXWUYE.js.map → chunk-B6JEJ6AT.js.map} +0 -0
  191. /package/dist/safe-bash/chunks/{chunk-JFGGQUYP.js.map → chunk-BFXGHT3R.js.map} +0 -0
  192. /package/dist/safe-bash/chunks/{chunk-646RTREQ.js.map → chunk-EEDOYIPC.js.map} +0 -0
  193. /package/dist/safe-bash/chunks/{chunk-OFAAHWL5.js.map → chunk-GCQ5A2T2.js.map} +0 -0
  194. /package/dist/safe-bash/chunks/{chunk-MJW4KSKV.js.map → chunk-GLPJEDLY.js.map} +0 -0
  195. /package/dist/safe-bash/chunks/{chunk-FOOJWH7J.js.map → chunk-GO5OKPBO.js.map} +0 -0
  196. /package/dist/safe-bash/chunks/{chunk-5JANWFJ3.js.map → chunk-GWYXCCGO.js.map} +0 -0
  197. /package/dist/safe-bash/chunks/{chunk-DPHRNHPT.js.map → chunk-H6KJ4L22.js.map} +0 -0
  198. /package/dist/safe-bash/chunks/{chunk-FLX2BZBF.js.map → chunk-HGBYIDAK.js.map} +0 -0
  199. /package/dist/safe-bash/chunks/{chunk-PO3Z7W3A.js.map → chunk-MUHYGUFD.js.map} +0 -0
  200. /package/dist/safe-bash/chunks/{chunk-TIHMU25L.js.map → chunk-PQ37GDJF.js.map} +0 -0
  201. /package/dist/safe-bash/chunks/{chunk-LZ7FUN6K.js.map → chunk-RHHDOA67.js.map} +0 -0
  202. /package/dist/safe-bash/chunks/{chunk-DSCL3VA2.js.map → chunk-SJ3B26XV.js.map} +0 -0
  203. /package/dist/safe-bash/chunks/{chunk-6JBTVWHH.js.map → chunk-SWACYEIT.js.map} +0 -0
  204. /package/dist/safe-bash/chunks/{chunk-Q4I754TV.js.map → chunk-THOBFD5C.js.map} +0 -0
  205. /package/dist/safe-bash/chunks/{chunk-XELW5O3R.js.map → chunk-U2STHT7S.js.map} +0 -0
  206. /package/dist/safe-bash/chunks/{chunk-5X4SOSTT.js.map → chunk-UJHE5PTK.js.map} +0 -0
  207. /package/dist/safe-bash/chunks/{chunk-PLCYP2E5.js.map → chunk-XV4K3UUF.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["contracts.js", "arguments.js", "units.js", "width-data.js", "width.js", "column.js", "engine.js", "command.js"],
4
- "sourcesContent": ["export class FoldError extends Error {\n code;\n constructor(code, message) {\n super(message);\n this.code = code;\n this.name = 'FoldError';\n }\n}\nexport function validateLimits(limits) {\n for (const value of [limits.inputBytes, limits.decodedBytes ?? limits.inputBytes, limits.outputBytes, limits.retainedBytes, limits.work, limits.argumentBytes])\n if (!Number.isSafeInteger(value) || value < 0)\n throw new FoldError('LIMIT', 'Limits must be nonnegative safe integers');\n if (limits.retainedBytes < 8196)\n throw new FoldError('LIMIT', 'The release buffer contract requires 8192 line bytes plus 4 decoder bytes');\n}\n", "import { FoldError, validateLimits } from './contracts.js';\nexport function parseFoldArguments(args, limits) {\n validateLimits(limits);\n let size = 0;\n // Admission precedes encoder allocation, including astral and lone-surrogate strings.\n for (const arg of args) {\n size++;\n for (const ch of arg) {\n const cp = ch.codePointAt(0);\n size += cp < 128 ? 1 : cp < 2048 ? 2 : cp < 65536 ? 3 : 4;\n if (size > limits.argumentBytes || size > limits.work)\n throw new FoldError('LIMIT', 'Argument byte/work limit exceeded');\n }\n if (size > limits.argumentBytes || size > limits.work)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n }\n let width = 80, mode = 'columns', spaces = false, ended = false;\n const files = [];\n const setWidth = (value) => {\n let i = 0;\n while (' \\t\\r\\n\\v\\f'.includes(value[i] ?? '\\u0000'))\n i++;\n if (value[i] === '+')\n i++;\n const start = i;\n let number = 0n;\n for (; i < value.length; i++) {\n const digit = value.charCodeAt(i) - 48;\n if (digit < 0 || digit > 9)\n throw new FoldError('WIDTH', 'Width must be a positive decimal integer');\n number = number * 10n + BigInt(digit);\n if (number > 18446744073709551606n)\n throw new FoldError('WIDTH', 'Width exceeds released 64-bit native range');\n }\n if (start === i || number === 0n)\n throw new FoldError('WIDTH', 'Width must be at least 1');\n if (number > BigInt(Number.MAX_SAFE_INTEGER))\n throw new FoldError('LIMIT', 'Width exceeds checked arithmetic admission');\n width = Number(number);\n };\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (ended || arg === '-' || !arg.startsWith('-')) {\n files.push(arg);\n continue;\n }\n if (arg === '--') {\n ended = true;\n continue;\n }\n if (arg.startsWith('--')) {\n const equal = arg.indexOf('=');\n const name = arg.slice(2, equal < 0 ? undefined : equal);\n const matches = ['bytes', 'characters', 'spaces', 'width'].filter(n => name.length > 0 && n.startsWith(name));\n if (matches.length !== 1)\n throw new FoldError('OPTION', `Unavailable option: ${arg}`);\n const option = matches[0];\n if (option === 'width') {\n const value = equal < 0 ? args[++i] : arg.slice(equal + 1);\n if (value === undefined)\n throw new FoldError('OPTION', 'Width requires an argument');\n setWidth(value);\n }\n else {\n if (equal >= 0)\n throw new FoldError('OPTION', `Option takes no argument: ${arg}`);\n if (option === 'spaces')\n spaces = true;\n else\n mode = option === 'bytes' ? 'bytes' : 'characters';\n }\n continue;\n }\n for (let j = 1; j < arg.length; j++) {\n const ch = arg[j];\n if (ch === 'b')\n mode = 'bytes';\n else if (ch === 'c')\n mode = 'characters';\n else if (ch === 's')\n spaces = true;\n else if (ch === 'w') {\n const value = j + 1 < arg.length ? arg.slice(j + 1) : args[++i];\n if (value === undefined)\n throw new FoldError('OPTION', 'Width requires an argument');\n setWidth(value);\n break;\n }\n else if (ch >= '0' && ch <= '9') {\n setWidth(arg.slice(j));\n break;\n }\n else\n throw new FoldError('OPTION', `Unavailable option: -${ch}`);\n }\n }\n return Object.freeze({ width, mode, spaces, files: Object.freeze(files) });\n}\n", "export function decodeFoldUnit(bytes, offset, available, eof) {\n const first = bytes[offset];\n if (first < 128)\n return { cp: first, length: 1, valid: true };\n const length = first >= 0xc2 && first <= 0xdf ? 2 : first >= 0xe0 && first <= 0xef ? 3 : first >= 0xf0 && first <= 0xf4 ? 4 : 1;\n const invalid = { cp: first, length: 1, valid: false };\n if (length === 1)\n return invalid;\n for (let i = 1; i < Math.min(length, available); i++) {\n const b = bytes[offset + i];\n if (b < 128 || b > 191 || (i === 1 && ((first === 0xe0 && b < 0xa0) || (first === 0xed && b > 0x9f) || (first === 0xf0 && b < 0x90) || (first === 0xf4 && b > 0x8f))))\n return invalid;\n }\n if (available < length)\n return eof ? invalid : undefined;\n let cp = first & (length === 2 ? 31 : length === 3 ? 15 : 7);\n for (let i = 1; i < length; i++)\n cp = cp * 64 + (bytes[offset + i] & 63);\n return { cp, length, valid: true };\n}\n", "/*! SPDX-License-Identifier: LGPL-2.1-or-later\n * Unicode 17.0.0 width tables derived from released gnulib width0.h/width2.h.\n * Copyright (C) 2000-2025 Free Software Foundation, Inc.\n * This data is free software under GNU LGPL version 2.1 or later.\n * Distributed without any warranty; see COPYING.LESSER and README.\n */\nexport const zeroWidthRanges = [\n [0, 31],\n [127, 159],\n [173, 173],\n [768, 879],\n [1155, 1161],\n [1425, 1469],\n [1471, 1471],\n [1473, 1474],\n [1476, 1477],\n [1479, 1479],\n [1552, 1562],\n [1564, 1564],\n [1611, 1631],\n [1648, 1648],\n [1750, 1756],\n [1759, 1764],\n [1767, 1768],\n [1770, 1773],\n [1809, 1809],\n [1840, 1866],\n [1958, 1968],\n [2027, 2035],\n [2045, 2045],\n [2070, 2073],\n [2075, 2083],\n [2085, 2087],\n [2089, 2093],\n [2137, 2139],\n [2199, 2207],\n [2250, 2273],\n [2275, 2306],\n [2362, 2362],\n [2364, 2364],\n [2369, 2376],\n [2381, 2381],\n [2385, 2391],\n [2402, 2403],\n [2433, 2433],\n [2492, 2492],\n [2497, 2500],\n [2509, 2509],\n [2530, 2531],\n [2558, 2558],\n [2561, 2562],\n [2620, 2620],\n [2625, 2626],\n [2631, 2632],\n [2635, 2637],\n [2641, 2641],\n [2672, 2673],\n [2677, 2677],\n [2689, 2690],\n [2748, 2748],\n [2753, 2757],\n [2759, 2760],\n [2765, 2765],\n [2786, 2787],\n [2810, 2815],\n [2817, 2817],\n [2876, 2876],\n [2879, 2879],\n [2881, 2884],\n [2893, 2893],\n [2901, 2902],\n [2914, 2915],\n [2946, 2946],\n [3008, 3008],\n [3021, 3021],\n [3072, 3072],\n [3076, 3076],\n [3132, 3132],\n [3134, 3136],\n [3142, 3144],\n [3146, 3149],\n [3157, 3158],\n [3170, 3171],\n [3201, 3201],\n [3260, 3260],\n [3276, 3277],\n [3298, 3299],\n [3328, 3329],\n [3387, 3388],\n [3393, 3396],\n [3405, 3405],\n [3426, 3427],\n [3457, 3457],\n [3530, 3530],\n [3538, 3540],\n [3542, 3542],\n [3633, 3633],\n [3636, 3642],\n [3655, 3662],\n [3761, 3761],\n [3764, 3772],\n [3784, 3790],\n [3864, 3865],\n [3893, 3893],\n [3895, 3895],\n [3897, 3897],\n [3953, 3966],\n [3968, 3972],\n [3974, 3975],\n [3981, 3991],\n [3993, 4028],\n [4038, 4038],\n [4141, 4144],\n [4146, 4151],\n [4153, 4154],\n [4157, 4158],\n [4184, 4185],\n [4190, 4192],\n [4209, 4212],\n [4226, 4226],\n [4229, 4230],\n [4237, 4237],\n [4253, 4253],\n [4448, 4607],\n [4957, 4959],\n [5906, 5908],\n [5938, 5939],\n [5970, 5971],\n [6002, 6003],\n [6068, 6069],\n [6071, 6077],\n [6086, 6086],\n [6089, 6099],\n [6109, 6109],\n [6155, 6159],\n [6277, 6278],\n [6313, 6313],\n [6432, 6434],\n [6439, 6440],\n [6450, 6450],\n [6457, 6459],\n [6679, 6680],\n [6683, 6683],\n [6742, 6742],\n [6744, 6750],\n [6752, 6752],\n [6754, 6754],\n [6757, 6764],\n [6771, 6780],\n [6783, 6783],\n [6832, 6877],\n [6880, 6891],\n [6912, 6915],\n [6964, 6964],\n [6966, 6970],\n [6972, 6972],\n [6978, 6978],\n [7019, 7027],\n [7040, 7041],\n [7074, 7077],\n [7080, 7081],\n [7083, 7085],\n [7142, 7142],\n [7144, 7145],\n [7149, 7149],\n [7151, 7153],\n [7212, 7219],\n [7222, 7223],\n [7376, 7378],\n [7380, 7392],\n [7394, 7400],\n [7405, 7405],\n [7412, 7412],\n [7416, 7417],\n [7616, 7679],\n [8203, 8207],\n [8234, 8238],\n [8288, 8292],\n [8294, 8303],\n [8400, 8432],\n [11503, 11505],\n [11647, 11647],\n [11744, 11775],\n [12330, 12333],\n [12441, 12442],\n [42607, 42610],\n [42612, 42621],\n [42654, 42655],\n [42736, 42737],\n [43010, 43010],\n [43014, 43014],\n [43019, 43019],\n [43045, 43046],\n [43052, 43052],\n [43204, 43205],\n [43232, 43249],\n [43263, 43263],\n [43302, 43309],\n [43335, 43345],\n [43392, 43394],\n [43443, 43443],\n [43446, 43449],\n [43452, 43453],\n [43493, 43493],\n [43561, 43566],\n [43569, 43570],\n [43573, 43574],\n [43587, 43587],\n [43596, 43596],\n [43644, 43644],\n [43696, 43696],\n [43698, 43700],\n [43703, 43704],\n [43710, 43711],\n [43713, 43713],\n [43756, 43757],\n [43766, 43766],\n [44005, 44005],\n [44008, 44008],\n [44013, 44013],\n [55216, 55238],\n [55243, 55291],\n [64286, 64286],\n [65024, 65039],\n [65056, 65071],\n [65279, 65279],\n [65529, 65531],\n [66045, 66045],\n [66272, 66272],\n [66422, 66426],\n [68097, 68099],\n [68101, 68102],\n [68108, 68111],\n [68152, 68154],\n [68159, 68159],\n [68325, 68326],\n [68900, 68903],\n [68969, 68973],\n [69291, 69292],\n [69370, 69375],\n [69446, 69456],\n [69506, 69509],\n [69633, 69633],\n [69688, 69702],\n [69744, 69744],\n [69747, 69748],\n [69759, 69761],\n [69811, 69814],\n [69817, 69818],\n [69826, 69826],\n [69888, 69890],\n [69927, 69931],\n [69933, 69940],\n [70003, 70003],\n [70016, 70017],\n [70070, 70078],\n [70089, 70092],\n [70095, 70095],\n [70191, 70193],\n [70196, 70196],\n [70198, 70199],\n [70206, 70206],\n [70209, 70209],\n [70367, 70367],\n [70371, 70378],\n [70400, 70401],\n [70459, 70460],\n [70464, 70464],\n [70502, 70508],\n [70512, 70516],\n [70587, 70592],\n [70606, 70606],\n [70608, 70608],\n [70610, 70610],\n [70625, 70626],\n [70712, 70719],\n [70722, 70724],\n [70726, 70726],\n [70750, 70750],\n [70835, 70840],\n [70842, 70842],\n [70847, 70848],\n [70850, 70851],\n [71090, 71093],\n [71100, 71101],\n [71103, 71104],\n [71132, 71133],\n [71219, 71226],\n [71229, 71229],\n [71231, 71232],\n [71339, 71339],\n [71341, 71341],\n [71344, 71349],\n [71351, 71351],\n [71453, 71453],\n [71455, 71455],\n [71458, 71461],\n [71463, 71467],\n [71727, 71735],\n [71737, 71738],\n [71995, 71996],\n [71998, 71998],\n [72003, 72003],\n [72148, 72151],\n [72154, 72155],\n [72160, 72160],\n [72193, 72198],\n [72201, 72202],\n [72243, 72248],\n [72251, 72254],\n [72263, 72263],\n [72273, 72278],\n [72281, 72283],\n [72330, 72342],\n [72344, 72345],\n [72544, 72544],\n [72546, 72548],\n [72550, 72550],\n [72752, 72758],\n [72760, 72765],\n [72850, 72871],\n [72874, 72880],\n [72882, 72883],\n [72885, 72886],\n [73009, 73014],\n [73018, 73018],\n [73020, 73021],\n [73023, 73029],\n [73031, 73031],\n [73104, 73105],\n [73109, 73109],\n [73111, 73111],\n [73459, 73460],\n [73472, 73473],\n [73526, 73530],\n [73536, 73536],\n [73538, 73538],\n [73562, 73562],\n [78896, 78912],\n [78919, 78933],\n [90398, 90409],\n [90413, 90415],\n [92912, 92916],\n [92976, 92982],\n [94031, 94031],\n [94095, 94098],\n [94180, 94180],\n [113821, 113822],\n [113824, 113827],\n [118528, 118573],\n [118576, 118598],\n [119143, 119145],\n [119155, 119170],\n [119173, 119179],\n [119210, 119213],\n [119362, 119364],\n [121344, 121398],\n [121403, 121452],\n [121461, 121461],\n [121476, 121476],\n [121499, 121503],\n [121505, 121519],\n [122880, 122886],\n [122888, 122904],\n [122907, 122913],\n [122915, 122916],\n [122918, 122922],\n [123023, 123023],\n [123184, 123190],\n [123566, 123566],\n [123628, 123631],\n [124140, 124143],\n [124398, 124399],\n [124643, 124643],\n [124646, 124646],\n [124654, 124655],\n [124661, 124661],\n [125136, 125142],\n [125252, 125258],\n [917505, 917505],\n [917536, 917631],\n [917760, 917999],\n];\nexport const wideRanges = [\n [4352, 4447],\n [8986, 8987],\n [9001, 9002],\n [9193, 9196],\n [9200, 9200],\n [9203, 9203],\n [9725, 9726],\n [9748, 9749],\n [9800, 9811],\n [9855, 9855],\n [9875, 9875],\n [9889, 9889],\n [9898, 9899],\n [9917, 9918],\n [9924, 9925],\n [9934, 9934],\n [9940, 9940],\n [9962, 9962],\n [9970, 9971],\n [9973, 9973],\n [9978, 9978],\n [9981, 9981],\n [9989, 9989],\n [9994, 9995],\n [10024, 10024],\n [10060, 10060],\n [10062, 10062],\n [10067, 10069],\n [10071, 10071],\n [10133, 10135],\n [10160, 10160],\n [10175, 10175],\n [11035, 11036],\n [11088, 11088],\n [11093, 11093],\n [11904, 12350],\n [12352, 12871],\n [12880, 19903],\n [19968, 42191],\n [43360, 43388],\n [44032, 55203],\n [63744, 64255],\n [65040, 65055],\n [65072, 65135],\n [65280, 65376],\n [65504, 65510],\n [94176, 94179],\n [94192, 94193],\n [94208, 100343],\n [100352, 101589],\n [101632, 101640],\n [110576, 110579],\n [110581, 110587],\n [110589, 110590],\n [110592, 110882],\n [110928, 110930],\n [110948, 110951],\n [110960, 111355],\n [126980, 126980],\n [127183, 127183],\n [127374, 127374],\n [127377, 127386],\n [127488, 127776],\n [127789, 127797],\n [127799, 127868],\n [127870, 127891],\n [127904, 127946],\n [127951, 127955],\n [127968, 127984],\n [127988, 127988],\n [127992, 128062],\n [128064, 128064],\n [128066, 128252],\n [128255, 128317],\n [128331, 128334],\n [128336, 128359],\n [128378, 128378],\n [128405, 128406],\n [128420, 128420],\n [128507, 128591],\n [128640, 128709],\n [128716, 128716],\n [128720, 128722],\n [128725, 128727],\n [128733, 128735],\n [128747, 128748],\n [128756, 128764],\n [128992, 129003],\n [129008, 129008],\n [129292, 129338],\n [129340, 129349],\n [129351, 129535],\n [129648, 129652],\n [129656, 129660],\n [129664, 129670],\n [129680, 129708],\n [129712, 129722],\n [129728, 129733],\n [129744, 129753],\n [129760, 129767],\n [129776, 129782],\n [131072, 262143],\n];\n", "import { zeroWidthRanges, wideRanges } from './width-data.js';\nfunction contains(ranges, cp) {\n let lo = 0, hi = ranges.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1, range = ranges[mid];\n if (cp < range[0])\n hi = mid;\n else if (cp > range[1])\n lo = mid + 1;\n else\n return true;\n }\n return false;\n}\n/** Deterministic gnulib-compatible UTF-8 width table, independent of libc/Intl. */\nexport function portableWidth(cp) {\n if (!Number.isInteger(cp) || cp < 0 || cp > 0x10ffff || (cp >= 0xd800 && cp <= 0xdfff))\n return -1;\n if (contains(zeroWidthRanges, cp))\n return cp > 0 && cp < 0xa0 ? -1 : 0;\n return contains(wideRanges, cp) ? 2 : 1;\n}\n", "import { FoldError } from './contracts.js';\nimport { portableWidth } from './width.js';\n/** Pure checked arithmetic; LF/file reset belongs to the engine, not this primitive. */\nexport function adjustFoldColumn(state, glyph, mode, locale) {\n if (locale !== 'C' && locale !== 'UTF-8/Unicode-17.0.0')\n throw new FoldError('LOCALE', 'Unavailable locale profile');\n if (!['columns', 'characters', 'bytes'].includes(mode))\n throw new FoldError('OPTION', 'Unavailable counting mode');\n if (!Number.isSafeInteger(state.column) || state.column < 0 || !Number.isInteger(state.lastWidth) || state.lastWidth < 0 || state.lastWidth > 2 || !Number.isInteger(glyph.byteLength) || glyph.byteLength < 1 || glyph.byteLength > 4 || !Number.isInteger(glyph.codePoint) || glyph.codePoint < 0 || glyph.codePoint > 0x10ffff)\n throw new FoldError('ARITHMETIC', 'Invalid column or glyph admission');\n let { column, lastWidth } = state;\n const cp = glyph.codePoint;\n if (mode === 'bytes')\n column += glyph.byteLength;\n else if (cp === 8) {\n if (column > 0) {\n if (column < lastWidth)\n throw new FoldError('ARITHMETIC', 'Backspace subtraction underflow is not admitted');\n column -= lastWidth;\n }\n }\n else if (cp === 13)\n column = 0;\n else if (cp === 9)\n column += 8 - column % 8;\n else {\n const width = locale === 'C' ? cp === 0 ? 0 : cp < 128 ? portableWidth(cp) : -1 : portableWidth(cp);\n lastWidth = mode === 'characters' ? 1 : width < 0 ? 1 : width;\n column += lastWidth;\n }\n if (!Number.isSafeInteger(column))\n throw new FoldError('ARITHMETIC', 'Column addition exceeds safe integer arithmetic');\n return { column, lastWidth };\n}\n", "import { decodeFoldUnit } from \"./units.js\";\nimport { FoldError, validateLimits } from './contracts.js';\nimport { adjustFoldColumn } from './column.js';\n// Inspect intrinsic slots across realms; producer properties must not change\n// byte admission, accounting or iteration (Buffer is also a Uint8Array).\nconst byteViewPrototype = Object.getPrototypeOf(Uint8Array.prototype);\nconst byteType = Object.getOwnPropertyDescriptor(byteViewPrototype, Symbol.toStringTag).get;\nconst byteLength = Object.getOwnPropertyDescriptor(byteViewPrototype, 'byteLength').get;\nconst byteValues = Uint8Array.prototype.values;\nexport function createFoldEngine(options, locale, limits, signal) {\n validateLimits(limits);\n if (locale !== 'C' && locale !== 'UTF-8/Unicode-17.0.0')\n throw new FoldError('LOCALE', `Unavailable locale profile: ${locale}`);\n if (!Number.isSafeInteger(options.width) || options.width < 1)\n throw new FoldError('WIDTH', 'Width must be a positive safe integer');\n if (!['columns', 'characters', 'bytes'].includes(options.mode) || typeof options.spaces !== 'boolean')\n throw new FoldError('OPTION', 'Invalid engine options');\n // Snapshot borrowed configuration before allocating invocation state.\n const { width, mode, spaces } = options;\n const { inputBytes, outputBytes, work } = limits;\n const decodedLimit = limits.decodedBytes ?? inputBytes;\n const line = new Uint8Array(8192), pending = [];\n let used = 0, column = 0, lastWidth = 0, input = 0, decoded = 0, output = 0, steps = 0, closed = false;\n // One byte offset identifies the last candidate; no per-glyph retained objects.\n let lastBlank = 0, peakRetained = 0;\n let emitted = [];\n const check = (amount = 1) => {\n if (closed)\n throw new FoldError('CLOSED', 'Fold engine is closed');\n if (signal?.aborted)\n throw new FoldError('CANCELLED', 'Fold invocation cancelled');\n if (amount > work - steps)\n throw new FoldError('LIMIT', 'Algorithm work limit exceeded');\n steps += amount;\n };\n const adjust = (unit, rescan = false) => {\n check();\n // mbbuf input errors have invalid width; mcel remainder scans use ch=0.\n // A malformed byte must never inherit the Unicode width of its byte value.\n const next = adjustFoldColumn({ column, lastWidth }, { codePoint: unit.valid ? unit.cp : rescan ? 0 : 1, byteLength: unit.length }, mode, locale);\n lastWidth = next.lastWidth;\n return next.column;\n };\n const emit = (length, lf) => {\n check();\n const size = length + Number(lf);\n if (size > outputBytes - output)\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n check(size); // Admit allocation and byte copy before producing owned output.\n output += size;\n if (!size)\n return;\n const bytes = new Uint8Array(size);\n bytes.set(line.subarray(0, length));\n if (lf)\n bytes[length] = 10;\n emitted.push(bytes);\n };\n const scan = (offset) => locale === 'C' ? { cp: line[offset], length: 1, valid: line[offset] < 128 } : decodeFoldUnit(line, offset, used - offset, true);\n const blank = (cp) => cp === 9 || cp === 32 || (locale !== 'C' && (cp === 0x1680 || (cp >= 0x2000 && cp <= 0x200a && cp !== 0x2007) || cp === 0x205f || cp === 0x3000));\n const consume = (unit, bytes) => {\n check();\n if (unit.cp === 10) {\n emit(used, true);\n used = column = lastBlank = 0;\n return;\n }\n for (;;) {\n column = adjust(unit);\n if (column <= width)\n break;\n const boundary = spaces ? lastBlank : 0;\n if (boundary) {\n emit(boundary, true);\n check(used - boundary);\n line.copyWithin(0, boundary, used);\n used -= boundary;\n column = lastBlank = 0;\n for (let i = 0; i < used;) {\n const retained = scan(i);\n check(retained.length);\n column = adjust(retained, true);\n i += retained.length;\n }\n }\n else {\n if (!used)\n break; // A too-wide unit must be consumed once.\n emit(used, true);\n used = column = lastBlank = 0;\n }\n }\n if (used + unit.length >= line.length) {\n emit(used, false);\n used = lastBlank = 0;\n }\n check(unit.length);\n for (let i = 0; i < unit.length; i++)\n line[used++] = bytes[i];\n if (spaces && unit.valid && blank(unit.cp))\n lastBlank = used;\n };\n const drain = (eof) => {\n while (pending.length) {\n const unit = locale === 'C' ? { cp: pending[0], length: 1, valid: pending[0] < 128 } : decodeFoldUnit(pending, 0, pending.length, eof);\n if (!unit)\n break;\n if (unit.length > decodedLimit - decoded)\n throw new FoldError('LIMIT', 'Decoded byte limit exceeded');\n check(unit.length);\n decoded += unit.length;\n consume(unit, pending);\n peakRetained = Math.max(peakRetained, used + pending.length);\n pending.splice(0, unit.length);\n }\n };\n const dispose = () => { closed = true; used = lastBlank = 0; pending.length = 0; emitted = []; line.fill(0); };\n return {\n push(bytes) {\n try {\n check();\n emitted = [];\n if (byteType.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be a Uint8Array byte view');\n let values;\n try {\n values = byteValues.call(bytes);\n }\n catch {\n throw new FoldError('INPUT', 'Input byte storage is unavailable');\n }\n const length = byteLength.call(bytes);\n if (length > 4096 || length > inputBytes - input)\n throw new FoldError('LIMIT', 'Input byte or bounded-call limit exceeded');\n input += length;\n for (const b of values) {\n check();\n pending.push(b);\n peakRetained = Math.max(peakRetained, used + pending.length);\n drain(false);\n }\n return emitted;\n }\n catch (error) {\n dispose();\n throw error;\n }\n },\n endFile() {\n try {\n check();\n emitted = [];\n drain(true);\n emit(used, false);\n used = column = lastBlank = 0;\n return emitted;\n }\n catch (error) {\n dispose();\n throw error;\n }\n },\n dispose,\n accounting: () => Object.freeze({ inputBytes: input, decodedBytes: decoded, retainedBytes: used + pending.length, peakRetainedBytes: peakRetained, outputBytes: output, work: steps }),\n };\n}\n", "import { commandRuntimeIdentity, getCommandArguments } from 'safe-bash-contracts/command';\nimport { FsError } from 'safe-bash-contracts/errors';\nimport { readBytes, writeBytes } from 'safe-bash-contracts/io';\nimport { createOutputOperation } from 'safe-bash-contracts/output';\nimport { shellValueByteLength } from 'safe-bash-contracts/value';\nimport { parseFoldArguments } from './arguments.js';\nimport { FoldError } from './contracts.js';\nimport { createFoldEngine } from './engine.js';\nconst byteView = Object.getPrototypeOf(Uint8Array.prototype);\nconst byteExtent = Object.getOwnPropertyDescriptor(byteView, 'byteLength').get;\nconst byteKind = Object.getOwnPropertyDescriptor(byteView, Symbol.toStringTag).get;\nconst byteBuffer = Object.getOwnPropertyDescriptor(byteView, 'buffer').get;\nconst byteOffset = Object.getOwnPropertyDescriptor(byteView, 'byteOffset').get;\nconst defaultLimits = Object.freeze({ inputBytes: 16_777_216, outputBytes: 33_554_432, retainedBytes: 1_048_576, work: 268_435_456, argumentBytes: 65_536 });\nasync function executeFold(context, configuration, invocation) {\n const limits = { ...defaultLimits, ...configuration.limits };\n const locale = configuration.locale ?? 'UTF-8/Unicode-17.0.0';\n const controller = new AbortController();\n const signal = controller.signal;\n const abort = () => controller.abort(context.signal.reason);\n let engine, stdout, stderr;\n let task = Promise.resolve(undefined);\n let closing;\n let accepting = true;\n const cleanup = () => {\n if (closing)\n return closing;\n accepting = false;\n let resolve;\n let reject;\n // Abort listeners may reenter cleanup synchronously. Publish its shared\n // completion first, while still cancelling admitted I/O immediately.\n closing = new Promise((complete, fail) => { resolve = complete; reject = fail; });\n controller.abort(new FoldError('CLOSED', 'Fold invocation closed'));\n void (async () => {\n // The task owns its iterator and returns it before settling. A direct host\n // may call cleanup while input/output is still in flight.\n await Promise.allSettled([task]);\n engine?.dispose();\n context.signal.removeEventListener('abort', abort);\n const results = await Promise.allSettled([stdout?.close(), stderr?.close()]);\n const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);\n if (errors.length)\n throw new AggregateError(errors, 'Fold output cleanup failed');\n })().then(resolve, reject);\n return closing;\n };\n context.registerCleanup?.(cleanup);\n // Admit and own SDK operands before yielding to the caller. Deferred task\n // setup must not leave literal paths borrowed from a mutable options array.\n let sdkOptions;\n let sdkExtent = 3;\n let sdkFailure;\n if (invocation) {\n try {\n const args = ['--'];\n for (const file of invocation.files) {\n signal.throwIfAborted();\n // UTF-16 length is a constant-time lower bound for UTF-8 bytes. Reject\n // impossible operands before the byte-length helper scans their text.\n const minimum = sdkExtent + file.length + 1;\n if (minimum > limits.argumentBytes)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n if (minimum * 3 > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n if (minimum * 4 > limits.work)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n sdkExtent += shellValueByteLength(file) + 1;\n if (sdkExtent > limits.argumentBytes)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n if (sdkExtent * 3 > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n if (sdkExtent * 4 > limits.work)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n args.push(file);\n }\n sdkOptions = { ...invocation, files: parseFoldArguments(args, limits).files };\n }\n catch (error) {\n sdkFailure = { error };\n }\n }\n task = Promise.resolve().then(async () => {\n if (!accepting)\n throw new FoldError('CLOSED', 'Fold invocation closed');\n context.signal.addEventListener('abort', abort, { once: true });\n if (context.signal.aborted)\n abort();\n signal.throwIfAborted();\n const scope = { signal, ...(context.registerCleanup ? { registerCleanup: context.registerCleanup.bind(context) } : {}) };\n stdout = createOutputOperation(scope, context.stdout);\n stderr = createOutputOperation(scope, context.stderr);\n let diagnostics = 0, filesRead = 0, filesFailed = 0, overheadWork = 0, peakRetained = 8196, argumentRetention = 0;\n const chargeWork = (amount) => {\n if (amount > limits.work - overheadWork - (engine?.accounting().work ?? 0))\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n overheadWork += amount;\n };\n const retain = (amount) => {\n if (amount > limits.retainedBytes - 8196 - argumentRetention)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n peakRetained = Math.max(peakRetained, 8196 + argumentRetention + amount);\n };\n const accounting = () => Object.freeze({\n ...(engine?.accounting() ?? { inputBytes: 0, decodedBytes: 0, retainedBytes: 0, peakRetainedBytes: 0, outputBytes: 0, work: 0 }),\n outputBytes: (engine?.accounting().outputBytes ?? 0) + diagnostics,\n work: (engine?.accounting().work ?? 0) + overheadWork,\n peakRetainedBytes: peakRetained,\n });\n const diagnostic = async (message) => {\n signal.throwIfAborted();\n retain(message.length * 3);\n chargeWork(message.length * 4);\n // Supply realm-local storage to borrowed host encoders. Its conservative\n // UTF-8 extent has already been admitted by retain above.\n const storage = new Uint8Array(message.length * 3);\n const { written } = new TextEncoder().encodeInto(message, storage);\n const bytes = storage.subarray(0, written);\n if (bytes.length > limits.outputBytes - diagnostics - (engine?.accounting().outputBytes ?? 0))\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n diagnostics += bytes.length;\n await writeBytes(stderr.output, bytes, signal);\n };\n let options;\n try {\n if (invocation) {\n if (sdkFailure)\n throw sdkFailure.error;\n retain(sdkExtent * 3);\n chargeWork(sdkExtent * 4);\n argumentRetention = sdkExtent * 3;\n options = sdkOptions;\n }\n else {\n const carrier = getCommandArguments(context);\n let extent = 0;\n for (let index = 0; index < carrier.values.length; index++) {\n signal.throwIfAborted();\n const value = carrier.values[index];\n if (typeof value === 'string') {\n if (value.length + 1 > limits.argumentBytes - extent)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n retain(value.length * 3);\n if ((value.length + 1) * 4 > limits.work - overheadWork)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n }\n const length = shellValueByteLength(value);\n extent += length + 1;\n if (extent > limits.argumentBytes || length > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n // VFS paths are Unicode strings: refuse lossy byte argv explicitly.\n retain(length * 3);\n chargeWork((length + 1) * 4);\n const bytes = carrier.bytes(index);\n try {\n new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);\n }\n catch {\n throw new FoldError('OPTION', 'Only UTF-8 VFS arguments are available');\n }\n }\n retain(extent * 3);\n argumentRetention = extent * 3;\n options = parseFoldArguments(context.args, limits);\n }\n for (const file of options.files)\n if (file.includes('\\0'))\n throw new FoldError('OPTION', 'NUL is unavailable in VFS paths');\n engine = createFoldEngine(options, locale, { ...limits, work: limits.work - overheadWork }, signal);\n }\n catch (error) {\n signal.throwIfAborted();\n if (!(error instanceof FoldError))\n throw error;\n await diagnostic(`fold: ${error.message}\\n`);\n return { exitCode: 1, filesRead, filesFailed, accounting: accounting() };\n }\n const deliver = async (chunks) => {\n chargeWork(0);\n if (engine.accounting().outputBytes > limits.outputBytes - diagnostics)\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n for (const bytes of chunks)\n await writeBytes(stdout.output, bytes, signal);\n };\n const fileError = async (file, error) => {\n signal.throwIfAborted();\n if (!(error instanceof FsError))\n throw error;\n filesFailed++;\n const messages = { ENOENT: 'No such file or directory', EACCES: 'Permission denied', EISDIR: 'Is a directory', ENOTDIR: 'Not a directory' };\n await diagnostic(`fold: '${file}': ${messages[error.code] ?? error.code}\\n`);\n };\n for (const file of options.files.length ? options.files : ['-']) {\n signal.throwIfAborted();\n let source;\n let ownedInput = 0;\n try {\n if (file === '-')\n source = context.stdin;\n else {\n const path = file.startsWith('/') ? file : `${context.cwd}/${file}`;\n if (context.fs.readStream)\n source = context.fs.readStream(path, { signal });\n else {\n const maxBytes = Math.min(limits.inputBytes - engine.accounting().inputBytes, limits.retainedBytes - 8196 - argumentRetention);\n const bytes = await context.fs.readFile(path, { signal, maxBytes });\n signal.throwIfAborted();\n if (byteKind.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n const length = byteExtent.call(bytes);\n if (length > maxBytes)\n throw new FoldError('LIMIT', 'VFS input retention limit exceeded');\n ownedInput = length;\n retain(ownedInput);\n source = (async function* () { yield bytes; })();\n }\n }\n }\n catch (error) {\n await fileError(file, error);\n continue;\n }\n let producer;\n try {\n producer = source[Symbol.asyncIterator]();\n }\n catch (error) {\n await fileError(file, error);\n continue;\n }\n let inputClosing;\n const closeInput = () => inputClosing ??= Promise.resolve().then(() => producer.return ? producer.return() : { done: true, value: undefined });\n const iterator = readBytes({ [Symbol.asyncIterator]() {\n return { async next() {\n const result = await producer.next();\n signal.throwIfAborted();\n if (result.done)\n return result;\n const bytes = result.value;\n if (byteKind.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n // The shared reader checks realm-local Uint8Array identity. Rehome\n // the view, without copying/advancing or consulting producer properties.\n // Bounded engine calls still consume the storage before producer reuse.\n let view;\n try {\n view = new Uint8Array(byteBuffer.call(bytes), byteOffset.call(bytes), byteExtent.call(bytes));\n }\n catch {\n throw new FoldError('INPUT', 'Input byte storage is unavailable');\n }\n return { done: false, value: view };\n }, return: closeInput };\n } }, signal)[Symbol.asyncIterator]();\n let complete = false;\n let escaping = false, inputFailed = false;\n try {\n for (;;) {\n signal.throwIfAborted();\n let next;\n try {\n chargeWork(1);\n next = await iterator.next();\n }\n catch (error) {\n inputFailed = true;\n await fileError(file, error);\n break;\n }\n if (next.done) {\n complete = true;\n filesRead++;\n break;\n }\n // Consume/copy every producer byte before requesting its next chunk.\n if (byteKind.call(next.value) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n const length = byteExtent.call(next.value);\n if (!length)\n await deliver(engine.push(next.value));\n for (let offset = 0; offset < length; offset += 4096) {\n signal.throwIfAborted();\n // Intrinsic subarray still invokes producer-controlled species.\n // A direct view reads the original storage without that callback.\n const unit = new Uint8Array(byteBuffer.call(next.value), byteOffset.call(next.value) + offset, Math.min(4096, length - offset));\n context.inputBudget?.check(engine.accounting().inputBytes + unit.byteLength);\n retain(ownedInput + engine.accounting().retainedBytes + unit.byteLength * 2 + 4);\n await deliver(engine.push(unit));\n }\n }\n retain(ownedInput + engine.accounting().retainedBytes + 4);\n await deliver(engine.endFile());\n }\n catch (error) {\n escaping = true;\n throw error;\n }\n finally {\n if (!complete) {\n // readBytes schedules return without waiting after cancellation. Own\n // the same close promise and drain it before invocation cleanup ends.\n const results = await Promise.allSettled([iterator.return(undefined), closeInput()]);\n const failure = results.find(result => result.status === 'rejected');\n if (failure?.status === 'rejected' && !escaping && !inputFailed)\n await fileError(file, failure.reason);\n }\n }\n }\n return { exitCode: filesFailed ? 1 : 0, filesRead, filesFailed, accounting: accounting() };\n });\n try {\n return (await task);\n }\n finally {\n try {\n await cleanup();\n }\n finally {\n context.signal.throwIfAborted();\n }\n }\n}\n/** Stream SDK input and literal VFS operands using the same invocation as CLI. */\nexport function fold(context, options = {}) {\n const invocation = { width: options.width ?? 80, mode: options.mode ?? 'columns', spaces: options.spaces ?? false, files: options.files ?? [] };\n return executeFold(context, options, invocation);\n}\nexport function createFoldCommand(options = {}) {\n const configuration = Object.freeze({ ...options, limits: Object.freeze({ ...options.limits }) });\n return Object.freeze({ name: 'fold', runtimeIdentity: commandRuntimeIdentity, description: 'Wrap byte streams using an explicit locale profile', execute(context) { return executeFold(context, configuration); } });\n}\nexport const foldCommand = createFoldCommand();\nexport function foldCommands(options = {}) {\n const command = createFoldCommand(options);\n const replace = options.replace ?? false;\n return { name: 'fold', setup(host) { host.commands.register(command, { replace }); } };\n}\n"],
5
- "mappings": "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,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC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",
4
+ "sourcesContent": ["export const defaultFoldLimits = Object.freeze({ inputBytes: Infinity, decodedBytes: Infinity, outputBytes: Infinity, retainedBytes: Infinity, work: Infinity, argumentBytes: Infinity });\nexport class FoldError extends Error {\n code;\n constructor(code, message) {\n super(message);\n this.code = code;\n this.name = 'FoldError';\n }\n}\nexport function validateLimits(limits) {\n for (const value of [limits.inputBytes, limits.decodedBytes ?? Infinity, limits.outputBytes, limits.retainedBytes, limits.work, limits.argumentBytes])\n if (value !== Infinity && (!Number.isSafeInteger(value) || value < 0))\n throw new FoldError('LIMIT', 'Limits must be nonnegative safe integers');\n if (limits.retainedBytes < 8196)\n throw new FoldError('LIMIT', 'The release buffer contract requires 8192 line bytes plus 4 decoder bytes');\n}\n", "import { FoldError, defaultFoldLimits, validateLimits } from './contracts.js';\nexport function parseFoldArguments(args, configuration = {}) {\n const limits = { ...defaultFoldLimits, ...configuration };\n validateLimits(limits);\n let size = 0;\n // Admission precedes encoder allocation, including astral and lone-surrogate strings.\n for (const arg of args) {\n size++;\n for (const ch of arg) {\n const cp = ch.codePointAt(0);\n size += cp < 128 ? 1 : cp < 2048 ? 2 : cp < 65536 ? 3 : 4;\n if (size > limits.argumentBytes || size > limits.work)\n throw new FoldError('LIMIT', 'Argument byte/work limit exceeded');\n }\n if (size > limits.argumentBytes || size > limits.work)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n }\n let width = 80, mode = 'columns', spaces = false, ended = false;\n const files = [];\n const setWidth = (value) => {\n let i = 0;\n while (' \\t\\r\\n\\v\\f'.includes(value[i] ?? '\\u0000'))\n i++;\n if (value[i] === '+')\n i++;\n const start = i;\n let number = 0n;\n for (; i < value.length; i++) {\n const digit = value.charCodeAt(i) - 48;\n if (digit < 0 || digit > 9)\n throw new FoldError('WIDTH', 'Width must be a positive decimal integer');\n number = number * 10n + BigInt(digit);\n if (number > 18446744073709551606n)\n throw new FoldError('WIDTH', 'Width exceeds released 64-bit native range');\n }\n if (start === i || number === 0n)\n throw new FoldError('WIDTH', 'Width must be at least 1');\n if (number > BigInt(Number.MAX_SAFE_INTEGER))\n throw new FoldError('LIMIT', 'Width exceeds checked arithmetic admission');\n width = Number(number);\n };\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (ended || arg === '-' || !arg.startsWith('-')) {\n files.push(arg);\n continue;\n }\n if (arg === '--') {\n ended = true;\n continue;\n }\n if (arg.startsWith('--')) {\n const equal = arg.indexOf('=');\n const name = arg.slice(2, equal < 0 ? undefined : equal);\n const matches = ['bytes', 'characters', 'spaces', 'width'].filter(n => name.length > 0 && n.startsWith(name));\n if (matches.length !== 1)\n throw new FoldError('OPTION', `Unavailable option: ${arg}`);\n const option = matches[0];\n if (option === 'width') {\n const value = equal < 0 ? args[++i] : arg.slice(equal + 1);\n if (value === undefined)\n throw new FoldError('OPTION', 'Width requires an argument');\n setWidth(value);\n }\n else {\n if (equal >= 0)\n throw new FoldError('OPTION', `Option takes no argument: ${arg}`);\n if (option === 'spaces')\n spaces = true;\n else\n mode = option === 'bytes' ? 'bytes' : 'characters';\n }\n continue;\n }\n for (let j = 1; j < arg.length; j++) {\n const ch = arg[j];\n if (ch === 'b')\n mode = 'bytes';\n else if (ch === 'c')\n mode = 'characters';\n else if (ch === 's')\n spaces = true;\n else if (ch === 'w') {\n const value = j + 1 < arg.length ? arg.slice(j + 1) : args[++i];\n if (value === undefined)\n throw new FoldError('OPTION', 'Width requires an argument');\n setWidth(value);\n break;\n }\n else if (ch >= '0' && ch <= '9') {\n setWidth(arg.slice(j));\n break;\n }\n else\n throw new FoldError('OPTION', `Unavailable option: -${ch}`);\n }\n }\n return Object.freeze({ width, mode, spaces, files: Object.freeze(files) });\n}\n", "export function decodeFoldUnit(bytes, offset, available, eof) {\n const first = bytes[offset];\n if (first < 128)\n return { cp: first, length: 1, valid: true };\n const length = first >= 0xc2 && first <= 0xdf ? 2 : first >= 0xe0 && first <= 0xef ? 3 : first >= 0xf0 && first <= 0xf4 ? 4 : 1;\n const invalid = { cp: first, length: 1, valid: false };\n if (length === 1)\n return invalid;\n for (let i = 1; i < Math.min(length, available); i++) {\n const b = bytes[offset + i];\n if (b < 128 || b > 191 || (i === 1 && ((first === 0xe0 && b < 0xa0) || (first === 0xed && b > 0x9f) || (first === 0xf0 && b < 0x90) || (first === 0xf4 && b > 0x8f))))\n return invalid;\n }\n if (available < length)\n return eof ? invalid : undefined;\n let cp = first & (length === 2 ? 31 : length === 3 ? 15 : 7);\n for (let i = 1; i < length; i++)\n cp = cp * 64 + (bytes[offset + i] & 63);\n return { cp, length, valid: true };\n}\n", "/*! SPDX-License-Identifier: LGPL-2.1-or-later\n * Unicode 17.0.0 width tables derived from released gnulib width0.h/width2.h.\n * Copyright (C) 2000-2025 Free Software Foundation, Inc.\n * This data is free software under GNU LGPL version 2.1 or later.\n * Distributed without any warranty; see COPYING.LESSER and README.\n */\nexport const zeroWidthRanges = [\n [0, 31],\n [127, 159],\n [173, 173],\n [768, 879],\n [1155, 1161],\n [1425, 1469],\n [1471, 1471],\n [1473, 1474],\n [1476, 1477],\n [1479, 1479],\n [1552, 1562],\n [1564, 1564],\n [1611, 1631],\n [1648, 1648],\n [1750, 1756],\n [1759, 1764],\n [1767, 1768],\n [1770, 1773],\n [1809, 1809],\n [1840, 1866],\n [1958, 1968],\n [2027, 2035],\n [2045, 2045],\n [2070, 2073],\n [2075, 2083],\n [2085, 2087],\n [2089, 2093],\n [2137, 2139],\n [2199, 2207],\n [2250, 2273],\n [2275, 2306],\n [2362, 2362],\n [2364, 2364],\n [2369, 2376],\n [2381, 2381],\n [2385, 2391],\n [2402, 2403],\n [2433, 2433],\n [2492, 2492],\n [2497, 2500],\n [2509, 2509],\n [2530, 2531],\n [2558, 2558],\n [2561, 2562],\n [2620, 2620],\n [2625, 2626],\n [2631, 2632],\n [2635, 2637],\n [2641, 2641],\n [2672, 2673],\n [2677, 2677],\n [2689, 2690],\n [2748, 2748],\n [2753, 2757],\n [2759, 2760],\n [2765, 2765],\n [2786, 2787],\n [2810, 2815],\n [2817, 2817],\n [2876, 2876],\n [2879, 2879],\n [2881, 2884],\n [2893, 2893],\n [2901, 2902],\n [2914, 2915],\n [2946, 2946],\n [3008, 3008],\n [3021, 3021],\n [3072, 3072],\n [3076, 3076],\n [3132, 3132],\n [3134, 3136],\n [3142, 3144],\n [3146, 3149],\n [3157, 3158],\n [3170, 3171],\n [3201, 3201],\n [3260, 3260],\n [3276, 3277],\n [3298, 3299],\n [3328, 3329],\n [3387, 3388],\n [3393, 3396],\n [3405, 3405],\n [3426, 3427],\n [3457, 3457],\n [3530, 3530],\n [3538, 3540],\n [3542, 3542],\n [3633, 3633],\n [3636, 3642],\n [3655, 3662],\n [3761, 3761],\n [3764, 3772],\n [3784, 3790],\n [3864, 3865],\n [3893, 3893],\n [3895, 3895],\n [3897, 3897],\n [3953, 3966],\n [3968, 3972],\n [3974, 3975],\n [3981, 3991],\n [3993, 4028],\n [4038, 4038],\n [4141, 4144],\n [4146, 4151],\n [4153, 4154],\n [4157, 4158],\n [4184, 4185],\n [4190, 4192],\n [4209, 4212],\n [4226, 4226],\n [4229, 4230],\n [4237, 4237],\n [4253, 4253],\n [4448, 4607],\n [4957, 4959],\n [5906, 5908],\n [5938, 5939],\n [5970, 5971],\n [6002, 6003],\n [6068, 6069],\n [6071, 6077],\n [6086, 6086],\n [6089, 6099],\n [6109, 6109],\n [6155, 6159],\n [6277, 6278],\n [6313, 6313],\n [6432, 6434],\n [6439, 6440],\n [6450, 6450],\n [6457, 6459],\n [6679, 6680],\n [6683, 6683],\n [6742, 6742],\n [6744, 6750],\n [6752, 6752],\n [6754, 6754],\n [6757, 6764],\n [6771, 6780],\n [6783, 6783],\n [6832, 6877],\n [6880, 6891],\n [6912, 6915],\n [6964, 6964],\n [6966, 6970],\n [6972, 6972],\n [6978, 6978],\n [7019, 7027],\n [7040, 7041],\n [7074, 7077],\n [7080, 7081],\n [7083, 7085],\n [7142, 7142],\n [7144, 7145],\n [7149, 7149],\n [7151, 7153],\n [7212, 7219],\n [7222, 7223],\n [7376, 7378],\n [7380, 7392],\n [7394, 7400],\n [7405, 7405],\n [7412, 7412],\n [7416, 7417],\n [7616, 7679],\n [8203, 8207],\n [8234, 8238],\n [8288, 8292],\n [8294, 8303],\n [8400, 8432],\n [11503, 11505],\n [11647, 11647],\n [11744, 11775],\n [12330, 12333],\n [12441, 12442],\n [42607, 42610],\n [42612, 42621],\n [42654, 42655],\n [42736, 42737],\n [43010, 43010],\n [43014, 43014],\n [43019, 43019],\n [43045, 43046],\n [43052, 43052],\n [43204, 43205],\n [43232, 43249],\n [43263, 43263],\n [43302, 43309],\n [43335, 43345],\n [43392, 43394],\n [43443, 43443],\n [43446, 43449],\n [43452, 43453],\n [43493, 43493],\n [43561, 43566],\n [43569, 43570],\n [43573, 43574],\n [43587, 43587],\n [43596, 43596],\n [43644, 43644],\n [43696, 43696],\n [43698, 43700],\n [43703, 43704],\n [43710, 43711],\n [43713, 43713],\n [43756, 43757],\n [43766, 43766],\n [44005, 44005],\n [44008, 44008],\n [44013, 44013],\n [55216, 55238],\n [55243, 55291],\n [64286, 64286],\n [65024, 65039],\n [65056, 65071],\n [65279, 65279],\n [65529, 65531],\n [66045, 66045],\n [66272, 66272],\n [66422, 66426],\n [68097, 68099],\n [68101, 68102],\n [68108, 68111],\n [68152, 68154],\n [68159, 68159],\n [68325, 68326],\n [68900, 68903],\n [68969, 68973],\n [69291, 69292],\n [69370, 69375],\n [69446, 69456],\n [69506, 69509],\n [69633, 69633],\n [69688, 69702],\n [69744, 69744],\n [69747, 69748],\n [69759, 69761],\n [69811, 69814],\n [69817, 69818],\n [69826, 69826],\n [69888, 69890],\n [69927, 69931],\n [69933, 69940],\n [70003, 70003],\n [70016, 70017],\n [70070, 70078],\n [70089, 70092],\n [70095, 70095],\n [70191, 70193],\n [70196, 70196],\n [70198, 70199],\n [70206, 70206],\n [70209, 70209],\n [70367, 70367],\n [70371, 70378],\n [70400, 70401],\n [70459, 70460],\n [70464, 70464],\n [70502, 70508],\n [70512, 70516],\n [70587, 70592],\n [70606, 70606],\n [70608, 70608],\n [70610, 70610],\n [70625, 70626],\n [70712, 70719],\n [70722, 70724],\n [70726, 70726],\n [70750, 70750],\n [70835, 70840],\n [70842, 70842],\n [70847, 70848],\n [70850, 70851],\n [71090, 71093],\n [71100, 71101],\n [71103, 71104],\n [71132, 71133],\n [71219, 71226],\n [71229, 71229],\n [71231, 71232],\n [71339, 71339],\n [71341, 71341],\n [71344, 71349],\n [71351, 71351],\n [71453, 71453],\n [71455, 71455],\n [71458, 71461],\n [71463, 71467],\n [71727, 71735],\n [71737, 71738],\n [71995, 71996],\n [71998, 71998],\n [72003, 72003],\n [72148, 72151],\n [72154, 72155],\n [72160, 72160],\n [72193, 72198],\n [72201, 72202],\n [72243, 72248],\n [72251, 72254],\n [72263, 72263],\n [72273, 72278],\n [72281, 72283],\n [72330, 72342],\n [72344, 72345],\n [72544, 72544],\n [72546, 72548],\n [72550, 72550],\n [72752, 72758],\n [72760, 72765],\n [72850, 72871],\n [72874, 72880],\n [72882, 72883],\n [72885, 72886],\n [73009, 73014],\n [73018, 73018],\n [73020, 73021],\n [73023, 73029],\n [73031, 73031],\n [73104, 73105],\n [73109, 73109],\n [73111, 73111],\n [73459, 73460],\n [73472, 73473],\n [73526, 73530],\n [73536, 73536],\n [73538, 73538],\n [73562, 73562],\n [78896, 78912],\n [78919, 78933],\n [90398, 90409],\n [90413, 90415],\n [92912, 92916],\n [92976, 92982],\n [94031, 94031],\n [94095, 94098],\n [94180, 94180],\n [113821, 113822],\n [113824, 113827],\n [118528, 118573],\n [118576, 118598],\n [119143, 119145],\n [119155, 119170],\n [119173, 119179],\n [119210, 119213],\n [119362, 119364],\n [121344, 121398],\n [121403, 121452],\n [121461, 121461],\n [121476, 121476],\n [121499, 121503],\n [121505, 121519],\n [122880, 122886],\n [122888, 122904],\n [122907, 122913],\n [122915, 122916],\n [122918, 122922],\n [123023, 123023],\n [123184, 123190],\n [123566, 123566],\n [123628, 123631],\n [124140, 124143],\n [124398, 124399],\n [124643, 124643],\n [124646, 124646],\n [124654, 124655],\n [124661, 124661],\n [125136, 125142],\n [125252, 125258],\n [917505, 917505],\n [917536, 917631],\n [917760, 917999],\n];\nexport const wideRanges = [\n [4352, 4447],\n [8986, 8987],\n [9001, 9002],\n [9193, 9196],\n [9200, 9200],\n [9203, 9203],\n [9725, 9726],\n [9748, 9749],\n [9800, 9811],\n [9855, 9855],\n [9875, 9875],\n [9889, 9889],\n [9898, 9899],\n [9917, 9918],\n [9924, 9925],\n [9934, 9934],\n [9940, 9940],\n [9962, 9962],\n [9970, 9971],\n [9973, 9973],\n [9978, 9978],\n [9981, 9981],\n [9989, 9989],\n [9994, 9995],\n [10024, 10024],\n [10060, 10060],\n [10062, 10062],\n [10067, 10069],\n [10071, 10071],\n [10133, 10135],\n [10160, 10160],\n [10175, 10175],\n [11035, 11036],\n [11088, 11088],\n [11093, 11093],\n [11904, 12350],\n [12352, 12871],\n [12880, 19903],\n [19968, 42191],\n [43360, 43388],\n [44032, 55203],\n [63744, 64255],\n [65040, 65055],\n [65072, 65135],\n [65280, 65376],\n [65504, 65510],\n [94176, 94179],\n [94192, 94193],\n [94208, 100343],\n [100352, 101589],\n [101632, 101640],\n [110576, 110579],\n [110581, 110587],\n [110589, 110590],\n [110592, 110882],\n [110928, 110930],\n [110948, 110951],\n [110960, 111355],\n [126980, 126980],\n [127183, 127183],\n [127374, 127374],\n [127377, 127386],\n [127488, 127776],\n [127789, 127797],\n [127799, 127868],\n [127870, 127891],\n [127904, 127946],\n [127951, 127955],\n [127968, 127984],\n [127988, 127988],\n [127992, 128062],\n [128064, 128064],\n [128066, 128252],\n [128255, 128317],\n [128331, 128334],\n [128336, 128359],\n [128378, 128378],\n [128405, 128406],\n [128420, 128420],\n [128507, 128591],\n [128640, 128709],\n [128716, 128716],\n [128720, 128722],\n [128725, 128727],\n [128733, 128735],\n [128747, 128748],\n [128756, 128764],\n [128992, 129003],\n [129008, 129008],\n [129292, 129338],\n [129340, 129349],\n [129351, 129535],\n [129648, 129652],\n [129656, 129660],\n [129664, 129670],\n [129680, 129708],\n [129712, 129722],\n [129728, 129733],\n [129744, 129753],\n [129760, 129767],\n [129776, 129782],\n [131072, 262143],\n];\n", "import { zeroWidthRanges, wideRanges } from './width-data.js';\nfunction contains(ranges, cp) {\n let lo = 0, hi = ranges.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1, range = ranges[mid];\n if (cp < range[0])\n hi = mid;\n else if (cp > range[1])\n lo = mid + 1;\n else\n return true;\n }\n return false;\n}\n/** Deterministic gnulib-compatible UTF-8 width table, independent of libc/Intl. */\nexport function portableWidth(cp) {\n if (!Number.isInteger(cp) || cp < 0 || cp > 0x10ffff || (cp >= 0xd800 && cp <= 0xdfff))\n return -1;\n if (contains(zeroWidthRanges, cp))\n return cp > 0 && cp < 0xa0 ? -1 : 0;\n return contains(wideRanges, cp) ? 2 : 1;\n}\n", "import { FoldError } from './contracts.js';\nimport { portableWidth } from './width.js';\n/** Pure checked arithmetic; LF/file reset belongs to the engine, not this primitive. */\nexport function adjustFoldColumn(state, glyph, mode, locale) {\n if (locale !== 'C' && locale !== 'UTF-8/Unicode-17.0.0')\n throw new FoldError('LOCALE', 'Unavailable locale profile');\n if (!['columns', 'characters', 'bytes'].includes(mode))\n throw new FoldError('OPTION', 'Unavailable counting mode');\n if (!Number.isSafeInteger(state.column) || state.column < 0 || !Number.isInteger(state.lastWidth) || state.lastWidth < 0 || state.lastWidth > 2 || !Number.isInteger(glyph.byteLength) || glyph.byteLength < 1 || glyph.byteLength > 4 || !Number.isInteger(glyph.codePoint) || glyph.codePoint < 0 || glyph.codePoint > 0x10ffff)\n throw new FoldError('ARITHMETIC', 'Invalid column or glyph admission');\n let { column, lastWidth } = state;\n const cp = glyph.codePoint;\n if (mode === 'bytes')\n column += glyph.byteLength;\n else if (cp === 8) {\n if (column > 0) {\n if (column < lastWidth)\n throw new FoldError('ARITHMETIC', 'Backspace subtraction underflow is not admitted');\n column -= lastWidth;\n }\n }\n else if (cp === 13)\n column = 0;\n else if (cp === 9)\n column += 8 - column % 8;\n else {\n const width = locale === 'C' ? cp === 0 ? 0 : cp < 128 ? portableWidth(cp) : -1 : portableWidth(cp);\n lastWidth = mode === 'characters' ? 1 : width < 0 ? 1 : width;\n column += lastWidth;\n }\n if (!Number.isSafeInteger(column))\n throw new FoldError('ARITHMETIC', 'Column addition exceeds safe integer arithmetic');\n return { column, lastWidth };\n}\n", "import { decodeFoldUnit } from \"./units.js\";\nimport { FoldError, defaultFoldLimits, validateLimits } from './contracts.js';\nimport { adjustFoldColumn } from './column.js';\n// Inspect intrinsic slots across realms; producer properties must not change\n// byte admission, accounting or iteration (Buffer is also a Uint8Array).\nconst byteViewPrototype = Object.getPrototypeOf(Uint8Array.prototype);\nconst byteType = Object.getOwnPropertyDescriptor(byteViewPrototype, Symbol.toStringTag).get;\nconst byteLength = Object.getOwnPropertyDescriptor(byteViewPrototype, 'byteLength').get;\nconst byteValues = Uint8Array.prototype.values;\nexport function createFoldEngine(options, locale, configuration = {}, signal) {\n const limits = { ...defaultFoldLimits, ...configuration };\n validateLimits(limits);\n if (locale !== 'C' && locale !== 'UTF-8/Unicode-17.0.0')\n throw new FoldError('LOCALE', `Unavailable locale profile: ${locale}`);\n if (!Number.isSafeInteger(options.width) || options.width < 1)\n throw new FoldError('WIDTH', 'Width must be a positive safe integer');\n if (!['columns', 'characters', 'bytes'].includes(options.mode) || typeof options.spaces !== 'boolean')\n throw new FoldError('OPTION', 'Invalid engine options');\n // Snapshot borrowed configuration before allocating invocation state.\n const { width, mode, spaces } = options;\n const { inputBytes, outputBytes, work } = limits;\n const decodedLimit = limits.decodedBytes ?? Infinity;\n const line = new Uint8Array(8192), pending = [];\n let used = 0, column = 0, lastWidth = 0, input = 0, decoded = 0, output = 0, steps = 0, closed = false;\n // One byte offset identifies the last candidate; no per-glyph retained objects.\n let lastBlank = 0, peakRetained = 0;\n let emitted = [];\n const check = (amount = 1) => {\n if (closed)\n throw new FoldError('CLOSED', 'Fold engine is closed');\n if (signal?.aborted)\n throw new FoldError('CANCELLED', 'Fold invocation cancelled');\n if (amount > work - steps)\n throw new FoldError('LIMIT', 'Algorithm work limit exceeded');\n steps += amount;\n };\n const adjust = (unit, rescan = false) => {\n check();\n // mbbuf input errors have invalid width; mcel remainder scans use ch=0.\n // A malformed byte must never inherit the Unicode width of its byte value.\n const next = adjustFoldColumn({ column, lastWidth }, { codePoint: unit.valid ? unit.cp : rescan ? 0 : 1, byteLength: unit.length }, mode, locale);\n lastWidth = next.lastWidth;\n return next.column;\n };\n const emit = (length, lf) => {\n check();\n const size = length + Number(lf);\n if (size > outputBytes - output)\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n check(size); // Admit allocation and byte copy before producing owned output.\n output += size;\n if (!size)\n return;\n const bytes = new Uint8Array(size);\n bytes.set(line.subarray(0, length));\n if (lf)\n bytes[length] = 10;\n emitted.push(bytes);\n };\n const scan = (offset) => locale === 'C' ? { cp: line[offset], length: 1, valid: line[offset] < 128 } : decodeFoldUnit(line, offset, used - offset, true);\n const blank = (cp) => cp === 9 || cp === 32 || (locale !== 'C' && (cp === 0x1680 || (cp >= 0x2000 && cp <= 0x200a && cp !== 0x2007) || cp === 0x205f || cp === 0x3000));\n const consume = (unit, bytes) => {\n check();\n if (unit.cp === 10) {\n emit(used, true);\n used = column = lastBlank = 0;\n return;\n }\n for (;;) {\n column = adjust(unit);\n if (column <= width)\n break;\n const boundary = spaces ? lastBlank : 0;\n if (boundary) {\n emit(boundary, true);\n check(used - boundary);\n line.copyWithin(0, boundary, used);\n used -= boundary;\n column = lastBlank = 0;\n for (let i = 0; i < used;) {\n const retained = scan(i);\n check(retained.length);\n column = adjust(retained, true);\n i += retained.length;\n }\n }\n else {\n if (!used)\n break; // A too-wide unit must be consumed once.\n emit(used, true);\n used = column = lastBlank = 0;\n }\n }\n if (used + unit.length >= line.length) {\n emit(used, false);\n used = lastBlank = 0;\n }\n check(unit.length);\n for (let i = 0; i < unit.length; i++)\n line[used++] = bytes[i];\n if (spaces && unit.valid && blank(unit.cp))\n lastBlank = used;\n };\n const drain = (eof) => {\n while (pending.length) {\n const unit = locale === 'C' ? { cp: pending[0], length: 1, valid: pending[0] < 128 } : decodeFoldUnit(pending, 0, pending.length, eof);\n if (!unit)\n break;\n if (unit.length > decodedLimit - decoded)\n throw new FoldError('LIMIT', 'Decoded byte limit exceeded');\n check(unit.length);\n decoded += unit.length;\n consume(unit, pending);\n peakRetained = Math.max(peakRetained, used + pending.length);\n pending.splice(0, unit.length);\n }\n };\n const dispose = () => { closed = true; used = lastBlank = 0; pending.length = 0; emitted = []; line.fill(0); };\n return {\n push(bytes) {\n try {\n check();\n emitted = [];\n if (byteType.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be a Uint8Array byte view');\n let values;\n try {\n values = byteValues.call(bytes);\n }\n catch {\n throw new FoldError('INPUT', 'Input byte storage is unavailable');\n }\n const length = byteLength.call(bytes);\n if (length > 4096 || length > inputBytes - input)\n throw new FoldError('LIMIT', 'Input byte or bounded-call limit exceeded');\n input += length;\n for (const b of values) {\n check();\n pending.push(b);\n peakRetained = Math.max(peakRetained, used + pending.length);\n drain(false);\n }\n return emitted;\n }\n catch (error) {\n dispose();\n throw error;\n }\n },\n endFile() {\n try {\n check();\n emitted = [];\n drain(true);\n emit(used, false);\n used = column = lastBlank = 0;\n return emitted;\n }\n catch (error) {\n dispose();\n throw error;\n }\n },\n dispose,\n accounting: () => Object.freeze({ inputBytes: input, decodedBytes: decoded, retainedBytes: used + pending.length, peakRetainedBytes: peakRetained, outputBytes: output, work: steps }),\n };\n}\n", "import { commandRuntimeIdentity, getCommandArguments } from 'safe-bash-contracts/command';\nimport { FsError } from 'safe-bash-contracts/errors';\nimport { readBytes, writeBytes } from 'safe-bash-contracts/io';\nimport { createOutputOperation } from 'safe-bash-contracts/output';\nimport { shellValueByteLength } from 'safe-bash-contracts/value';\nimport { parseFoldArguments } from './arguments.js';\nimport { FoldError, defaultFoldLimits } from './contracts.js';\nimport { createFoldEngine } from './engine.js';\nconst byteView = Object.getPrototypeOf(Uint8Array.prototype);\nconst byteExtent = Object.getOwnPropertyDescriptor(byteView, 'byteLength').get;\nconst byteKind = Object.getOwnPropertyDescriptor(byteView, Symbol.toStringTag).get;\nconst byteBuffer = Object.getOwnPropertyDescriptor(byteView, 'buffer').get;\nconst byteOffset = Object.getOwnPropertyDescriptor(byteView, 'byteOffset').get;\nasync function executeFold(context, configuration, invocation) {\n const limits = { ...defaultFoldLimits, ...configuration.limits };\n const locale = configuration.locale ?? 'UTF-8/Unicode-17.0.0';\n const controller = new AbortController();\n const signal = controller.signal;\n const abort = () => controller.abort(context.signal.reason);\n let engine, stdout, stderr;\n let task = Promise.resolve(undefined);\n let closing;\n let accepting = true;\n const cleanup = () => {\n if (closing)\n return closing;\n accepting = false;\n let resolve;\n let reject;\n // Abort listeners may reenter cleanup synchronously. Publish its shared\n // completion first, while still cancelling admitted I/O immediately.\n closing = new Promise((complete, fail) => { resolve = complete; reject = fail; });\n controller.abort(new FoldError('CLOSED', 'Fold invocation closed'));\n void (async () => {\n // The task owns its iterator and returns it before settling. A direct host\n // may call cleanup while input/output is still in flight.\n await Promise.allSettled([task]);\n engine?.dispose();\n context.signal.removeEventListener('abort', abort);\n const results = await Promise.allSettled([stdout?.close(), stderr?.close()]);\n const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);\n if (errors.length)\n throw new AggregateError(errors, 'Fold output cleanup failed');\n })().then(resolve, reject);\n return closing;\n };\n context.registerCleanup?.(cleanup);\n // Admit and own SDK operands before yielding to the caller. Deferred task\n // setup must not leave literal paths borrowed from a mutable options array.\n let sdkOptions;\n let sdkExtent = 3;\n let sdkFailure;\n if (invocation) {\n try {\n const args = ['--'];\n for (const file of invocation.files) {\n signal.throwIfAborted();\n // UTF-16 length is a constant-time lower bound for UTF-8 bytes. Reject\n // impossible operands before the byte-length helper scans their text.\n const minimum = sdkExtent + file.length + 1;\n if (minimum > limits.argumentBytes)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n if (minimum * 3 > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n if (minimum * 4 > limits.work)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n sdkExtent += shellValueByteLength(file) + 1;\n if (sdkExtent > limits.argumentBytes)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n if (sdkExtent * 3 > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n if (sdkExtent * 4 > limits.work)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n args.push(file);\n }\n sdkOptions = { ...invocation, files: parseFoldArguments(args, limits).files };\n }\n catch (error) {\n sdkFailure = { error };\n }\n }\n task = Promise.resolve().then(async () => {\n if (!accepting)\n throw new FoldError('CLOSED', 'Fold invocation closed');\n context.signal.addEventListener('abort', abort, { once: true });\n if (context.signal.aborted)\n abort();\n signal.throwIfAborted();\n const scope = { signal, ...(context.registerCleanup ? { registerCleanup: context.registerCleanup.bind(context) } : {}) };\n stdout = createOutputOperation(scope, context.stdout);\n stderr = createOutputOperation(scope, context.stderr);\n let diagnostics = 0, filesRead = 0, filesFailed = 0, overheadWork = 0, peakRetained = 8196, argumentRetention = 0;\n const chargeWork = (amount) => {\n if (amount > limits.work - overheadWork - (engine?.accounting().work ?? 0))\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n overheadWork += amount;\n };\n const retain = (amount) => {\n if (amount > limits.retainedBytes - 8196 - argumentRetention)\n throw new FoldError('LIMIT', 'Invocation retention limit exceeded');\n peakRetained = Math.max(peakRetained, 8196 + argumentRetention + amount);\n };\n const accounting = () => Object.freeze({\n ...(engine?.accounting() ?? { inputBytes: 0, decodedBytes: 0, retainedBytes: 0, peakRetainedBytes: 0, outputBytes: 0, work: 0 }),\n outputBytes: (engine?.accounting().outputBytes ?? 0) + diagnostics,\n work: (engine?.accounting().work ?? 0) + overheadWork,\n peakRetainedBytes: peakRetained,\n });\n const diagnostic = async (message) => {\n signal.throwIfAborted();\n retain(message.length * 3);\n chargeWork(message.length * 4);\n // Supply realm-local storage to borrowed host encoders. Its conservative\n // UTF-8 extent has already been admitted by retain above.\n const storage = new Uint8Array(message.length * 3);\n const { written } = new TextEncoder().encodeInto(message, storage);\n const bytes = storage.subarray(0, written);\n if (bytes.length > limits.outputBytes - diagnostics - (engine?.accounting().outputBytes ?? 0))\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n diagnostics += bytes.length;\n await writeBytes(stderr.output, bytes, signal);\n };\n let options;\n try {\n if (invocation) {\n if (sdkFailure)\n throw sdkFailure.error;\n retain(sdkExtent * 3);\n chargeWork(sdkExtent * 4);\n argumentRetention = sdkExtent * 3;\n options = sdkOptions;\n }\n else {\n const carrier = getCommandArguments(context);\n let extent = 0;\n for (let index = 0; index < carrier.values.length; index++) {\n signal.throwIfAborted();\n const value = carrier.values[index];\n if (typeof value === 'string') {\n if (value.length + 1 > limits.argumentBytes - extent)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n retain(value.length * 3);\n if ((value.length + 1) * 4 > limits.work - overheadWork)\n throw new FoldError('LIMIT', 'Invocation work limit exceeded');\n }\n const length = shellValueByteLength(value);\n extent += length + 1;\n if (extent > limits.argumentBytes || length > limits.retainedBytes - 8196)\n throw new FoldError('LIMIT', 'Argument byte limit exceeded');\n // VFS paths are Unicode strings: refuse lossy byte argv explicitly.\n retain(length * 3);\n chargeWork((length + 1) * 4);\n const bytes = carrier.bytes(index);\n try {\n new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);\n }\n catch {\n throw new FoldError('OPTION', 'Only UTF-8 VFS arguments are available');\n }\n }\n retain(extent * 3);\n argumentRetention = extent * 3;\n options = parseFoldArguments(context.args, limits);\n }\n for (const file of options.files)\n if (file.includes('\\0'))\n throw new FoldError('OPTION', 'NUL is unavailable in VFS paths');\n engine = createFoldEngine(options, locale, { ...limits, work: limits.work - overheadWork }, signal);\n }\n catch (error) {\n signal.throwIfAborted();\n if (!(error instanceof FoldError))\n throw error;\n await diagnostic(`fold: ${error.message}\\n`);\n return { exitCode: 1, filesRead, filesFailed, accounting: accounting() };\n }\n const deliver = async (chunks) => {\n chargeWork(0);\n if (engine.accounting().outputBytes > limits.outputBytes - diagnostics)\n throw new FoldError('LIMIT', 'Output byte limit exceeded');\n for (const bytes of chunks)\n await writeBytes(stdout.output, bytes, signal);\n };\n const fileError = async (file, error) => {\n signal.throwIfAborted();\n if (!(error instanceof FsError))\n throw error;\n filesFailed++;\n const messages = { ENOENT: 'No such file or directory', EACCES: 'Permission denied', EISDIR: 'Is a directory', ENOTDIR: 'Not a directory' };\n await diagnostic(`fold: '${file}': ${messages[error.code] ?? error.code}\\n`);\n };\n for (const file of options.files.length ? options.files : ['-']) {\n signal.throwIfAborted();\n let source;\n let ownedInput = 0;\n try {\n if (file === '-')\n source = context.stdin;\n else {\n const path = file.startsWith('/') ? file : `${context.cwd}/${file}`;\n if (context.fs.readStream)\n source = context.fs.readStream(path, { signal });\n else {\n const maxBytes = Math.min(limits.inputBytes - engine.accounting().inputBytes, limits.retainedBytes - 8196 - argumentRetention);\n const bytes = await context.fs.readFile(path, { signal, ...(Number.isFinite(maxBytes) ? { maxBytes } : {}) });\n signal.throwIfAborted();\n if (byteKind.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n const length = byteExtent.call(bytes);\n if (length > maxBytes)\n throw new FoldError('LIMIT', 'VFS input retention limit exceeded');\n ownedInput = length;\n retain(ownedInput);\n source = (async function* () { yield bytes; })();\n }\n }\n }\n catch (error) {\n await fileError(file, error);\n continue;\n }\n let producer;\n try {\n producer = source[Symbol.asyncIterator]();\n }\n catch (error) {\n await fileError(file, error);\n continue;\n }\n let inputClosing;\n const closeInput = () => inputClosing ??= Promise.resolve().then(() => producer.return ? producer.return() : { done: true, value: undefined });\n const iterator = readBytes({ [Symbol.asyncIterator]() {\n return { async next() {\n const result = await producer.next();\n signal.throwIfAborted();\n if (result.done)\n return result;\n const bytes = result.value;\n if (byteKind.call(bytes) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n // The shared reader checks realm-local Uint8Array identity. Rehome\n // the view, without copying/advancing or consulting producer properties.\n // Bounded engine calls still consume the storage before producer reuse.\n let view;\n try {\n view = new Uint8Array(byteBuffer.call(bytes), byteOffset.call(bytes), byteExtent.call(bytes));\n }\n catch {\n throw new FoldError('INPUT', 'Input byte storage is unavailable');\n }\n return { done: false, value: view };\n }, return: closeInput };\n } }, signal)[Symbol.asyncIterator]();\n let complete = false;\n let escaping = false, inputFailed = false;\n try {\n for (;;) {\n signal.throwIfAborted();\n let next;\n try {\n chargeWork(1);\n next = await iterator.next();\n }\n catch (error) {\n inputFailed = true;\n await fileError(file, error);\n break;\n }\n if (next.done) {\n complete = true;\n filesRead++;\n break;\n }\n // Consume/copy every producer byte before requesting its next chunk.\n if (byteKind.call(next.value) !== 'Uint8Array')\n throw new FoldError('INPUT', 'Input must be byte storage');\n const length = byteExtent.call(next.value);\n if (!length)\n await deliver(engine.push(next.value));\n for (let offset = 0; offset < length; offset += 4096) {\n signal.throwIfAborted();\n // Intrinsic subarray still invokes producer-controlled species.\n // A direct view reads the original storage without that callback.\n const unit = new Uint8Array(byteBuffer.call(next.value), byteOffset.call(next.value) + offset, Math.min(4096, length - offset));\n context.inputBudget?.check(engine.accounting().inputBytes + unit.byteLength);\n retain(ownedInput + engine.accounting().retainedBytes + unit.byteLength * 2 + 4);\n await deliver(engine.push(unit));\n }\n }\n retain(ownedInput + engine.accounting().retainedBytes + 4);\n await deliver(engine.endFile());\n }\n catch (error) {\n escaping = true;\n throw error;\n }\n finally {\n if (!complete) {\n // readBytes schedules return without waiting after cancellation. Own\n // the same close promise and drain it before invocation cleanup ends.\n const results = await Promise.allSettled([iterator.return(undefined), closeInput()]);\n const failure = results.find(result => result.status === 'rejected');\n if (failure?.status === 'rejected' && !escaping && !inputFailed)\n await fileError(file, failure.reason);\n }\n }\n }\n return { exitCode: filesFailed ? 1 : 0, filesRead, filesFailed, accounting: accounting() };\n });\n try {\n return (await task);\n }\n finally {\n try {\n await cleanup();\n }\n finally {\n context.signal.throwIfAborted();\n }\n }\n}\n/** Stream SDK input and literal VFS operands using the same invocation as CLI. */\nexport function fold(context, options = {}) {\n const invocation = { width: options.width ?? 80, mode: options.mode ?? 'columns', spaces: options.spaces ?? false, files: options.files ?? [] };\n return executeFold(context, options, invocation);\n}\nexport function createFoldCommand(options = {}) {\n const configuration = Object.freeze({ ...options, limits: Object.freeze({ ...options.limits }) });\n return Object.freeze({ name: 'fold', runtimeIdentity: commandRuntimeIdentity, description: 'Wrap byte streams using an explicit locale profile', execute(context) { return executeFold(context, configuration); } });\n}\nexport const foldCommand = createFoldCommand();\nexport function foldCommands(options = {}) {\n const command = createFoldCommand(options);\n const replace = options.replace ?? false;\n return { name: 'fold', setup(host) { host.commands.register(command, { replace }); } };\n}\n"],
5
+ "mappings": "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ACT,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,E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",
6
6
  "names": []
7
7
  }