@poe-platform/safe-bash 0.1.543 → 0.1.545
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.
- package/README.md +1 -0
- package/dist/safe-bash/chunks/{chunk-VNDFKT6F.js → chunk-25GUOTPE.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-VNDFKT6F.js.map → chunk-25GUOTPE.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-EZLQA6ON.js → chunk-2YHZYNLC.js} +9 -5
- package/dist/safe-bash/chunks/{chunk-EZLQA6ON.js.map → chunk-2YHZYNLC.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-6E3FCEJ5.js +355 -0
- package/dist/safe-bash/chunks/chunk-6E3FCEJ5.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-MVVKEMEG.js → chunk-ASCV3OWE.js} +17 -10
- package/dist/safe-bash/chunks/chunk-ASCV3OWE.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-BZUQJTOZ.js +322 -0
- package/dist/safe-bash/chunks/chunk-BZUQJTOZ.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-PZMJ4EC3.js → chunk-C7Z2SSTY.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-TPD45VUZ.js → chunk-CTE3HGYS.js} +22 -109
- package/dist/safe-bash/chunks/chunk-CTE3HGYS.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-R3QJL5HH.js → chunk-EGLBB57T.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-R3QJL5HH.js.map → chunk-EGLBB57T.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-EUTSYRNM.js +111 -0
- package/dist/safe-bash/chunks/chunk-EUTSYRNM.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-WODV2DVM.js → chunk-FAA2WXKH.js} +11 -7
- package/dist/safe-bash/chunks/{chunk-WODV2DVM.js.map → chunk-FAA2WXKH.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-FDGESHPB.js +224 -0
- package/dist/safe-bash/chunks/chunk-FDGESHPB.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-YEJBZLE5.js → chunk-GA43CRT3.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-YEJBZLE5.js.map → chunk-GA43CRT3.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-WF4P7XKI.js → chunk-IVJ5JGXZ.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-WF4P7XKI.js.map → chunk-IVJ5JGXZ.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-A4UXQKWZ.js → chunk-K4RQ7ASH.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-A4UXQKWZ.js.map → chunk-K4RQ7ASH.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-KYU6MXVK.js +58 -0
- package/dist/safe-bash/chunks/chunk-KYU6MXVK.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-T5BV7HPD.js → chunk-O7BRWSKX.js} +17 -60
- package/dist/safe-bash/chunks/chunk-O7BRWSKX.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-6PSMEBVP.js → chunk-PPFWG34Y.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-AZNI263O.js → chunk-R4HP2LEO.js} +3 -3
- package/dist/safe-bash/chunks/chunk-TTTOMUAY.js +33 -0
- package/dist/safe-bash/chunks/chunk-TTTOMUAY.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-5VBLSPNM.js → chunk-UO33SQJU.js} +2 -239
- package/dist/safe-bash/chunks/chunk-UO33SQJU.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-HFEU5SBQ.js → chunk-WISNTI7E.js} +11 -7
- package/dist/safe-bash/chunks/{chunk-HFEU5SBQ.js.map → chunk-WISNTI7E.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-66VSWIUC.js → chunk-XWCSJDGK.js} +10 -6
- package/dist/safe-bash/chunks/{chunk-66VSWIUC.js.map → chunk-XWCSJDGK.js.map} +1 -1
- package/dist/safe-bash/commands/csplit/index.browser.js +6 -4
- package/dist/safe-bash/commands/factor/index.browser.js +5 -3
- package/dist/safe-bash/commands/getopt/index.browser.js +5 -3
- package/dist/safe-bash/commands/hexdump/index.browser.js +5 -3
- package/dist/safe-bash/commands/iconv/index.browser.js +5 -3
- package/dist/safe-bash/commands/line-endings/index.browser.js +6 -4
- package/dist/safe-bash/commands/line-endings/stage.d.ts.map +1 -1
- package/dist/safe-bash/commands/line-endings/stage.js +4 -1
- package/dist/safe-bash/commands/line-endings/stage.js.map +1 -1
- package/dist/safe-bash/commands/llm/command.d.ts +4 -0
- package/dist/safe-bash/commands/llm/command.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/command.js +194 -0
- package/dist/safe-bash/commands/llm/command.js.map +1 -0
- package/dist/safe-bash/commands/llm/index.browser.js +14 -0
- package/dist/safe-bash/commands/llm/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/llm/index.d.ts +6 -0
- package/dist/safe-bash/commands/llm/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/index.js +12 -0
- package/dist/safe-bash/commands/llm/index.js.map +1 -0
- package/dist/safe-bash/commands/llm/mime.d.ts +2 -0
- package/dist/safe-bash/commands/llm/mime.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/mime.js +33 -0
- package/dist/safe-bash/commands/llm/mime.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.d.ts +16 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.js +51 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/index.browser.js +13 -0
- package/dist/safe-bash/commands/llm/providers/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/llm/providers/index.d.ts +4 -0
- package/dist/safe-bash/commands/llm/providers/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/index.js +3 -0
- package/dist/safe-bash/commands/llm/providers/index.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/openai.d.ts +15 -0
- package/dist/safe-bash/commands/llm/providers/openai.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/openai.js +78 -0
- package/dist/safe-bash/commands/llm/providers/openai.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/shared.d.ts +34 -0
- package/dist/safe-bash/commands/llm/providers/shared.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/shared.js +220 -0
- package/dist/safe-bash/commands/llm/providers/shared.js.map +1 -0
- package/dist/safe-bash/commands/llm/types.d.ts +28 -0
- package/dist/safe-bash/commands/llm/types.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/types.js +2 -0
- package/dist/safe-bash/commands/llm/types.js.map +1 -0
- package/dist/safe-bash/commands/network/index.browser.js +13 -8
- package/dist/safe-bash/commands/pr/index.browser.js +5 -3
- package/dist/safe-bash/commands/tsort/index.browser.js +5 -3
- package/dist/safe-bash/commands/xml/index.browser.js +7 -4
- package/dist/safe-bash/commands/yq/index.browser.js +8 -5
- package/dist/safe-bash/contracts/command.d.ts +4 -0
- package/dist/safe-bash/contracts/command.d.ts.map +1 -1
- package/dist/safe-bash/contracts/command.js.map +1 -1
- package/dist/safe-bash/core.browser.js +1093 -1160
- package/dist/safe-bash/core.browser.js.map +4 -4
- package/dist/safe-bash/core.d.ts +2 -0
- package/dist/safe-bash/core.d.ts.map +1 -1
- package/dist/safe-bash/core.js +2 -0
- package/dist/safe-bash/core.js.map +1 -1
- package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
- package/dist/safe-bash/shell/runtime.js +10 -0
- package/dist/safe-bash/shell/runtime.js.map +1 -1
- package/package.json +14 -2
- package/dist/safe-bash/chunks/chunk-5VBLSPNM.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-MVVKEMEG.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-T5BV7HPD.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-TPD45VUZ.js.map +0 -7
- /package/dist/safe-bash/chunks/{chunk-PZMJ4EC3.js.map → chunk-C7Z2SSTY.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-6PSMEBVP.js.map → chunk-PPFWG34Y.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-AZNI263O.js.map → chunk-R4HP2LEO.js.map} +0 -0
package/README.md
CHANGED
|
@@ -85,6 +85,7 @@ These plugins are separate from `agentCommands()`; pass them to `shell.use(...)`
|
|
|
85
85
|
| `curl` | `networkCommands({ authorize, transport?, limits?, replace? })`: required authorization on every request, redirect, and retry. Node uses the native HTTP transport; Workers can inject `createFetchTransport()`. `createOriginAuthorizer([...])` provides exact origin/hostname policy; its omitted allowlist is deliberately `*` (allow all). [Options and limits](src/commands/network/types.ts). |
|
|
86
86
|
| `node` | `nodeCommands({ runtime, limits?, replace? })`: runs JavaScript with an injected SafeJS runtime, virtual files, and shell streams. [Usage and supported subset](src/commands/node/README.md). |
|
|
87
87
|
| `safejs` | `safeJsCommands({ runtime, limits?, replace? })`: inject `run`, `createBudget`, `makeFsModule`, and `declareHostOperation` to execute programs. [Runtime contract](src/commands/safejs/types.ts). |
|
|
88
|
+
| `llm` | `llmCommands({ providers, defaultModel?, replace? })`: injected model providers, sandbox attachments, and streamed text or binary output. [Configuration and reference providers](src/commands/llm/README.md). |
|
|
88
89
|
|
|
89
90
|
Storage can be in memory, a rooted host directory, S3-compatible storage, or WebDAV,
|
|
90
91
|
with read-only wrappers, mounts, and overlays. Choose and configure it explicitly;
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolvePath
|
|
3
|
-
} from "./chunk-DPJWEGIX.js";
|
|
4
1
|
import {
|
|
5
2
|
createOutputOperation
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-C7Z2SSTY.js";
|
|
7
4
|
import {
|
|
8
|
-
FsError,
|
|
9
5
|
PublicDiagnostic,
|
|
6
|
+
publicDiagnosticMessage
|
|
7
|
+
} from "./chunk-TTTOMUAY.js";
|
|
8
|
+
import {
|
|
9
|
+
resolvePath
|
|
10
|
+
} from "./chunk-DPJWEGIX.js";
|
|
11
|
+
import {
|
|
10
12
|
getCommandArguments,
|
|
11
|
-
publicDiagnosticMessage,
|
|
12
13
|
shellValueByteLength,
|
|
13
|
-
shellValueBytes
|
|
14
|
+
shellValueBytes
|
|
15
|
+
} from "./chunk-UO33SQJU.js";
|
|
16
|
+
import {
|
|
17
|
+
FsError,
|
|
14
18
|
yieldTurn
|
|
15
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FDGESHPB.js";
|
|
16
20
|
import {
|
|
17
21
|
init_platform
|
|
18
22
|
} from "./chunk-2KL6W6NB.js";
|
|
@@ -1270,4 +1274,4 @@ export {
|
|
|
1270
1274
|
createPrCommands,
|
|
1271
1275
|
prCommands
|
|
1272
1276
|
};
|
|
1273
|
-
//# sourceMappingURL=chunk-
|
|
1277
|
+
//# sourceMappingURL=chunk-25GUOTPE.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commands/pr/index.ts", "../../src/commands/pr/command.ts", "../../src/commands/pr/internal.ts", "../../src/commands/pr/io.ts", "../../src/commands/pr/options.ts", "../../src/commands/pr/format.ts"],
|
|
4
4
|
"sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createPrCommand } from \"./command.js\";\nimport type { PrCommandsOptions } from \"./internal.js\";\n\nexport { createPrCommand } from \"./command.js\";\nexport type { PrCommandsOptions, PrLimits } from \"./internal.js\";\n\nexport function createPrCommands(options: PrCommandsOptions = {}): readonly CommandDefinition[] {\n return [createPrCommand(options)];\n}\n\nexport function prCommands(options: PrCommandsOptions = {}): VirtualShellPlugin {\n const commands = createPrCommands(options);\n return { name: \"pr-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import { FsError, type CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { publicDiagnosticMessage } from \"../../diagnostics.js\";\nimport { Budget, PrError, fileQuote, quote, settings, type PrCommandsOptions } from \"./internal.js\";\nimport { Lifecycle, Reader, fsDetail } from \"./io.js\";\nimport { parseOptions } from \"./options.js\";\nimport { Formatter } from \"./format.js\";\n\nexport function createPrCommand(options: PrCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"pr\", description: \"Paginate files and print balanced or merged columns\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let lifecycle: Lifecycle | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output);\n const parsed = parseOptions(budget.arguments(), budget);\n if (parsed.information) {\n await lifecycle.write(parsed.information === \"version\" ? \"pr (virtual-bash)\\n\" : \"Usage: pr [OPTION]... [FILE]...\\nPaginate or columnate files for printing.\\nOptions: -COLUMNS -h HEADER -l LENGTH -w WIDTH -t -n[SEP[DIGITS]] -m -s[SEP]\\n\");\n } else {\n const ctype = context.env.LC_ALL || context.env.LC_CTYPE || context.env.LANG || \"C\";\n const timeLocale = context.env.LC_ALL || context.env.LC_TIME || context.env.LANG || \"C\";\n for (const locale of [ctype, timeLocale]) if (![\"C\", \"POSIX\", \"C.UTF-8\", \"C.utf8\"].includes(locale)) throw new PrError(`unsupported locale ${quote(locale)}`);\n let sampled: number | undefined;\n const date = (reader: Reader | undefined): string => {\n let milliseconds: number;\n if (reader?.stat) milliseconds = reader.stat.mtimeMs;\n else milliseconds = sampled ??= (options.clock ?? Date.now)();\n const value = new Date(milliseconds);\n if (!Number.isFinite(milliseconds) || Number.isNaN(value.getTime())) throw new PrError(\"invalid header timestamp\");\n const year = String(value.getUTCFullYear()).padStart(4, \"0\");\n const month = String(value.getUTCMonth() + 1).padStart(2, \"0\");\n const day = String(value.getUTCDate()).padStart(2, \"0\");\n const time = `${String(value.getUTCHours()).padStart(2, \"0\")}:${String(value.getUTCMinutes()).padStart(2, \"0\")}`;\n if (context.env.POSIXLY_CORRECT !== undefined && (timeLocale === \"C\" || timeLocale === \"POSIX\")) return `${[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"][value.getUTCMonth()]} ${String(value.getUTCDate()).padStart(2, \" \")} ${time} ${year}`;\n return `${year}-${month}-${day} ${time}`;\n };\n let stdin: Reader | undefined;\n const open = async (name: string): Promise<Reader | undefined> => {\n if (name === \"-\" && stdin) return stdin;\n const reader = new Reader(name, lifecycle!);\n try { await reader.open(); }\n catch (error) {\n if (!(error instanceof FsError)) throw error;\n exitCode = 1;\n if (!parsed.quiet) {\n await lifecycle!.write(`pr: ${fileQuote(name)}: ${fsDetail(error)}\\n`, true);\n }\n return undefined;\n }\n if (name === \"-\") stdin = reader;\n return reader;\n };\n const names = parsed.files.length ? parsed.files : [\"-\"];\n if (!parsed.files.length) parsed.merge = false;\n const groups = parsed.merge ? [names] : names.map(name => [name]);\n for (const group of groups) {\n const formatter = new Formatter({ ...parsed }, lifecycle, group.length);\n const readers: Reader[] = [];\n for (const name of group) { const reader = await open(name); if (reader) readers.push(reader); }\n if (!readers.length) continue;\n const title = parsed.header ?? (parsed.merge || readers[0]!.name === \"-\" ? \"\" : readers[0]!.name);\n await formatter.run(readers, date(parsed.merge ? undefined : readers[0]), title);\n }\n }\n } catch (error) {\n primary = { reason: error };\n failure = { reason: error };\n if (!output.signal.aborted && lifecycle && error instanceof PrError) {\n exitCode = 1;\n try {\n await lifecycle.write(`pr: ${publicDiagnosticMessage(error, context.onInternalError)}\\n`, true);\n if (error.usage) await lifecycle.write(\"Try 'pr --help' for more information.\\n\", true);\n failure = undefined;\n } catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"pr failure reporting failed\") }; }\n }\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"pr execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface PrLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxFiles: number;\n readonly maxColumns: number;\n readonly maxPageLines: number;\n readonly maxPageWidth: number;\n readonly maxPages: number;\n readonly maxInputBytes: number;\n readonly maxBufferedBytes: number;\n readonly maxLineBytes: number;\n readonly maxLines: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface PrCommandsOptions {\n readonly replace?: boolean;\n readonly clock?: () => number;\n readonly limits?: Partial<PrLimits>;\n}\n\nexport function settings(options: PrCommandsOptions): PrLimits {\n const limits: PrLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxFiles: 128, maxColumns: 128,\n maxPageLines: 65_536, maxPageWidth: 65_536, maxPages: 65_536,\n maxInputBytes: 33_554_432, maxBufferedBytes: 16_777_216,\n maxLineBytes: 1_048_576, maxLines: 1_048_576, maxOutputBytes: 67_108_864,\n maxDiagnosticBytes: 65_536, maxWork: 134_217_728, maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid pr limit: ${name}`);\n }\n if (options.clock !== undefined && typeof options.clock !== \"function\") throw new TypeError(\"pr clock must be a function\");\n return Object.freeze(limits);\n}\n\nexport class PrError extends PublicDiagnostic {\n constructor(message: string, readonly usage = false) { super(message); }\n}\n\nexport class PrReadError extends PrError {}\n\nexport function raw(value: Uint8Array): string {\n let text = \"\";\n for (const byte of value) text += String.fromCharCode(byte);\n return text;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new PrError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport function quote(value: string): string {\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\", \"\\\\\": \"\\\\\\\\\", \"'\": \"\\\\'\" };\n let result = \"'\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n result += escapes[character] ?? (code >= 32 && code < 127 ? character : `\\\\${code.toString(8).padStart(3, \"0\")}`);\n }\n return `${result}'`;\n}\n\nexport function fileQuote(value: string): string {\n let safe = value.length > 0, escaped = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (!(character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character >= \"0\" && character <= \"9\" || \"_./-\".includes(character))) safe = false;\n if (code < 32 || code >= 127) escaped = true;\n }\n if (safe) return value;\n if (!escaped) {\n if (value.includes(\"'\") && ![\"$\", \"`\", \"\\\\\", '\"'].some(character => value.includes(character))) return `\"${value}\"`;\n return `'${value.split(\"'\").join(\"'\\\\''\")}'`;\n }\n let result = \"'\", inEscape = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code < 32 || code >= 127) {\n if (!inEscape) { result += \"'$'\"; inEscape = true; }\n result += quote(character).slice(1, -1);\n } else {\n if (inEscape) { result += \"''\"; inEscape = false; }\n result += character === \"'\" ? \"'\\\\''\" : character;\n }\n }\n return `${result}'`;\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private lines = 0;\n private pages = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: PrLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new PrError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.signal.throwIfAborted();\n this.work += amount;\n this.check(this.work, this.limits.maxWork, \"work\");\n }\n async checkpointWork(): Promise<void> {\n this.signal.throwIfAborted();\n if (this.work - this.checkpoint >= 4096) {\n this.checkpoint = this.work;\n await yieldTurn(this.signal);\n }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n admitString(length: number): void {\n this.signal.throwIfAborted();\n this.check(length, this.limits.maxWork - this.work, \"work\");\n this.check(this.retained + length * 2, this.limits.maxBufferedBytes, \"buffered bytes\");\n }\n inputBytes(amount: number): void {\n this.input += amount;\n this.check(this.input, this.limits.maxInputBytes, \"input bytes\");\n }\n line(): void { this.check(++this.lines, this.limits.maxLines, \"input lines\"); }\n page(): void { this.check(++this.pages, this.limits.maxPages, \"pages\"); this.charge(); }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.diagnostics += amount;\n this.check(this.diagnostics, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n } else {\n this.output += amount;\n this.check(this.output, this.limits.maxOutputBytes, \"output bytes\");\n }\n if (!diagnostic) this.charge(amount);\n }\n arguments(): string[] {\n this.check(this.context.args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of this.context.args) {\n total += argument.length;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new PrError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new PrError(\"arguments must contain well-formed Unicode\");\n }\n }\n total = 0;\n return getCommandArguments(this.context).values.map(argument => {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n const value = shellValueBytes(argument);\n this.charge(value.length);\n if (value.includes(0)) throw new PrError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSource, type FileStat } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, PrError, PrReadError, bytes, fileQuote, pathText } from \"./internal.js\";\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups: (() => Promise<void>)[] = [];\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.push(action); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new PrError(\"command is closed\");\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n this.assertOpen();\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => { this.assertOpen(); return action(); });\n this.pending.add(pending);\n try { const value = await pending; this.assertOpen(); return value; }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"pr cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n const { budget } = this;\n budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) budget.retain(value.length * 3);\n try {\n const sink = diagnostic ? budget.context.stderr : budget.context.stdout;\n this.assertOpen();\n const destination = sink.ownedOutput ?? sink;\n this.assertOpen();\n const write = destination.write;\n this.assertOpen();\n await Reflect.apply(write, destination, [bytes(value)]);\n } finally { if (!diagnostic) budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private pushed = -1;\n private ended = false;\n private empties = 0;\n private length = 0;\n private snapshotBytes = 0;\n private path: string | undefined;\n stat: FileStat | undefined;\n constructor(readonly name: string, readonly lifecycle: Lifecycle) {\n lifecycle.cleanup(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n lifecycle.budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n }\n });\n }\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n if (this.name === \"-\") return;\n const { budget } = this.lifecycle;\n this.path = resolvePath(budget.context.cwd, pathText(this.name));\n this.stat = await this.lifecycle.operation(() => {\n const fs = budget.context.fs;\n this.lifecycle.assertOpen();\n const stat = fs.stat;\n this.lifecycle.assertOpen();\n return Reflect.apply(stat, fs, [this.path!, { signal: budget.signal }]);\n });\n if (this.stat.type !== \"file\" && this.stat.type !== \"directory\" && this.stat.type !== \"character\") throw new FsError(\"ENOTSUP\", { path: this.path });\n }\n private async acquire(): Promise<void> {\n const { budget } = this.lifecycle;\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n let needsAcquisitionCleanup = false;\n if (this.path === undefined) source = budget.context.stdin;\n else {\n const fs = budget.context.fs;\n this.lifecycle.assertOpen();\n const capabilitiesFor = fs.capabilitiesFor;\n this.lifecycle.assertOpen();\n const selected = capabilitiesFor ? await Reflect.apply(capabilitiesFor, fs, [this.path, { signal: budget.signal }]) : undefined;\n this.lifecycle.assertOpen();\n const capabilities = selected ?? fs.capabilities;\n this.lifecycle.assertOpen();\n const readStream = fs.readStream;\n this.lifecycle.assertOpen();\n const streamingRead = readStream && capabilities.streamingRead !== false;\n this.lifecycle.assertOpen();\n if (readStream && streamingRead) {\n source = Reflect.apply(readStream, fs, [this.path, { signal: budget.signal, chunkSize: 16_384 }]);\n needsAcquisitionCleanup = budget.signal.aborted;\n }\n else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n budget.check(this.stat!.size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const readFile = fs.readFile;\n this.lifecycle.assertOpen();\n const content = await Reflect.apply(readFile, fs, [this.path, { signal: budget.signal, maxBytes: maximum }]);\n if (!(content instanceof Uint8Array)) throw new TypeError(\"pr input requires bytes\");\n budget.check(content.length, maximum, \"buffered input bytes\");\n budget.retain(content.length - maximum);\n this.snapshotBytes = content.length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n const factory = source[Symbol.asyncIterator];\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n this.iterator = Reflect.apply(factory, source, []);\n });\n }\n unget(value: number): void { this.pushed = value; }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n if (this.stat?.type === \"directory\") throw new PrReadError(`${fileQuote(this.name)}: Is a directory`);\n if (this.pushed >= 0) { const value = this.pushed; this.pushed = -1; return value; }\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n let next: IteratorResult<Uint8Array>;\n try {\n if (!this.iterator) await this.acquire();\n next = await this.lifecycle.operation(() => {\n const iterator = this.iterator!;\n const advance = iterator.next;\n this.lifecycle.assertOpen();\n return Reflect.apply(advance, iterator, []);\n });\n } catch (error) {\n if (error instanceof FsError) throw new PrReadError(`${fileQuote(this.name === \"-\" ? \"standard input\" : this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n if (next.done) {\n this.ended = true;\n this.iterator = undefined;\n if (this.length > 0) { this.length = 0; budget.line(); }\n return -1;\n }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"pr input requires bytes\");\n budget.inputBytes(next.value.length);\n budget.retain(next.value.length);\n this.chunk = Uint8Array.from(next.value);\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n const value = this.chunk[this.offset++]!;\n if (value === 10 || value === 12) { this.length = 0; budget.line(); }\n else budget.check(++this.length, budget.limits.maxLineBytes, \"input line bytes\");\n return value;\n }\n}\n\nexport function fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { Budget, PrError, quote } from \"./internal.js\";\n\nexport interface Options {\n files: string[];\n columns: number;\n explicitColumns: boolean;\n merge: boolean;\n across: boolean;\n length: number;\n width: number;\n header: string | undefined;\n extremities: boolean;\n keepFF: boolean;\n formFeed: boolean;\n numbered: boolean;\n digits: number;\n numberSeparator: string;\n startNumber: number;\n separator: string;\n useSeparator: boolean;\n truncate: boolean;\n join: boolean;\n doubleSpace: boolean;\n margin: number;\n expand: boolean;\n tabify: boolean;\n inputTab: string;\n inputTabWidth: number;\n outputTab: string;\n outputTabWidth: number;\n control: boolean;\n octal: boolean;\n quiet: boolean;\n information: \"help\" | \"version\" | undefined;\n}\n\nfunction digit(value: string): boolean { return value >= \"0\" && value <= \"9\"; }\n\nfunction integer(value: string, minimum: number, label: string): number {\n let offset = 0;\n while (\" \\t\\r\\n\\v\\f\".includes(value[offset] ?? \"!\") && offset < value.length) offset++;\n if (value[offset] === \"+\" || value[offset] === \"-\") offset++;\n const start = offset;\n while (offset < value.length && digit(value[offset]!)) offset++;\n if (offset !== value.length || offset === start) throw new PrError(`${label}: ${quote(value)}`);\n const result = Number(value);\n if (result < minimum || result > 2147483647 || !Number.isSafeInteger(result)) throw new PrError(`${label}: ${quote(value)}: Numerical result out of range`);\n return result;\n}\n\nexport function parseOptions(args: string[], budget: Budget): Options {\n const options: Options = {\n files: [], columns: 1, explicitColumns: false, merge: false, across: false,\n length: 66, width: 72, header: undefined, extremities: true, keepFF: false,\n formFeed: false, numbered: false, digits: 5, numberSeparator: \"\\t\", startNumber: 1,\n separator: \"\", useSeparator: false, truncate: false, join: false, doubleSpace: false,\n margin: 0, expand: false, tabify: false, inputTab: \"\\t\", inputTabWidth: 8,\n outputTab: \"\\t\", outputTabWidth: 8, control: false, octal: false, quiet: false, information: undefined,\n };\n const long: Record<string, string> = {\n columns: \"#\", across: \"a\", \"show-control-chars\": \"c\", \"double-space\": \"d\", \"expand-tabs\": \"e\",\n \"form-feed\": \"f\", header: \"h\", \"output-tabs\": \"i\", \"join-lines\": \"J\", length: \"l\", merge: \"m\",\n \"number-lines\": \"n\", \"first-line-number\": \"N\", indent: \"o\", \"no-file-warnings\": \"r\", separator: \"s\",\n \"sep-string\": \"S\", \"omit-header\": \"t\", \"omit-pagination\": \"T\", \"show-nonprinting\": \"v\", width: \"w\", \"page-width\": \"W\",\n };\n let oldWidth = false, oldSeparator = false, oldOptions = false, stop = false;\n let columnDigits: string | undefined;\n let accumulating = false;\n for (let index = 0; index < args.length; index++) {\n const argument = args[index]!;\n budget.charge(argument.length);\n if (stop) { options.files.push(argument); continue; }\n if (argument === \"--\") { stop = true; continue; }\n if (argument === \"--help\" || argument === \"--version\") {\n options.information = argument === \"--help\" ? \"help\" : \"version\";\n return options;\n }\n if (!argument.startsWith(\"-\") || argument === \"-\") { accumulating = false; options.files.push(argument); continue; }\n const isLong = argument.startsWith(\"--\");\n let switches = argument.slice(1), attached: string | undefined;\n if (isLong) {\n const equal = argument.indexOf(\"=\");\n const name = argument.slice(2, equal < 0 ? undefined : equal);\n const candidates = Object.keys(long).filter(candidate => candidate.startsWith(name));\n if (!Object.hasOwn(long, name) && candidates.length > 1) throw new PrError(`option ${quote(argument)} is ambiguous; possibilities:${candidates.map(candidate => ` '--${candidate}'`).join(\"\")}`, true);\n switches = long[name] ?? (candidates.length === 1 ? long[candidates[0]!] : undefined) ?? \"\";\n if (!switches) throw new PrError(`unrecognized option ${quote(argument)}`, true);\n if (equal >= 0) attached = argument.slice(equal + 1);\n }\n for (let offset = 0; offset < switches.length; offset++) {\n const option = switches[offset]!;\n if (digit(option)) {\n columnDigits = (accumulating ? columnDigits ?? \"\" : \"\") + option;\n accumulating = true;\n continue;\n }\n accumulating = false;\n const required = \"#hlwWNo\".includes(option);\n const optional = \"nseiS\".includes(option);\n let value = attached;\n if (required || optional) {\n if (!isLong && offset + 1 < switches.length) value = switches.slice(offset + 1);\n if (required && value === undefined) {\n value = args[++index];\n if (value === undefined) throw new PrError(isLong ? `option ${quote(argument)} requires an argument` : `option requires an argument -- '${option}'`, true);\n }\n offset = switches.length;\n } else if (attached !== undefined) throw new PrError(`option ${quote(argument.slice(0, argument.indexOf(\"=\")))} doesn't allow an argument`, true);\n switch (option) {\n case \"#\": options.columns = integer(value!, 1, \"invalid number of columns\"); options.explicitColumns = true; columnDigits = undefined; break;\n case \"h\": options.header = value; break;\n case \"l\": options.length = integer(value!, 1, \"'-l PAGE_LENGTH' invalid number of lines\"); break;\n case \"w\": oldWidth = true; oldOptions = true; {\n const width = integer(value!, 1, \"'-w PAGE_WIDTH' invalid number of characters\");\n if (!options.truncate) options.width = width;\n } break;\n case \"W\": oldWidth = false; options.truncate = true; options.width = integer(value!, 1, \"'-W PAGE_WIDTH' invalid number of characters\"); break;\n case \"m\": options.merge = true; break;\n case \"a\": options.across = true; break;\n case \"b\": break;\n case \"d\": options.doubleSpace = true; break;\n case \"f\": case \"F\": options.formFeed = true; break;\n case \"J\": options.join = true; break;\n case \"N\": options.startNumber = integer(value!, -2147483648, \"'-N NUMBER' invalid starting line number\"); break;\n case \"o\": options.margin = integer(value!, 0, \"'-o MARGIN' invalid line offset\"); break;\n case \"r\": options.quiet = true; break;\n case \"s\": oldOptions = true; oldSeparator = true; if (!options.useSeparator && value !== undefined) options.separator = value; break;\n case \"S\": oldSeparator = false; options.useSeparator = true; options.separator = value ?? \"\"; break;\n case \"t\": options.extremities = false; options.keepFF = true; break;\n case \"T\": options.extremities = false; options.keepFF = false; break;\n case \"c\": options.control = true; break;\n case \"v\": options.octal = true; break;\n case \"n\": case \"e\": case \"i\": {\n if (option === \"n\") options.numbered = true;\n if (option === \"e\") options.expand = true;\n if (option === \"i\") options.tabify = true;\n if (value === undefined || !value.length) break;\n let character: string | undefined;\n if (!digit(value[0]!)) { character = value[0]; value = value.slice(1); }\n let count: number | undefined;\n if (value.length) {\n try { count = integer(value, 1, \"invalid number\"); }\n catch { throw new PrError(`'-${option}' extra characters or invalid number in the argument: ${quote(value)}${Number(value) > 2147483647 ? \": Value too large for defined data type\" : \"\"}`, true); }\n }\n if (option === \"n\") { options.numberSeparator = character ?? options.numberSeparator; options.digits = count ?? options.digits; }\n if (option === \"e\") { options.inputTab = character ?? options.inputTab; options.inputTabWidth = count ?? options.inputTabWidth; }\n if (option === \"i\") { options.outputTab = character ?? options.outputTab; options.outputTabWidth = count ?? options.outputTabWidth; }\n break;\n }\n default: throw new PrError(`invalid option -- '${option}'`, true);\n }\n }\n }\n if (columnDigits !== undefined) { options.columns = integer(columnDigits, 1, \"invalid number of columns\"); options.explicitColumns = true; }\n if (options.merge && options.explicitColumns) throw new PrError(\"cannot specify number of columns when printing in parallel\");\n if (options.merge && options.across) throw new PrError(\"cannot specify both printing across and printing in parallel\");\n if (oldOptions) {\n if (oldWidth) {\n if (options.merge || options.explicitColumns) { options.truncate = true; if (oldSeparator) options.useSeparator = true; }\n else options.join = true;\n } else if (!options.useSeparator && oldSeparator && (options.merge || options.explicitColumns)) {\n if (!options.truncate) { options.join = true; if (options.separator.length) options.useSeparator = true; }\n else options.useSeparator = true;\n }\n }\n const { limits } = budget;\n budget.check(options.files.length, limits.maxFiles, \"input files\");\n budget.check(options.merge ? Math.max(1, options.files.length) : options.columns, limits.maxColumns, \"columns\");\n budget.check(options.length, limits.maxPageLines, \"page lines\");\n for (const width of [options.width, options.margin, options.digits, options.inputTabWidth, options.outputTabWidth]) budget.check(width, limits.maxPageWidth, \"page width\");\n return options;\n}\n", "import { Budget, PrError, PrReadError } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\nimport type { Options } from \"./options.js\";\n\ninterface StoredLine { text: string; end: number }\ninterface Column {\n reader: Reader;\n status: \"open\" | \"held\" | \"feed\" | \"closed\";\n full: boolean;\n numbered: boolean;\n start: number;\n lines: StoredLine[];\n current: number;\n remaining: number;\n}\n\nexport class Formatter {\n private readonly budget: Budget;\n private readonly body: number;\n private readonly columnWidth: number;\n private readonly numberWidth: number;\n private readonly store: boolean;\n private columns: Column[] = [];\n private lineNumber: number;\n private pageNumber = 1;\n private inputPosition = 0;\n private outputPosition = 0;\n private spaces = 0;\n private separators = 0;\n private padding = 0;\n private vertical = false;\n private empty = true;\n private alignEmpty = false;\n private feedOnly = false;\n private printFeed = false;\n private needHeader = false;\n private storing = false;\n private stored = \"\";\n private rendered = \"\";\n private pageRetained = 0;\n\n constructor(private readonly options: Options, private readonly lifecycle: Lifecycle, count: number) {\n this.budget = lifecycle.budget;\n if (options.length <= 10) { options.extremities = false; options.keepFF = true; }\n this.body = Math.floor((options.extremities ? options.length - 10 : options.length) / (options.doubleSpace ? 2 : 1));\n if (this.body < 1) throw new PrError(\"page has no text lines\");\n options.columns = options.merge ? count : options.columns;\n if (options.columns > 1) {\n if (!options.useSeparator) { options.useSeparator = true; options.separator = options.join ? \"\\t\" : \" \"; }\n else if (!options.join && options.separator === \"\\t\") options.separator = \" \";\n options.truncate = true;\n options.tabify = true;\n }\n if (options.join) options.truncate = false;\n this.numberWidth = options.numberSeparator === \"\\t\" ? options.digits + 8 - options.digits % 8 : options.digits + 1;\n this.columnWidth = Math.trunc((options.width - (options.merge && options.numbered ? this.numberWidth : 0) - (options.columns - 1) * options.separator.length) / options.columns);\n if (this.columnWidth < 1) throw new PrError(\"page width too narrow\");\n this.store = options.columns > 1 && !options.merge && !options.across;\n this.lineNumber = options.startNumber;\n lifecycle.cleanup(async () => {\n this.budget.retain(-this.pageRetained - this.rendered.length * 2);\n this.pageRetained = 0;\n this.rendered = \"\";\n this.columns = [];\n });\n }\n\n private append(value: string): void {\n this.budget.charge(value.length);\n this.budget.retain(value.length * 2);\n this.rendered += value;\n }\n private repeat(value: string, count: number, construction = false): string {\n this.budget.admitString(value.length * count);\n if (construction) this.budget.charge(value.length * count);\n return value.repeat(count);\n }\n private async flush(): Promise<void> {\n const text = this.rendered;\n this.rendered = \"\";\n this.budget.retain(-text.length * 2);\n if (text) await this.lifecycle.write(text);\n }\n private white(): void {\n let position = this.outputPosition;\n const goal = position + this.spaces;\n this.budget.check(Math.max(0, this.spaces), this.budget.limits.maxBufferedBytes, \"horizontal padding\");\n while (goal - position > 1) {\n const next = position + this.options.outputTabWidth - position % this.options.outputTabWidth;\n if (next > goal) break;\n this.append(this.options.outputTab);\n position = next;\n }\n if (goal > position) this.append(this.repeat(\" \", goal - position));\n this.outputPosition = goal;\n this.spaces = 0;\n }\n private pad(position: number): void {\n if (this.options.tabify) this.spaces = position - this.outputPosition;\n else {\n if (position > this.outputPosition) this.append(this.repeat(\" \", position - this.outputPosition));\n this.outputPosition = position;\n }\n }\n private separator(): void {\n if (this.separators <= 0) { if (this.spaces > 0) this.white(); return; }\n let offset = 0;\n for (; this.separators > 0; this.separators--) {\n while (offset < this.options.separator.length) {\n const character = this.options.separator[offset++]!;\n if (character === \" \") this.spaces++;\n else { if (this.spaces > 0) this.white(); this.append(character); this.outputPosition++; }\n }\n if (this.spaces > 0) this.white();\n }\n }\n private character(character: string): void {\n if (this.storing) {\n this.budget.charge(character.length);\n this.budget.retain(character.length * 2);\n this.pageRetained += character.length * 2;\n this.stored += character;\n return;\n }\n if (this.options.tabify) {\n if (character === \" \") { this.spaces++; return; }\n if (this.spaces > 0) this.white();\n if (character >= \" \" && character <= \"~\") this.outputPosition++;\n else if (character === \"\\b\") this.outputPosition--;\n }\n this.append(character);\n }\n private number(column: Column): void {\n this.budget.admitString(this.options.digits);\n const text = String(this.lineNumber++).padStart(this.options.digits, \" \").slice(-this.options.digits);\n for (const character of text) this.character(character);\n if (this.columns.length > 1 && this.options.numberSeparator === \"\\t\") {\n for (let count = this.numberWidth - this.options.digits; count > 0; count--) this.character(\" \");\n } else {\n this.character(this.options.numberSeparator);\n if (this.columns.length === 1 && this.options.numberSeparator === \"\\t\") this.outputPosition += this.options.outputTabWidth - this.outputPosition % this.options.outputTabWidth;\n }\n if (this.options.truncate && !this.options.merge) this.inputPosition += this.numberWidth;\n this.budget.charge(column.numbered ? 1 : 0);\n }\n private align(column: Column): void {\n this.padding = column.start;\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n if (column.numbered) this.number(column);\n }\n private clump(byte: number): string {\n const character = String.fromCharCode(byte);\n let width: number;\n let text = character;\n if (character === this.options.inputTab || byte === 9) {\n const tab = character === this.options.inputTab ? this.options.inputTabWidth : 8;\n width = tab - this.inputPosition % tab;\n if (this.options.expand) text = this.repeat(\" \", width, true);\n } else if (byte < 32 || byte > 126) {\n if (this.options.octal || this.options.control && byte >= 128) { text = `\\\\${byte.toString(8).padStart(3, \"0\")}`; width = 4; }\n else if (this.options.control) { text = `^${String.fromCharCode(byte ^ 64)}`; width = 2; }\n else width = byte === 8 ? -1 : 0;\n } else width = 1;\n if (width < 0 && this.inputPosition === 0) return \"\";\n this.inputPosition = Math.max(0, this.inputPosition + width);\n return text;\n }\n private close(column: Column): void {\n for (const current of this.options.merge ? [column] : this.columns) {\n current.status = \"closed\";\n if (!current.lines.length) current.remaining = 0;\n }\n }\n private hold(column: Column): void {\n for (const current of this.options.merge ? [column] : this.columns) current.status = this.store ? \"feed\" : \"held\";\n column.remaining = 0;\n }\n private async feed(column: Column): Promise<void> {\n const next = await column.reader.get();\n if (next !== 10) column.reader.unget(next);\n this.hold(column);\n }\n private async rest(column: Column): Promise<void> {\n for (;;) {\n const byte = await column.reader.get();\n if (byte === 10) return;\n if (byte === 12) { await this.feed(column); if (this.options.keepFF) this.printFeed = true; return; }\n if (byte < 0) { this.close(column); return; }\n }\n }\n private header(date: string, name: string): void {\n const { env } = this.budget.context;\n if (![undefined, \"\", \"UTC\", \"UTC0\", \":UTC\", \"GMT\", \"GMT0\"].includes(env.TZ)) throw new PrError(\"only UTC timezones are supported for headers\");\n const ctype = env.LC_ALL || env.LC_CTYPE || env.LANG || \"C\";\n if (ctype === \"C.UTF-8\" || ctype === \"C.utf8\") {\n for (const character of name) if (character.charCodeAt(0) >= 128) throw new PrError(\"non-ASCII headers require the C locale\");\n }\n this.outputPosition = 0;\n this.pad(this.options.margin);\n this.white();\n const width = (text: string): number => {\n this.budget.charge(text.length);\n let result = 0;\n for (const character of text) if (character >= \" \" && character !== \"\\x7f\") result++;\n return result;\n };\n const page = `Page ${this.pageNumber}`;\n const available = Math.max(0, this.options.width - width(date) - width(name) - width(page));\n const left = Math.floor(available / 2);\n this.budget.admitString(5 + this.options.margin + date.length + name.length + page.length + Math.max(1, left) + Math.max(1, available - left));\n this.append(`\\n\\n${this.repeat(\" \", this.options.margin)}${date}${this.repeat(\" \", Math.max(1, left))}${name}${this.repeat(\" \", Math.max(1, available - left))}${page}\\n\\n\\n`);\n this.needHeader = false;\n this.outputPosition = 0;\n }\n private async read(column: Column, date: string, name: string): Promise<void> {\n let byte = await column.reader.get();\n if (byte === 12 && column.full) { byte = await column.reader.get(); if (byte === 10) byte = await column.reader.get(); }\n column.full = false;\n if (byte === 12) {\n await this.feed(column);\n this.feedOnly = true;\n if (this.needHeader && !this.store) { this.vertical = true; this.header(date, name); }\n else if (this.options.keepFF) this.printFeed = true;\n return;\n }\n if (byte < 0) { this.close(column); return; }\n let clump = byte === 10 ? \"\" : this.clump(byte);\n if (this.options.truncate && this.inputPosition > this.columnWidth) { this.inputPosition = 0; await this.rest(column); return; }\n if (!this.storing) {\n this.vertical = true;\n if (this.needHeader && !this.store) this.header(date, name);\n if (this.options.merge && this.alignEmpty) {\n const pending = this.separators;\n this.separators = 0;\n for (let index = 0; index < pending; index++) { this.align(this.columns[index]!); this.separators++; }\n this.padding = column.start;\n this.spaces = this.options.truncate ? this.columnWidth : 0;\n this.alignEmpty = false;\n }\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n }\n if (column.numbered) this.number(column);\n this.empty = false;\n if (byte === 10) return;\n for (const character of clump) this.character(character);\n for (;;) {\n byte = await column.reader.get();\n if (byte === 10) return;\n if (byte === 12) { await this.feed(column); if (this.options.keepFF) this.printFeed = true; return; }\n if (byte < 0) { this.close(column); return; }\n const previous = this.inputPosition;\n clump = this.clump(byte);\n if (this.options.truncate && this.inputPosition > this.columnWidth) { this.inputPosition = previous; await this.rest(column); return; }\n for (const character of clump) this.character(character);\n }\n }\n private ready(): boolean {\n return this.columns.some(column => column.status === \"open\" || column.status === \"feed\" || this.store && column.remaining > 0 && column.lines.length > 0);\n }\n private async storePage(date: string, name: string): Promise<void> {\n this.budget.retain(-this.pageRetained);\n this.pageRetained = 0;\n const lines: StoredLine[] = [];\n this.storing = true;\n for (const column of this.columns) { column.lines = []; column.current = 0; }\n try {\n for (const column of this.columns) {\n for (let count = 0; count < this.body && column.status === \"open\"; count++) {\n this.stored = \"\";\n this.inputPosition = 0;\n await this.read(column, date, name);\n if (column.status === \"open\" || this.stored.length) {\n this.budget.retain(32);\n this.pageRetained += 32;\n lines.push({ text: this.stored, end: this.inputPosition });\n }\n }\n }\n } finally { this.storing = false; }\n let start = 0;\n for (let index = 0; index < this.columns.length; index++) {\n const column = this.columns[index]!;\n const count = Math.floor(lines.length / this.columns.length) + (index < lines.length % this.columns.length ? 1 : 0);\n column.lines = lines.slice(start, start + count);\n column.remaining = count;\n start += count;\n }\n }\n private storedLine(column: Column, date: string, name: string): void {\n this.vertical = true;\n if (this.needHeader) this.header(date, name);\n if (column.status === \"feed\") {\n for (const current of this.columns) current.status = \"held\";\n if (this.columns[0]!.remaining <= 0) { if (!this.options.extremities) this.vertical = false; return; }\n }\n const line = column.lines[column.current++];\n if (!line) return;\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n for (const character of line.text) this.character(character);\n if (this.spaces === 0) {\n this.outputPosition = column.start + line.end;\n if (column.start - this.options.separator.length === this.options.margin) this.outputPosition -= this.options.separator.length;\n }\n }\n async run(readers: Reader[], date: string, name: string): Promise<void> {\n const count = this.options.merge ? readers.length : this.options.columns;\n for (let index = 0; index < count; index++) {\n const start = index === 0 ? this.options.margin + this.options.separator.length : this.options.truncate\n ? this.options.margin + index * (this.columnWidth + this.options.separator.length) + (this.options.merge && this.options.numbered ? this.numberWidth : 0) : 0;\n this.columns.push({ reader: readers[this.options.merge ? index : 0]!, status: \"open\", full: false,\n numbered: this.options.numbered && (!this.options.merge || index === 0), start,\n lines: [], current: 0, remaining: 0 });\n }\n try { await this.pages(date, name); }\n catch (error) { if (error instanceof PrReadError) await this.flush(); throw error; }\n }\n private async pages(date: string, name: string): Promise<void> {\n for (;;) {\n if (this.store) await this.storePage(date, name);\n else for (const column of this.columns) column.remaining = column.status === \"open\" ? this.body : 0;\n if (!this.ready()) return;\n this.budget.page();\n this.needHeader = this.options.extremities;\n let printed = false;\n let left = this.body * (this.options.doubleSpace ? 2 : 1);\n while (left > 0 && this.ready()) {\n this.outputPosition = 0; this.spaces = 0; this.separators = 0; this.vertical = false; this.alignEmpty = false; this.empty = true;\n for (const column of this.columns) {\n this.budget.charge();\n this.inputPosition = 0;\n if (column.remaining > 0 || column.status === \"feed\") {\n this.feedOnly = false;\n this.padding = column.start;\n if (this.store) this.storedLine(column, date, name);\n else await this.read(column, date, name);\n printed ||= this.vertical;\n column.remaining--;\n if (column.remaining <= 0 && !this.ready()) break;\n if (this.options.merge && column.status !== \"open\") {\n if (this.empty) this.alignEmpty = true;\n else if (column.status === \"closed\" || this.feedOnly) this.align(column);\n }\n } else if (this.options.merge) { if (this.empty) this.alignEmpty = true; else this.align(column); }\n if (this.options.useSeparator) this.separators++;\n }\n if (this.vertical) { this.append(\"\\n\"); left--; }\n if (!this.ready() && !this.options.extremities) { await this.flush(); break; }\n if (this.options.doubleSpace && printed) { this.append(\"\\n\"); left--; }\n await this.flush();\n }\n if (left === 0) for (const column of this.columns) if (column.status === \"open\") column.full = true;\n if (printed && this.options.extremities) this.append(this.options.formFeed ? \"\\f\" : this.repeat(\"\\n\", left + 5));\n else if (this.options.keepFF && this.printFeed) { this.append(\"\\f\"); this.printFeed = false; }\n await this.flush();\n this.pageNumber++;\n for (const column of this.columns) if (column.status === \"held\") column.status = \"open\";\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;;;ACAA;AA6BO,SAAS,SAAS,SAAsC;AAC7D,QAAM,SAAmB;AAAA,IACvB,cAAc;AAAA,IAAM,kBAAkB;AAAA,IAAQ,UAAU;AAAA,IAAK,YAAY;AAAA,IACzE,cAAc;AAAA,IAAQ,cAAc;AAAA,IAAQ,UAAU;AAAA,IACtD,eAAe;AAAA,IAAY,kBAAkB;AAAA,IAC7C,cAAc;AAAA,IAAW,UAAU;AAAA,IAAW,gBAAgB;AAAA,IAC9D,oBAAoB;AAAA,IAAQ,SAAS;AAAA,IAAa,gBAAgB;AAAA,IAAM,GAAG,QAAQ;AAAA,EACrF;AACA,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,EAAG,OAAM,IAAI,WAAW,qBAAqB,IAAI,EAAE;AAAA,EACjG;AACA,MAAI,QAAQ,UAAU,UAAa,OAAO,QAAQ,UAAU,WAAY,OAAM,IAAI,UAAU,6BAA6B;AACzH,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,IAAM,UAAN,cAAsB,iBAAiB;AAAA,EAC5C,YAAY,SAA0B,QAAQ,OAAO;AAAE,UAAM,OAAO;AAA9B;AAAA,EAAiC;AAAA,EAAjC;AACxC;AAEO,IAAM,cAAN,cAA0B,QAAQ;AAAC;AAEnC,SAAS,IAAI,OAA2B;AAC7C,MAAI,OAAO;AACX,aAAW,QAAQ,MAAO,SAAQ,OAAO,aAAa,IAAI;AAC1D,SAAO;AACT;AAEO,SAAS,MAAM,OAA2B;AAC/C,SAAO,WAAW,KAAK,OAAO,eAAa,UAAU,WAAW,CAAC,CAAC;AACpE;AAEO,SAAS,SAAS,OAAuB;AAC9C,MAAI;AAAE,WAAO,IAAI,YAAY,SAAS,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC,EAAE,OAAO,MAAM,KAAK,CAAC;AAAA,EAAG,QACxF;AAAE,UAAM,IAAI,QAAQ,sCAAsC;AAAA,EAAG;AACrE;AAEO,SAAS,MAAM,OAAuB;AAC3C,QAAM,UAA4C,EAAE,QAAQ,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAM,OAAO,MAAM,OAAO,MAAM,QAAQ,KAAK,MAAM;AAC1K,MAAI,SAAS;AACb,aAAW,aAAa,OAAO;AAC7B,UAAM,OAAO,UAAU,WAAW,CAAC;AACnC,cAAU,QAAQ,SAAS,MAAM,QAAQ,MAAM,OAAO,MAAM,YAAY,KAAK,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,EAChH;AACA,SAAO,GAAG,MAAM;AAClB;AAEO,SAAS,UAAU,OAAuB;AAC/C,MAAI,OAAO,MAAM,SAAS,GAAG,UAAU;AACvC,aAAW,aAAa,OAAO;AAC7B,UAAM,OAAO,UAAU,WAAW,CAAC;AACnC,QAAI,EAAE,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,OAAO,SAAS,SAAS,GAAI,QAAO;AAClK,QAAI,OAAO,MAAM,QAAQ,IAAK,WAAU;AAAA,EAC1C;AACA,MAAI,KAAM,QAAO;AACjB,MAAI,CAAC,SAAS;AACZ,QAAI,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,EAAE,KAAK,eAAa,MAAM,SAAS,SAAS,CAAC,EAAG,QAAO,IAAI,KAAK;AAChH,WAAO,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,OAAO,CAAC;AAAA,EAC3C;AACA,MAAI,SAAS,KAAK,WAAW;AAC7B,aAAW,aAAa,OAAO;AAC7B,UAAM,OAAO,UAAU,WAAW,CAAC;AACnC,QAAI,OAAO,MAAM,QAAQ,KAAK;AAC5B,UAAI,CAAC,UAAU;AAAE,kBAAU;AAAO,mBAAW;AAAA,MAAM;AACnD,gBAAU,MAAM,SAAS,EAAE,MAAM,GAAG,EAAE;AAAA,IACxC,OAAO;AACL,UAAI,UAAU;AAAE,kBAAU;AAAM,mBAAW;AAAA,MAAO;AAClD,gBAAU,cAAc,MAAM,UAAU;AAAA,IAC1C;AAAA,EACF;AACA,SAAO,GAAG,MAAM;AAClB;AAEO,IAAM,SAAN,MAAa;AAAA,EASlB,YAAqB,SAAkC,QAA2B,QAAqB;AAAlF;AAAkC;AAA2B;AAAA,EAAsB;AAAA,EAAnF;AAAA,EAAkC;AAAA,EAA2B;AAAA,EAR1E,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,cAAc;AAAA,EAEtB,MAAM,OAAe,SAAiB,OAAqB;AACzD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,KAAK,QAAQ,QAAS,OAAM,IAAI,QAAQ,GAAG,KAAK,iBAAiB;AAAA,EAC/G;AAAA,EACA,OAAO,SAAS,GAAS;AACvB,SAAK,OAAO,eAAe;AAC3B,SAAK,QAAQ;AACb,SAAK,MAAM,KAAK,MAAM,KAAK,OAAO,SAAS,MAAM;AAAA,EACnD;AAAA,EACA,MAAM,iBAAgC;AACpC,SAAK,OAAO,eAAe;AAC3B,QAAI,KAAK,OAAO,KAAK,cAAc,MAAM;AACvC,WAAK,aAAa,KAAK;AACvB,YAAM,UAAU,KAAK,MAAM;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,OAAO,QAAsB;AAC3B,SAAK,MAAM,KAAK,WAAW,QAAQ,KAAK,OAAO,kBAAkB,gBAAgB;AACjF,SAAK,YAAY;AAAA,EACnB;AAAA,EACA,YAAY,QAAsB;AAChC,SAAK,OAAO,eAAe;AAC3B,SAAK,MAAM,QAAQ,KAAK,OAAO,UAAU,KAAK,MAAM,MAAM;AAC1D,SAAK,MAAM,KAAK,WAAW,SAAS,GAAG,KAAK,OAAO,kBAAkB,gBAAgB;AAAA,EACvF;AAAA,EACA,WAAW,QAAsB;AAC/B,SAAK,SAAS;AACd,SAAK,MAAM,KAAK,OAAO,KAAK,OAAO,eAAe,aAAa;AAAA,EACjE;AAAA,EACA,OAAa;AAAE,SAAK,MAAM,EAAE,KAAK,OAAO,KAAK,OAAO,UAAU,aAAa;AAAA,EAAG;AAAA,EAC9E,OAAa;AAAE,SAAK,MAAM,EAAE,KAAK,OAAO,KAAK,OAAO,UAAU,OAAO;AAAG,SAAK,OAAO;AAAA,EAAG;AAAA,EACvF,QAAQ,QAAgB,YAA2B;AACjD,QAAI,YAAY;AACd,WAAK,eAAe;AACpB,WAAK,MAAM,KAAK,aAAa,KAAK,OAAO,oBAAoB,kBAAkB;AAAA,IACjF,OAAO;AACL,WAAK,UAAU;AACf,WAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,gBAAgB,cAAc;AAAA,IACpE;AACA,QAAI,CAAC,WAAY,MAAK,OAAO,MAAM;AAAA,EACrC;AAAA,EACA,YAAsB;AACpB,SAAK,MAAM,KAAK,QAAQ,KAAK,QAAQ,KAAK,OAAO,cAAc,gBAAgB;AAC/E,QAAI,QAAQ;AACZ,eAAW,YAAY,KAAK,QAAQ,MAAM;AACxC,eAAS,SAAS;AAClB,WAAK,MAAM,OAAO,KAAK,OAAO,kBAAkB,gBAAgB;AAChE,eAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU;AACvD,cAAM,OAAO,SAAS,WAAW,MAAM;AACvC,YAAI,QAAQ,SAAU,QAAQ,OAAQ;AACpC,gBAAM,OAAO,SAAS,WAAW,EAAE,MAAM;AACzC,cAAI,EAAE,QAAQ,SAAU,QAAQ,OAAS,OAAM,IAAI,QAAQ,4CAA4C;AAAA,QACzG,WAAW,QAAQ,SAAU,QAAQ,MAAQ,OAAM,IAAI,QAAQ,4CAA4C;AAAA,MAC7G;AAAA,IACF;AACA,YAAQ;AACR,WAAO,oBAAoB,KAAK,OAAO,EAAE,OAAO,IAAI,cAAY;AAC9D,eAAS,qBAAqB,QAAQ;AACtC,WAAK,MAAM,OAAO,KAAK,OAAO,kBAAkB,gBAAgB;AAChE,YAAM,QAAQ,gBAAgB,QAAQ;AACtC,WAAK,OAAO,MAAM,MAAM;AACxB,UAAI,MAAM,SAAS,CAAC,EAAG,OAAM,IAAI,QAAQ,mCAAmC;AAC5E,aAAO,IAAI,KAAK;AAAA,IAClB,CAAC;AAAA,EACH;AACF;;;AC/KA;AAIO,IAAM,YAAN,MAAgB;AAAA,EAIrB,YAAqB,QAAgB,QAAyB;AAAzC;AAA2C,WAAO,gBAAgB,MAAM,KAAK,MAAM,CAAC;AAAA,EAAG;AAAA,EAAvF;AAAA,EAHJ,UAAU,oBAAI,IAAsB;AAAA,EACpC,WAAoC,CAAC;AAAA,EAC9C;AAAA,EAER,QAAQ,QAAmC;AAAE,SAAK,WAAW;AAAG,SAAK,SAAS,KAAK,MAAM;AAAA,EAAG;AAAA,EAC5F,aAAmB;AACjB,SAAK,OAAO,OAAO,eAAe;AAClC,QAAI,KAAK,QAAS,OAAM,IAAI,QAAQ,mBAAmB;AAAA,EACzD;AAAA,EACA,MAAM,UAAiB,QAAsC,aAAa,OAAuB;AAC/F,SAAK,WAAW;AAChB,QAAI,CAAC,WAAY,MAAK,OAAO,OAAO;AACpC,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAAE,WAAK,WAAW;AAAG,aAAO,OAAO;AAAA,IAAG,CAAC;AACpF,SAAK,QAAQ,IAAI,OAAO;AACxB,QAAI;AAAE,YAAM,QAAQ,MAAM;AAAS,WAAK,WAAW;AAAG,aAAO;AAAA,IAAO,UACpE;AAAU,WAAK,QAAQ,OAAO,OAAO;AAAA,IAAG;AAAA,EAC1C;AAAA,EACA,QAAuB;AACrB,WAAO,KAAK,YAAY,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACzD,aAAO,KAAK,QAAQ,KAAM,OAAM,QAAQ,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC;AACpE,YAAM,WAAsB,CAAC;AAC7B,iBAAW,WAAW,KAAK,UAAU;AACnC,YAAI;AAAE,gBAAM,QAAQ;AAAA,QAAG,SAAS,OAAO;AAAE,mBAAS,KAAK,KAAK;AAAA,QAAG;AAAA,MACjE;AACA,UAAI,SAAS,WAAW,EAAG,OAAM,SAAS,CAAC;AAC3C,UAAI,SAAS,SAAS,EAAG,OAAM,IAAI,eAAe,UAAU,mBAAmB;AAAA,IACjF,CAAC;AAAA,EACH;AAAA,EACA,MAAM,MAAM,OAAe,aAAa,OAAsB;AAC5D,UAAM,EAAE,OAAO,IAAI;AACnB,WAAO,QAAQ,MAAM,QAAQ,UAAU;AACvC,UAAM,KAAK,UAAU,YAAY;AAC/B,UAAI,CAAC,WAAY,QAAO,OAAO,MAAM,SAAS,CAAC;AAC/C,UAAI;AACF,cAAM,OAAO,aAAa,OAAO,QAAQ,SAAS,OAAO,QAAQ;AACjE,aAAK,WAAW;AAChB,cAAM,cAAc,KAAK,eAAe;AACxC,aAAK,WAAW;AAChB,cAAM,QAAQ,YAAY;AAC1B,aAAK,WAAW;AAChB,cAAM,QAAQ,MAAM,OAAO,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;AAAA,MACxD,UAAE;AAAU,YAAI,CAAC,WAAY,QAAO,OAAO,CAAC,MAAM,SAAS,CAAC;AAAA,MAAG;AAAA,IACjE,GAAG,UAAU;AAAA,EACf;AACF;AAEO,IAAM,SAAN,MAAa;AAAA,EAWlB,YAAqB,MAAuB,WAAsB;AAA7C;AAAuB;AAC1C,cAAU,QAAQ,YAAY;AAC5B,UAAI;AAAE,YAAI,CAAC,KAAK,MAAO,OAAM,KAAK,UAAU,SAAS;AAAA,MAAG,UACxD;AACE,aAAK,WAAW;AAChB,aAAK,gBAAgB;AACrB,kBAAU,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM;AAC1C,aAAK,QAAQ,IAAI,WAAW;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAVqB;AAAA,EAAuB;AAAA,EAVpC;AAAA,EACA,QAAoB,IAAI,WAAW;AAAA,EACnC,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB;AAAA,EACR;AAAA,EAYiB,kBAAkB,MAAY;AAC7C,SAAK,UAAU,OAAO,OAAO,CAAC,KAAK,aAAa;AAChD,SAAK,gBAAgB;AAAA,EACvB;AAAA,EACA,MAAM,OAAsB;AAC1B,QAAI,KAAK,SAAS,IAAK;AACvB,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,SAAK,OAAO,YAAY,OAAO,QAAQ,KAAK,SAAS,KAAK,IAAI,CAAC;AAC/D,SAAK,OAAO,MAAM,KAAK,UAAU,UAAU,MAAM;AAC/C,YAAM,KAAK,OAAO,QAAQ;AAC1B,WAAK,UAAU,WAAW;AAC1B,YAAM,OAAO,GAAG;AAChB,WAAK,UAAU,WAAW;AAC1B,aAAO,QAAQ,MAAM,MAAM,IAAI,CAAC,KAAK,MAAO,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC;AAAA,IACxE,CAAC;AACD,QAAI,KAAK,KAAK,SAAS,UAAU,KAAK,KAAK,SAAS,eAAe,KAAK,KAAK,SAAS,YAAa,OAAM,IAAI,QAAQ,WAAW,EAAE,MAAM,KAAK,KAAK,CAAC;AAAA,EACrJ;AAAA,EACA,MAAc,UAAyB;AACrC,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,UAAM,KAAK,UAAU,UAAU,YAAY;AACzC,UAAI;AACJ,UAAI,0BAA0B;AAC9B,UAAI,KAAK,SAAS,OAAW,UAAS,OAAO,QAAQ;AAAA,WAChD;AACH,cAAM,KAAK,OAAO,QAAQ;AAC1B,aAAK,UAAU,WAAW;AAC1B,cAAM,kBAAkB,GAAG;AAC3B,aAAK,UAAU,WAAW;AAC1B,cAAM,WAAW,kBAAkB,MAAM,QAAQ,MAAM,iBAAiB,IAAI,CAAC,KAAK,MAAM,EAAE,QAAQ,OAAO,OAAO,CAAC,CAAC,IAAI;AACtH,aAAK,UAAU,WAAW;AAC1B,cAAM,eAAe,YAAY,GAAG;AACpC,aAAK,UAAU,WAAW;AAC1B,cAAM,aAAa,GAAG;AACtB,aAAK,UAAU,WAAW;AAC1B,cAAM,gBAAgB,cAAc,aAAa,kBAAkB;AACnE,aAAK,UAAU,WAAW;AAC1B,YAAI,cAAc,eAAe;AAC/B,mBAAS,QAAQ,MAAM,YAAY,IAAI,CAAC,KAAK,MAAM,EAAE,QAAQ,OAAO,QAAQ,WAAW,MAAO,CAAC,CAAC;AAChG,oCAA0B,OAAO,OAAO;AAAA,QAC1C,OACK;AACH,gBAAM,UAAU,KAAK,IAAI,OAAO,OAAO,eAAe,KAAK,MAAM,OAAO,OAAO,mBAAmB,CAAC,CAAC;AACpG,iBAAO,MAAM,KAAK,KAAM,MAAM,SAAS,sBAAsB;AAC7D,iBAAO,OAAO,OAAO;AACrB,eAAK,gBAAgB;AACrB,gBAAM,WAAW,GAAG;AACpB,eAAK,UAAU,WAAW;AAC1B,gBAAM,UAAU,MAAM,QAAQ,MAAM,UAAU,IAAI,CAAC,KAAK,MAAM,EAAE,QAAQ,OAAO,QAAQ,UAAU,QAAQ,CAAC,CAAC;AAC3G,cAAI,EAAE,mBAAmB,YAAa,OAAM,IAAI,UAAU,yBAAyB;AACnF,iBAAO,MAAM,QAAQ,QAAQ,SAAS,sBAAsB;AAC5D,iBAAO,OAAO,QAAQ,SAAS,OAAO;AACtC,eAAK,gBAAgB,QAAQ;AAC7B,gBAAM,EAAE,gBAAgB,IAAI;AAC5B,mBAAS,EAAE,QAAQ,OAAO,aAAa,IAAI;AAAE,gBAAI;AAAE,oBAAM;AAAA,YAAS,UAAE;AAAU,8BAAgB;AAAA,YAAG;AAAA,UAAE,EAAE;AAAA,QACvG;AAAA,MACF;AACA,UAAI,CAAC,wBAAyB,MAAK,UAAU,WAAW;AACxD,YAAM,UAAU,OAAO,OAAO,aAAa;AAC3C,UAAI,CAAC,wBAAyB,MAAK,UAAU,WAAW;AACxD,WAAK,WAAW,QAAQ,MAAM,SAAS,QAAQ,CAAC,CAAC;AAAA,IACnD,CAAC;AAAA,EACH;AAAA,EACA,MAAM,OAAqB;AAAE,SAAK,SAAS;AAAA,EAAO;AAAA,EAClD,MAAM,MAAuB;AAC3B,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,WAAO,OAAO;AACd,UAAM,OAAO,eAAe;AAC5B,QAAI,KAAK,MAAM,SAAS,YAAa,OAAM,IAAI,YAAY,GAAG,UAAU,KAAK,IAAI,CAAC,kBAAkB;AACpG,QAAI,KAAK,UAAU,GAAG;AAAE,YAAMA,SAAQ,KAAK;AAAQ,WAAK,SAAS;AAAI,aAAOA;AAAA,IAAO;AACnF,WAAO,KAAK,WAAW,KAAK,MAAM,QAAQ;AACxC,UAAI,KAAK,MAAO,QAAO;AACvB,UAAI;AACJ,UAAI;AACF,YAAI,CAAC,KAAK,SAAU,OAAM,KAAK,QAAQ;AACvC,eAAO,MAAM,KAAK,UAAU,UAAU,MAAM;AAC1C,gBAAM,WAAW,KAAK;AACtB,gBAAM,UAAU,SAAS;AACzB,eAAK,UAAU,WAAW;AAC1B,iBAAO,QAAQ,MAAM,SAAS,UAAU,CAAC,CAAC;AAAA,QAC5C,CAAC;AAAA,MACH,SAAS,OAAO;AACd,YAAI,iBAAiB,QAAS,OAAM,IAAI,YAAY,GAAG,UAAU,KAAK,SAAS,MAAM,mBAAmB,KAAK,IAAI,CAAC,KAAK,SAAS,KAAK,CAAC,EAAE;AACxI,cAAM;AAAA,MACR;AACA,aAAO,OAAO,CAAC,KAAK,MAAM,MAAM;AAChC,WAAK,QAAQ,IAAI,WAAW;AAC5B,WAAK,SAAS;AACd,UAAI,KAAK,MAAM;AACb,aAAK,QAAQ;AACb,aAAK,WAAW;AAChB,YAAI,KAAK,SAAS,GAAG;AAAE,eAAK,SAAS;AAAG,iBAAO,KAAK;AAAA,QAAG;AACvD,eAAO;AAAA,MACT;AACA,UAAI,EAAE,KAAK,iBAAiB,YAAa,OAAM,IAAI,UAAU,yBAAyB;AACtF,aAAO,WAAW,KAAK,MAAM,MAAM;AACnC,aAAO,OAAO,KAAK,MAAM,MAAM;AAC/B,WAAK,QAAQ,WAAW,KAAK,KAAK,KAAK;AACvC,UAAI,CAAC,KAAK,MAAM,OAAQ,QAAO,MAAM,EAAE,KAAK,SAAS,OAAO,OAAO,gBAAgB,oBAAoB;AAAA,IACzG;AACA,UAAM,QAAQ,KAAK,MAAM,KAAK,QAAQ;AACtC,QAAI,UAAU,MAAM,UAAU,IAAI;AAAE,WAAK,SAAS;AAAG,aAAO,KAAK;AAAA,IAAG,MAC/D,QAAO,MAAM,EAAE,KAAK,QAAQ,OAAO,OAAO,cAAc,kBAAkB;AAC/E,WAAO;AAAA,EACT;AACF;AAEO,SAAS,SAAS,OAAwB;AAC/C,QAAM,UAAoD;AAAA,IACxD,QAAQ;AAAA,IAAqB,OAAO;AAAA,IAA2B,QAAQ;AAAA,IACvE,QAAQ;AAAA,IAAkB,SAAS;AAAA,IAAmB,KAAK;AAAA,IAAsB,OAAO;AAAA,IACxF,cAAc;AAAA,IAAsB,SAAS;AAAA,EAC/C;AACA,SAAO,QAAQ,MAAM,IAAI,KAAK,MAAM;AACtC;;;AC1LA;AAoCA,SAAS,MAAM,OAAwB;AAAE,SAAO,SAAS,OAAO,SAAS;AAAK;AAE9E,SAAS,QAAQ,OAAe,SAAiB,OAAuB;AACtE,MAAI,SAAS;AACb,SAAO,aAAc,SAAS,MAAM,MAAM,KAAK,GAAG,KAAK,SAAS,MAAM,OAAQ;AAC9E,MAAI,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,IAAK;AACpD,QAAM,QAAQ;AACd,SAAO,SAAS,MAAM,UAAU,MAAM,MAAM,MAAM,CAAE,EAAG;AACvD,MAAI,WAAW,MAAM,UAAU,WAAW,MAAO,OAAM,IAAI,QAAQ,GAAG,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE;AAC9F,QAAM,SAAS,OAAO,KAAK;AAC3B,MAAI,SAAS,WAAW,SAAS,cAAc,CAAC,OAAO,cAAc,MAAM,EAAG,OAAM,IAAI,QAAQ,GAAG,KAAK,KAAK,MAAM,KAAK,CAAC,iCAAiC;AAC1J,SAAO;AACT;AAEO,SAAS,aAAa,MAAgB,QAAyB;AACpE,QAAM,UAAmB;AAAA,IACvB,OAAO,CAAC;AAAA,IAAG,SAAS;AAAA,IAAG,iBAAiB;AAAA,IAAO,OAAO;AAAA,IAAO,QAAQ;AAAA,IACrE,QAAQ;AAAA,IAAI,OAAO;AAAA,IAAI,QAAQ;AAAA,IAAW,aAAa;AAAA,IAAM,QAAQ;AAAA,IACrE,UAAU;AAAA,IAAO,UAAU;AAAA,IAAO,QAAQ;AAAA,IAAG,iBAAiB;AAAA,IAAM,aAAa;AAAA,IACjF,WAAW;AAAA,IAAI,cAAc;AAAA,IAAO,UAAU;AAAA,IAAO,MAAM;AAAA,IAAO,aAAa;AAAA,IAC/E,QAAQ;AAAA,IAAG,QAAQ;AAAA,IAAO,QAAQ;AAAA,IAAO,UAAU;AAAA,IAAM,eAAe;AAAA,IACxE,WAAW;AAAA,IAAM,gBAAgB;AAAA,IAAG,SAAS;AAAA,IAAO,OAAO;AAAA,IAAO,OAAO;AAAA,IAAO,aAAa;AAAA,EAC/F;AACA,QAAM,OAA+B;AAAA,IACnC,SAAS;AAAA,IAAK,QAAQ;AAAA,IAAK,sBAAsB;AAAA,IAAK,gBAAgB;AAAA,IAAK,eAAe;AAAA,IAC1F,aAAa;AAAA,IAAK,QAAQ;AAAA,IAAK,eAAe;AAAA,IAAK,cAAc;AAAA,IAAK,QAAQ;AAAA,IAAK,OAAO;AAAA,IAC1F,gBAAgB;AAAA,IAAK,qBAAqB;AAAA,IAAK,QAAQ;AAAA,IAAK,oBAAoB;AAAA,IAAK,WAAW;AAAA,IAChG,cAAc;AAAA,IAAK,eAAe;AAAA,IAAK,mBAAmB;AAAA,IAAK,oBAAoB;AAAA,IAAK,OAAO;AAAA,IAAK,cAAc;AAAA,EACpH;AACA,MAAI,WAAW,OAAO,eAAe,OAAO,aAAa,OAAO,OAAO;AACvE,MAAI;AACJ,MAAI,eAAe;AACnB,WAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;AAChD,UAAM,WAAW,KAAK,KAAK;AAC3B,WAAO,OAAO,SAAS,MAAM;AAC7B,QAAI,MAAM;AAAE,cAAQ,MAAM,KAAK,QAAQ;AAAG;AAAA,IAAU;AACpD,QAAI,aAAa,MAAM;AAAE,aAAO;AAAM;AAAA,IAAU;AAChD,QAAI,aAAa,YAAY,aAAa,aAAa;AACrD,cAAQ,cAAc,aAAa,WAAW,SAAS;AACvD,aAAO;AAAA,IACT;AACA,QAAI,CAAC,SAAS,WAAW,GAAG,KAAK,aAAa,KAAK;AAAE,qBAAe;AAAO,cAAQ,MAAM,KAAK,QAAQ;AAAG;AAAA,IAAU;AACnH,UAAM,SAAS,SAAS,WAAW,IAAI;AACvC,QAAI,WAAW,SAAS,MAAM,CAAC,GAAG;AAClC,QAAI,QAAQ;AACV,YAAM,QAAQ,SAAS,QAAQ,GAAG;AAClC,YAAM,OAAO,SAAS,MAAM,GAAG,QAAQ,IAAI,SAAY,KAAK;AAC5D,YAAM,aAAa,OAAO,KAAK,IAAI,EAAE,OAAO,eAAa,UAAU,WAAW,IAAI,CAAC;AACnF,UAAI,CAAC,OAAO,OAAO,MAAM,IAAI,KAAK,WAAW,SAAS,EAAG,OAAM,IAAI,QAAQ,UAAU,MAAM,QAAQ,CAAC,gCAAgC,WAAW,IAAI,eAAa,OAAO,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI;AACrM,iBAAW,KAAK,IAAI,MAAM,WAAW,WAAW,IAAI,KAAK,WAAW,CAAC,CAAE,IAAI,WAAc;AACzF,UAAI,CAAC,SAAU,OAAM,IAAI,QAAQ,uBAAuB,MAAM,QAAQ,CAAC,IAAI,IAAI;AAC/E,UAAI,SAAS,EAAG,YAAW,SAAS,MAAM,QAAQ,CAAC;AAAA,IACrD;AACA,aAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU;AACvD,YAAM,SAAS,SAAS,MAAM;AAC9B,UAAI,MAAM,MAAM,GAAG;AACjB,wBAAgB,eAAe,gBAAgB,KAAK,MAAM;AAC1D,uBAAe;AACf;AAAA,MACF;AACA,qBAAe;AACf,YAAM,WAAW,UAAU,SAAS,MAAM;AAC1C,YAAM,WAAW,QAAQ,SAAS,MAAM;AACxC,UAAI,QAAQ;AACZ,UAAI,YAAY,UAAU;AACxB,YAAI,CAAC,UAAU,SAAS,IAAI,SAAS,OAAQ,SAAQ,SAAS,MAAM,SAAS,CAAC;AAC9E,YAAI,YAAY,UAAU,QAAW;AACnC,kBAAQ,KAAK,EAAE,KAAK;AACpB,cAAI,UAAU,OAAW,OAAM,IAAI,QAAQ,SAAS,UAAU,MAAM,QAAQ,CAAC,0BAA0B,mCAAmC,MAAM,KAAK,IAAI;AAAA,QAC3J;AACA,iBAAS,SAAS;AAAA,MACpB,WAAW,aAAa,OAAW,OAAM,IAAI,QAAQ,UAAU,MAAM,SAAS,MAAM,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC,CAAC,8BAA8B,IAAI;AAChJ,cAAQ,QAAQ;AAAA,QACd,KAAK;AAAK,kBAAQ,UAAU,QAAQ,OAAQ,GAAG,2BAA2B;AAAG,kBAAQ,kBAAkB;AAAM,yBAAe;AAAW;AAAA,QACvI,KAAK;AAAK,kBAAQ,SAAS;AAAO;AAAA,QAClC,KAAK;AAAK,kBAAQ,SAAS,QAAQ,OAAQ,GAAG,0CAA0C;AAAG;AAAA,QAC3F,KAAK;AAAK,qBAAW;AAAM,uBAAa;AAAM;AAC5C,kBAAM,QAAQ,QAAQ,OAAQ,GAAG,8CAA8C;AAC/E,gBAAI,CAAC,QAAQ,SAAU,SAAQ,QAAQ;AAAA,UACzC;AAAE;AAAA,QACF,KAAK;AAAK,qBAAW;AAAO,kBAAQ,WAAW;AAAM,kBAAQ,QAAQ,QAAQ,OAAQ,GAAG,8CAA8C;AAAG;AAAA,QACzI,KAAK;AAAK,kBAAQ,QAAQ;AAAM;AAAA,QAChC,KAAK;AAAK,kBAAQ,SAAS;AAAM;AAAA,QACjC,KAAK;AAAK;AAAA,QACV,KAAK;AAAK,kBAAQ,cAAc;AAAM;AAAA,QACtC,KAAK;AAAA,QAAK,KAAK;AAAK,kBAAQ,WAAW;AAAM;AAAA,QAC7C,KAAK;AAAK,kBAAQ,OAAO;AAAM;AAAA,QAC/B,KAAK;AAAK,kBAAQ,cAAc,QAAQ,OAAQ,aAAa,0CAA0C;AAAG;AAAA,QAC1G,KAAK;AAAK,kBAAQ,SAAS,QAAQ,OAAQ,GAAG,iCAAiC;AAAG;AAAA,QAClF,KAAK;AAAK,kBAAQ,QAAQ;AAAM;AAAA,QAChC,KAAK;AAAK,uBAAa;AAAM,yBAAe;AAAM,cAAI,CAAC,QAAQ,gBAAgB,UAAU,OAAW,SAAQ,YAAY;AAAO;AAAA,QAC/H,KAAK;AAAK,yBAAe;AAAO,kBAAQ,eAAe;AAAM,kBAAQ,YAAY,SAAS;AAAI;AAAA,QAC9F,KAAK;AAAK,kBAAQ,cAAc;AAAO,kBAAQ,SAAS;AAAM;AAAA,QAC9D,KAAK;AAAK,kBAAQ,cAAc;AAAO,kBAAQ,SAAS;AAAO;AAAA,QAC/D,KAAK;AAAK,kBAAQ,UAAU;AAAM;AAAA,QAClC,KAAK;AAAK,kBAAQ,QAAQ;AAAM;AAAA,QAChC,KAAK;AAAA,QAAK,KAAK;AAAA,QAAK,KAAK,KAAK;AAC5B,cAAI,WAAW,IAAK,SAAQ,WAAW;AACvC,cAAI,WAAW,IAAK,SAAQ,SAAS;AACrC,cAAI,WAAW,IAAK,SAAQ,SAAS;AACrC,cAAI,UAAU,UAAa,CAAC,MAAM,OAAQ;AAC1C,cAAI;AACJ,cAAI,CAAC,MAAM,MAAM,CAAC,CAAE,GAAG;AAAE,wBAAY,MAAM,CAAC;AAAG,oBAAQ,MAAM,MAAM,CAAC;AAAA,UAAG;AACvE,cAAI;AACJ,cAAI,MAAM,QAAQ;AAChB,gBAAI;AAAE,sBAAQ,QAAQ,OAAO,GAAG,gBAAgB;AAAA,YAAG,QAC7C;AAAE,oBAAM,IAAI,QAAQ,KAAK,MAAM,yDAAyD,MAAM,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,aAAa,4CAA4C,EAAE,IAAI,IAAI;AAAA,YAAG;AAAA,UACrM;AACA,cAAI,WAAW,KAAK;AAAE,oBAAQ,kBAAkB,aAAa,QAAQ;AAAiB,oBAAQ,SAAS,SAAS,QAAQ;AAAA,UAAQ;AAChI,cAAI,WAAW,KAAK;AAAE,oBAAQ,WAAW,aAAa,QAAQ;AAAU,oBAAQ,gBAAgB,SAAS,QAAQ;AAAA,UAAe;AAChI,cAAI,WAAW,KAAK;AAAE,oBAAQ,YAAY,aAAa,QAAQ;AAAW,oBAAQ,iBAAiB,SAAS,QAAQ;AAAA,UAAgB;AACpI;AAAA,QACF;AAAA,QACA;AAAS,gBAAM,IAAI,QAAQ,sBAAsB,MAAM,KAAK,IAAI;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AACA,MAAI,iBAAiB,QAAW;AAAE,YAAQ,UAAU,QAAQ,cAAc,GAAG,2BAA2B;AAAG,YAAQ,kBAAkB;AAAA,EAAM;AAC3I,MAAI,QAAQ,SAAS,QAAQ,gBAAiB,OAAM,IAAI,QAAQ,4DAA4D;AAC5H,MAAI,QAAQ,SAAS,QAAQ,OAAQ,OAAM,IAAI,QAAQ,8DAA8D;AACrH,MAAI,YAAY;AACd,QAAI,UAAU;AACZ,UAAI,QAAQ,SAAS,QAAQ,iBAAiB;AAAE,gBAAQ,WAAW;AAAM,YAAI,aAAc,SAAQ,eAAe;AAAA,MAAM,MACnH,SAAQ,OAAO;AAAA,IACtB,WAAW,CAAC,QAAQ,gBAAgB,iBAAiB,QAAQ,SAAS,QAAQ,kBAAkB;AAC9F,UAAI,CAAC,QAAQ,UAAU;AAAE,gBAAQ,OAAO;AAAM,YAAI,QAAQ,UAAU,OAAQ,SAAQ,eAAe;AAAA,MAAM,MACpG,SAAQ,eAAe;AAAA,IAC9B;AAAA,EACF;AACA,QAAM,EAAE,OAAO,IAAI;AACnB,SAAO,MAAM,QAAQ,MAAM,QAAQ,OAAO,UAAU,aAAa;AACjE,SAAO,MAAM,QAAQ,QAAQ,KAAK,IAAI,GAAG,QAAQ,MAAM,MAAM,IAAI,QAAQ,SAAS,OAAO,YAAY,SAAS;AAC9G,SAAO,MAAM,QAAQ,QAAQ,OAAO,cAAc,YAAY;AAC9D,aAAW,SAAS,CAAC,QAAQ,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,QAAQ,cAAc,EAAG,QAAO,MAAM,OAAO,OAAO,cAAc,YAAY;AACzK,SAAO;AACT;;;AC3KA;AAgBO,IAAM,YAAN,MAAgB;AAAA,EAyBrB,YAA6B,SAAmC,WAAsB,OAAe;AAAxE;AAAmC;AAC9D,SAAK,SAAS,UAAU;AACxB,QAAI,QAAQ,UAAU,IAAI;AAAE,cAAQ,cAAc;AAAO,cAAQ,SAAS;AAAA,IAAM;AAChF,SAAK,OAAO,KAAK,OAAO,QAAQ,cAAc,QAAQ,SAAS,KAAK,QAAQ,WAAW,QAAQ,cAAc,IAAI,EAAE;AACnH,QAAI,KAAK,OAAO,EAAG,OAAM,IAAI,QAAQ,wBAAwB;AAC7D,YAAQ,UAAU,QAAQ,QAAQ,QAAQ,QAAQ;AAClD,QAAI,QAAQ,UAAU,GAAG;AACvB,UAAI,CAAC,QAAQ,cAAc;AAAE,gBAAQ,eAAe;AAAM,gBAAQ,YAAY,QAAQ,OAAO,MAAO;AAAA,MAAK,WAChG,CAAC,QAAQ,QAAQ,QAAQ,cAAc,IAAM,SAAQ,YAAY;AAC1E,cAAQ,WAAW;AACnB,cAAQ,SAAS;AAAA,IACnB;AACA,QAAI,QAAQ,KAAM,SAAQ,WAAW;AACrC,SAAK,cAAc,QAAQ,oBAAoB,MAAO,QAAQ,SAAS,IAAI,QAAQ,SAAS,IAAI,QAAQ,SAAS;AACjH,SAAK,cAAc,KAAK,OAAO,QAAQ,SAAS,QAAQ,SAAS,QAAQ,WAAW,KAAK,cAAc,MAAM,QAAQ,UAAU,KAAK,QAAQ,UAAU,UAAU,QAAQ,OAAO;AAC/K,QAAI,KAAK,cAAc,EAAG,OAAM,IAAI,QAAQ,uBAAuB;AACnE,SAAK,QAAQ,QAAQ,UAAU,KAAK,CAAC,QAAQ,SAAS,CAAC,QAAQ;AAC/D,SAAK,aAAa,QAAQ;AAC1B,cAAU,QAAQ,YAAY;AAC5B,WAAK,OAAO,OAAO,CAAC,KAAK,eAAe,KAAK,SAAS,SAAS,CAAC;AAChE,WAAK,eAAe;AACpB,WAAK,WAAW;AAChB,WAAK,UAAU,CAAC;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAxB6B;AAAA,EAAmC;AAAA,EAxB/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACT,UAAoB,CAAC;AAAA,EACrB;AAAA,EACA,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,eAAe;AAAA,EA4Bf,OAAO,OAAqB;AAClC,SAAK,OAAO,OAAO,MAAM,MAAM;AAC/B,SAAK,OAAO,OAAO,MAAM,SAAS,CAAC;AACnC,SAAK,YAAY;AAAA,EACnB;AAAA,EACQ,OAAO,OAAe,OAAe,eAAe,OAAe;AACzE,SAAK,OAAO,YAAY,MAAM,SAAS,KAAK;AAC5C,QAAI,aAAc,MAAK,OAAO,OAAO,MAAM,SAAS,KAAK;AACzD,WAAO,MAAM,OAAO,KAAK;AAAA,EAC3B;AAAA,EACA,MAAc,QAAuB;AACnC,UAAM,OAAO,KAAK;AAClB,SAAK,WAAW;AAChB,SAAK,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC;AACnC,QAAI,KAAM,OAAM,KAAK,UAAU,MAAM,IAAI;AAAA,EAC3C;AAAA,EACQ,QAAc;AACpB,QAAI,WAAW,KAAK;AACpB,UAAM,OAAO,WAAW,KAAK;AAC7B,SAAK,OAAO,MAAM,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,OAAO,kBAAkB,oBAAoB;AACrG,WAAO,OAAO,WAAW,GAAG;AAC1B,YAAM,OAAO,WAAW,KAAK,QAAQ,iBAAiB,WAAW,KAAK,QAAQ;AAC9E,UAAI,OAAO,KAAM;AACjB,WAAK,OAAO,KAAK,QAAQ,SAAS;AAClC,iBAAW;AAAA,IACb;AACA,QAAI,OAAO,SAAU,MAAK,OAAO,KAAK,OAAO,KAAK,OAAO,QAAQ,CAAC;AAClE,SAAK,iBAAiB;AACtB,SAAK,SAAS;AAAA,EAChB;AAAA,EACQ,IAAI,UAAwB;AAClC,QAAI,KAAK,QAAQ,OAAQ,MAAK,SAAS,WAAW,KAAK;AAAA,SAClD;AACH,UAAI,WAAW,KAAK,eAAgB,MAAK,OAAO,KAAK,OAAO,KAAK,WAAW,KAAK,cAAc,CAAC;AAChG,WAAK,iBAAiB;AAAA,IACxB;AAAA,EACF;AAAA,EACQ,YAAkB;AACxB,QAAI,KAAK,cAAc,GAAG;AAAE,UAAI,KAAK,SAAS,EAAG,MAAK,MAAM;AAAG;AAAA,IAAQ;AACvE,QAAI,SAAS;AACb,WAAO,KAAK,aAAa,GAAG,KAAK,cAAc;AAC7C,aAAO,SAAS,KAAK,QAAQ,UAAU,QAAQ;AAC7C,cAAM,YAAY,KAAK,QAAQ,UAAU,QAAQ;AACjD,YAAI,cAAc,IAAK,MAAK;AAAA,aACvB;AAAE,cAAI,KAAK,SAAS,EAAG,MAAK,MAAM;AAAG,eAAK,OAAO,SAAS;AAAG,eAAK;AAAA,QAAkB;AAAA,MAC3F;AACA,UAAI,KAAK,SAAS,EAAG,MAAK,MAAM;AAAA,IAClC;AAAA,EACF;AAAA,EACQ,UAAU,WAAyB;AACzC,QAAI,KAAK,SAAS;AAChB,WAAK,OAAO,OAAO,UAAU,MAAM;AACnC,WAAK,OAAO,OAAO,UAAU,SAAS,CAAC;AACvC,WAAK,gBAAgB,UAAU,SAAS;AACxC,WAAK,UAAU;AACf;AAAA,IACF;AACA,QAAI,KAAK,QAAQ,QAAQ;AACvB,UAAI,cAAc,KAAK;AAAE,aAAK;AAAU;AAAA,MAAQ;AAChD,UAAI,KAAK,SAAS,EAAG,MAAK,MAAM;AAChC,UAAI,aAAa,OAAO,aAAa,IAAK,MAAK;AAAA,eACtC,cAAc,KAAM,MAAK;AAAA,IACpC;AACA,SAAK,OAAO,SAAS;AAAA,EACvB;AAAA,EACQ,OAAO,QAAsB;AACnC,SAAK,OAAO,YAAY,KAAK,QAAQ,MAAM;AAC3C,UAAM,OAAO,OAAO,KAAK,YAAY,EAAE,SAAS,KAAK,QAAQ,QAAQ,GAAG,EAAE,MAAM,CAAC,KAAK,QAAQ,MAAM;AACpG,eAAW,aAAa,KAAM,MAAK,UAAU,SAAS;AACtD,QAAI,KAAK,QAAQ,SAAS,KAAK,KAAK,QAAQ,oBAAoB,KAAM;AACpE,eAAS,QAAQ,KAAK,cAAc,KAAK,QAAQ,QAAQ,QAAQ,GAAG,QAAS,MAAK,UAAU,GAAG;AAAA,IACjG,OAAO;AACL,WAAK,UAAU,KAAK,QAAQ,eAAe;AAC3C,UAAI,KAAK,QAAQ,WAAW,KAAK,KAAK,QAAQ,oBAAoB,IAAM,MAAK,kBAAkB,KAAK,QAAQ,iBAAiB,KAAK,iBAAiB,KAAK,QAAQ;AAAA,IAClK;AACA,QAAI,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,MAAO,MAAK,iBAAiB,KAAK;AAC7E,SAAK,OAAO,OAAO,OAAO,WAAW,IAAI,CAAC;AAAA,EAC5C;AAAA,EACQ,MAAM,QAAsB;AAClC,SAAK,UAAU,OAAO;AACtB,QAAI,KAAK,QAAQ,UAAU,SAAS,KAAK,SAAS;AAAE,WAAK,IAAI,KAAK,UAAU,KAAK,QAAQ,UAAU,MAAM;AAAG,WAAK,UAAU;AAAA,IAAG;AAC9H,QAAI,KAAK,QAAQ,aAAc,MAAK,UAAU;AAC9C,QAAI,OAAO,SAAU,MAAK,OAAO,MAAM;AAAA,EACzC;AAAA,EACQ,MAAM,MAAsB;AAClC,UAAM,YAAY,OAAO,aAAa,IAAI;AAC1C,QAAI;AACJ,QAAI,OAAO;AACX,QAAI,cAAc,KAAK,QAAQ,YAAY,SAAS,GAAG;AACrD,YAAM,MAAM,cAAc,KAAK,QAAQ,WAAW,KAAK,QAAQ,gBAAgB;AAC/E,cAAQ,MAAM,KAAK,gBAAgB;AACnC,UAAI,KAAK,QAAQ,OAAQ,QAAO,KAAK,OAAO,KAAK,OAAO,IAAI;AAAA,IAC9D,WAAW,OAAO,MAAM,OAAO,KAAK;AAClC,UAAI,KAAK,QAAQ,SAAS,KAAK,QAAQ,WAAW,QAAQ,KAAK;AAAE,eAAO,KAAK,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;AAAI,gBAAQ;AAAA,MAAG,WACpH,KAAK,QAAQ,SAAS;AAAE,eAAO,IAAI,OAAO,aAAa,OAAO,EAAE,CAAC;AAAI,gBAAQ;AAAA,MAAG,MACpF,SAAQ,SAAS,IAAI,KAAK;AAAA,IACjC,MAAO,SAAQ;AACf,QAAI,QAAQ,KAAK,KAAK,kBAAkB,EAAG,QAAO;AAClD,SAAK,gBAAgB,KAAK,IAAI,GAAG,KAAK,gBAAgB,KAAK;AAC3D,WAAO;AAAA,EACT;AAAA,EACQ,MAAM,QAAsB;AAClC,eAAW,WAAW,KAAK,QAAQ,QAAQ,CAAC,MAAM,IAAI,KAAK,SAAS;AAClE,cAAQ,SAAS;AACjB,UAAI,CAAC,QAAQ,MAAM,OAAQ,SAAQ,YAAY;AAAA,IACjD;AAAA,EACF;AAAA,EACQ,KAAK,QAAsB;AACjC,eAAW,WAAW,KAAK,QAAQ,QAAQ,CAAC,MAAM,IAAI,KAAK,QAAS,SAAQ,SAAS,KAAK,QAAQ,SAAS;AAC3G,WAAO,YAAY;AAAA,EACrB;AAAA,EACA,MAAc,KAAK,QAA+B;AAChD,UAAM,OAAO,MAAM,OAAO,OAAO,IAAI;AACrC,QAAI,SAAS,GAAI,QAAO,OAAO,MAAM,IAAI;AACzC,SAAK,KAAK,MAAM;AAAA,EAClB;AAAA,EACA,MAAc,KAAK,QAA+B;AAChD,eAAS;AACP,YAAM,OAAO,MAAM,OAAO,OAAO,IAAI;AACrC,UAAI,SAAS,GAAI;AACjB,UAAI,SAAS,IAAI;AAAE,cAAM,KAAK,KAAK,MAAM;AAAG,YAAI,KAAK,QAAQ,OAAQ,MAAK,YAAY;AAAM;AAAA,MAAQ;AACpG,UAAI,OAAO,GAAG;AAAE,aAAK,MAAM,MAAM;AAAG;AAAA,MAAQ;AAAA,IAC9C;AAAA,EACF;AAAA,EACQ,OAAO,MAAc,MAAoB;AAC/C,UAAM,EAAE,IAAI,IAAI,KAAK,OAAO;AAC5B,QAAI,CAAC,CAAC,QAAW,IAAI,OAAO,QAAQ,QAAQ,OAAO,MAAM,EAAE,SAAS,IAAI,EAAE,EAAG,OAAM,IAAI,QAAQ,8CAA8C;AAC7I,UAAM,QAAQ,IAAI,UAAU,IAAI,YAAY,IAAI,QAAQ;AACxD,QAAI,UAAU,aAAa,UAAU,UAAU;AAC7C,iBAAW,aAAa,KAAM,KAAI,UAAU,WAAW,CAAC,KAAK,IAAK,OAAM,IAAI,QAAQ,wCAAwC;AAAA,IAC9H;AACA,SAAK,iBAAiB;AACtB,SAAK,IAAI,KAAK,QAAQ,MAAM;AAC5B,SAAK,MAAM;AACX,UAAM,QAAQ,CAAC,SAAyB;AACtC,WAAK,OAAO,OAAO,KAAK,MAAM;AAC9B,UAAI,SAAS;AACb,iBAAW,aAAa,KAAM,KAAI,aAAa,OAAO,cAAc,OAAQ;AAC5E,aAAO;AAAA,IACT;AACA,UAAM,OAAO,QAAQ,KAAK,UAAU;AACpC,UAAM,YAAY,KAAK,IAAI,GAAG,KAAK,QAAQ,QAAQ,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC;AAC1F,UAAM,OAAO,KAAK,MAAM,YAAY,CAAC;AACrC,SAAK,OAAO,YAAY,IAAI,KAAK,QAAQ,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,YAAY,IAAI,CAAC;AAC7I,SAAK,OAAO;AAAA;AAAA,EAAO,KAAK,OAAO,KAAK,KAAK,QAAQ,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,OAAO,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,OAAO,KAAK,KAAK,IAAI,GAAG,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI;AAAA;AAAA;AAAA,CAAQ;AAC7K,SAAK,aAAa;AAClB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EACA,MAAc,KAAK,QAAgB,MAAc,MAA6B;AAC5E,QAAI,OAAO,MAAM,OAAO,OAAO,IAAI;AACnC,QAAI,SAAS,MAAM,OAAO,MAAM;AAAE,aAAO,MAAM,OAAO,OAAO,IAAI;AAAG,UAAI,SAAS,GAAI,QAAO,MAAM,OAAO,OAAO,IAAI;AAAA,IAAG;AACvH,WAAO,OAAO;AACd,QAAI,SAAS,IAAI;AACf,YAAM,KAAK,KAAK,MAAM;AACtB,WAAK,WAAW;AAChB,UAAI,KAAK,cAAc,CAAC,KAAK,OAAO;AAAE,aAAK,WAAW;AAAM,aAAK,OAAO,MAAM,IAAI;AAAA,MAAG,WAC5E,KAAK,QAAQ,OAAQ,MAAK,YAAY;AAC/C;AAAA,IACF;AACA,QAAI,OAAO,GAAG;AAAE,WAAK,MAAM,MAAM;AAAG;AAAA,IAAQ;AAC5C,QAAI,QAAQ,SAAS,KAAK,KAAK,KAAK,MAAM,IAAI;AAC9C,QAAI,KAAK,QAAQ,YAAY,KAAK,gBAAgB,KAAK,aAAa;AAAE,WAAK,gBAAgB;AAAG,YAAM,KAAK,KAAK,MAAM;AAAG;AAAA,IAAQ;AAC/H,QAAI,CAAC,KAAK,SAAS;AACjB,WAAK,WAAW;AAChB,UAAI,KAAK,cAAc,CAAC,KAAK,MAAO,MAAK,OAAO,MAAM,IAAI;AAC1D,UAAI,KAAK,QAAQ,SAAS,KAAK,YAAY;AACzC,cAAM,UAAU,KAAK;AACrB,aAAK,aAAa;AAClB,iBAAS,QAAQ,GAAG,QAAQ,SAAS,SAAS;AAAE,eAAK,MAAM,KAAK,QAAQ,KAAK,CAAE;AAAG,eAAK;AAAA,QAAc;AACrG,aAAK,UAAU,OAAO;AACtB,aAAK,SAAS,KAAK,QAAQ,WAAW,KAAK,cAAc;AACzD,aAAK,aAAa;AAAA,MACpB;AACA,UAAI,KAAK,QAAQ,UAAU,SAAS,KAAK,SAAS;AAAE,aAAK,IAAI,KAAK,UAAU,KAAK,QAAQ,UAAU,MAAM;AAAG,aAAK,UAAU;AAAA,MAAG;AAC9H,UAAI,KAAK,QAAQ,aAAc,MAAK,UAAU;AAAA,IAChD;AACA,QAAI,OAAO,SAAU,MAAK,OAAO,MAAM;AACvC,SAAK,QAAQ;AACb,QAAI,SAAS,GAAI;AACjB,eAAW,aAAa,MAAO,MAAK,UAAU,SAAS;AACvD,eAAS;AACP,aAAO,MAAM,OAAO,OAAO,IAAI;AAC/B,UAAI,SAAS,GAAI;AACjB,UAAI,SAAS,IAAI;AAAE,cAAM,KAAK,KAAK,MAAM;AAAG,YAAI,KAAK,QAAQ,OAAQ,MAAK,YAAY;AAAM;AAAA,MAAQ;AACpG,UAAI,OAAO,GAAG;AAAE,aAAK,MAAM,MAAM;AAAG;AAAA,MAAQ;AAC5C,YAAM,WAAW,KAAK;AACtB,cAAQ,KAAK,MAAM,IAAI;AACvB,UAAI,KAAK,QAAQ,YAAY,KAAK,gBAAgB,KAAK,aAAa;AAAE,aAAK,gBAAgB;AAAU,cAAM,KAAK,KAAK,MAAM;AAAG;AAAA,MAAQ;AACtI,iBAAW,aAAa,MAAO,MAAK,UAAU,SAAS;AAAA,IACzD;AAAA,EACF;AAAA,EACQ,QAAiB;AACvB,WAAO,KAAK,QAAQ,KAAK,YAAU,OAAO,WAAW,UAAU,OAAO,WAAW,UAAU,KAAK,SAAS,OAAO,YAAY,KAAK,OAAO,MAAM,SAAS,CAAC;AAAA,EAC1J;AAAA,EACA,MAAc,UAAU,MAAc,MAA6B;AACjE,SAAK,OAAO,OAAO,CAAC,KAAK,YAAY;AACrC,SAAK,eAAe;AACpB,UAAM,QAAsB,CAAC;AAC7B,SAAK,UAAU;AACf,eAAW,UAAU,KAAK,SAAS;AAAE,aAAO,QAAQ,CAAC;AAAG,aAAO,UAAU;AAAA,IAAG;AAC5E,QAAI;AACF,iBAAW,UAAU,KAAK,SAAS;AACjC,iBAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,OAAO,WAAW,QAAQ,SAAS;AAC1E,eAAK,SAAS;AACd,eAAK,gBAAgB;AACrB,gBAAM,KAAK,KAAK,QAAQ,MAAM,IAAI;AAClC,cAAI,OAAO,WAAW,UAAU,KAAK,OAAO,QAAQ;AAClD,iBAAK,OAAO,OAAO,EAAE;AACrB,iBAAK,gBAAgB;AACrB,kBAAM,KAAK,EAAE,MAAM,KAAK,QAAQ,KAAK,KAAK,cAAc,CAAC;AAAA,UAC3D;AAAA,QACF;AAAA,MACF;AAAA,IACF,UAAE;AAAU,WAAK,UAAU;AAAA,IAAO;AAClC,QAAI,QAAQ;AACZ,aAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,QAAQ,SAAS;AACxD,YAAM,SAAS,KAAK,QAAQ,KAAK;AACjC,YAAM,QAAQ,KAAK,MAAM,MAAM,SAAS,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,SAAS,KAAK,QAAQ,SAAS,IAAI;AACjH,aAAO,QAAQ,MAAM,MAAM,OAAO,QAAQ,KAAK;AAC/C,aAAO,YAAY;AACnB,eAAS;AAAA,IACX;AAAA,EACF;AAAA,EACQ,WAAW,QAAgB,MAAc,MAAoB;AACnE,SAAK,WAAW;AAChB,QAAI,KAAK,WAAY,MAAK,OAAO,MAAM,IAAI;AAC3C,QAAI,OAAO,WAAW,QAAQ;AAC5B,iBAAW,WAAW,KAAK,QAAS,SAAQ,SAAS;AACrD,UAAI,KAAK,QAAQ,CAAC,EAAG,aAAa,GAAG;AAAE,YAAI,CAAC,KAAK,QAAQ,YAAa,MAAK,WAAW;AAAO;AAAA,MAAQ;AAAA,IACvG;AACA,UAAM,OAAO,OAAO,MAAM,OAAO,SAAS;AAC1C,QAAI,CAAC,KAAM;AACX,QAAI,KAAK,QAAQ,UAAU,SAAS,KAAK,SAAS;AAAE,WAAK,IAAI,KAAK,UAAU,KAAK,QAAQ,UAAU,MAAM;AAAG,WAAK,UAAU;AAAA,IAAG;AAC9H,QAAI,KAAK,QAAQ,aAAc,MAAK,UAAU;AAC9C,eAAW,aAAa,KAAK,KAAM,MAAK,UAAU,SAAS;AAC3D,QAAI,KAAK,WAAW,GAAG;AACrB,WAAK,iBAAiB,OAAO,QAAQ,KAAK;AAC1C,UAAI,OAAO,QAAQ,KAAK,QAAQ,UAAU,WAAW,KAAK,QAAQ,OAAQ,MAAK,kBAAkB,KAAK,QAAQ,UAAU;AAAA,IAC1H;AAAA,EACF;AAAA,EACA,MAAM,IAAI,SAAmB,MAAc,MAA6B;AACtE,UAAM,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,SAAS,KAAK,QAAQ;AACjE,aAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC1C,YAAM,QAAQ,UAAU,IAAI,KAAK,QAAQ,SAAS,KAAK,QAAQ,UAAU,SAAS,KAAK,QAAQ,WAC3F,KAAK,QAAQ,SAAS,SAAS,KAAK,cAAc,KAAK,QAAQ,UAAU,WAAW,KAAK,QAAQ,SAAS,KAAK,QAAQ,WAAW,KAAK,cAAc,KAAK;AAC9J,WAAK,QAAQ,KAAK;AAAA,QAAE,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,QAAI,QAAQ;AAAA,QAAQ,MAAM;AAAA,QAC1F,UAAU,KAAK,QAAQ,aAAa,CAAC,KAAK,QAAQ,SAAS,UAAU;AAAA,QAAI;AAAA,QACzE,OAAO,CAAC;AAAA,QAAG,SAAS;AAAA,QAAG,WAAW;AAAA,MAAE,CAAC;AAAA,IACzC;AACA,QAAI;AAAE,YAAM,KAAK,MAAM,MAAM,IAAI;AAAA,IAAG,SAC7B,OAAO;AAAE,UAAI,iBAAiB,YAAa,OAAM,KAAK,MAAM;AAAG,YAAM;AAAA,IAAO;AAAA,EACrF;AAAA,EACA,MAAc,MAAM,MAAc,MAA6B;AAC7D,eAAS;AACP,UAAI,KAAK,MAAO,OAAM,KAAK,UAAU,MAAM,IAAI;AAAA,UAC1C,YAAW,UAAU,KAAK,QAAS,QAAO,YAAY,OAAO,WAAW,SAAS,KAAK,OAAO;AAClG,UAAI,CAAC,KAAK,MAAM,EAAG;AACnB,WAAK,OAAO,KAAK;AACjB,WAAK,aAAa,KAAK,QAAQ;AAC/B,UAAI,UAAU;AACd,UAAI,OAAO,KAAK,QAAQ,KAAK,QAAQ,cAAc,IAAI;AACvD,aAAO,OAAO,KAAK,KAAK,MAAM,GAAG;AAC/B,aAAK,iBAAiB;AAAG,aAAK,SAAS;AAAG,aAAK,aAAa;AAAG,aAAK,WAAW;AAAO,aAAK,aAAa;AAAO,aAAK,QAAQ;AAC5H,mBAAW,UAAU,KAAK,SAAS;AACjC,eAAK,OAAO,OAAO;AACnB,eAAK,gBAAgB;AACrB,cAAI,OAAO,YAAY,KAAK,OAAO,WAAW,QAAQ;AACpD,iBAAK,WAAW;AAChB,iBAAK,UAAU,OAAO;AACtB,gBAAI,KAAK,MAAO,MAAK,WAAW,QAAQ,MAAM,IAAI;AAAA,gBAC7C,OAAM,KAAK,KAAK,QAAQ,MAAM,IAAI;AACvC,wBAAY,KAAK;AACjB,mBAAO;AACP,gBAAI,OAAO,aAAa,KAAK,CAAC,KAAK,MAAM,EAAG;AAC5C,gBAAI,KAAK,QAAQ,SAAS,OAAO,WAAW,QAAQ;AAClD,kBAAI,KAAK,MAAO,MAAK,aAAa;AAAA,uBACzB,OAAO,WAAW,YAAY,KAAK,SAAU,MAAK,MAAM,MAAM;AAAA,YACzE;AAAA,UACF,WAAW,KAAK,QAAQ,OAAO;AAAE,gBAAI,KAAK,MAAO,MAAK,aAAa;AAAA,gBAAW,MAAK,MAAM,MAAM;AAAA,UAAG;AAClG,cAAI,KAAK,QAAQ,aAAc,MAAK;AAAA,QACtC;AACA,YAAI,KAAK,UAAU;AAAE,eAAK,OAAO,IAAI;AAAG;AAAA,QAAQ;AAChD,YAAI,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,QAAQ,aAAa;AAAE,gBAAM,KAAK,MAAM;AAAG;AAAA,QAAO;AAC7E,YAAI,KAAK,QAAQ,eAAe,SAAS;AAAE,eAAK,OAAO,IAAI;AAAG;AAAA,QAAQ;AACtE,cAAM,KAAK,MAAM;AAAA,MACnB;AACA,UAAI,SAAS;AAAG,mBAAW,UAAU,KAAK,QAAS,KAAI,OAAO,WAAW,OAAQ,QAAO,OAAO;AAAA;AAC/F,UAAI,WAAW,KAAK,QAAQ,YAAa,MAAK,OAAO,KAAK,QAAQ,WAAW,OAAO,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC;AAAA,eACtG,KAAK,QAAQ,UAAU,KAAK,WAAW;AAAE,aAAK,OAAO,IAAI;AAAG,aAAK,YAAY;AAAA,MAAO;AAC7F,YAAM,KAAK,MAAM;AACjB,WAAK;AACL,iBAAW,UAAU,KAAK,QAAS,KAAI,OAAO,WAAW,OAAQ,QAAO,SAAS;AAAA,IACnF;AAAA,EACF;AACF;;;AJjWO,SAAS,gBAAgB,UAA6B,CAAC,GAAsB;AAClF,QAAM,SAAS,SAAS,OAAO;AAC/B,SAAO,EAAE,MAAM,MAAM,aAAa,uDAAuD,MAAM,QAAQ,SAAS;AAC9G,UAAM,SAAS,sBAAsB,SAAS,QAAQ,MAAM;AAC5D,UAAM,SAAS,IAAI,OAAO,SAAS,QAAQ,OAAO,MAAM;AACxD,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,WAAW;AACf,QAAI;AACF,kBAAY,IAAI,UAAU,QAAQ,MAAM;AACxC,YAAM,SAAS,aAAa,OAAO,UAAU,GAAG,MAAM;AACtD,UAAI,OAAO,aAAa;AACtB,cAAM,UAAU,MAAM,OAAO,gBAAgB,YAAY,wBAAwB,4JAA4J;AAAA,MAC/O,OAAO;AACL,cAAM,QAAQ,QAAQ,IAAI,UAAU,QAAQ,IAAI,YAAY,QAAQ,IAAI,QAAQ;AAChF,cAAM,aAAa,QAAQ,IAAI,UAAU,QAAQ,IAAI,WAAW,QAAQ,IAAI,QAAQ;AACpF,mBAAW,UAAU,CAAC,OAAO,UAAU,EAAG,KAAI,CAAC,CAAC,KAAK,SAAS,WAAW,QAAQ,EAAE,SAAS,MAAM,EAAG,OAAM,IAAI,QAAQ,sBAAsB,MAAM,MAAM,CAAC,EAAE;AAC5J,YAAI;AACJ,cAAM,OAAO,CAAC,WAAuC;AACnD,cAAI;AACJ,cAAI,QAAQ,KAAM,gBAAe,OAAO,KAAK;AAAA,cACxC,gBAAe,aAAa,QAAQ,SAAS,KAAK,KAAK;AAC5D,gBAAM,QAAQ,IAAI,KAAK,YAAY;AACnC,cAAI,CAAC,OAAO,SAAS,YAAY,KAAK,OAAO,MAAM,MAAM,QAAQ,CAAC,EAAG,OAAM,IAAI,QAAQ,0BAA0B;AACjH,gBAAM,OAAO,OAAO,MAAM,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG;AAC3D,gBAAM,QAAQ,OAAO,MAAM,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;AAC7D,gBAAM,MAAM,OAAO,MAAM,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG;AACtD,gBAAM,OAAO,GAAG,OAAO,MAAM,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,OAAO,MAAM,cAAc,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;AAC9G,cAAI,QAAQ,IAAI,oBAAoB,WAAc,eAAe,OAAO,eAAe,SAAU,QAAO,GAAG,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,MAAM,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI;AACnR,iBAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,QACxC;AACA,YAAI;AACJ,cAAM,OAAO,OAAO,SAA8C;AAChE,cAAI,SAAS,OAAO,MAAO,QAAO;AAClC,gBAAM,SAAS,IAAI,OAAO,MAAM,SAAU;AAC1C,cAAI;AAAE,kBAAM,OAAO,KAAK;AAAA,UAAG,SACpB,OAAO;AACZ,gBAAI,EAAE,iBAAiB,SAAU,OAAM;AACvC,uBAAW;AACX,gBAAI,CAAC,OAAO,OAAO;AACjB,oBAAM,UAAW,MAAM,OAAO,UAAU,IAAI,CAAC,KAAK,SAAS,KAAK,CAAC;AAAA,GAAM,IAAI;AAAA,YAC7E;AACA,mBAAO;AAAA,UACT;AACA,cAAI,SAAS,IAAK,SAAQ;AAC1B,iBAAO;AAAA,QACT;AACA,cAAM,QAAQ,OAAO,MAAM,SAAS,OAAO,QAAQ,CAAC,GAAG;AACvD,YAAI,CAAC,OAAO,MAAM,OAAQ,QAAO,QAAQ;AACzC,cAAM,SAAS,OAAO,QAAQ,CAAC,KAAK,IAAI,MAAM,IAAI,UAAQ,CAAC,IAAI,CAAC;AAChE,mBAAW,SAAS,QAAQ;AAC1B,gBAAM,YAAY,IAAI,UAAU,EAAE,GAAG,OAAO,GAAG,WAAW,MAAM,MAAM;AACtE,gBAAM,UAAoB,CAAC;AAC3B,qBAAW,QAAQ,OAAO;AAAE,kBAAM,SAAS,MAAM,KAAK,IAAI;AAAG,gBAAI,OAAQ,SAAQ,KAAK,MAAM;AAAA,UAAG;AAC/F,cAAI,CAAC,QAAQ,OAAQ;AACrB,gBAAM,QAAQ,OAAO,WAAW,OAAO,SAAS,QAAQ,CAAC,EAAG,SAAS,MAAM,KAAK,QAAQ,CAAC,EAAG;AAC5F,gBAAM,UAAU,IAAI,SAAS,KAAK,OAAO,QAAQ,SAAY,QAAQ,CAAC,CAAC,GAAG,KAAK;AAAA,QACjF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,gBAAU,EAAE,QAAQ,MAAM;AAC1B,gBAAU,EAAE,QAAQ,MAAM;AAC1B,UAAI,CAAC,OAAO,OAAO,WAAW,aAAa,iBAAiB,SAAS;AACnE,mBAAW;AACX,YAAI;AACF,gBAAM,UAAU,MAAM,OAAO,wBAAwB,OAAO,QAAQ,eAAe,CAAC;AAAA,GAAM,IAAI;AAC9F,cAAI,MAAM,MAAO,OAAM,UAAU,MAAM,2CAA2C,IAAI;AACtF,oBAAU;AAAA,QACZ,SAAS,WAAW;AAAE,oBAAU,EAAE,QAAQ,IAAI,eAAe,CAAC,OAAO,SAAS,GAAG,6BAA6B,EAAE;AAAA,QAAG;AAAA,MACrH;AAAA,IACF;AACA,QAAI;AAAE,YAAM,OAAO,MAAM;AAAA,IAAG,SACrB,SAAS;AACd,YAAM,WAAW,WAAW;AAC5B,gBAAU,EAAE,QAAQ,WAAW,IAAI,eAAe,CAAC,SAAS,QAAQ,OAAO,GAAG,iCAAiC,IAAI,QAAQ;AAAA,IAC7H;AACA,YAAQ,OAAO,eAAe;AAC9B,WAAO,OAAO,eAAe;AAC7B,QAAI,QAAS,OAAM,QAAQ;AAC3B,WAAO,EAAE,SAAS;AAAA,EACpB,EAAE;AACJ;;;ADnFO,SAAS,iBAAiB,UAA6B,CAAC,GAAiC;AAC9F,SAAO,CAAC,gBAAgB,OAAO,CAAC;AAClC;AAEO,SAAS,WAAW,UAA6B,CAAC,GAAuB;AAC9E,QAAM,WAAW,iBAAiB,OAAO;AACzC,SAAO,EAAE,MAAM,eAAe,MAAM,MAAM;AACxC,eAAW,WAAW,SAAU,MAAK,SAAS,SAAS,SAAS,EAAE,SAAS,QAAQ,WAAW,MAAM,CAAC;AAAA,EACvG,EAAE;AACJ;",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["value"]
|
|
7
7
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-C7Z2SSTY.js";
|
|
4
|
+
import {
|
|
5
|
+
PublicDiagnostic
|
|
6
|
+
} from "./chunk-TTTOMUAY.js";
|
|
4
7
|
import {
|
|
5
|
-
PublicDiagnostic,
|
|
6
8
|
getCommandArguments,
|
|
7
9
|
shellValueByteLength,
|
|
8
|
-
shellValueBytes
|
|
10
|
+
shellValueBytes
|
|
11
|
+
} from "./chunk-UO33SQJU.js";
|
|
12
|
+
import {
|
|
9
13
|
yieldTurn
|
|
10
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FDGESHPB.js";
|
|
11
15
|
import {
|
|
12
16
|
init_platform
|
|
13
17
|
} from "./chunk-2KL6W6NB.js";
|
|
@@ -620,4 +624,4 @@ export {
|
|
|
620
624
|
createGetoptCommands,
|
|
621
625
|
getoptCommands
|
|
622
626
|
};
|
|
623
|
-
//# sourceMappingURL=chunk-
|
|
627
|
+
//# sourceMappingURL=chunk-2YHZYNLC.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commands/getopt/index.ts", "../../src/commands/getopt/command.ts", "../../src/commands/getopt/internal.ts", "../../src/commands/getopt/io.ts", "../../src/commands/getopt/parser.ts"],
|
|
4
4
|
"sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createGetoptCommand } from \"./command.js\";\nimport type { GetoptCommandsOptions } from \"./internal.js\";\n\nexport { createGetoptCommand } from \"./command.js\";\nexport type { GetoptCommandsOptions, GetoptLimits } from \"./internal.js\";\n\nexport function createGetoptCommands(options: GetoptCommandsOptions = {}): readonly CommandDefinition[] {\n return [createGetoptCommand(options)];\n}\n\nexport function getoptCommands(options: GetoptCommandsOptions = {}): VirtualShellPlugin {\n const commands = createGetoptCommands(options);\n return { name: \"getopt-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import type { CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { Budget, GetoptError, settings, type GetoptCommandsOptions } from \"./internal.js\";\nimport { Writer } from \"./io.js\";\nimport { Parser, addLongOptions, findShort, type LongOption } from \"./parser.js\";\n\nconst wrapperOptions: readonly LongOption[] = [\n { name: \"options\", argument: 1, code: \"o\" }, { name: \"longoptions\", argument: 1, code: \"l\" },\n { name: \"quiet\", argument: 0, code: \"q\" }, { name: \"quiet-output\", argument: 0, code: \"Q\" },\n { name: \"shell\", argument: 1, code: \"s\" }, { name: \"test\", argument: 0, code: \"T\" },\n { name: \"unquoted\", argument: 0, code: \"u\" }, { name: \"help\", argument: 0, code: \"h\" },\n { name: \"alternative\", argument: 0, code: \"a\" }, { name: \"name\", argument: 1, code: \"n\" },\n { name: \"version\", argument: 0, code: \"V\" },\n];\n\nexport function createGetoptCommand(options: GetoptCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"getopt\", description: \"Parse short and long options and emit shell-quoted arguments\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let writer: Writer | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n writer = new Writer(budget, output);\n const args = await budget.arguments();\n const compatible = context.env.GETOPT_COMPATIBLE !== undefined;\n const posix = context.env.POSIXLY_CORRECT !== undefined;\n let specification: string | undefined;\n let parameters = args;\n const longOptions: LongOption[] = [];\n let quote = true, tcsh = false, quiet = false, quietOutput = false, alternative = false;\n let name = \"getopt\";\n let complete = false;\n if (!args.length) {\n if (!compatible) throw new GetoptError(\"missing optstring argument\", 2, true);\n await writer.send([\" --\\n\"]);\n complete = true;\n } else if (compatible || args[0]![0] !== \"-\") {\n let start = 0;\n while (args[0]![start] === \"+\" || args[0]![start] === \"-\") { await budget.step(); start++; }\n specification = args[0]!.slice(start);\n budget.schema(specification.length);\n parameters = args.slice(1);\n quote = false;\n } else {\n const wrapper = new Parser(args, \"+ao:l:n:qQs:TuhV\", wrapperOptions, false, posix, false, \"getopt\", budget, writer);\n for (;;) {\n const parsed = await wrapper.next();\n if (!parsed) break;\n if (parsed.kind === \"error\") { await writer.send([\"Try 'getopt --help' for more information.\\n\"], true); exitCode = 2; complete = true; break; }\n if (parsed.kind === \"operand\") throw new GetoptError(\"unexpected wrapper operand\");\n const option = parsed.kind === \"long\" ? parsed.option.code : parsed.option;\n switch (option) {\n case \"o\": specification = parsed.argument!; budget.schema(specification.length); break;\n case \"l\": await addLongOptions(parsed.argument!, longOptions, budget); break;\n case \"n\": name = parsed.argument!; break;\n case \"a\": alternative = true; break;\n case \"q\": quiet = true; break;\n case \"Q\": quietOutput = true; break;\n case \"u\": quote = false; break;\n case \"s\":\n if (parsed.argument === \"bash\" || parsed.argument === \"sh\") tcsh = false;\n else if (parsed.argument === \"tcsh\" || parsed.argument === \"csh\") tcsh = true;\n else throw new GetoptError(\"unknown shell after -s or --shell argument\", 2, true);\n break;\n case \"T\": exitCode = 4; complete = true; break;\n case \"V\": await writer.send([\"getopt (virtual-bash)\\n\"]); complete = true; break;\n case \"h\":\n await writer.send([\"Usage: getopt [OPTIONS] -o OPTSTRING [--] PARAMETERS...\\nParse short and long options and emit shell-quoted arguments.\\nOptions: -a, --alternative; -l, --longoptions; -n, --name; -o, --options;\\n -q, --quiet; -Q, --quiet-output; -s, --shell; -T, --test;\\n -u, --unquoted; -h, --help; -V, --version\\n\"]);\n complete = true; break;\n }\n if (complete) break;\n }\n if (!complete) {\n if (specification === undefined) {\n if (wrapper.index === args.length) throw new GetoptError(\"missing optstring argument\", 2, true);\n specification = args[wrapper.index++]!;\n budget.schema(specification.length);\n }\n parameters = args.slice(wrapper.index);\n }\n }\n if (!complete) {\n const parser = new Parser(parameters, specification!, longOptions, alternative, posix, quiet, name, budget, writer);\n for (;;) {\n const parsed = await parser.next();\n if (!parsed) break;\n if (parsed.kind === \"error\") { exitCode = 1; continue; }\n if (quietOutput) continue;\n if (parsed.kind === \"operand\") await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n else if (parsed.kind === \"long\") {\n await writer.send([\" --\", parsed.option.name]);\n if (parsed.option.argument) await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n } else {\n await writer.send([\" -\", parsed.option]);\n const offset = await findShort(specification!, parsed.option, 0, budget);\n if (offset >= 0 && specification![offset + 1] === \":\") await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n }\n }\n if (!quietOutput) {\n await writer.send([\" --\"]);\n for (const operand of parser.operands) await writer.normalized(operand, quote, tcsh);\n for (let index = parser.index; index < parameters.length; index++) await writer.normalized(parameters[index]!, quote, tcsh);\n await writer.send([\"\\n\"]);\n }\n }\n } catch (error) {\n primary = { reason: error };\n if (error instanceof GetoptError && !output.signal.aborted && writer) {\n exitCode = error.status;\n try { await writer.send([\"getopt: \", error.message, \"\\n\", error.usage ? \"Try 'getopt --help' for more information.\\n\" : \"\"], true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"getopt failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"getopt execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface GetoptLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxSchemaBytes: number;\n readonly maxLongOptions: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n}\n\nexport interface GetoptCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<GetoptLimits>;\n}\n\nexport function settings(options: GetoptCommandsOptions): GetoptLimits {\n const limits: GetoptLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 1_048_576,\n maxSchemaBytes: 65_536, maxLongOptions: 4096, maxBufferedBytes: 4_194_304,\n maxOutputBytes: 8_388_608, maxDiagnosticBytes: 65_536, maxWork: 8_388_608,\n ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid getopt limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class GetoptError extends PublicDiagnostic {\n constructor(message: string, readonly status = 3, readonly usage = false) { super(message); }\n}\n\nexport class Budget {\n private work = 0;\n private quantum = 0;\n private retained = 0;\n private diagnosticRetained = 0;\n private schemaBytes = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: GetoptLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new GetoptError(`${label} limit exceeded`);\n }\n async step(amount = 1, diagnostic = false): Promise<void> {\n this.signal.throwIfAborted();\n if (!diagnostic) { this.check(this.work + amount, this.limits.maxWork, \"work\"); this.work += amount; }\n this.quantum += amount;\n if (this.quantum >= 1024) { this.quantum = 0; await yieldTurn(this.signal); }\n }\n retain(amount: number, diagnostic = false): void {\n if (diagnostic) {\n this.check(this.diagnosticRetained + amount, this.limits.maxDiagnosticBytes, \"diagnostic buffered bytes\");\n this.diagnosticRetained += amount;\n } else {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n }\n schema(amount: number): void {\n this.check(this.schemaBytes + amount, this.limits.maxSchemaBytes, \"schema bytes\");\n this.schemaBytes += amount;\n }\n room(amount: number, diagnostic = false): void {\n this.check((diagnostic ? this.diagnostics : this.output) + amount,\n diagnostic ? this.limits.maxDiagnosticBytes : this.limits.maxOutputBytes, diagnostic ? \"diagnostic bytes\" : \"output bytes\");\n }\n emitted(amount: number, diagnostic: boolean): void {\n this.room(amount, diagnostic);\n if (diagnostic) this.diagnostics += amount;\n else this.output += amount;\n }\n async arguments(): Promise<string[]> {\n const args = this.context.args;\n this.signal.throwIfAborted();\n this.check(args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of args) {\n this.check(argument.length, this.limits.maxArgumentBytes, \"argument bytes\");\n total += argument.length;\n this.check(total, this.limits.maxInputBytes, \"input bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n await this.step();\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new GetoptError(\"arguments must contain well-formed Unicode\", 2);\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new GetoptError(\"arguments must contain well-formed Unicode\", 2);\n }\n }\n const values = this.context.argumentValues === undefined ? args : getCommandArguments(this.context).values;\n total = 0;\n for (const argument of values) {\n await this.step();\n const size = shellValueByteLength(argument);\n this.check(size, this.limits.maxArgumentBytes, \"argument bytes\");\n total += size;\n this.check(total, this.limits.maxInputBytes, \"input bytes\");\n }\n this.retain(total * 8 + args.length * 64 + 256);\n this.signal.throwIfAborted();\n const owned = getCommandArguments(this.context).values;\n const result: string[] = [];\n for (const argument of owned) {\n await this.step();\n const value = shellValueBytes(argument);\n let text = \"\";\n for (let offset = 0; offset < value.length; offset += 256) {\n const end = Math.min(offset + 256, value.length);\n for (let index = offset; index < end; index++) {\n await this.step();\n if (value[index] === 0) throw new GetoptError(\"NUL is not supported in arguments\", 2);\n }\n text += String.fromCharCode(...value.subarray(offset, end));\n }\n result.push(text);\n }\n return result;\n }\n}\n", "import type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, GetoptError } from \"./internal.js\";\n\nexport class Writer {\n private readonly pending = new Set<Promise<unknown>>();\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new GetoptError(\"command is closed\");\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n });\n }\n private async publish(length: number, diagnostic: boolean, fill: (buffer: Uint8Array) => Promise<void>): Promise<void> {\n this.assertOpen();\n this.budget.emitted(length, diagnostic);\n this.budget.retain(length, diagnostic);\n const pending = Promise.resolve().then(async () => {\n this.assertOpen();\n const buffer = new Uint8Array(length);\n await fill(buffer);\n this.assertOpen();\n const sink = diagnostic ? this.budget.context.stderr : this.budget.context.stdout;\n this.assertOpen();\n const destination = sink.ownedOutput ?? sink;\n this.assertOpen();\n const write = destination.write;\n this.assertOpen();\n await Reflect.apply(write, destination, [buffer]);\n });\n this.pending.add(pending);\n try { await pending; this.assertOpen(); }\n finally { this.pending.delete(pending); this.budget.retain(-length, diagnostic); }\n }\n async send(parts: readonly string[], diagnostic = false): Promise<void> {\n let length = 0;\n for (const part of parts) { await this.budget.step(1, diagnostic); length += part.length; this.budget.room(length, diagnostic); }\n await this.publish(length, diagnostic, async buffer => {\n let offset = 0;\n for (const part of parts) for (let index = 0; index < part.length; index++) {\n await this.budget.step(1, diagnostic);\n buffer[offset++] = part.charCodeAt(index);\n }\n });\n }\n async normalized(value: string, quote: boolean, tcsh: boolean): Promise<void> {\n if (!quote) { await this.send([\" \", value]); return; }\n let length = 3;\n for (let offset = 0; offset < value.length; offset++) {\n await this.budget.step();\n const code = value.charCodeAt(offset);\n length += code === 39 || (tcsh && (code === 33 || code === 9 || code === 11 || code === 12 || code === 13 || code === 32)) ? 4\n : tcsh && (code === 92 || code === 10) ? 2 : 1;\n this.budget.room(length);\n }\n await this.publish(length, false, async buffer => {\n let offset = 0;\n buffer[offset++] = 32;\n buffer[offset++] = 39;\n for (let index = 0; index < value.length; index++) {\n const code = value.charCodeAt(index);\n await this.budget.step();\n if (code === 39 || (tcsh && (code === 33 || code === 9 || code === 11 || code === 12 || code === 13 || code === 32))) {\n buffer[offset++] = 39; buffer[offset++] = 92; buffer[offset++] = code; buffer[offset++] = 39;\n } else if (tcsh && (code === 92 || code === 10)) {\n buffer[offset++] = 92; buffer[offset++] = code === 10 ? 110 : 92;\n } else buffer[offset++] = code;\n }\n buffer[offset] = 39;\n });\n }\n}\n", "import { Budget, GetoptError } from \"./internal.js\";\nimport type { Writer } from \"./io.js\";\n\nexport interface LongOption { readonly name: string; readonly argument: 0 | 1 | 2; readonly code?: string; }\nexport type ParsedOption =\n | { readonly kind: \"short\"; readonly option: string; readonly argument: string | undefined }\n | { readonly kind: \"long\"; readonly option: LongOption; readonly argument: string | undefined }\n | { readonly kind: \"operand\"; readonly argument: string | undefined }\n | { readonly kind: \"error\" };\n\nexport async function findShort(specification: string, option: string, start: number, budget: Budget): Promise<number> {\n for (let offset = start; offset < specification.length; offset++) {\n await budget.step();\n if (specification[offset] === option) return offset;\n }\n return -1;\n}\n\nexport async function addLongOptions(value: string, options: LongOption[], budget: Budget): Promise<void> {\n budget.schema(value.length);\n let start = 0;\n for (let offset = 0; offset <= value.length; offset++) {\n await budget.step();\n const code = value.charCodeAt(offset);\n if (offset !== value.length && code !== 44 && code !== 32 && code !== 9 && code !== 10) continue;\n if (offset > start) {\n let end = offset;\n let argument: 0 | 1 | 2 = 0;\n if (value[end - 1] === \":\") { argument = 1; end--; if (end > start && value[end - 1] === \":\") { argument = 2; end--; } }\n if (end === start) throw new GetoptError(\"empty long option after -l or --long argument\", 2, true);\n budget.check(options.length + 1, budget.limits.maxLongOptions, \"long option count\");\n budget.retain((end - start) * 2 + 64);\n options.push({ name: value.slice(start, end), argument });\n }\n start = offset + 1;\n }\n}\n\nexport class Parser {\n index = 0;\n private offset = 0;\n private ended = false;\n readonly operands: string[] = [];\n private readonly start: number;\n private readonly order: \"require\" | \"return\" | \"permute\";\n private readonly silent: boolean;\n constructor(readonly args: readonly string[], readonly specification: string, readonly options: readonly LongOption[],\n readonly alternative: boolean, posix: boolean, quiet: boolean, readonly name: string, readonly budget: Budget,\n readonly writer: Writer) {\n this.start = specification[0] === \"+\" || specification[0] === \"-\" ? 1 : 0;\n this.order = specification[0] === \"-\" ? \"return\" : specification[0] === \"+\" || posix ? \"require\" : \"permute\";\n this.silent = quiet || specification[this.start] === \":\";\n }\n private async error(parts: readonly string[]): Promise<ParsedOption> {\n if (!this.silent) await this.writer.send([this.name, ...parts], true);\n return { kind: \"error\" };\n }\n private async long(value: string, prefix: string, fallback: boolean): Promise<ParsedOption | null> {\n let end = 0;\n while (end < value.length && value[end] !== \"=\") { await this.budget.step(); end++; }\n const lease = this.options.length * 64 + 128;\n this.budget.retain(lease);\n try {\n const matches: LongOption[] = [];\n let exact: LongOption | undefined;\n for (const option of this.options) {\n await this.budget.step();\n let matched = option.name.length >= end;\n for (let offset = 0; matched && offset < end; offset++) {\n await this.budget.step();\n if (option.name[offset] !== value[offset]) matched = false;\n }\n if (!matched) continue;\n if (option.name.length === end) { exact = option; break; }\n matches.push(option);\n }\n if (!exact && matches.length > 1) {\n this.index++; this.offset = 0;\n if (!this.silent) {\n const parts = [this.name, \": option '\", prefix, value, \"' is ambiguous; possibilities:\"];\n for (const option of matches) parts.push(\" '\", prefix, option.name, \"'\");\n parts.push(\"\\n\");\n await this.writer.send(parts, true);\n }\n return { kind: \"error\" };\n }\n const option = exact ?? matches[0];\n if (!option) {\n if (fallback && await findShort(this.specification, value[0] ?? \"\", this.start, this.budget) >= 0) return null;\n this.index++; this.offset = 0;\n return await this.error([\": unrecognized option '\", prefix, value, \"'\\n\"]);\n }\n this.index++; this.offset = 0;\n let argument: string | undefined;\n if (end < value.length) {\n if (!option.argument) return await this.error([\": option '\", prefix, option.name, \"' doesn't allow an argument\\n\"]);\n argument = value.slice(end + 1);\n } else if (option.argument === 1) {\n if (this.index === this.args.length) return await this.error([\": option '\", prefix, option.name, \"' requires an argument\\n\"]);\n argument = this.args[this.index++];\n }\n return { kind: \"long\", option, argument };\n } finally { this.budget.retain(-lease); }\n }\n async next(): Promise<ParsedOption | undefined> {\n await this.budget.step();\n if (this.ended) return undefined;\n if (!this.offset) {\n while (this.index < this.args.length) {\n await this.budget.step();\n const argument = this.args[this.index]!;\n if (argument === \"--\") { this.index++; this.ended = true; return undefined; }\n if (argument.length > 1 && argument[0] === \"-\") break;\n if (this.order === \"require\") { this.ended = true; return undefined; }\n this.index++;\n if (this.order === \"return\") return { kind: \"operand\", argument };\n this.budget.retain(8);\n this.operands.push(argument);\n }\n if (this.index === this.args.length) { this.ended = true; return undefined; }\n const argument = this.args[this.index]!;\n if (argument[1] === \"-\") return (await this.long(argument.slice(2), \"--\", false))!;\n if (this.alternative && (argument.length > 2 || await findShort(this.specification, argument[1]!, this.start, this.budget) < 0)) {\n const result = await this.long(argument.slice(1), \"-\", true);\n if (result) return result;\n }\n this.offset = 1;\n }\n const current = this.args[this.index]!;\n const option = current[this.offset++]!;\n if (this.offset === current.length) { this.offset = 0; this.index++; }\n const found = await findShort(this.specification, option, this.start, this.budget);\n if (found < 0 || option === \":\" || option === \";\") return this.error([\": invalid option -- '\", option, \"'\\n\"]);\n if (option === \"W\" && this.specification[found + 1] === \";\") {\n if (!this.offset && this.index === this.args.length) return this.error([\": option requires an argument -- 'W'\\n\"]);\n const value = this.offset ? current.slice(this.offset) : this.args[this.index]!;\n return (await this.long(value, \"-W \", false))!;\n }\n let argument: string | undefined;\n if (this.specification[found + 1] === \":\") {\n if (this.offset) { argument = current.slice(this.offset); this.index++; }\n else if (this.specification[found + 2] !== \":\") {\n if (this.index === this.args.length) return this.error([\": option requires an argument -- '\", option, \"'\\n\"]);\n argument = this.args[this.index++];\n }\n this.offset = 0;\n }\n if (option === \"?\") return { kind: \"error\" };\n if (option === \"\\x01\") return { kind: \"operand\", argument };\n if (option === \"\\xff\") {\n this.budget.retain(-this.operands.length * 8);\n this.operands.length = 0;\n this.ended = true;\n return undefined;\n }\n return { kind: \"short\", option, argument };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;;;ACAA;;;ACAA;AAsBO,SAAS,SAAS,SAA8C;AACrE,QAAM,SAAuB;AAAA,IAC3B,cAAc;AAAA,IAAM,kBAAkB;AAAA,IAAQ,eAAe;AAAA,IAC7D,gBAAgB;AAAA,IAAQ,gBAAgB;AAAA,IAAM,kBAAkB;AAAA,IAChE,gBAAgB;AAAA,IAAW,oBAAoB;AAAA,IAAQ,SAAS;AAAA,IAChE,GAAG,QAAQ;AAAA,EACb;AACA,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,EAAG,OAAM,IAAI,WAAW,yBAAyB,IAAI,EAAE;AAAA,EACrG;AACA,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,IAAM,cAAN,cAA0B,iBAAiB;AAAA,EAChD,YAAY,SAA0B,SAAS,GAAY,QAAQ,OAAO;AAAE,UAAM,OAAO;AAAnD;AAAqB;AAAA,EAAiC;AAAA,EAAtD;AAAA,EAAqB;AAC7D;AAEO,IAAM,SAAN,MAAa;AAAA,EAQlB,YAAqB,SAAkC,QAA+B,QAAqB;AAAtF;AAAkC;AAA+B;AAAA,EAAsB;AAAA,EAAvF;AAAA,EAAkC;AAAA,EAA+B;AAAA,EAP9E,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,cAAc;AAAA,EAEtB,MAAM,OAAe,SAAiB,OAAqB;AACzD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,KAAK,QAAQ,QAAS,OAAM,IAAI,YAAY,GAAG,KAAK,iBAAiB;AAAA,EACnH;AAAA,EACA,MAAM,KAAK,SAAS,GAAG,aAAa,OAAsB;AACxD,SAAK,OAAO,eAAe;AAC3B,QAAI,CAAC,YAAY;AAAE,WAAK,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAO,SAAS,MAAM;AAAG,WAAK,QAAQ;AAAA,IAAQ;AACrG,SAAK,WAAW;AAChB,QAAI,KAAK,WAAW,MAAM;AAAE,WAAK,UAAU;AAAG,YAAM,UAAU,KAAK,MAAM;AAAA,IAAG;AAAA,EAC9E;AAAA,EACA,OAAO,QAAgB,aAAa,OAAa;AAC/C,QAAI,YAAY;AACd,WAAK,MAAM,KAAK,qBAAqB,QAAQ,KAAK,OAAO,oBAAoB,2BAA2B;AACxG,WAAK,sBAAsB;AAAA,IAC7B,OAAO;AACL,WAAK,MAAM,KAAK,WAAW,QAAQ,KAAK,OAAO,kBAAkB,gBAAgB;AACjF,WAAK,YAAY;AAAA,IACnB;AAAA,EACF;AAAA,EACA,OAAO,QAAsB;AAC3B,SAAK,MAAM,KAAK,cAAc,QAAQ,KAAK,OAAO,gBAAgB,cAAc;AAChF,SAAK,eAAe;AAAA,EACtB;AAAA,EACA,KAAK,QAAgB,aAAa,OAAa;AAC7C,SAAK;AAAA,OAAO,aAAa,KAAK,cAAc,KAAK,UAAU;AAAA,MACzD,aAAa,KAAK,OAAO,qBAAqB,KAAK,OAAO;AAAA,MAAgB,aAAa,qBAAqB;AAAA,IAAc;AAAA,EAC9H;AAAA,EACA,QAAQ,QAAgB,YAA2B;AACjD,SAAK,KAAK,QAAQ,UAAU;AAC5B,QAAI,WAAY,MAAK,eAAe;AAAA,QAC/B,MAAK,UAAU;AAAA,EACtB;AAAA,EACA,MAAM,YAA+B;AACnC,UAAM,OAAO,KAAK,QAAQ;AAC1B,SAAK,OAAO,eAAe;AAC3B,SAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,cAAc,gBAAgB;AAClE,QAAI,QAAQ;AACZ,eAAW,YAAY,MAAM;AAC3B,WAAK,MAAM,SAAS,QAAQ,KAAK,OAAO,kBAAkB,gBAAgB;AAC1E,eAAS,SAAS;AAClB,WAAK,MAAM,OAAO,KAAK,OAAO,eAAe,aAAa;AAC1D,eAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU;AACvD,cAAM,KAAK,KAAK;AAChB,cAAM,OAAO,SAAS,WAAW,MAAM;AACvC,YAAI,QAAQ,SAAU,QAAQ,OAAQ;AACpC,gBAAM,OAAO,SAAS,WAAW,EAAE,MAAM;AACzC,cAAI,EAAE,QAAQ,SAAU,QAAQ,OAAS,OAAM,IAAI,YAAY,8CAA8C,CAAC;AAAA,QAChH,WAAW,QAAQ,SAAU,QAAQ,MAAQ,OAAM,IAAI,YAAY,8CAA8C,CAAC;AAAA,MACpH;AAAA,IACF;AACA,UAAM,SAAS,KAAK,QAAQ,mBAAmB,SAAY,OAAO,oBAAoB,KAAK,OAAO,EAAE;AACpG,YAAQ;AACR,eAAW,YAAY,QAAQ;AAC7B,YAAM,KAAK,KAAK;AAChB,YAAM,OAAO,qBAAqB,QAAQ;AAC1C,WAAK,MAAM,MAAM,KAAK,OAAO,kBAAkB,gBAAgB;AAC/D,eAAS;AACT,WAAK,MAAM,OAAO,KAAK,OAAO,eAAe,aAAa;AAAA,IAC5D;AACA,SAAK,OAAO,QAAQ,IAAI,KAAK,SAAS,KAAK,GAAG;AAC9C,SAAK,OAAO,eAAe;AAC3B,UAAM,QAAQ,oBAAoB,KAAK,OAAO,EAAE;AAChD,UAAM,SAAmB,CAAC;AAC1B,eAAW,YAAY,OAAO;AAC5B,YAAM,KAAK,KAAK;AAChB,YAAM,QAAQ,gBAAgB,QAAQ;AACtC,UAAI,OAAO;AACX,eAAS,SAAS,GAAG,SAAS,MAAM,QAAQ,UAAU,KAAK;AACzD,cAAM,MAAM,KAAK,IAAI,SAAS,KAAK,MAAM,MAAM;AAC/C,iBAAS,QAAQ,QAAQ,QAAQ,KAAK,SAAS;AAC7C,gBAAM,KAAK,KAAK;AAChB,cAAI,MAAM,KAAK,MAAM,EAAG,OAAM,IAAI,YAAY,qCAAqC,CAAC;AAAA,QACtF;AACA,gBAAQ,OAAO,aAAa,GAAG,MAAM,SAAS,QAAQ,GAAG,CAAC;AAAA,MAC5D;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACF;;;AC9HA;AAGO,IAAM,SAAN,MAAa;AAAA,EAGlB,YAAqB,QAAgB,QAAyB;AAAzC;AAA2C,WAAO,gBAAgB,MAAM,KAAK,MAAM,CAAC;AAAA,EAAG;AAAA,EAAvF;AAAA,EAFJ,UAAU,oBAAI,IAAsB;AAAA,EAC7C;AAAA,EAER,aAAmB;AACjB,SAAK,OAAO,OAAO,eAAe;AAClC,QAAI,KAAK,QAAS,OAAM,IAAI,YAAY,mBAAmB;AAAA,EAC7D;AAAA,EACA,QAAuB;AACrB,WAAO,KAAK,YAAY,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACzD,aAAO,KAAK,QAAQ,KAAM,OAAM,QAAQ,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC;AAAA,IACtE,CAAC;AAAA,EACH;AAAA,EACA,MAAc,QAAQ,QAAgB,YAAqB,MAA4D;AACrH,SAAK,WAAW;AAChB,SAAK,OAAO,QAAQ,QAAQ,UAAU;AACtC,SAAK,OAAO,OAAO,QAAQ,UAAU;AACrC,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,WAAK,WAAW;AAChB,YAAM,SAAS,IAAI,WAAW,MAAM;AACpC,YAAM,KAAK,MAAM;AACjB,WAAK,WAAW;AAChB,YAAM,OAAO,aAAa,KAAK,OAAO,QAAQ,SAAS,KAAK,OAAO,QAAQ;AAC3E,WAAK,WAAW;AAChB,YAAM,cAAc,KAAK,eAAe;AACxC,WAAK,WAAW;AAChB,YAAM,QAAQ,YAAY;AAC1B,WAAK,WAAW;AAChB,YAAM,QAAQ,MAAM,OAAO,aAAa,CAAC,MAAM,CAAC;AAAA,IAClD,CAAC;AACD,SAAK,QAAQ,IAAI,OAAO;AACxB,QAAI;AAAE,YAAM;AAAS,WAAK,WAAW;AAAA,IAAG,UACxC;AAAU,WAAK,QAAQ,OAAO,OAAO;AAAG,WAAK,OAAO,OAAO,CAAC,QAAQ,UAAU;AAAA,IAAG;AAAA,EACnF;AAAA,EACA,MAAM,KAAK,OAA0B,aAAa,OAAsB;AACtE,QAAI,SAAS;AACb,eAAW,QAAQ,OAAO;AAAE,YAAM,KAAK,OAAO,KAAK,GAAG,UAAU;AAAG,gBAAU,KAAK;AAAQ,WAAK,OAAO,KAAK,QAAQ,UAAU;AAAA,IAAG;AAChI,UAAM,KAAK,QAAQ,QAAQ,YAAY,OAAM,WAAU;AACrD,UAAI,SAAS;AACb,iBAAW,QAAQ,MAAO,UAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;AAC1E,cAAM,KAAK,OAAO,KAAK,GAAG,UAAU;AACpC,eAAO,QAAQ,IAAI,KAAK,WAAW,KAAK;AAAA,MAC1C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,MAAM,WAAW,OAAe,OAAgB,MAA8B;AAC5E,QAAI,CAAC,OAAO;AAAE,YAAM,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC;AAAG;AAAA,IAAQ;AACrD,QAAI,SAAS;AACb,aAAS,SAAS,GAAG,SAAS,MAAM,QAAQ,UAAU;AACpD,YAAM,KAAK,OAAO,KAAK;AACvB,YAAM,OAAO,MAAM,WAAW,MAAM;AACpC,gBAAU,SAAS,MAAO,SAAS,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,MAAO,IACzH,SAAS,SAAS,MAAM,SAAS,MAAM,IAAI;AAC/C,WAAK,OAAO,KAAK,MAAM;AAAA,IACzB;AACA,UAAM,KAAK,QAAQ,QAAQ,OAAO,OAAM,WAAU;AAChD,UAAI,SAAS;AACb,aAAO,QAAQ,IAAI;AACnB,aAAO,QAAQ,IAAI;AACnB,eAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;AACjD,cAAM,OAAO,MAAM,WAAW,KAAK;AACnC,cAAM,KAAK,OAAO,KAAK;AACvB,YAAI,SAAS,MAAO,SAAS,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,KAAM;AACpH,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI;AAAM,iBAAO,QAAQ,IAAI;AAAA,QAC5F,WAAW,SAAS,SAAS,MAAM,SAAS,KAAK;AAC/C,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI,SAAS,KAAK,MAAM;AAAA,QAChE,MAAO,QAAO,QAAQ,IAAI;AAAA,MAC5B;AACA,aAAO,MAAM,IAAI;AAAA,IACnB,CAAC;AAAA,EACH;AACF;;;AC1EA;AAUA,eAAsB,UAAU,eAAuB,QAAgB,OAAe,QAAiC;AACrH,WAAS,SAAS,OAAO,SAAS,cAAc,QAAQ,UAAU;AAChE,UAAM,OAAO,KAAK;AAClB,QAAI,cAAc,MAAM,MAAM,OAAQ,QAAO;AAAA,EAC/C;AACA,SAAO;AACT;AAEA,eAAsB,eAAe,OAAe,SAAuB,QAA+B;AACxG,SAAO,OAAO,MAAM,MAAM;AAC1B,MAAI,QAAQ;AACZ,WAAS,SAAS,GAAG,UAAU,MAAM,QAAQ,UAAU;AACrD,UAAM,OAAO,KAAK;AAClB,UAAM,OAAO,MAAM,WAAW,MAAM;AACpC,QAAI,WAAW,MAAM,UAAU,SAAS,MAAM,SAAS,MAAM,SAAS,KAAK,SAAS,GAAI;AACxF,QAAI,SAAS,OAAO;AAClB,UAAI,MAAM;AACV,UAAI,WAAsB;AAC1B,UAAI,MAAM,MAAM,CAAC,MAAM,KAAK;AAAE,mBAAW;AAAG;AAAO,YAAI,MAAM,SAAS,MAAM,MAAM,CAAC,MAAM,KAAK;AAAE,qBAAW;AAAG;AAAA,QAAO;AAAA,MAAE;AACvH,UAAI,QAAQ,MAAO,OAAM,IAAI,YAAY,iDAAiD,GAAG,IAAI;AACjG,aAAO,MAAM,QAAQ,SAAS,GAAG,OAAO,OAAO,gBAAgB,mBAAmB;AAClF,aAAO,QAAQ,MAAM,SAAS,IAAI,EAAE;AACpC,cAAQ,KAAK,EAAE,MAAM,MAAM,MAAM,OAAO,GAAG,GAAG,SAAS,CAAC;AAAA,IAC1D;AACA,YAAQ,SAAS;AAAA,EACnB;AACF;AAEO,IAAM,SAAN,MAAa;AAAA,EAQlB,YAAqB,MAAkC,eAAgC,SAC5E,aAAsB,OAAgB,OAAyB,MAAuB,QACtF,QAAgB;AAFN;AAAkC;AAAgC;AAC5E;AAA+D;AAAuB;AACtF;AACT,SAAK,QAAQ,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,MAAM,MAAM,IAAI;AACxE,SAAK,QAAQ,cAAc,CAAC,MAAM,MAAM,WAAW,cAAc,CAAC,MAAM,OAAO,QAAQ,YAAY;AACnG,SAAK,SAAS,SAAS,cAAc,KAAK,KAAK,MAAM;AAAA,EACvD;AAAA,EANqB;AAAA,EAAkC;AAAA,EAAgC;AAAA,EAC5E;AAAA,EAA+D;AAAA,EAAuB;AAAA,EACtF;AAAA,EATX,QAAQ;AAAA,EACA,SAAS;AAAA,EACT,QAAQ;AAAA,EACP,WAAqB,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EAQjB,MAAc,MAAM,OAAiD;AACnE,QAAI,CAAC,KAAK,OAAQ,OAAM,KAAK,OAAO,KAAK,CAAC,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI;AACpE,WAAO,EAAE,MAAM,QAAQ;AAAA,EACzB;AAAA,EACA,MAAc,KAAK,OAAe,QAAgB,UAAiD;AACjG,QAAI,MAAM;AACV,WAAO,MAAM,MAAM,UAAU,MAAM,GAAG,MAAM,KAAK;AAAE,YAAM,KAAK,OAAO,KAAK;AAAG;AAAA,IAAO;AACpF,UAAM,QAAQ,KAAK,QAAQ,SAAS,KAAK;AACzC,SAAK,OAAO,OAAO,KAAK;AACxB,QAAI;AACF,YAAM,UAAwB,CAAC;AAC/B,UAAI;AACJ,iBAAWA,WAAU,KAAK,SAAS;AACjC,cAAM,KAAK,OAAO,KAAK;AACvB,YAAI,UAAUA,QAAO,KAAK,UAAU;AACpC,iBAAS,SAAS,GAAG,WAAW,SAAS,KAAK,UAAU;AACtD,gBAAM,KAAK,OAAO,KAAK;AACvB,cAAIA,QAAO,KAAK,MAAM,MAAM,MAAM,MAAM,EAAG,WAAU;AAAA,QACvD;AACA,YAAI,CAAC,QAAS;AACd,YAAIA,QAAO,KAAK,WAAW,KAAK;AAAE,kBAAQA;AAAQ;AAAA,QAAO;AACzD,gBAAQ,KAAKA,OAAM;AAAA,MACrB;AACA,UAAI,CAAC,SAAS,QAAQ,SAAS,GAAG;AAChC,aAAK;AAAS,aAAK,SAAS;AAC5B,YAAI,CAAC,KAAK,QAAQ;AAChB,gBAAM,QAAQ,CAAC,KAAK,MAAM,cAAc,QAAQ,OAAO,gCAAgC;AACvF,qBAAWA,WAAU,QAAS,OAAM,KAAK,MAAM,QAAQA,QAAO,MAAM,GAAG;AACvE,gBAAM,KAAK,IAAI;AACf,gBAAM,KAAK,OAAO,KAAK,OAAO,IAAI;AAAA,QACpC;AACA,eAAO,EAAE,MAAM,QAAQ;AAAA,MACzB;AACA,YAAM,SAAS,SAAS,QAAQ,CAAC;AACjC,UAAI,CAAC,QAAQ;AACX,YAAI,YAAY,MAAM,UAAU,KAAK,eAAe,MAAM,CAAC,KAAK,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,EAAG,QAAO;AAC1G,aAAK;AAAS,aAAK,SAAS;AAC5B,eAAO,MAAM,KAAK,MAAM,CAAC,2BAA2B,QAAQ,OAAO,KAAK,CAAC;AAAA,MAC3E;AACA,WAAK;AAAS,WAAK,SAAS;AAC5B,UAAI;AACJ,UAAI,MAAM,MAAM,QAAQ;AACtB,YAAI,CAAC,OAAO,SAAU,QAAO,MAAM,KAAK,MAAM,CAAC,cAAc,QAAQ,OAAO,MAAM,+BAA+B,CAAC;AAClH,mBAAW,MAAM,MAAM,MAAM,CAAC;AAAA,MAChC,WAAW,OAAO,aAAa,GAAG;AAChC,YAAI,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,MAAM,KAAK,MAAM,CAAC,cAAc,QAAQ,OAAO,MAAM,0BAA0B,CAAC;AAC5H,mBAAW,KAAK,KAAK,KAAK,OAAO;AAAA,MACnC;AACA,aAAO,EAAE,MAAM,QAAQ,QAAQ,SAAS;AAAA,IAC1C,UAAE;AAAU,WAAK,OAAO,OAAO,CAAC,KAAK;AAAA,IAAG;AAAA,EAC1C;AAAA,EACA,MAAM,OAA0C;AAC9C,UAAM,KAAK,OAAO,KAAK;AACvB,QAAI,KAAK,MAAO,QAAO;AACvB,QAAI,CAAC,KAAK,QAAQ;AAChB,aAAO,KAAK,QAAQ,KAAK,KAAK,QAAQ;AACpC,cAAM,KAAK,OAAO,KAAK;AACvB,cAAMC,YAAW,KAAK,KAAK,KAAK,KAAK;AACrC,YAAIA,cAAa,MAAM;AAAE,eAAK;AAAS,eAAK,QAAQ;AAAM,iBAAO;AAAA,QAAW;AAC5E,YAAIA,UAAS,SAAS,KAAKA,UAAS,CAAC,MAAM,IAAK;AAChD,YAAI,KAAK,UAAU,WAAW;AAAE,eAAK,QAAQ;AAAM,iBAAO;AAAA,QAAW;AACrE,aAAK;AACL,YAAI,KAAK,UAAU,SAAU,QAAO,EAAE,MAAM,WAAW,UAAAA,UAAS;AAChE,aAAK,OAAO,OAAO,CAAC;AACpB,aAAK,SAAS,KAAKA,SAAQ;AAAA,MAC7B;AACA,UAAI,KAAK,UAAU,KAAK,KAAK,QAAQ;AAAE,aAAK,QAAQ;AAAM,eAAO;AAAA,MAAW;AAC5E,YAAMA,YAAW,KAAK,KAAK,KAAK,KAAK;AACrC,UAAIA,UAAS,CAAC,MAAM,IAAK,QAAQ,MAAM,KAAK,KAAKA,UAAS,MAAM,CAAC,GAAG,MAAM,KAAK;AAC/E,UAAI,KAAK,gBAAgBA,UAAS,SAAS,KAAK,MAAM,UAAU,KAAK,eAAeA,UAAS,CAAC,GAAI,KAAK,OAAO,KAAK,MAAM,IAAI,IAAI;AAC/H,cAAM,SAAS,MAAM,KAAK,KAAKA,UAAS,MAAM,CAAC,GAAG,KAAK,IAAI;AAC3D,YAAI,OAAQ,QAAO;AAAA,MACrB;AACA,WAAK,SAAS;AAAA,IAChB;AACA,UAAM,UAAU,KAAK,KAAK,KAAK,KAAK;AACpC,UAAM,SAAS,QAAQ,KAAK,QAAQ;AACpC,QAAI,KAAK,WAAW,QAAQ,QAAQ;AAAE,WAAK,SAAS;AAAG,WAAK;AAAA,IAAS;AACrE,UAAM,QAAQ,MAAM,UAAU,KAAK,eAAe,QAAQ,KAAK,OAAO,KAAK,MAAM;AACjF,QAAI,QAAQ,KAAK,WAAW,OAAO,WAAW,IAAK,QAAO,KAAK,MAAM,CAAC,yBAAyB,QAAQ,KAAK,CAAC;AAC7G,QAAI,WAAW,OAAO,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AAC3D,UAAI,CAAC,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,KAAK,MAAM,CAAC,wCAAwC,CAAC;AACjH,YAAM,QAAQ,KAAK,SAAS,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,KAAK;AAC7E,aAAQ,MAAM,KAAK,KAAK,OAAO,OAAO,KAAK;AAAA,IAC7C;AACA,QAAI;AACJ,QAAI,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AACzC,UAAI,KAAK,QAAQ;AAAE,mBAAW,QAAQ,MAAM,KAAK,MAAM;AAAG,aAAK;AAAA,MAAS,WAC/D,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AAC9C,YAAI,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,KAAK,MAAM,CAAC,sCAAsC,QAAQ,KAAK,CAAC;AAC5G,mBAAW,KAAK,KAAK,KAAK,OAAO;AAAA,MACnC;AACA,WAAK,SAAS;AAAA,IAChB;AACA,QAAI,WAAW,IAAK,QAAO,EAAE,MAAM,QAAQ;AAC3C,QAAI,WAAW,IAAQ,QAAO,EAAE,MAAM,WAAW,SAAS;AAC1D,QAAI,WAAW,QAAQ;AACrB,WAAK,OAAO,OAAO,CAAC,KAAK,SAAS,SAAS,CAAC;AAC5C,WAAK,SAAS,SAAS;AACvB,WAAK,QAAQ;AACb,aAAO;AAAA,IACT;AACA,WAAO,EAAE,MAAM,SAAS,QAAQ,SAAS;AAAA,EAC3C;AACF;;;AHvJA,IAAM,iBAAwC;AAAA,EAC5C,EAAE,MAAM,WAAW,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,eAAe,UAAU,GAAG,MAAM,IAAI;AAAA,EAC3F,EAAE,MAAM,SAAS,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,gBAAgB,UAAU,GAAG,MAAM,IAAI;AAAA,EAC1F,EAAE,MAAM,SAAS,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EAClF,EAAE,MAAM,YAAY,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EACrF,EAAE,MAAM,eAAe,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EACxF,EAAE,MAAM,WAAW,UAAU,GAAG,MAAM,IAAI;AAC5C;AAEO,SAAS,oBAAoB,UAAiC,CAAC,GAAsB;AAC1F,QAAM,SAAS,SAAS,OAAO;AAC/B,SAAO,EAAE,MAAM,UAAU,aAAa,gEAAgE,MAAM,QAAQ,SAAS;AAC3H,UAAM,SAAS,sBAAsB,SAAS,QAAQ,MAAM;AAC5D,UAAM,SAAS,IAAI,OAAO,SAAS,QAAQ,OAAO,MAAM;AACxD,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,WAAW;AACf,QAAI;AACF,eAAS,IAAI,OAAO,QAAQ,MAAM;AAClC,YAAM,OAAO,MAAM,OAAO,UAAU;AACpC,YAAM,aAAa,QAAQ,IAAI,sBAAsB;AACrD,YAAM,QAAQ,QAAQ,IAAI,oBAAoB;AAC9C,UAAI;AACJ,UAAI,aAAa;AACjB,YAAM,cAA4B,CAAC;AACnC,UAAI,QAAQ,MAAM,OAAO,OAAO,QAAQ,OAAO,cAAc,OAAO,cAAc;AAClF,UAAI,OAAO;AACX,UAAI,WAAW;AACf,UAAI,CAAC,KAAK,QAAQ;AAChB,YAAI,CAAC,WAAY,OAAM,IAAI,YAAY,8BAA8B,GAAG,IAAI;AAC5E,cAAM,OAAO,KAAK,CAAC,OAAO,CAAC;AAC3B,mBAAW;AAAA,MACb,WAAW,cAAc,KAAK,CAAC,EAAG,CAAC,MAAM,KAAK;AAC5C,YAAI,QAAQ;AACZ,eAAO,KAAK,CAAC,EAAG,KAAK,MAAM,OAAO,KAAK,CAAC,EAAG,KAAK,MAAM,KAAK;AAAE,gBAAM,OAAO,KAAK;AAAG;AAAA,QAAS;AAC3F,wBAAgB,KAAK,CAAC,EAAG,MAAM,KAAK;AACpC,eAAO,OAAO,cAAc,MAAM;AAClC,qBAAa,KAAK,MAAM,CAAC;AACzB,gBAAQ;AAAA,MACV,OAAO;AACL,cAAM,UAAU,IAAI,OAAO,MAAM,oBAAoB,gBAAgB,OAAO,OAAO,OAAO,UAAU,QAAQ,MAAM;AAClH,mBAAS;AACP,gBAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,cAAI,CAAC,OAAQ;AACb,cAAI,OAAO,SAAS,SAAS;AAAE,kBAAM,OAAO,KAAK,CAAC,6CAA6C,GAAG,IAAI;AAAG,uBAAW;AAAG,uBAAW;AAAM;AAAA,UAAO;AAC/I,cAAI,OAAO,SAAS,UAAW,OAAM,IAAI,YAAY,4BAA4B;AACjF,gBAAM,SAAS,OAAO,SAAS,SAAS,OAAO,OAAO,OAAO,OAAO;AACpE,kBAAQ,QAAQ;AAAA,YACd,KAAK;AAAK,8BAAgB,OAAO;AAAW,qBAAO,OAAO,cAAc,MAAM;AAAG;AAAA,YACjF,KAAK;AAAK,oBAAM,eAAe,OAAO,UAAW,aAAa,MAAM;AAAG;AAAA,YACvE,KAAK;AAAK,qBAAO,OAAO;AAAW;AAAA,YACnC,KAAK;AAAK,4BAAc;AAAM;AAAA,YAC9B,KAAK;AAAK,sBAAQ;AAAM;AAAA,YACxB,KAAK;AAAK,4BAAc;AAAM;AAAA,YAC9B,KAAK;AAAK,sBAAQ;AAAO;AAAA,YACzB,KAAK;AACH,kBAAI,OAAO,aAAa,UAAU,OAAO,aAAa,KAAM,QAAO;AAAA,uBAC1D,OAAO,aAAa,UAAU,OAAO,aAAa,MAAO,QAAO;AAAA,kBACpE,OAAM,IAAI,YAAY,8CAA8C,GAAG,IAAI;AAChF;AAAA,YACF,KAAK;AAAK,yBAAW;AAAG,yBAAW;AAAM;AAAA,YACzC,KAAK;AAAK,oBAAM,OAAO,KAAK,CAAC,yBAAyB,CAAC;AAAG,yBAAW;AAAM;AAAA,YAC3E,KAAK;AACH,oBAAM,OAAO,KAAK,CAAC,6TAA6T,CAAC;AACjV,yBAAW;AAAM;AAAA,UACrB;AACA,cAAI,SAAU;AAAA,QAChB;AACA,YAAI,CAAC,UAAU;AACb,cAAI,kBAAkB,QAAW;AAC/B,gBAAI,QAAQ,UAAU,KAAK,OAAQ,OAAM,IAAI,YAAY,8BAA8B,GAAG,IAAI;AAC9F,4BAAgB,KAAK,QAAQ,OAAO;AACpC,mBAAO,OAAO,cAAc,MAAM;AAAA,UACpC;AACA,uBAAa,KAAK,MAAM,QAAQ,KAAK;AAAA,QACvC;AAAA,MACF;AACA,UAAI,CAAC,UAAU;AACb,cAAM,SAAS,IAAI,OAAO,YAAY,eAAgB,aAAa,aAAa,OAAO,OAAO,MAAM,QAAQ,MAAM;AAClH,mBAAS;AACP,gBAAM,SAAS,MAAM,OAAO,KAAK;AACjC,cAAI,CAAC,OAAQ;AACb,cAAI,OAAO,SAAS,SAAS;AAAE,uBAAW;AAAG;AAAA,UAAU;AACvD,cAAI,YAAa;AACjB,cAAI,OAAO,SAAS,UAAW,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,mBAChF,OAAO,SAAS,QAAQ;AAC/B,kBAAM,OAAO,KAAK,CAAC,OAAO,OAAO,OAAO,IAAI,CAAC;AAC7C,gBAAI,OAAO,OAAO,SAAU,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,UACxF,OAAO;AACL,kBAAM,OAAO,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC;AACvC,kBAAM,SAAS,MAAM,UAAU,eAAgB,OAAO,QAAQ,GAAG,MAAM;AACvE,gBAAI,UAAU,KAAK,cAAe,SAAS,CAAC,MAAM,IAAK,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,UACnH;AAAA,QACF;AACA,YAAI,CAAC,aAAa;AAChB,gBAAM,OAAO,KAAK,CAAC,KAAK,CAAC;AACzB,qBAAW,WAAW,OAAO,SAAU,OAAM,OAAO,WAAW,SAAS,OAAO,IAAI;AACnF,mBAAS,QAAQ,OAAO,OAAO,QAAQ,WAAW,QAAQ,QAAS,OAAM,OAAO,WAAW,WAAW,KAAK,GAAI,OAAO,IAAI;AAC1H,gBAAM,OAAO,KAAK,CAAC,IAAI,CAAC;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,gBAAU,EAAE,QAAQ,MAAM;AAC1B,UAAI,iBAAiB,eAAe,CAAC,OAAO,OAAO,WAAW,QAAQ;AACpE,mBAAW,MAAM;AACjB,YAAI;AAAE,gBAAM,OAAO,KAAK,CAAC,YAAY,MAAM,SAAS,MAAM,MAAM,QAAQ,gDAAgD,EAAE,GAAG,IAAI;AAAA,QAAG,SAC7H,WAAW;AAAE,oBAAU,EAAE,QAAQ,IAAI,eAAe,CAAC,OAAO,SAAS,GAAG,iCAAiC,EAAE;AAAA,QAAG;AAAA,MACvH,MAAO,WAAU,EAAE,QAAQ,MAAM;AAAA,IACnC;AACA,QAAI;AAAE,YAAM,OAAO,MAAM;AAAA,IAAG,SACrB,SAAS;AACd,YAAM,WAAW,WAAW;AAC5B,gBAAU,EAAE,QAAQ,WAAW,IAAI,eAAe,CAAC,SAAS,QAAQ,OAAO,GAAG,qCAAqC,IAAI,QAAQ;AAAA,IACjI;AACA,YAAQ,OAAO,eAAe;AAC9B,WAAO,OAAO,eAAe;AAC7B,QAAI,QAAS,OAAM,QAAQ;AAC3B,WAAO,EAAE,SAAS;AAAA,EACpB,EAAE;AACJ;;;ADvHO,SAAS,qBAAqB,UAAiC,CAAC,GAAiC;AACtG,SAAO,CAAC,oBAAoB,OAAO,CAAC;AACtC;AAEO,SAAS,eAAe,UAAiC,CAAC,GAAuB;AACtF,QAAM,WAAW,qBAAqB,OAAO;AAC7C,SAAO,EAAE,MAAM,mBAAmB,MAAM,MAAM;AAC5C,eAAW,WAAW,SAAU,MAAK,SAAS,SAAS,SAAS,EAAE,SAAS,QAAQ,WAAW,MAAM,CAAC;AAAA,EACvG,EAAE;AACJ;",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["option", "argument"]
|
|
7
7
|
}
|