@procedures/pdf 0.53.1 → 0.54.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @procedures/pdf
2
2
 
3
+ ## 0.54.1
4
+
5
+ ### Patch Changes
6
+
7
+ - a3efa7e: The new package `@procedures/browser` is the home of the renders of a page with a Chromium browser that is already installed. It has `findBrowser`, one headless run for each render, `renderPdf` and the new `renderScreenshot`.
8
+
9
+ - `renderScreenshot` loads an address, an HTML text or an HTML file in a window of a given size. It writes a PNG, JPEG or WebP picture of the window. The extension of the output sets the format.
10
+ - It accepts only an `http:`, `https:` or `file:` address, so a flag cannot get into the argv of the browser.
11
+ - The headless run is written one time. The two renders give only their flags and the check of their file.
12
+
13
+ `@procedures/pdf` gives the same names again from `@procedures/browser`, so no caller breaks. Its procedure `pdf.render` does not change.
14
+
15
+ PATCH: before 1.0.0, a new package and a new feature raise PATCH. The exports and the behavior of `@procedures/pdf` do not change.
16
+ - Updated dependencies [a3efa7e]
17
+ - Updated dependencies [13c3a8b]
18
+ - @procedures/browser@0.54.1
19
+ - @procedures/client@0.54.1
20
+
21
+ ## 0.54.0
22
+
23
+ ### Patch Changes
24
+
25
+ - 1401489: The tarball of each package leaves out `dist/.tsbuildinfo`. The `files` list of each package has the entry `!dist/.tsbuildinfo` after `dist`.
26
+
27
+ The build writes this file for incremental builds. An app does not use it, and it added its size to each tarball (61 KB in `@procedures/json` 0.52.3). The conventions rule `pack-no-buildinfo` finds it.
28
+
29
+ PATCH: the exports and the behavior do not change.
30
+ - Updated dependencies [ef8e080]
31
+ - Updated dependencies [1401489]
32
+ - @procedures/client@0.54.0
33
+ - @procedures/shell@0.54.0
34
+
3
35
  ## 0.53.1
4
36
 
5
37
  ### Patch Changes
package/README.md CHANGED
@@ -33,7 +33,7 @@ const { path, bytes } = await client.call(["pdf", "render"], {
33
33
 
34
34
  ## The functions
35
35
 
36
- The package root also gives the functions without a registry:
36
+ The package root also gives the functions without a registry. Their home is [`@procedures/browser`](../browser), and this package gives them again, so no caller breaks. New code imports them from `@procedures/browser`, which also takes screenshots.
37
37
 
38
38
  - `renderPdf(options)` prints the page and gives `{ path, bytes, browser }`. The options are the input of `pdf.render`, and `signal`, `env`, `platform` and `runner`.
39
39
  - `findBrowser(options)` gives the path of the browser program, or `undefined`.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from "./module.js";
2
2
  export * from "./types.js";
3
- export * from "./browser.js";
4
- export * from "./render.js";
3
+ export { BROWSER_ENV, BROWSER_NAMES, CHROME_PATH_ENV, DEFAULT_TIMEOUT_MS, WINDOWS_BROWSER_NAMES, browserCandidates, findBrowser, isPdfFile, pdfArgs, renderPdf, type CommandRunner, type FindBrowserOptions, type RenderPdfOptions, type RenderPdfResult, } from "@procedures/browser";
5
4
  export { pdfRender } from "./procedures/pdf/index.js";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // The root registers nothing: import "<package>/register", or give the module to createRegistry()
2
2
  export * from "./module.js";
3
3
  export * from "./types.js";
4
- export * from "./browser.js";
5
- export * from "./render.js";
4
+ // The search and the render moved to @procedures/browser. The names stay here, so no caller breaks.
5
+ export { BROWSER_ENV, BROWSER_NAMES, CHROME_PATH_ENV, DEFAULT_TIMEOUT_MS, WINDOWS_BROWSER_NAMES, browserCandidates, findBrowser, isPdfFile, pdfArgs, renderPdf, } from "@procedures/browser";
6
6
  export { pdfRender } from "./procedures/pdf/index.js";
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,oGAAoG;AACpG,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GAKV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * This procedure prints an HTML page to a PDF file with a headless Chromium browser that is
5
5
  * already installed.
6
6
  */
7
- import { type CommandRunner } from "../../render.js";
7
+ import { type CommandRunner } from "@procedures/browser";
8
8
  import type { PdfRenderInput, PdfRenderOutput } from "../../types.js";
9
9
  /**
10
10
  * This function prints the HTML text or the HTML file of the input to a PDF file. It gives the
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/procedures/pdf/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,EAC1C,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAY1B"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/procedures/pdf/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,EAC1C,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAY1B"}
@@ -4,7 +4,7 @@
4
4
  * This procedure prints an HTML page to a PDF file with a headless Chromium browser that is
5
5
  * already installed.
6
6
  */
7
- import { renderPdf } from "../../render.js";
7
+ import { renderPdf } from "@procedures/browser";
8
8
  /**
9
9
  * This function prints the HTML text or the HTML file of the input to a PDF file. It gives the
10
10
  * path and the size of the file.
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/procedures/pdf/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAsB,MAAM,iBAAiB,CAAC;AAGhE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAqB,EACrB,GAA0C,EAC1C,MAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,GAAG,EAAE,MAAM;QACnB,MAAM;KACP,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/procedures/pdf/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAGpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAqB,EACrB,GAA0C,EAC1C,MAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,GAAG,EAAE,MAAM;QACnB,MAAM;KACP,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7E,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@procedures/pdf",
4
- "version": "0.53.1",
5
- "description": "HTML to PDF with a headless Chromium browser that is already installed (Edge, Chrome or Chromium), with no browser download.",
4
+ "version": "0.54.1",
5
+ "description": "HTML to PDF with a headless Chromium browser that is already installed (Edge, Chrome or Chromium), as the procedure pdf.render. The render is in @procedures/browser.",
6
6
  "keywords": [
7
7
  "pdf",
8
8
  "html",
@@ -41,6 +41,7 @@
41
41
  },
42
42
  "files": [
43
43
  "dist",
44
+ "!dist/.tsbuildinfo",
44
45
  "src",
45
46
  "!src/**/*.test.ts",
46
47
  "!src/**/*.test.tsx",
@@ -58,15 +59,16 @@
58
59
  "provenance": true
59
60
  },
60
61
  "dependencies": {
61
- "@procedures/client": "0.53.1",
62
- "@procedures/shell": "0.53.1",
62
+ "@procedures/browser": "0.54.1",
63
+ "@procedures/client": "0.54.1",
63
64
  "zod": "^4.6.5"
64
65
  },
65
66
  "devDependencies": {
66
67
  "typescript": "^7.0.2",
67
68
  "@types/node": "^22.0.0",
68
69
  "@mark1russell7/cue": "^2.1.1",
69
- "vitest": "^5.0.3"
70
+ "vitest": "^5.0.3",
71
+ "@procedures/shell": "0.54.1"
70
72
  },
71
73
  "client": {
72
74
  "procedures": "./dist/register.js"
package/src/index.ts CHANGED
@@ -1,6 +1,21 @@
1
1
  // The root registers nothing: import "<package>/register", or give the module to createRegistry()
2
2
  export * from "./module.js";
3
3
  export * from "./types.js";
4
- export * from "./browser.js";
5
- export * from "./render.js";
4
+ // The search and the render moved to @procedures/browser. The names stay here, so no caller breaks.
5
+ export {
6
+ BROWSER_ENV,
7
+ BROWSER_NAMES,
8
+ CHROME_PATH_ENV,
9
+ DEFAULT_TIMEOUT_MS,
10
+ WINDOWS_BROWSER_NAMES,
11
+ browserCandidates,
12
+ findBrowser,
13
+ isPdfFile,
14
+ pdfArgs,
15
+ renderPdf,
16
+ type CommandRunner,
17
+ type FindBrowserOptions,
18
+ type RenderPdfOptions,
19
+ type RenderPdfResult,
20
+ } from "@procedures/browser";
6
21
  export { pdfRender } from "./procedures/pdf/index.js";
@@ -5,7 +5,7 @@
5
5
  * already installed.
6
6
  */
7
7
 
8
- import { renderPdf, type CommandRunner } from "../../render.js";
8
+ import { renderPdf, type CommandRunner } from "@procedures/browser";
9
9
  import type { PdfRenderInput, PdfRenderOutput } from "../../types.js";
10
10
 
11
11
  /**
package/dist/.tsbuildinfo DELETED
@@ -1 +0,0 @@
1
- {"version":"7.0.2","root":[88,[340,346]],"packageJsons":["../../../node_modules/.pnpm/@grpc+grpc-js@1.14.7/node_modules/@grpc/grpc-js/package.json","../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/package.json","../../../node_modules/.pnpm/@mark1russell7+coeval@0.26.1/node_modules/@mark1russell7/coeval/package.json","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.0_zod@4.6.7/node_modules/@mark1russell7/quantity/package.json","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.3_zod@4.6.7/node_modules/@mark1russell7/quantity/package.json","../../../node_modules/.pnpm/@mark1russell7+rational@0.1.2/node_modules/@mark1russell7/rational/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/package.json","../../../node_modules/.pnpm/@opentelemetry+api@1.10.0/node_modules/@opentelemetry/api/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/package.json","../../../node_modules/.pnpm/mongodb@7.8.0_socks@2.8.10/node_modules/mongodb/package.json","../../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/package.json","../../../node_modules/.pnpm/ws@8.22.1/node_modules/ws/package.json","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/package.json","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/package.json","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/package.json","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/package.json","../../client-shell/package.json","../../client/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/build/package.json","../../../node_modules/.pnpm/@mark1russell7+coeval@0.26.1/node_modules/@mark1russell7/coeval/build/package.json","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.0_zod@4.6.7/node_modules/@mark1russell7/quantity/build/package.json","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.3_zod@4.6.7/node_modules/@mark1russell7/quantity/build/package.json","../../../node_modules/.pnpm/@mark1russell7+rational@0.1.2/node_modules/@mark1russell7/rational/build/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/algebra/clock/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/amqplib/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/ioredis/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/pg/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/zlib/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/node_modules/@types/console/package.json","../../../node_modules/.pnpm/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/node_modules/@types/events/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/http/package.json","../../../node_modules/.pnpm/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/node_modules/@types/https/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/module/package.json","../../../node_modules/.pnpm/node_modules/@types/net/package.json","../../../node_modules/.pnpm/node_modules/@types/os/package.json","../../../node_modules/.pnpm/node_modules/@types/path/package.json","../../../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/process/package.json","../../../node_modules/.pnpm/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/node_modules/@types/url/package.json","../../../node_modules/.pnpm/node_modules/@types/util/package.json","../../../node_modules/.pnpm/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/node_modules/assert/package.json","../../../node_modules/.pnpm/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/buffer/package.json","../../../node_modules/.pnpm/node_modules/child_process/package.json","../../../node_modules/.pnpm/node_modules/cluster/package.json","../../../node_modules/.pnpm/node_modules/console/package.json","../../../node_modules/.pnpm/node_modules/constants/package.json","../../../node_modules/.pnpm/node_modules/crypto/package.json","../../../node_modules/.pnpm/node_modules/dgram/package.json","../../../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/dns/package.json","../../../node_modules/.pnpm/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/domain/package.json","../../../node_modules/.pnpm/node_modules/events/package.json","../../../node_modules/.pnpm/node_modules/fs/package.json","../../../node_modules/.pnpm/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/http/package.json","../../../node_modules/.pnpm/node_modules/http2/package.json","../../../node_modules/.pnpm/node_modules/https/package.json","../../../node_modules/.pnpm/node_modules/inspector/package.json","../../../node_modules/.pnpm/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/module/package.json","../../../node_modules/.pnpm/node_modules/net/package.json","../../../node_modules/.pnpm/node_modules/os/package.json","../../../node_modules/.pnpm/node_modules/path/package.json","../../../node_modules/.pnpm/node_modules/path/posix/package.json","../../../node_modules/.pnpm/node_modules/path/win32/package.json","../../../node_modules/.pnpm/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/process/package.json","../../../node_modules/.pnpm/node_modules/querystring/package.json","../../../node_modules/.pnpm/node_modules/readline/package.json","../../../node_modules/.pnpm/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/repl/package.json","../../../node_modules/.pnpm/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/stream/package.json","../../../node_modules/.pnpm/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/stream/web/package.json","../../../node_modules/.pnpm/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/timers/package.json","../../../node_modules/.pnpm/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/tls/package.json","../../../node_modules/.pnpm/node_modules/trace_events/package.json","../../../node_modules/.pnpm/node_modules/tty/package.json","../../../node_modules/.pnpm/node_modules/url/package.json","../../../node_modules/.pnpm/node_modules/util/package.json","../../../node_modules/.pnpm/node_modules/util/types/package.json","../../../node_modules/.pnpm/node_modules/v8/package.json","../../../node_modules/.pnpm/node_modules/vm/package.json","../../../node_modules/.pnpm/node_modules/wasi/package.json","../../../node_modules/.pnpm/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/zlib/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/buffer/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/events/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/net/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/web/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/tls/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/url/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/worker_threads/package.json","../../../node_modules/@types/assert/package.json","../../../node_modules/@types/assert/strict/package.json","../../../node_modules/@types/async_hooks/package.json","../../../node_modules/@types/buffer/package.json","../../../node_modules/@types/child_process/package.json","../../../node_modules/@types/cluster/package.json","../../../node_modules/@types/console/package.json","../../../node_modules/@types/constants/package.json","../../../node_modules/@types/crypto/package.json","../../../node_modules/@types/dgram/package.json","../../../node_modules/@types/diagnostics_channel/package.json","../../../node_modules/@types/dns/package.json","../../../node_modules/@types/dns/promises/package.json","../../../node_modules/@types/domain/package.json","../../../node_modules/@types/events/package.json","../../../node_modules/@types/fs/package.json","../../../node_modules/@types/fs/promises/package.json","../../../node_modules/@types/http/package.json","../../../node_modules/@types/http2/package.json","../../../node_modules/@types/https/package.json","../../../node_modules/@types/inspector/package.json","../../../node_modules/@types/inspector/promises/package.json","../../../node_modules/@types/module/package.json","../../../node_modules/@types/net/package.json","../../../node_modules/@types/os/package.json","../../../node_modules/@types/path/package.json","../../../node_modules/@types/path/posix/package.json","../../../node_modules/@types/path/win32/package.json","../../../node_modules/@types/perf_hooks/package.json","../../../node_modules/@types/process/package.json","../../../node_modules/@types/punycode/package.json","../../../node_modules/@types/querystring/package.json","../../../node_modules/@types/readline/package.json","../../../node_modules/@types/readline/promises/package.json","../../../node_modules/@types/repl/package.json","../../../node_modules/@types/stream/consumers/package.json","../../../node_modules/@types/stream/package.json","../../../node_modules/@types/stream/promises/package.json","../../../node_modules/@types/stream/web/package.json","../../../node_modules/@types/string_decoder/package.json","../../../node_modules/@types/timers/package.json","../../../node_modules/@types/timers/promises/package.json","../../../node_modules/@types/tls/package.json","../../../node_modules/@types/trace_events/package.json","../../../node_modules/@types/tslib/package.json","../../../node_modules/@types/tty/package.json","../../../node_modules/@types/url/package.json","../../../node_modules/@types/util/package.json","../../../node_modules/@types/util/types/package.json","../../../node_modules/@types/v8/package.json","../../../node_modules/@types/vm/package.json","../../../node_modules/@types/wasi/package.json","../../../node_modules/@types/worker_threads/package.json","../../../node_modules/@types/zlib/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/buffer/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/punycode/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tslib/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json","../../client/node_modules/@mark1russell7/service/clock/package.json","../../client/node_modules/@mark1russell7/service/limiter/package.json","../node_modules/@procedures/shell/command/package.json","../node_modules/@types/tslib/package.json","../node_modules/tslib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.es2025.d.ts","lib.esnext.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.es2025.collection.d.ts","lib.es2025.float16.d.ts","lib.es2025.intl.d.ts","lib.es2025.iterator.d.ts","lib.es2025.promise.d.ts","lib.es2025.regexp.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.date.d.ts","lib.esnext.decorators.d.ts","lib.esnext.disposable.d.ts","lib.esnext.error.d.ts","lib.esnext.intl.d.ts","lib.esnext.sharedmemory.d.ts","lib.esnext.temporal.d.ts","lib.esnext.typedarrays.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../src/browser.ts","../../../node_modules/.pnpm/@mark1russell7+rational@0.1.2/node_modules/@mark1russell7/rational/build/index.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.0_zod@4.6.7/node_modules/@mark1russell7/quantity/build/quantity-BV_X-qxg.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.0_zod@4.6.7/node_modules/@mark1russell7/quantity/build/index.d.ts","../../client/dist/duration.d.ts","../../client/dist/procedures/elicit.d.ts","../../client/dist/procedures/progress.d.ts","../../client/dist/client/deadline.d.ts","../../client/dist/procedures/capability.d.ts","../../client/dist/procedures/hints.d.ts","../../client/dist/procedures/schema.d.ts","../../client/dist/client/validation/types.d.ts","../../client/dist/procedures/collection/precondition.d.ts","../../client/dist/procedures/collection/query.d.ts","../../client/dist/procedures/collection/storage.d.ts","../../client/dist/events/types.d.ts","../../client/dist/procedures/registry.d.ts","../../client/dist/procedures/ref.d.ts","../../client/dist/server/last-resort.d.ts","../../client/dist/server/error-policy.d.ts","../../client/dist/logger.d.ts","../../client/dist/server/types.d.ts","../../client/dist/procedures/narrowing.d.ts","../../client/dist/procedures/invoke.d.ts","../../client/dist/procedures/types.d.ts","../../client/dist/client/errors/types.d.ts","../../client/dist/client/errors/codes.d.ts","../../client/dist/client/errors/registry.d.ts","../../client/dist/client/errors/factory.d.ts","../../client/dist/client/errors/http-status.d.ts","../../client/dist/client/errors/http-errors.d.ts","../../client/dist/client/errors/index.d.ts","../../client/dist/client/types.d.ts","../../client/dist/client/middleware/contexts.d.ts","../../client/dist/client/context.d.ts","../../client/dist/client/consumption.d.ts","../../client/dist/client/call-types.d.ts","../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/build/clock.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/clock-DpVgpY4h.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/clock.d.ts","../../client/dist/clock.d.ts","../../client/dist/events/remote.d.ts","../../client/dist/procedures/envelope.d.ts","../../client/dist/client/client.d.ts","../../client/dist/adapters/http/shared/constants.d.ts","../../client/dist/adapters/http/shared/status-codes.d.ts","../../client/dist/adapters/http/shared/headers.d.ts","../../client/dist/adapters/http/shared/strategies.d.ts","../../client/dist/adapters/http/shared/errors.d.ts","../../client/dist/adapters/http/shared/index.d.ts","../../client/dist/adapters/http/client/batch.d.ts","../../client/dist/adapters/http/client/types.d.ts","../../client/dist/adapters/http/client/transport.d.ts","../../client/dist/adapters/http/client/index.d.ts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/memoizer.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/bn.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ckb.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/gu.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hi.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/kn.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ne.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/nn.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/pt-BR.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sk.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tg.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tk.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/compile.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/deep-partial.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/in-out.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.6.7/node_modules/zod/index.d.cts","../../client/dist/procedures/collection/topic.d.ts","../../client/dist/procedures/collection/partition.d.ts","../../client/dist/events/live-state.d.ts","../../client/dist/events/recheck.d.ts","../../client/dist/events/publisher.d.ts","../../client/dist/adapters/local/client/types.d.ts","../../client/dist/adapters/local/client/transport.d.ts","../../client/dist/adapters/local/client/index.d.ts","../../client/dist/machines.d.ts","../../client/dist/adapters/websocket/client/types.d.ts","../../client/dist/adapters/websocket/client/transport.d.ts","../../client/dist/adapters/websocket/client/index.d.ts","../../client/dist/adapters/mock/client/types.d.ts","../../client/dist/adapters/mock/client/transport.d.ts","../../client/dist/adapters/mock/client/builder.d.ts","../../client/dist/adapters/mock/client/index.d.ts","../../client/dist/client/middleware/retry.d.ts","../../client/dist/client/middleware/items.d.ts","../../client/dist/client/middleware/cache.d.ts","../../client/dist/client/middleware/timeout.d.ts","../../client/dist/client/middleware/circuit-breaker.d.ts","../../client/dist/client/middleware/rate-limit.d.ts","../../client/dist/client/middleware/resilience.d.ts","../../client/dist/client/middleware/pagination.d.ts","../../client/dist/client/middleware/auth.d.ts","../../client/dist/client/middleware/tracing.d.ts","../../client/dist/client/validation/middleware.d.ts","../../client/dist/client/validation/index.d.ts","../../client/dist/client/typed.d.ts","../../client/dist/client/index.d.ts","../../client/dist/server/server.d.ts","../../client/dist/server/error-response.d.ts","../../client/dist/procedures/idempotency.d.ts","../../client/dist/procedures/collection/admission.d.ts","../../client/dist/procedures/collection/procedures.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.3_zod@4.6.7/node_modules/@mark1russell7/quantity/build/quantity-BV_X-qxg.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.3.3_zod@4.6.7/node_modules/@mark1russell7/quantity/build/index.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/policy-CwYR95Sz.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/store-1CsNoJ8O.d.ts","../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/build/machine-D8dlu9GF.d.ts","../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/build/replay-CLDzayda.d.ts","../../../node_modules/.pnpm/@mark1russell7+algebra@0.8.3_zod@4.6.7/node_modules/@mark1russell7/algebra/build/index.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/limiter-D1aluA0V.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.8.3_@grpc+grpc-js@1.14.7_@opentelemetry+api@1.10.0_mongodb@7.8_16649a3736f7482ca3659afc29a3d6de/node_modules/@mark1russell7/service/build/limiter.d.ts","../../client/dist/server/limits.d.ts","../../client/dist/server/procedure-server.d.ts","../../client/dist/server/stream-metadata.d.ts","../../client/dist/server/request-auth.d.ts","../../client/dist/procedures/interceptors.d.ts","../../client/dist/server/host-procedures.d.ts","../../client/dist/server/method.d.ts","../../client/dist/procedures/segments.d.ts","../../client/dist/procedures/effects.d.ts","../../client/dist/procedures/manifest.d.ts","../../client/dist/procedures/untrusted.d.ts","../../client/dist/procedures/define.d.ts","../../client/dist/procedures/collection/schemas.d.ts","../../client/dist/procedures/collection/changes.d.ts","../../client/dist/procedures/collection/hint-filter.d.ts","../../client/dist/procedures/collection/index.d.ts","../../client/dist/procedures/discovery.d.ts","../../client/dist/procedures/module.d.ts","../../client/dist/procedures/caller.d.ts","../../../node_modules/.pnpm/@mark1russell7+coeval@0.26.1/node_modules/@mark1russell7/coeval/build/index.d.ts","../../client/dist/procedures/program.d.ts","../../client/dist/procedures/core/schemas.d.ts","../../client/dist/procedures/core/logic.d.ts","../../client/dist/procedures/core/results.d.ts","../../client/dist/procedures/core/math.d.ts","../../client/dist/procedures/core/comparison.d.ts","../../client/dist/procedures/core/string.d.ts","../../client/dist/procedures/core/type.d.ts","../../client/dist/procedures/core/object.d.ts","../../client/dist/procedures/core/array.d.ts","../../client/dist/procedures/core/meta.d.ts","../../client/dist/procedures/core/index.d.ts","../../client/dist/procedures/runtime-programs.d.ts","../../client/dist/procedures/define-procedure.d.ts","../../client/dist/procedures/index.d.ts","../../client/dist/procedures/policy.d.ts","../../client/dist/timers.d.ts","../../client/dist/adapters/port/transport.d.ts","../../client/dist/tracing/traceparent.d.ts","../../client/dist/protocol.d.ts","../../client/dist/adapters/sequence.d.ts","../../client/dist/server/browser-guard.d.ts","../../client/dist/server/host-policy.d.ts","../../client/dist/server/face-rules.d.ts","../../client/dist/client/route-resolver.d.ts","../../client/dist/client/batch-executor.d.ts","../../client/dist/events/bus.d.ts","../../client/dist/events/live-view.d.ts","../../client/dist/events/index.d.ts","../../client/dist/browser.d.ts","../../client/dist/adapters/http/server/strategies.d.ts","../../client/dist/index.d.ts","../../client-shell/dist/command/spawn.d.ts","../../client-shell/dist/command/run.d.ts","../../client-shell/dist/command/stream.d.ts","../../client-shell/dist/command/processes.d.ts","../../client-shell/dist/command/tree-kill.d.ts","../../client-shell/dist/command/output.d.ts","../../client-shell/dist/command/index.d.ts","../src/render.ts","../src/types.ts","../src/procedures/pdf/render.ts","../src/module.ts","../src/procedures/pdf/index.ts","../src/index.ts","../src/register.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995","793cee405385076e27c24f409659dccd","09f69c6610266eaee1ac9e3e30df2c71","62bad718844246b8e17547f37bad6085",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"38856f70edcd2115c355d96ec77cc09e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"de8700156c1275465bcd473c28b359aa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d47cfdb6ede40518357bb5a4cd7cd9fb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6e5773860cd9e5b15e683113f642ab47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"30ff5fe1682f7fcd629880476ca3c2e0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf23d7d1b40b9015b694ddc2f011752f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2cc585d42e2c548f9f24a30a1989fd33","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"713906ce9d332d2242b7f05ed9304be3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6009ffff7e43c93318804d2d28e37fe3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"03be89b227587594fbb50509fc1c2e45","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b30df52dc24740c0bad7c55c3511df7d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ab8d3c9b5ed5c2ab8f383607eef439f0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d950ec671d0a8e07f3c1a31e94abed86","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1abef2ace5eccb02d60dd73cd5a5ee4c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5f0a3044029d1cc081b5887eb4deb07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d57c697f1446940ec4bfe669c962e2c4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"10f7d9da7564f27f8ddf4a162b6da6d3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1d0520af549e0c3581f15173cc713ca1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d65083f97fd741cff028472563eddb79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"da7f24f00653ebac660ac1c0821ed33d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7cb5ae9e65516ea2235f0721f6aac43c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c90c95aa0715800fde368dda99ba8455","signature":"f5c86387bfab7a6846a125f46851bbfd","impliedNodeFormat":99},{"version":"a64311f3eb69122321e87ef07b957ded","impliedNodeFormat":99},{"version":"913bfc1f0748e5be452948e44d2de561","impliedNodeFormat":99},{"version":"f5509aadb68c15724bacda37bcd31fa6","impliedNodeFormat":99},{"version":"44ebf9c9d31295ba6c8e8269158d9a08","impliedNodeFormat":99},{"version":"1d8cccc8132d2a87743c5ff0e7229a19","impliedNodeFormat":99},{"version":"dcb68cc2338a5b9a30e808386b02a6c8","impliedNodeFormat":99},{"version":"1f55ed21bf520915c4c9aeda10d31f45","impliedNodeFormat":99},{"version":"1b1b8cd7f6def81ce9476c9c9a741347","impliedNodeFormat":99},{"version":"0163f0d46ba6ca39890524199f5780a5","impliedNodeFormat":99},{"version":"5bac83d1dccda3197da2606db1ac3c89","impliedNodeFormat":99},{"version":"bdd5688dfca17868f2280b606bc4577c","impliedNodeFormat":99},{"version":"ce342d00345fa7993a3edcd95b8e63e9","impliedNodeFormat":99},{"version":"1d53c62342e907d4a5fee716b2272992","impliedNodeFormat":99},{"version":"b49cbb29be78d7d412caeacfe930b1bc","impliedNodeFormat":99},{"version":"69fd1d5e506d4969861f61c8b3994fb0","impliedNodeFormat":99},{"version":"7511f1c192f1ccfd6ba59fd256eace06","impliedNodeFormat":99},{"version":"c6d9199db5caf009e8633a08aab11d8d","impliedNodeFormat":99},{"version":"297de8a0f3e5e4844e9521c8b716bf5a","impliedNodeFormat":99},{"version":"1dad84af1879ce2aa3dccc4c1be6a143","impliedNodeFormat":99},{"version":"08e91213b9818753504a093ea09845a5","impliedNodeFormat":99},{"version":"6b3a8e66763d0d82464cae95271b0187","impliedNodeFormat":99},{"version":"547ac3f2c1e8790869d20a9420183f25","impliedNodeFormat":99},{"version":"cc13b98ef0fe8d7f24cf397220bd5982","impliedNodeFormat":99},{"version":"b1e06fc80b7dea12d2a995847fd77228","impliedNodeFormat":99},{"version":"d24b59eb494bf309a01519d5aee45101","impliedNodeFormat":99},{"version":"08bd8d98f4ac9de007235f4f755cabe8","impliedNodeFormat":99},{"version":"3779fdfd474b11c9c252c2f76cd2715d","impliedNodeFormat":99},{"version":"c51a9a4153a693d98890ac03ee84c855","impliedNodeFormat":99},{"version":"f2bc4da8bc22da3c265aa41d224be568","impliedNodeFormat":99},{"version":"a7e8132761007fe6701dbf4326024341","impliedNodeFormat":99},{"version":"8c41563962ea8cd0ef7f9f10c4dc0fa3","impliedNodeFormat":99},{"version":"6ad92fbadd9423e5ca5718aeb04260c3","impliedNodeFormat":99},{"version":"23e2467c2b42be0e0e30c434125a9bf7","impliedNodeFormat":99},{"version":"4a1dc81d4a48c84e39c5573bc6a36181","impliedNodeFormat":99},{"version":"313de785aa7f53811273f58137396514","impliedNodeFormat":99},{"version":"1b9b690b1f336ef9423e124a808fe9bc","impliedNodeFormat":99},{"version":"8d0b96ea725dc595aaad405fb0aaf556","impliedNodeFormat":99},{"version":"bdcb3cfe50fa5220d607cd26e6ecb7f7","impliedNodeFormat":99},{"version":"1abb13d66c9d45548f4d118eda47466b","impliedNodeFormat":99},{"version":"7f11723418740531ec8f18f99675044e","impliedNodeFormat":99},{"version":"10c314d551e4fc51885e88501ab0f826","impliedNodeFormat":99},{"version":"90474c0bf6482dbe56abf7eccc8d19d2","impliedNodeFormat":99},{"version":"47c78445f1d81bf88b6fe4c3a6394829","impliedNodeFormat":99},{"version":"64ecc2fe911c3b454e180625586c2c80","impliedNodeFormat":99},{"version":"0a9c4b4d8c03788e34e76b7f448931de","impliedNodeFormat":99},{"version":"973904e4766d26c9c60b05f71e718c7b","impliedNodeFormat":99},{"version":"5a2b85ad16f438f415b074c827261af6","impliedNodeFormat":99},{"version":"35b002db36e0cf0b05db81969c7b9922","impliedNodeFormat":99},{"version":"eef5d85571d408190ce31d195bf03ed2","impliedNodeFormat":99},{"version":"82ea48bb4746db56cbf436cdaf0c41b2","impliedNodeFormat":99},{"version":"1692aecd27162dab5b650a077b42f1a2","impliedNodeFormat":99},{"version":"b0e0528f4df3d2bb19387a60f96e8412","impliedNodeFormat":99},{"version":"3404f0b3d79d85a7eb273bca567ac71b","impliedNodeFormat":99},"46adab8b8b66b08b5e7c0e8fab6a1ca6","a9fe29dcdd4288cacf574947747a4572","daada721cfdc43aa8e7c2e2d14d760de","1875116298cba1325500d3f1eac8bbf9","5b3b46f5321315ed981271ff40658eb5","5d253feb3ce379964ce328df2e292f33","0c8ef3f924ccfad86a3010130f77d9c8","4ef66462d69c6b7504ef14011caac866","2f9112269cc3c45d1fb3d62f3ccb7097","ffb6ed8d47df8ca98044478684c0af40","cbc1f06fbfe43eb20a752fa368855819","2de5baa83f63307a4dd74d7aa2dd5254","3eeffcd208fa163e66f8769b350f0445","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","5175ffa851d494a5195ffdebf8ed7285","89cf60624d459ce663be118a626d5fdc","1d1bc42979730b680201df62a3c1ac22","cb5ffae433c93a1431c0000260c7d0c3","9bb07208f876b5e95d56a3d2e9b9a427","0b02ecd3af1ccccee2f5c605903848f8","7454a3a8b97184f2d9432fa08bea4550","5ec4d3086f21642d2aeae2133b49ceeb","8318e3c39365fe3a3cfb375f5c29ab04","9e29bd130ef2dafefc736f6ab792a301","cde3fe3c0bfe6e037b07e7251fb1c3d3","c5a965bdb35a433f7fb044dcb56d485c","96b06af537c71de0a80e9ed880958afd","3008879c54fc6e5b56c202a9d7b09211","1339976f87e671ebf4b5ff1f36594612","0a95994056ab784c17e3331cd56bff1c","a9356de7c324c6f49c15587032b1f65f","f763a0656991aee48818a73fe218b09c","1904e67dd51f8bf1517f05edbfada0ea",{"version":"058e4fe2f313ae9a8575fd9654fac344","impliedNodeFormat":99},{"version":"030fae7968a06e1ff541c69726b2469c","impliedNodeFormat":99},{"version":"62d8938de2669eda988fe4c482d0d0b0","impliedNodeFormat":99},{"version":"f5b1da6058a3331d9c1aefb275378dda","impliedNodeFormat":99},{"version":"36e97624491f3869ae05bc84593da876","impliedNodeFormat":99},{"version":"854b00095989bb907c18de797924155e","impliedNodeFormat":99},{"version":"8766d50325e3417642e2d3f5dd686364","impliedNodeFormat":99},{"version":"00bc3f83d4845807f8271ab3c745ff67","impliedNodeFormat":99},{"version":"60d3806d52580ec961a83b0585a7f328","impliedNodeFormat":99},{"version":"e332066ce840dc972955ec8e80b0c50a","impliedNodeFormat":99},{"version":"ab602f74d525707b4adb675ab7cb4563","impliedNodeFormat":99},{"version":"742ea0384304d954f45ce2b6697c7f91","impliedNodeFormat":99},{"version":"f911f4d32a20b760f2082e6fbde5514f","impliedNodeFormat":99},{"version":"a4acfea690d58c4b47dfe275e2743f7f","impliedNodeFormat":99},{"version":"001090557d1d3df1f2482abcf561af1e","impliedNodeFormat":99},{"version":"bc833b857dd9a2ad2a2cc5b60a309d4e","impliedNodeFormat":99},{"version":"474146ba6497bb21e0f5859f2c8a85f5","impliedNodeFormat":99},{"version":"21433b1e768e15bfe77c63a9b48129ec","impliedNodeFormat":99},{"version":"d79590e60df4adfdd1c6e6c31e7ddf2d","impliedNodeFormat":99},{"version":"7df7c12156e08542ad15262c05194dec","impliedNodeFormat":99},{"version":"443968f2e765f35e0e6919efbe2ecaf5","impliedNodeFormat":99},{"version":"86a44754459a758089de1d0d6835f17e","impliedNodeFormat":99},{"version":"bd4831330348d981b0f1410853eed767","impliedNodeFormat":99},{"version":"8c4b62b4a00c51da5f8b7caffe0f03ee","impliedNodeFormat":99},{"version":"9d8af42705105f6cfb47f9977e7e284b","impliedNodeFormat":99},{"version":"cafd4971c8d191559ccf3da376bb0fd6","impliedNodeFormat":99},{"version":"a58c141c24aa04a112fc8161e137592d","impliedNodeFormat":99},{"version":"06d492a8e79b62249efe5c0dedb78e35","impliedNodeFormat":99},{"version":"c261f3352382743318751612666c0f97","impliedNodeFormat":99},{"version":"7a3ce480272bd0297413216dcc9d0a7b","impliedNodeFormat":99},{"version":"ac7edbb4a892b492ea37c5c9a669f9a8","impliedNodeFormat":99},{"version":"0023dd84c5f99949d3d4e1580c539fc3","impliedNodeFormat":99},{"version":"e5ba658353b71951062589ca3aae116e","impliedNodeFormat":99},{"version":"79e175d51a0ad862bc1203327029c0a8","impliedNodeFormat":99},{"version":"db22163ed7cf443addb1397a49f32480","impliedNodeFormat":99},{"version":"913bfc1f0748e5be452948e44d2de561","impliedNodeFormat":99},{"version":"ee7d3975050f83ff78d7f1d5d98385ba","impliedNodeFormat":99},{"version":"ef3d96a47c6a77f353d1377a021f385e","impliedNodeFormat":99},{"version":"0f9b460845e07b0c637b4cb1ddada003","impliedNodeFormat":99},{"version":"2e460f18e7e7a6d7a68167ab4dbc9e21","impliedNodeFormat":99},{"version":"55f5f95052b25a87f85c7a54849e856b","impliedNodeFormat":99},{"version":"7a4b93a6610508edf2f5afb2e89036be","impliedNodeFormat":99},{"version":"f58a425d3c8999bd903adee964966d9d","impliedNodeFormat":99},{"version":"1c608e2d373d77625e677976b416b7c0","impliedNodeFormat":99},{"version":"c445a22175256f86d6e9caeb7a952add","impliedNodeFormat":99},{"version":"becc2917782dc174552a57ecba2897a7","impliedNodeFormat":99},{"version":"4895a424e68db0f4527fa64ad7f62b92","impliedNodeFormat":99},{"version":"aa4bf0297890a0e6c652ff4edd862c5e","impliedNodeFormat":99},{"version":"9c9bf526245c85639201584a0cb0212d","impliedNodeFormat":99},{"version":"726e3e41170d214b4a7f9e3b51c0c996","impliedNodeFormat":99},{"version":"c6ae58e2824472ace5e1fc33af9b68b9","impliedNodeFormat":99},{"version":"ccd855f0aa570221b13c9d69ff6d81d5","impliedNodeFormat":99},{"version":"5a6e5aeecea8b44bac91fe48e7628d87","impliedNodeFormat":99},{"version":"ed8bf8b7b6254862a4836633e9c3f0f1","impliedNodeFormat":99},{"version":"1489623d9737ed573dd298c4b558a6d2","impliedNodeFormat":99},{"version":"549cdf7be9336865a24bbec9308f85c0","impliedNodeFormat":99},{"version":"2f541a3ac8823f5917c00bc70825a046","impliedNodeFormat":99},{"version":"180905bb4b1e4c9ce142bee42150ddb3","impliedNodeFormat":99},{"version":"793c2b204ed51be7de9e4ae6c68953e7","impliedNodeFormat":99},{"version":"af962de0ff30f5797d27741c19bccbae","impliedNodeFormat":99},{"version":"e532344cbc6e516572a8651023c6b7d1","impliedNodeFormat":99},{"version":"060362d7728648b948c76c20ff5b4a26","impliedNodeFormat":99},{"version":"9059ee6b6e96eb557826342cc7394ae4","impliedNodeFormat":99},{"version":"2f68d91fb7918a9ca529c33f4a2324d9","impliedNodeFormat":99},{"version":"d27755a907def455eed183d626991c4a","impliedNodeFormat":99},{"version":"dab941ddf6fd0183e1d5be4a4d72cf10","impliedNodeFormat":99},{"version":"80d6a2ecb0aa22e5ee13b8ab2762cf32","impliedNodeFormat":99},{"version":"8f129880dcb2313f3badfed346ec2581","impliedNodeFormat":99},{"version":"974f5ff5c4c947e3b1f2facc9c033d51","impliedNodeFormat":99},{"version":"563b58a0f92ea20a8f294fb9d658d802","impliedNodeFormat":99},{"version":"d7677cbe7b534c30205f24a4f8f541a8","impliedNodeFormat":99},{"version":"14bb23d0c2e763340e5fd68eb7e24a85","impliedNodeFormat":99},{"version":"86a49af81bc8859cda73d5da17cd5e48","impliedNodeFormat":99},{"version":"d84a007e45e85c9ae1417e8892c1d19d","impliedNodeFormat":99},{"version":"34937a4e3c26d8fa9d152b2ecad151d4","impliedNodeFormat":99},{"version":"e5f2048a43f14062b1cea6af255f4905","impliedNodeFormat":99},{"version":"b6be181d2552152e604924fd778377b5","impliedNodeFormat":99},{"version":"fcf28ef854af978deccae1d0476d010d","impliedNodeFormat":99},{"version":"22e1117d785fbbbbd410ec861fc3d56c","impliedNodeFormat":99},{"version":"d8897812d9461364c1cd0a7ab2ae3359","impliedNodeFormat":99},{"version":"710f9e17940eb27f027fcfa032b7ce61","impliedNodeFormat":99},{"version":"95607487a020ef03b470f53efea9bbb2","impliedNodeFormat":99},{"version":"e25ab40cdef6c8bb54d6e90d4523b00b","impliedNodeFormat":99},{"version":"c2d0365107313fd3bcd5eb109865fa34","impliedNodeFormat":99},{"version":"ab75c656b4fcb77dbd37deebc3cc4fce","impliedNodeFormat":99},{"version":"9cc015293092c141c50beb8bec5b72a6","impliedNodeFormat":99},{"version":"72324a826d06fc6b04a718d87c38d24e","impliedNodeFormat":99},{"version":"bc21df29cf51839b19175693fd1c3f6a","impliedNodeFormat":99},{"version":"ef8f19666296edc7210bd61a0bf2a704","impliedNodeFormat":99},{"version":"14ec3287adf18bbe28275dd52ee0c44a","impliedNodeFormat":99},{"version":"0b1813c5241c0542dd87ce33339a176e","impliedNodeFormat":99},{"version":"a0e4fe8bb4ee7d4d50b2e8dc7c3a67b0","impliedNodeFormat":99},{"version":"5706f23de6cd50e09fa6775f1098d8f1","impliedNodeFormat":99},{"version":"cb0c566fb9c26bd8fbe908be0120d418","impliedNodeFormat":99},{"version":"f20629ea00052048621c6820cbd4490e","impliedNodeFormat":99},{"version":"b650735b4b7185553204f212821882ce","impliedNodeFormat":99},{"version":"b5cd369ae1018b7cbc92940d795ef926","impliedNodeFormat":99},{"version":"c1aa84c327d11a59bb3a6862d44b108b","impliedNodeFormat":99},{"version":"adeb36a69311b3159e5b7b63b5b4535d","impliedNodeFormat":99},{"version":"9f1fb5b0cd9f9f51578d60a7818654b0","impliedNodeFormat":99},{"version":"3a03a7e6c829da3d1827f907f1321115","impliedNodeFormat":99},{"version":"9728d931df9394d883b52d6cc39cd009","impliedNodeFormat":99},{"version":"f3173e354ee029b690e5c35ccc1617b8","impliedNodeFormat":99},{"version":"8de72e59cccb8eb36a920243fd1a0c31","signature":"a0af3542beb78738f985ea86518d7beb","impliedNodeFormat":99},{"version":"95ec68467a7b41190e20c8a05fa37fc6","signature":"9f2fb31c4fd48b0810cfd407aa6361d1","impliedNodeFormat":99},{"version":"5b561f021887c7741ebbacddfc29a21b","signature":"ced5d89991cf8cf6329987fa80a85081","impliedNodeFormat":99},{"version":"02726347d838e6660096fa987cf1e02e","signature":"6040d16960bff4ecc49018585b01bedf","impliedNodeFormat":99},{"version":"30b355d90841a16ee83ca4a4c3c9508d","impliedNodeFormat":99},{"version":"630677b97e2b6919def077af46be18ea","signature":"a9cc74b6abfb258cf50f8da29f6816dc","impliedNodeFormat":99},{"version":"c186f9e8a94dcc3e50c4cf3fb30890a7","signature":"f6680f1911bcb49d5c4959051eda63b6","impliedNodeFormat":99},{"version":"5fd84cb7055cb580f7698d4a32062548","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"913b52a39743d1c11984e4e124b1f3a8","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3e57a4cd3267159f3772bebd73534451","affectsGlobalScope":true,"impliedNodeFormat":1},"fe51d7a9bcdbcce1e65bbcf39b212298",{"version":"849a1873c4e917b0887368c1be897faa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"69ee0752d1e70c56ca160360425752a9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ddc6139fafd9dfb16bb112a7b74f610","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9af0a7e3ef1c42cd066b9f8d365cc1ba","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec5f75939754ce94652189ec7d0d3058","affectsGlobalScope":true,"impliedNodeFormat":1},"628b774b54637325e286752c79c12432","bb1f9e3091b88e9d0e93b7198c736af3","514fd35e5eb35bb2e5cbb908af0a0aa2","ed57ae88565308729f2327f26d684976","dcd932d6b0038f2e250e30dc10125b22","9508c917bd7e458745e222a82dd24ef0","fabf86f455f96b90538cc26320ab2765","14550b4cd9f433e0addd8b6d67614d23","cf0ac6aebc25cb780674653aaeee688e","35fef7bac8048f583e4ce6eaa0c2a4c0","6752dc653fc7a333027249fd851fdb62","b9ad7e689b46dfba362c1bf174e69018","8b0a2930dfabdf27c69c6bb1eeabcdc8","4513b1ed15523d247040689f37fa9db2","5c0c499eed773a750903d9497beafacd","2377da227d1bac82ff7b3f2081ddf8d3","beef985b474fefeb80d27fb2c8778371","c79fc9d9f09ae598a374ae7c0b5284a4","f2caa3cebb1e6be855519004830a6be0","8ebc9f2a77c900e710801214c5cb994c","ec617a0e0577dd6a3210c3b067ecb325","1db5d06e485bd82d6d5f6e36925a8714","24b864518967840216c779b5e5f00975","8719cd8047700bfb6046798390053823","f2840afb502c94db92dab0fb8d27812f","a7e7d08b372210c203745d3eac61a411","531183cc80535e0e94226d720e5eb038","f627eb958ca52c85e42f04dce4661f86","9a43fc665bce9012a3d5fe1b574ff4dc","13f4b4da6546a34719fd6bde15fb63dd","a589216508844bfc00e62fc2d97fda45","865aea1c3209e31b076cb6fe780e769e","12e64aaf26af0f5c8f1b263dd66e3feb","928971ebbcdf5b093ef37669b33bddf6","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","9aafd1f29b4d8861c1c6c34bf83c0721",{"version":"a127795c4dad633990c87aa0b86831e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0fd03004a6221614a1eaf764f324f74","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d352f71d1b1bcc12c79dd0e4597537c","affectsGlobalScope":true,"impliedNodeFormat":1},"9a624e1940639eca005bbfa0b0795e0c","bc36d91e82ffa66a49621888701e71dc","f8c976cb12f3420b8cc8d03d579ada06",{"version":"ba7e459f9d165c391370248c1b6d27e6","affectsGlobalScope":true,"impliedNodeFormat":1},"1bd6f05fb97456c25967ff016b829638","10ea0c4d80d7a0333c1e857199853b74",{"version":"9fc8636e70e507ea8d98a7aabd265ee5","affectsGlobalScope":true,"impliedNodeFormat":1},"b2b472cd0bf0f8d5f022e00ca1c401f4",{"version":"2d78fd1079375d411033f64faae0c89b","affectsGlobalScope":true,"impliedNodeFormat":1},"2c854dda7450575791a388d8f0f29e31","61dd307aef9adea6fd307b5364c843da","4eb05de87a87ea4d8a41f4b2229bada4","5c5c7649711b5d982cf39fe9b6744080","958d9865bfe33c94973e3d58ac66b1d0",{"version":"e69aeb78ba4fd8c4493f80e9e81737e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f2c1804a9a9d8f64eb2a67a797f9baef","b857d33151fcd39b213bb7c17cf12969","2e1cff79cd7dfb7d8281322931a687bd","3c217295039c32f3fecd8f7bab2e43e3","9fb3b9387eadc1aa053821d6c96b5769","1690a4da2f50085917cb933f6f2556cb","9d6686cc730682ed548fac9462ac4346",{"version":"f6be7fda5b8729494c54d9983698c290","affectsGlobalScope":true,"impliedNodeFormat":1},"0bb08d83737c91e9ca2c2c3b99ae99a2","a4e9f4bc0d06a3823fff0f55f31eac93","43b4e399ab399cf8ecd47e481abddeeb",{"version":"0769bf84d24c283d5b7d02cba94e7234","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9ffa943f975def71e2b112b28f946caa","affectsGlobalScope":true,"impliedNodeFormat":1},"d1dfd59bf8b7e71f40ee1d3a2f1b5fcf","9292aa21e6668349e0642faa07be7750","8ccb81bc00ea59aa908d31dbe50bb31a","0f80958d77cd6301b43c1d7904e3e4bc","0548d84bf13d6b5d3ef34d9755610be1","65398feea84a451329cd99b26a547514","b7e2bcd9d00432e1792823ed5da41128","739428f35658f9391641b3dfc9433fb2","c8206d568b54e5ea06131963eecd576a","15878f4f50c2e562c0768eb735c2aed5",{"version":"4e6c56c4b055178cfc9edc254d744a5b","affectsGlobalScope":true,"impliedNodeFormat":1},"329e5617fbab8b2de9bffcc41d07bb5d","6b82bee8c1c2c6d1a7f4ae0c8a47a006",{"version":"ea001113f32054398156e39095350f0a","affectsGlobalScope":true,"impliedNodeFormat":1},"7345aabef559e464447357f201cc05f8","0807835722b35673885024d2b10c282a","d63b35c1a5097295f0659f5583c8fb83","3509aa3de97926c2922f378a248ddb48",{"version":"78ce1294fea4c9fccd0600374816a75f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9edcc62fa17b31ebfd8b865c8304a4a3","affectsGlobalScope":true,"impliedNodeFormat":1},"b0cbfb9126a2a747bd567e9b79c65b58","4cfe493c958076cdc2b0609a8f889091","3bb54ead687024118ffeb8d7337370a2",{"version":"90c1b6a898bba7f42c0020815dc93eba","affectsGlobalScope":true,"impliedNodeFormat":1},"aa2008c843fac96764def81cfdf70c58","1852b3a174acea86c49700b15f7d1539"],"fileIdsList":[[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[91,276,277,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[276,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[89,90,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[89,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[89,272,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[125,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[126,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[274,275,278,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[274,275,279,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[273,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[126,274,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[347,348,349,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,393,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[350,351,352,353,354,355,356,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,449,450],[352,393,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,393,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449],[352,365,369,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,360,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,362,365,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[352,360,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[352,357,358,361,364,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,372,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,357,363,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,386,387,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,361,365,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[352,386,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[352,359,360,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[352,359,360,361,362,363,364,365,366,367,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,387,388,389,390,391,392,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,380,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,372,373,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,363,365,373,374,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,364,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,357,360,365,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,365,369,373,374,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,369,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,363,365,368,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,357,362,365,372,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[352,360,365,386,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[235,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[224,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[224,227,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[146,218,222,224,225,226,227,228,229,230,231,232,233,234,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[142,144,227,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[224,225,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[143,149,224,226,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[144,146,148,149,150,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[146,148,150,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[148,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[146,148,150,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[143,146,148,149,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[142,144,145,146,147,148,149,150,151,152,153,154,218,219,220,221,222,223,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[142,144,145,148,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[144,145,148,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[148,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[142,143,145,146,147,149,150,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[142,143,144,148,224,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[148,149,150,151,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[150,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[333,334,335,336,337,338,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[333,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[137,138,139,140,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,137,139,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,137,138,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[132,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[132,133,134,135,136,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,132,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[242,243,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,242,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[104,111,112,120,241,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,249,250,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[249,250,251,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,249,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[109,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[108,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[246,247,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,129,246,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,109,128,245,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,93,94,95,96,97,107,108,109,110,111,124,128,245,266,267,269,281,282,283,284,285,286,287,288,289,290,291,315,316,317,318,319,320,321,323,324,325,326,329,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[112,124,325,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,112,123,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,103,104,105,112,120,122,124,129,130,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,121,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[113,114,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[113,114,117,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[113,114,115,116,117,118,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[113,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,95,119,120,122,131,141,244,248,252,253,254,255,256,257,258,259,260,261,262,264,265,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,112,120,121,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,121,128,245,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,99,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,128,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,121,128,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,121,253,255,257,258,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,121,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[104,112,123,124,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[122,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[103,111,112,119,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,263,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[98,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[127,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[91,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,103,128,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[103,129,239,240,241,327,328,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,103,109,112,128,236,238,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[120,129,239,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[103,109,112,128,239,240,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,109,128,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,120,128,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[322,330,331,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[104,111,112,298,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[95,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[100,102,111,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[102,103,112,237,270,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[103,111,112,270,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[100,101,102,237,238,270,271,293,294,295,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,102,112,237,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[101,112,270,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[100,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,101,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[101,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[112,302,303,304,305,306,307,308,309,310,311,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[98,99,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[98,112,290,313,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[98,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[105,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[96,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,112,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[93,94,96,97,98,104,105,110,112,130,269,288,289,290,291,292,296,297,298,299,301,312,314,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,111,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[93,94,96,103,104,105,109,110,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[104,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[105,112,300,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[93,94,97,98,99,102,103,105,109,111,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[106,109,112,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[109,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[109,112,323,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,104,109,111,112,241,280,281,282,322,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[112,282,285,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[107,109,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[109,112,128,280,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[112,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[92,102,104,109,111,112,128,238,241,267,268,269,271,280,281,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[107,108,109,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[93,94,107,108,112,120,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[88,340,341,343,344,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[332,341,342,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[342,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[340,341,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[343,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[88,339,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[236,352,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"erasableSyntaxOnly":true,"exactOptionalPropertyTypes":true,"isolatedDeclarations":true,"importHelpers":true,"module":199,"newLine":2,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noEmitOnError":true,"noUnusedLocals":true,"noUnusedParameters":true,"noImplicitOverride":true,"noUncheckedSideEffectImports":true,"outDir":"./","removeComments":false,"rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"skipDefaultLibCheck":false,"sourceMap":true,"target":99,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true,"allowSyntheticDefaultImports":true,"esModuleInterop":true},"referencedMap":[[125,1],[278,2],[276,1],[277,3],[300,1],[91,4],[90,5],[273,6],[272,5],[89,1],[126,7],[127,8],[279,9],[280,10],[274,11],[275,12],[398,13],[399,14],[400,15],[352,16],[401,17],[402,18],[403,19],[347,1],[350,20],[348,1],[349,1],[404,21],[405,22],[406,23],[407,24],[408,25],[409,26],[410,27],[411,28],[412,29],[413,30],[414,31],[353,1],[351,1],[415,32],[416,33],[417,34],[451,35],[418,36],[419,37],[420,38],[421,39],[422,40],[423,41],[424,42],[425,43],[426,44],[427,45],[428,46],[429,47],[430,48],[431,49],[432,50],[433,51],[435,52],[434,53],[436,54],[437,55],[438,56],[439,57],[440,58],[441,59],[442,60],[443,61],[444,62],[445,63],[446,64],[447,65],[448,66],[354,1],[355,1],[356,1],[394,67],[395,1],[396,1],[397,1],[449,68],[450,69],[86,1],[87,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[24,1],[25,1],[4,1],[26,1],[30,1],[27,1],[28,1],[29,1],[31,1],[32,1],[33,1],[5,1],[34,1],[35,1],[36,1],[37,1],[6,1],[41,1],[38,1],[39,1],[40,1],[42,1],[7,1],[43,1],[48,1],[49,1],[44,1],[45,1],[46,1],[47,1],[8,1],[53,1],[50,1],[51,1],[52,1],[54,1],[9,1],[55,1],[56,1],[57,1],[59,1],[58,1],[60,1],[61,1],[10,1],[62,1],[63,1],[64,1],[11,1],[65,1],[66,1],[67,1],[68,1],[69,1],[70,1],[12,1],[71,1],[72,1],[73,1],[74,1],[75,1],[1,1],[76,1],[77,1],[13,1],[78,1],[79,1],[80,1],[81,1],[82,1],[83,1],[84,1],[85,1],[372,70],[382,71],[371,70],[392,72],[363,73],[362,1],[391,74],[385,75],[390,73],[365,76],[379,77],[364,78],[388,79],[360,80],[359,74],[389,81],[361,82],[366,71],[367,1],[370,71],[357,1],[393,83],[383,84],[374,85],[375,86],[377,87],[373,88],[376,89],[386,74],[368,90],[369,91],[378,92],[358,1],[381,84],[380,71],[384,1],[387,93],[236,94],[228,95],[234,96],[229,96],[231,96],[225,95],[235,97],[230,98],[232,96],[233,96],[226,99],[227,100],[221,101],[149,102],[220,103],[151,104],[219,1],[150,105],[224,106],[223,107],[222,108],[142,1],[153,109],[152,102],[154,1],[144,103],[148,110],[143,1],[145,111],[146,112],[147,1],[155,113],[156,113],[157,113],[158,113],[159,113],[160,113],[161,113],[162,113],[163,113],[164,113],[165,113],[166,113],[167,113],[168,113],[169,113],[170,113],[172,113],[171,113],[173,113],[174,113],[175,113],[176,113],[177,113],[178,113],[179,113],[218,114],[180,113],[181,113],[182,113],[183,113],[184,113],[185,113],[186,113],[187,113],[188,113],[189,113],[190,113],[191,113],[192,113],[193,113],[194,113],[195,113],[197,113],[196,113],[199,113],[198,113],[200,113],[201,113],[202,113],[203,113],[204,113],[205,113],[206,113],[207,113],[208,113],[209,113],[210,113],[211,113],[212,113],[213,113],[214,113],[217,113],[215,113],[216,113],[339,115],[338,1],[336,116],[334,116],[333,1],[335,116],[337,1],[138,117],[141,118],[140,119],[139,120],[331,121],[132,1],[136,122],[134,121],[137,123],[133,122],[135,124],[244,125],[243,126],[242,127],[251,128],[252,129],[250,130],[249,117],[318,131],[321,132],[248,133],[247,134],[246,135],[330,136],[326,137],[124,138],[131,139],[123,140],[122,141],[95,121],[114,1],[116,142],[118,143],[117,1],[119,144],[115,145],[113,1],[266,146],[261,141],[255,147],[257,148],[121,149],[254,150],[260,141],[258,151],[259,152],[253,151],[256,153],[262,141],[325,154],[265,155],[120,156],[264,157],[263,158],[99,159],[128,160],[92,161],[327,162],[329,163],[239,164],[328,165],[241,166],[240,167],[129,168],[103,1],[332,169],[108,1],[245,1],[299,170],[96,171],[270,172],[294,173],[295,174],[296,175],[238,176],[100,1],[271,177],[101,178],[293,179],[102,180],[237,140],[310,140],[306,140],[312,181],[303,1],[305,140],[311,140],[309,140],[304,1],[302,182],[307,140],[308,140],[314,183],[292,184],[297,140],[289,140],[93,185],[130,186],[97,187],[269,188],[315,189],[285,190],[111,191],[290,184],[298,192],[110,140],[316,140],[301,193],[94,1],[105,192],[104,140],[313,1],[98,194],[288,1],[112,195],[291,140],[320,1],[322,1],[107,196],[268,197],[324,198],[323,199],[286,200],[106,201],[281,202],[287,203],[282,204],[284,197],[267,205],[283,1],[109,206],[317,1],[319,1],[88,1],[345,207],[343,208],[344,209],[342,210],[346,211],[340,212],[341,213]],"latestChangedDtsFile":"./register.d.ts"}
package/dist/browser.d.ts DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * Find a Chromium browser that is already installed: Microsoft Edge, Google Chrome or Chromium.
3
- * The package does not download a browser.
4
- */
5
- /** The environment variable that names the browser program. It comes before the search. */
6
- export declare const BROWSER_ENV = "PDF_BROWSER";
7
- /** The second environment variable for the browser program. Other tools use this name too. */
8
- export declare const CHROME_PATH_ENV = "CHROME_PATH";
9
- /** The program names that the search looks for on the `PATH`, in order. */
10
- export declare const BROWSER_NAMES: readonly string[];
11
- /** The program names on the `PATH` of Windows, in order. */
12
- export declare const WINDOWS_BROWSER_NAMES: readonly string[];
13
- /** The options of `findBrowser`. Each one has a default from the host. */
14
- export interface FindBrowserOptions {
15
- /** The browser program. When it is set, the search does not occur. */
16
- readonly executable?: string | undefined;
17
- /** The environment (default: `process.env`). */
18
- readonly env?: Readonly<Record<string, string | undefined>> | undefined;
19
- /** The operating system (default: `process.platform`). */
20
- readonly platform?: NodeJS.Platform | undefined;
21
- /** The function that tells if a file exists (default: `existsSync`). */
22
- readonly exists?: ((path: string) => boolean) | undefined;
23
- }
24
- /**
25
- * This function gives the paths that the search examines on an operating system, in order. The
26
- * install folders come first, then the folders of the `PATH`.
27
- */
28
- export declare function browserCandidates(platform: NodeJS.Platform, env: Readonly<Record<string, string | undefined>>): string[];
29
- /**
30
- * This function finds the browser program. The order is `executable`, then `PDF_BROWSER`, then
31
- * `CHROME_PATH`, then the install folders and the `PATH`. It gives `undefined` when it finds none.
32
- */
33
- export declare function findBrowser(options?: FindBrowserOptions): string | undefined;
34
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,2FAA2F;AAC3F,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,8FAA8F;AAC9F,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAO1C,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAiC,CAAC;AAErF,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IACxE,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAChD,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAC3D;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,CA8BxH;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,GAAG,SAAS,CAShF"}
package/dist/browser.js DELETED
@@ -1,81 +0,0 @@
1
- /**
2
- * Find a Chromium browser that is already installed: Microsoft Edge, Google Chrome or Chromium.
3
- * The package does not download a browser.
4
- */
5
- import { existsSync } from "node:fs";
6
- import { posix, win32 } from "node:path";
7
- /** The environment variable that names the browser program. It comes before the search. */
8
- export const BROWSER_ENV = "PDF_BROWSER";
9
- /** The second environment variable for the browser program. Other tools use this name too. */
10
- export const CHROME_PATH_ENV = "CHROME_PATH";
11
- /** The program names that the search looks for on the `PATH`, in order. */
12
- export const BROWSER_NAMES = [
13
- "google-chrome",
14
- "google-chrome-stable",
15
- "chromium",
16
- "chromium-browser",
17
- "microsoft-edge",
18
- "microsoft-edge-stable",
19
- ];
20
- /** The program names on the `PATH` of Windows, in order. */
21
- export const WINDOWS_BROWSER_NAMES = ["msedge.exe", "chrome.exe"];
22
- /** This function gives the folders of the `PATH`, in order. */
23
- function pathFolders(env, windows) {
24
- const value = windows ? (env["Path"] ?? env["PATH"]) : env["PATH"];
25
- if (value === undefined)
26
- return [];
27
- return value.split(windows ? ";" : ":").filter((folder) => folder.length > 0);
28
- }
29
- /**
30
- * This function gives the paths that the search examines on an operating system, in order. The
31
- * install folders come first, then the folders of the `PATH`.
32
- */
33
- export function browserCandidates(platform, env) {
34
- if (platform === "win32") {
35
- const programFiles = env["ProgramFiles"] ?? env["PROGRAMFILES"] ?? "C:\\Program Files";
36
- const programFilesX86 = env["ProgramFiles(x86)"] ?? env["PROGRAMFILES(X86)"] ?? "C:\\Program Files (x86)";
37
- const localAppData = env["LOCALAPPDATA"];
38
- const installed = [
39
- win32.join(programFilesX86, "Microsoft", "Edge", "Application", "msedge.exe"),
40
- win32.join(programFiles, "Microsoft", "Edge", "Application", "msedge.exe"),
41
- win32.join(programFiles, "Google", "Chrome", "Application", "chrome.exe"),
42
- win32.join(programFilesX86, "Google", "Chrome", "Application", "chrome.exe"),
43
- ...(localAppData !== undefined
44
- ? [win32.join(localAppData, "Google", "Chrome", "Application", "chrome.exe"), win32.join(localAppData, "Chromium", "Application", "chrome.exe")]
45
- : []),
46
- ];
47
- const onPath = pathFolders(env, true).flatMap((folder) => WINDOWS_BROWSER_NAMES.map((name) => win32.join(folder, name)));
48
- return [...installed, ...onPath];
49
- }
50
- const installed = [];
51
- if (platform === "darwin") {
52
- const bundles = [
53
- "Google Chrome.app/Contents/MacOS/Google Chrome",
54
- "Microsoft Edge.app/Contents/MacOS/Microsoft Edge",
55
- "Chromium.app/Contents/MacOS/Chromium",
56
- ];
57
- const home = env["HOME"];
58
- installed.push(...bundles.map((bundle) => posix.join("/Applications", bundle)));
59
- if (home !== undefined)
60
- installed.push(...bundles.map((bundle) => posix.join(home, "Applications", bundle)));
61
- }
62
- const onPath = pathFolders(env, false).flatMap((folder) => BROWSER_NAMES.map((name) => posix.join(folder, name)));
63
- return [...installed, ...onPath];
64
- }
65
- /**
66
- * This function finds the browser program. The order is `executable`, then `PDF_BROWSER`, then
67
- * `CHROME_PATH`, then the install folders and the `PATH`. It gives `undefined` when it finds none.
68
- */
69
- export function findBrowser(options = {}) {
70
- if (options.executable !== undefined && options.executable.length > 0)
71
- return options.executable;
72
- const env = options.env ?? process.env;
73
- for (const name of [BROWSER_ENV, CHROME_PATH_ENV]) {
74
- const value = env[name];
75
- if (value !== undefined && value.length > 0)
76
- return value;
77
- }
78
- const exists = options.exists ?? existsSync;
79
- return browserCandidates(options.platform ?? process.platform, env).find((candidate) => exists(candidate));
80
- }
81
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/render.d.ts DELETED
@@ -1,52 +0,0 @@
1
- /**
2
- * HTML to PDF with a headless Chromium browser that is already installed.
3
- *
4
- * The browser starts with argv, not through a shell, through `runCommand` of
5
- * `@procedures/shell`. A time limit and the signal of the call stop its process tree.
6
- */
7
- import { type CommandOptions, type CommandResult } from "@procedures/shell/command";
8
- import { type FindBrowserOptions } from "./browser.js";
9
- /** The default time limit of one render, in milliseconds. */
10
- export declare const DEFAULT_TIMEOUT_MS = 60000;
11
- /** The function that runs a program. The default is `runCommand` of `@procedures/shell`. */
12
- export type CommandRunner = (command: string, options: CommandOptions) => Promise<CommandResult>;
13
- /** The options of `renderPdf`. Give `html` or `file`, not the two. */
14
- export interface RenderPdfOptions extends FindBrowserOptions {
15
- /** The HTML text. The function writes it to a temporary file. */
16
- readonly html?: string | undefined;
17
- /** The path of an HTML file. */
18
- readonly file?: string | undefined;
19
- /** The path of the PDF file. The default is a file in a new temporary folder. */
20
- readonly output?: string | undefined;
21
- /** More flags for the browser, after the default flags. */
22
- readonly args?: readonly string[] | undefined;
23
- /** The time limit, in milliseconds (default: 60000). */
24
- readonly timeout?: number | undefined;
25
- /** When the signal aborts, the browser stops. */
26
- readonly signal?: AbortSignal | undefined;
27
- /** The function that runs the browser (default: `runCommand`). The tests give their own. */
28
- readonly runner?: CommandRunner | undefined;
29
- }
30
- /** The result of `renderPdf`. */
31
- export interface RenderPdfResult {
32
- /** The absolute path of the PDF file. */
33
- readonly path: string;
34
- /** The size of the PDF file, in bytes. */
35
- readonly bytes: number;
36
- /** The browser program that made the file. */
37
- readonly browser: string;
38
- }
39
- /**
40
- * This function gives the argv of the browser. The argv has the flags of a headless print, the
41
- * profile folder, the extra flags and the address of the page.
42
- */
43
- export declare function pdfArgs(page: string, output: string, profile: string, extra?: readonly string[]): string[];
44
- /** This function tells if a file starts with the signature of a PDF file (`%PDF`). */
45
- export declare function isPdfFile(path: string): boolean;
46
- /**
47
- * This function prints an HTML page to a PDF file with a headless browser. It gives the path and
48
- * the size of the file. It throws when it finds no browser, at the time limit, and when the file
49
- * is not a PDF file.
50
- */
51
- export declare function renderPdf(options: RenderPdfOptions): Promise<RenderPdfResult>;
52
- //# sourceMappingURL=render.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjF,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAEjG,sEAAsE;AACtE,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iDAAiD;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC7C;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,EAAE,CAW9G;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAS/C;AAcD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2DnF"}
package/dist/render.js DELETED
@@ -1,125 +0,0 @@
1
- /**
2
- * HTML to PDF with a headless Chromium browser that is already installed.
3
- *
4
- * The browser starts with argv, not through a shell, through `runCommand` of
5
- * `@procedures/shell`. A time limit and the signal of the call stop its process tree.
6
- */
7
- import { closeSync, copyFileSync, mkdirSync, mkdtempSync, openSync, readSync, rmSync, statSync, writeFileSync } from "node:fs";
8
- import { tmpdir } from "node:os";
9
- import { dirname, join, resolve } from "node:path";
10
- import { pathToFileURL } from "node:url";
11
- import { runCommand } from "@procedures/shell/command";
12
- import { BROWSER_ENV, findBrowser } from "./browser.js";
13
- /** The default time limit of one render, in milliseconds. */
14
- export const DEFAULT_TIMEOUT_MS = 60_000;
15
- /**
16
- * This function gives the argv of the browser. The argv has the flags of a headless print, the
17
- * profile folder, the extra flags and the address of the page.
18
- */
19
- export function pdfArgs(page, output, profile, extra = []) {
20
- return [
21
- "--headless",
22
- "--disable-gpu",
23
- "--no-pdf-header-footer",
24
- // A separate profile keeps the print apart from a browser that the user has open
25
- `--user-data-dir=${profile}`,
26
- `--print-to-pdf=${output}`,
27
- ...extra,
28
- page,
29
- ];
30
- }
31
- /** This function tells if a file starts with the signature of a PDF file (`%PDF`). */
32
- export function isPdfFile(path) {
33
- const fd = openSync(path, "r");
34
- try {
35
- const head = Buffer.alloc(4);
36
- const read = readSync(fd, head, 0, 4, 0);
37
- return read === 4 && head.toString("latin1") === "%PDF";
38
- }
39
- finally {
40
- closeSync(fd);
41
- }
42
- }
43
- function fileSize(path) {
44
- try {
45
- return statSync(path).size;
46
- }
47
- catch {
48
- return undefined;
49
- }
50
- }
51
- function lastLines(text, count = 5) {
52
- return text.trim().split(/\r?\n/).slice(-count).join("\n");
53
- }
54
- /**
55
- * This function prints an HTML page to a PDF file with a headless browser. It gives the path and
56
- * the size of the file. It throws when it finds no browser, at the time limit, and when the file
57
- * is not a PDF file.
58
- */
59
- export async function renderPdf(options) {
60
- const hasHtml = options.html !== undefined;
61
- const hasFile = options.file !== undefined;
62
- if (hasHtml === hasFile)
63
- throw new Error("renderPdf needs html or file, and not the two");
64
- const browser = findBrowser(options);
65
- if (browser === undefined) {
66
- throw new Error(`No browser found. Install Microsoft Edge, Google Chrome or Chromium, or set ${BROWSER_ENV} to the browser program.`);
67
- }
68
- const work = mkdtempSync(join(tmpdir(), "procedures-pdf-"));
69
- const profile = join(work, "profile");
70
- const output = resolve(options.output ?? join(work, "page.pdf"));
71
- // The browser prints into the temporary folder. The file replaces the output only after its
72
- // check, so a failed render keeps an old output file (before, it was deleted: audit pass 2).
73
- const printed = join(work, "page.pdf");
74
- let made = false;
75
- try {
76
- let page;
77
- if (options.html !== undefined) {
78
- const htmlFile = join(work, "page.html");
79
- writeFileSync(htmlFile, options.html, "utf8");
80
- page = pathToFileURL(htmlFile).href;
81
- }
82
- else {
83
- page = pathToFileURL(resolve(options.file)).href;
84
- }
85
- mkdirSync(dirname(output), { recursive: true });
86
- const run = options.runner ?? runCommand;
87
- const timeout = options.timeout ?? DEFAULT_TIMEOUT_MS;
88
- const result = await run(browser, {
89
- args: pdfArgs(page, printed, profile, options.args),
90
- timeout,
91
- signal: options.signal,
92
- maxOutputBytes: 64 * 1024,
93
- keep: "tail",
94
- });
95
- if (result.error !== undefined)
96
- throw new Error(`The browser did not start: ${result.error}`);
97
- if (result.timedOut === true)
98
- throw new Error(`The browser did not finish in ${timeout} ms`);
99
- if (result.aborted === true)
100
- throw new Error("The render was cancelled");
101
- const bytes = fileSize(printed);
102
- if (bytes === undefined || bytes === 0) {
103
- const detail = lastLines(result.stderr || result.stdout);
104
- throw new Error(`The browser made no PDF file (exit code ${result.exitCode})${detail ? `: ${detail}` : ""}`);
105
- }
106
- if (!isPdfFile(printed))
107
- throw new Error(`The file ${output} is not a PDF file`);
108
- // The temporary folder goes in `finally`, so a copy is enough, also across two drives
109
- if (printed !== output)
110
- copyFileSync(printed, output);
111
- made = true;
112
- return { path: output, bytes, browser };
113
- }
114
- finally {
115
- // The temporary page and profile go. A default output stays in its folder after a success.
116
- if (made && options.output === undefined) {
117
- rmSync(profile, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
118
- rmSync(join(work, "page.html"), { force: true });
119
- }
120
- else {
121
- rmSync(work, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
122
- }
123
- }
124
- }
125
- //# sourceMappingURL=render.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/src/browser.ts DELETED
@@ -1,96 +0,0 @@
1
- /**
2
- * Find a Chromium browser that is already installed: Microsoft Edge, Google Chrome or Chromium.
3
- * The package does not download a browser.
4
- */
5
-
6
- import { existsSync } from "node:fs";
7
- import { posix, win32 } from "node:path";
8
-
9
- /** The environment variable that names the browser program. It comes before the search. */
10
- export const BROWSER_ENV = "PDF_BROWSER";
11
-
12
- /** The second environment variable for the browser program. Other tools use this name too. */
13
- export const CHROME_PATH_ENV = "CHROME_PATH";
14
-
15
- /** The program names that the search looks for on the `PATH`, in order. */
16
- export const BROWSER_NAMES: readonly string[] = [
17
- "google-chrome",
18
- "google-chrome-stable",
19
- "chromium",
20
- "chromium-browser",
21
- "microsoft-edge",
22
- "microsoft-edge-stable",
23
- ];
24
-
25
- /** The program names on the `PATH` of Windows, in order. */
26
- export const WINDOWS_BROWSER_NAMES: readonly string[] = ["msedge.exe", "chrome.exe"];
27
-
28
- /** The options of `findBrowser`. Each one has a default from the host. */
29
- export interface FindBrowserOptions {
30
- /** The browser program. When it is set, the search does not occur. */
31
- readonly executable?: string | undefined;
32
- /** The environment (default: `process.env`). */
33
- readonly env?: Readonly<Record<string, string | undefined>> | undefined;
34
- /** The operating system (default: `process.platform`). */
35
- readonly platform?: NodeJS.Platform | undefined;
36
- /** The function that tells if a file exists (default: `existsSync`). */
37
- readonly exists?: ((path: string) => boolean) | undefined;
38
- }
39
-
40
- /** This function gives the folders of the `PATH`, in order. */
41
- function pathFolders(env: Readonly<Record<string, string | undefined>>, windows: boolean): string[] {
42
- const value = windows ? (env["Path"] ?? env["PATH"]) : env["PATH"];
43
- if (value === undefined) return [];
44
- return value.split(windows ? ";" : ":").filter((folder) => folder.length > 0);
45
- }
46
-
47
- /**
48
- * This function gives the paths that the search examines on an operating system, in order. The
49
- * install folders come first, then the folders of the `PATH`.
50
- */
51
- export function browserCandidates(platform: NodeJS.Platform, env: Readonly<Record<string, string | undefined>>): string[] {
52
- if (platform === "win32") {
53
- const programFiles = env["ProgramFiles"] ?? env["PROGRAMFILES"] ?? "C:\\Program Files";
54
- const programFilesX86 = env["ProgramFiles(x86)"] ?? env["PROGRAMFILES(X86)"] ?? "C:\\Program Files (x86)";
55
- const localAppData = env["LOCALAPPDATA"];
56
- const installed = [
57
- win32.join(programFilesX86, "Microsoft", "Edge", "Application", "msedge.exe"),
58
- win32.join(programFiles, "Microsoft", "Edge", "Application", "msedge.exe"),
59
- win32.join(programFiles, "Google", "Chrome", "Application", "chrome.exe"),
60
- win32.join(programFilesX86, "Google", "Chrome", "Application", "chrome.exe"),
61
- ...(localAppData !== undefined
62
- ? [win32.join(localAppData, "Google", "Chrome", "Application", "chrome.exe"), win32.join(localAppData, "Chromium", "Application", "chrome.exe")]
63
- : []),
64
- ];
65
- const onPath = pathFolders(env, true).flatMap((folder) => WINDOWS_BROWSER_NAMES.map((name) => win32.join(folder, name)));
66
- return [...installed, ...onPath];
67
- }
68
- const installed: string[] = [];
69
- if (platform === "darwin") {
70
- const bundles = [
71
- "Google Chrome.app/Contents/MacOS/Google Chrome",
72
- "Microsoft Edge.app/Contents/MacOS/Microsoft Edge",
73
- "Chromium.app/Contents/MacOS/Chromium",
74
- ];
75
- const home = env["HOME"];
76
- installed.push(...bundles.map((bundle) => posix.join("/Applications", bundle)));
77
- if (home !== undefined) installed.push(...bundles.map((bundle) => posix.join(home, "Applications", bundle)));
78
- }
79
- const onPath = pathFolders(env, false).flatMap((folder) => BROWSER_NAMES.map((name) => posix.join(folder, name)));
80
- return [...installed, ...onPath];
81
- }
82
-
83
- /**
84
- * This function finds the browser program. The order is `executable`, then `PDF_BROWSER`, then
85
- * `CHROME_PATH`, then the install folders and the `PATH`. It gives `undefined` when it finds none.
86
- */
87
- export function findBrowser(options: FindBrowserOptions = {}): string | undefined {
88
- if (options.executable !== undefined && options.executable.length > 0) return options.executable;
89
- const env = options.env ?? process.env;
90
- for (const name of [BROWSER_ENV, CHROME_PATH_ENV]) {
91
- const value = env[name];
92
- if (value !== undefined && value.length > 0) return value;
93
- }
94
- const exists = options.exists ?? existsSync;
95
- return browserCandidates(options.platform ?? process.platform, env).find((candidate) => exists(candidate));
96
- }
package/src/render.ts DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * HTML to PDF with a headless Chromium browser that is already installed.
3
- *
4
- * The browser starts with argv, not through a shell, through `runCommand` of
5
- * `@procedures/shell`. A time limit and the signal of the call stop its process tree.
6
- */
7
-
8
- import { closeSync, copyFileSync, mkdirSync, mkdtempSync, openSync, readSync, rmSync, statSync, writeFileSync } from "node:fs";
9
- import { tmpdir } from "node:os";
10
- import { dirname, join, resolve } from "node:path";
11
- import { pathToFileURL } from "node:url";
12
- import { runCommand, type CommandOptions, type CommandResult } from "@procedures/shell/command";
13
- import { BROWSER_ENV, findBrowser, type FindBrowserOptions } from "./browser.js";
14
-
15
- /** The default time limit of one render, in milliseconds. */
16
- export const DEFAULT_TIMEOUT_MS = 60_000;
17
-
18
- /** The function that runs a program. The default is `runCommand` of `@procedures/shell`. */
19
- export type CommandRunner = (command: string, options: CommandOptions) => Promise<CommandResult>;
20
-
21
- /** The options of `renderPdf`. Give `html` or `file`, not the two. */
22
- export interface RenderPdfOptions extends FindBrowserOptions {
23
- /** The HTML text. The function writes it to a temporary file. */
24
- readonly html?: string | undefined;
25
- /** The path of an HTML file. */
26
- readonly file?: string | undefined;
27
- /** The path of the PDF file. The default is a file in a new temporary folder. */
28
- readonly output?: string | undefined;
29
- /** More flags for the browser, after the default flags. */
30
- readonly args?: readonly string[] | undefined;
31
- /** The time limit, in milliseconds (default: 60000). */
32
- readonly timeout?: number | undefined;
33
- /** When the signal aborts, the browser stops. */
34
- readonly signal?: AbortSignal | undefined;
35
- /** The function that runs the browser (default: `runCommand`). The tests give their own. */
36
- readonly runner?: CommandRunner | undefined;
37
- }
38
-
39
- /** The result of `renderPdf`. */
40
- export interface RenderPdfResult {
41
- /** The absolute path of the PDF file. */
42
- readonly path: string;
43
- /** The size of the PDF file, in bytes. */
44
- readonly bytes: number;
45
- /** The browser program that made the file. */
46
- readonly browser: string;
47
- }
48
-
49
- /**
50
- * This function gives the argv of the browser. The argv has the flags of a headless print, the
51
- * profile folder, the extra flags and the address of the page.
52
- */
53
- export function pdfArgs(page: string, output: string, profile: string, extra: readonly string[] = []): string[] {
54
- return [
55
- "--headless",
56
- "--disable-gpu",
57
- "--no-pdf-header-footer",
58
- // A separate profile keeps the print apart from a browser that the user has open
59
- `--user-data-dir=${profile}`,
60
- `--print-to-pdf=${output}`,
61
- ...extra,
62
- page,
63
- ];
64
- }
65
-
66
- /** This function tells if a file starts with the signature of a PDF file (`%PDF`). */
67
- export function isPdfFile(path: string): boolean {
68
- const fd = openSync(path, "r");
69
- try {
70
- const head = Buffer.alloc(4);
71
- const read = readSync(fd, head, 0, 4, 0);
72
- return read === 4 && head.toString("latin1") === "%PDF";
73
- } finally {
74
- closeSync(fd);
75
- }
76
- }
77
-
78
- function fileSize(path: string): number | undefined {
79
- try {
80
- return statSync(path).size;
81
- } catch {
82
- return undefined;
83
- }
84
- }
85
-
86
- function lastLines(text: string, count = 5): string {
87
- return text.trim().split(/\r?\n/).slice(-count).join("\n");
88
- }
89
-
90
- /**
91
- * This function prints an HTML page to a PDF file with a headless browser. It gives the path and
92
- * the size of the file. It throws when it finds no browser, at the time limit, and when the file
93
- * is not a PDF file.
94
- */
95
- export async function renderPdf(options: RenderPdfOptions): Promise<RenderPdfResult> {
96
- const hasHtml = options.html !== undefined;
97
- const hasFile = options.file !== undefined;
98
- if (hasHtml === hasFile) throw new Error("renderPdf needs html or file, and not the two");
99
- const browser = findBrowser(options);
100
- if (browser === undefined) {
101
- throw new Error(`No browser found. Install Microsoft Edge, Google Chrome or Chromium, or set ${BROWSER_ENV} to the browser program.`);
102
- }
103
-
104
- const work = mkdtempSync(join(tmpdir(), "procedures-pdf-"));
105
- const profile = join(work, "profile");
106
- const output = resolve(options.output ?? join(work, "page.pdf"));
107
- // The browser prints into the temporary folder. The file replaces the output only after its
108
- // check, so a failed render keeps an old output file (before, it was deleted: audit pass 2).
109
- const printed = join(work, "page.pdf");
110
- let made = false;
111
- try {
112
- let page: string;
113
- if (options.html !== undefined) {
114
- const htmlFile = join(work, "page.html");
115
- writeFileSync(htmlFile, options.html, "utf8");
116
- page = pathToFileURL(htmlFile).href;
117
- } else {
118
- page = pathToFileURL(resolve(options.file!)).href;
119
- }
120
- mkdirSync(dirname(output), { recursive: true });
121
-
122
- const run = options.runner ?? runCommand;
123
- const timeout = options.timeout ?? DEFAULT_TIMEOUT_MS;
124
- const result = await run(browser, {
125
- args: pdfArgs(page, printed, profile, options.args),
126
- timeout,
127
- signal: options.signal,
128
- maxOutputBytes: 64 * 1024,
129
- keep: "tail",
130
- });
131
- if (result.error !== undefined) throw new Error(`The browser did not start: ${result.error}`);
132
- if (result.timedOut === true) throw new Error(`The browser did not finish in ${timeout} ms`);
133
- if (result.aborted === true) throw new Error("The render was cancelled");
134
-
135
- const bytes = fileSize(printed);
136
- if (bytes === undefined || bytes === 0) {
137
- const detail = lastLines(result.stderr || result.stdout);
138
- throw new Error(`The browser made no PDF file (exit code ${result.exitCode})${detail ? `: ${detail}` : ""}`);
139
- }
140
- if (!isPdfFile(printed)) throw new Error(`The file ${output} is not a PDF file`);
141
- // The temporary folder goes in `finally`, so a copy is enough, also across two drives
142
- if (printed !== output) copyFileSync(printed, output);
143
- made = true;
144
- return { path: output, bytes, browser };
145
- } finally {
146
- // The temporary page and profile go. A default output stays in its folder after a success.
147
- if (made && options.output === undefined) {
148
- rmSync(profile, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
149
- rmSync(join(work, "page.html"), { force: true });
150
- } else {
151
- rmSync(work, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
152
- }
153
- }
154
- }