From 906f91f8eed5e91a7afae95c7002a3e4553d6aae Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Thu, 13 Jul 2023 00:19:35 -0700 Subject: [PATCH] base path refactor, more docs --- .github/workflows/deploy.yaml | 12 +- content/configuration.md | 4 +- content/features/upcoming features.md | 1 + content/quartz-transform-pipeline.png | Bin 0 -> 73574 bytes index.d.ts | 2 +- package-lock.json | 1413 +++++++++++++++++++- package.json | 4 +- quartz.config.ts | 2 +- quartz/cfg.ts | 2 +- quartz/components/Backlinks.tsx | 4 +- quartz/components/Head.tsx | 6 +- quartz/components/PageList.tsx | 4 +- quartz/components/PageTitle.tsx | 4 +- quartz/components/TagList.tsx | 4 +- quartz/components/pages/FolderContent.tsx | 4 +- quartz/components/pages/TagContent.tsx | 4 +- quartz/components/renderPage.tsx | 8 +- quartz/components/scripts/graph.inline.ts | 15 +- quartz/components/scripts/search.inline.ts | 13 +- quartz/components/scripts/spa.inline.ts | 5 +- quartz/components/scripts/util.ts | 13 - quartz/components/styles/backlinks.scss | 2 + quartz/path.test.ts | 159 +++ quartz/path.ts | 212 ++- quartz/plugins/emitters/aliases.ts | 14 +- quartz/plugins/emitters/contentIndex.ts | 15 +- quartz/plugins/emitters/contentPage.tsx | 7 +- quartz/plugins/emitters/folderPage.tsx | 6 +- quartz/plugins/emitters/tagPage.tsx | 12 +- quartz/plugins/index.ts | 9 +- quartz/plugins/transformers/links.ts | 14 +- quartz/plugins/transformers/toc.ts | 3 +- quartz/plugins/types.ts | 7 +- quartz/processors/emit.ts | 17 +- quartz/processors/parse.ts | 11 +- quartz/worker.ts | 3 +- tsconfig.tsbuildinfo | 2 +- 37 files changed, 1861 insertions(+), 156 deletions(-) create mode 100644 content/quartz-transform-pipeline.png create mode 100644 quartz/path.test.ts diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index c7adc45..6c9adda 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -30,12 +30,8 @@ jobs: - run: npm ci - - name: Build Quartz - run: npx quartz build + - name: Test + run: npm test - # TODO: when we actually release - # - name: Deploy - # uses: peaceiris/actions-gh-pages@v3 - # with: - # github_token: ${{ secrets.GITHUB_TOKEN }} - # publish_dir: ./public + - name: Ensure Quartz builds + run: npx quartz build diff --git a/content/configuration.md b/content/configuration.md index 67dc41b..f8f3a70 100644 --- a/content/configuration.md +++ b/content/configuration.md @@ -45,6 +45,8 @@ This part of the configuration concerns anything that can affect the whole site. ## Plugins You can think of Quartz plugins as a series of transformations over content. +![[quartz-transform-pipeline.png]] + ```ts plugins: { transformers: [...], @@ -72,6 +74,6 @@ transformers: [ ``` ### Layout -Certain emitters may also output [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) files. +Certain emitters may also output [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) files. To make sure that ### Components diff --git a/content/features/upcoming features.md b/content/features/upcoming features.md index 59b6c9f..24b8465 100644 --- a/content/features/upcoming features.md +++ b/content/features/upcoming features.md @@ -1,4 +1,5 @@ +- fixes - CLI - update - push diff --git a/content/quartz-transform-pipeline.png b/content/quartz-transform-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..657f0a3abb8cb92c6e916f0a43baad1ec0ce6cdf GIT binary patch literal 73574 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 literal 0 HcmV?d00001 diff --git a/index.d.ts b/index.d.ts index 3b3acfc..b98a5be 100644 --- a/index.d.ts +++ b/index.d.ts @@ -5,7 +5,7 @@ declare module '*.scss' { // dom custom event interface CustomEventMap { - "nav": CustomEvent<{ url: string }>; + "nav": CustomEvent<{ url: CanonicalSlug }>; } declare const fetchData: Promise diff --git a/package-lock.json b/package-lock.json index 8477452..b511c56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,9 @@ "@types/serve-handler": "^6.1.1", "@types/workerpool": "^6.4.0", "@types/yargs": "^17.0.24", + "ava": "^5.3.1", "esbuild": "^0.18.11", + "tsx": "^3.12.7", "typescript": "^5.0.4" } }, @@ -106,6 +108,425 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@esbuild-kit/cjs-loader": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz", + "integrity": "sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==", + "dev": true, + "dependencies": { + "@esbuild-kit/core-utils": "^3.0.0", + "get-tsconfig": "^4.4.0" + } + }, + "node_modules/@esbuild-kit/core-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz", + "integrity": "sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==", + "dev": true, + "dependencies": { + "esbuild": "~0.17.6", + "source-map-support": "^0.5.21" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/@esbuild-kit/esm-loader": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz", + "integrity": "sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==", + "dev": true, + "dependencies": { + "@esbuild-kit/core-utils": "^3.0.0", + "get-tsconfig": "^4.4.0" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.18.11", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.11.tgz", @@ -1146,6 +1567,22 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -1194,6 +1631,15 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-iterate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", @@ -1203,11 +1649,136 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/ava": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-5.3.1.tgz", + "integrity": "sha512-Scv9a4gMOXB6+ni4toLuhAm9KYWEjsgBglJl+kMGI5+IVDt120CCDZyB5HNU9DjmLI2t4I0GbnxGLmmRfGTJGg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "acorn-walk": "^8.2.0", + "ansi-styles": "^6.2.1", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.0.0", + "cbor": "^8.1.0", + "chalk": "^5.2.0", + "chokidar": "^3.5.3", + "chunkd": "^2.0.1", + "ci-info": "^3.8.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-truncate": "^3.1.0", + "code-excerpt": "^4.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.4", + "emittery": "^1.0.1", + "figures": "^5.0.0", + "globby": "^13.1.4", + "ignore-by-default": "^2.1.0", + "indent-string": "^5.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "mem": "^9.0.2", + "ms": "^2.1.3", + "p-event": "^5.0.1", + "p-map": "^5.5.0", + "picomatch": "^2.3.1", + "pkg-conf": "^4.0.0", + "plur": "^5.1.0", + "pretty-ms": "^8.0.0", + "resolve-cwd": "^3.0.0", + "stack-utils": "^2.0.6", + "strip-ansi": "^7.0.1", + "supertap": "^3.0.1", + "temp-dir": "^3.0.0", + "write-file-atomic": "^5.0.1", + "yargs": "^17.7.2" + }, + "bin": { + "ava": "entrypoints/cli.mjs" + }, + "engines": { + "node": ">=14.19 <15 || >=16.15 <17 || >=18" + }, + "peerDependencies": { + "@ava/typescript": "*" + }, + "peerDependenciesMeta": { + "@ava/typescript": { + "optional": true + } + } + }, + "node_modules/ava/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ava/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ava/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ava/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -1230,6 +1801,12 @@ "node": ">=8" } }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1254,6 +1831,12 @@ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -1262,6 +1845,30 @@ "node": ">= 0.8" } }, + "node_modules/callsites": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz", + "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -1321,6 +1928,57 @@ "fsevents": "~2.3.2" } }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/cli-spinner": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", @@ -1329,6 +1987,22 @@ "node": ">=0.10" } }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -1395,6 +2069,18 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^2.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1439,11 +2125,36 @@ "node": ">= 10" } }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, "node_modules/content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -1452,6 +2163,15 @@ "node": ">= 0.6" } }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1486,6 +2206,18 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/d3": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", @@ -1881,6 +2613,18 @@ "node": ">=12" } }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1973,6 +2717,18 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, + "node_modules/emittery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz", + "integrity": "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -2128,6 +2884,12 @@ "node": ">=0.10.0" } }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", @@ -2171,6 +2933,22 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2182,6 +2960,22 @@ "node": ">=8" } }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flexsearch": { "version": "0.7.21", "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", @@ -2249,6 +3043,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-tsconfig": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz", + "integrity": "sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -2661,11 +3467,41 @@ "node": ">= 4" } }, + "node_modules/ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true, + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, "node_modules/immutable": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", @@ -2679,6 +3515,15 @@ "node": ">=12" } }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-absolute-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", @@ -2734,6 +3579,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -2799,11 +3650,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2826,6 +3704,15 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2932,6 +3819,39 @@ "node": ">=6" } }, + "node_modules/load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -2949,6 +3869,18 @@ "node": "14 || >=16.14" } }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", @@ -2958,6 +3890,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mathjax-full": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", @@ -2969,6 +3916,18 @@ "speech-rule-engine": "^4.0.6" } }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mdast-util-definitions": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", @@ -3200,6 +4159,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mem": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz", + "integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3822,6 +4797,18 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", @@ -3874,6 +4861,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "engines": { + "node": ">=12.19" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3887,6 +4883,87 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-latin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", @@ -3901,6 +4978,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/parse-ms": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", + "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-numeric-range": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", @@ -3917,6 +5006,15 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -3979,6 +5077,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-4.0.0.tgz", + "integrity": "sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==", + "dev": true, + "dependencies": { + "find-up": "^6.0.0", + "load-json-file": "^7.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/plausible-tracker": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.8.tgz", @@ -3987,6 +5101,21 @@ "node": ">=10" } }, + "node_modules/plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/preact": { "version": "10.15.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", @@ -4012,6 +5141,21 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" }, + "node_modules/pretty-ms": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", + "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", + "dev": true, + "dependencies": { + "parse-ms": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", @@ -4335,6 +5479,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/retext": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/retext/-/retext-8.1.0.tgz", @@ -4507,6 +5681,60 @@ "node": ">=4" } }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/serve-handler": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", @@ -4600,6 +5828,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/sort-keys": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", @@ -4618,7 +5886,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -4631,6 +5899,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", @@ -4666,6 +5944,27 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -4770,6 +6069,43 @@ "inline-style-parser": "0.1.1" } }, + "node_modules/supertap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", + "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "js-yaml": "^3.14.1", + "serialize-error": "^7.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/supertap/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/supertap/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4797,6 +6133,24 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4880,6 +6234,23 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/tsx": { + "version": "3.12.7", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.12.7.tgz", + "integrity": "sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==", + "dev": true, + "dependencies": { + "@esbuild-kit/cjs-loader": "^2.4.2", + "@esbuild-kit/core-utils": "^3.0.0", + "@esbuild-kit/esm-loader": "^2.5.5" + }, + "bin": { + "tsx": "dist/cli.js" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/type-fest": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", @@ -5178,6 +6549,15 @@ "node": ">=12" } }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -5314,6 +6694,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", @@ -5363,6 +6756,12 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -5425,6 +6824,18 @@ "node": ">=8" } }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 7d0272e..9d6ae92 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "url": "https://github.com/jackyzha0/quartz.git" }, "scripts": { - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "test": "tsx ./quartz/path.test.ts" }, "keywords": [ "site generator", @@ -83,6 +84,7 @@ "@types/workerpool": "^6.4.0", "@types/yargs": "^17.0.24", "esbuild": "^0.18.11", + "tsx": "^3.12.7", "typescript": "^5.0.4" } } diff --git a/quartz.config.ts b/quartz.config.ts index 237ab6f..cd1e9ef 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -9,7 +9,7 @@ const generalConfiguration: GlobalConfiguration = { analytics: { provider: 'plausible', }, - canonicalUrl: "quartz.jzhao.xyz", + baseUrl: "quartz.jzhao.xyz", ignorePatterns: ["private", "templates"], theme: { typography: { diff --git a/quartz/cfg.ts b/quartz/cfg.ts index c4d4bc0..420ffe9 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -25,7 +25,7 @@ export interface GlobalConfiguration { /** Base URL to use for CNAME files, sitemaps, and RSS feeds that require an absolute URL. * Quartz will avoid using this as much as possible and use relative URLs most of the time */ - canonicalUrl?: string, + baseUrl?: string, theme: Theme } diff --git a/quartz/components/Backlinks.tsx b/quartz/components/Backlinks.tsx index 0784e9a..f150f03 100644 --- a/quartz/components/Backlinks.tsx +++ b/quartz/components/Backlinks.tsx @@ -1,7 +1,7 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import style from "./styles/backlinks.scss" import { relativeToRoot } from "../path" -import { stripIndex } from "./scripts/util" +import { clientSideSlug } from "./scripts/util" function Backlinks({ fileData, allFiles }: QuartzComponentProps) { const slug = fileData.slug! @@ -10,7 +10,7 @@ function Backlinks({ fileData, allFiles }: QuartzComponentProps) {

Backlinks

diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index bfc7bae..b392a2d 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -1,14 +1,14 @@ -import { clientSideSlug, resolveToRoot } from "../path" +import { toServerSlug, pathToRoot } from "../path" import { JSResourceToScriptElement } from "../resources" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" export default (() => { function Head({ fileData, externalResources }: QuartzComponentProps) { - const slug = clientSideSlug(fileData.slug!) + const slug = toServerSlug(fileData.slug!) const title = fileData.frontmatter?.title ?? "Untitled" const description = fileData.description ?? "No description provided" const { css, js } = externalResources - const baseDir = resolveToRoot(slug) + const baseDir = pathToRoot(slug) const iconPath = baseDir + "/static/icon.png" const ogImagePath = baseDir + "/static/og-image.png" diff --git a/quartz/components/PageList.tsx b/quartz/components/PageList.tsx index b92720d..ec7f104 100644 --- a/quartz/components/PageList.tsx +++ b/quartz/components/PageList.tsx @@ -1,7 +1,7 @@ import { relativeToRoot } from "../path" import { QuartzPluginData } from "../plugins/vfile" import { Date } from "./Date" -import { stripIndex } from "./scripts/util" +import { clientSideSlug } from "./scripts/util" import { QuartzComponentProps } from "./types" function byDateAndAlphabetical(f1: QuartzPluginData, f2: QuartzPluginData): number { @@ -34,7 +34,7 @@ export function PageList({ fileData, allFiles }: QuartzComponentProps) {

}
    {tags.map(tag =>
  • #{tag}
  • )} diff --git a/quartz/components/PageTitle.tsx b/quartz/components/PageTitle.tsx index 15cd4e4..ea1248f 100644 --- a/quartz/components/PageTitle.tsx +++ b/quartz/components/PageTitle.tsx @@ -1,10 +1,10 @@ -import { resolveToRoot } from "../path" +import { pathToRoot } from "../path" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" function PageTitle({ fileData, cfg }: QuartzComponentProps) { const title = cfg?.pageTitle ?? "Untitled Quartz" const slug = fileData.slug! - const baseDir = resolveToRoot(slug) + const baseDir = pathToRoot(slug) return

    {title}

    } diff --git a/quartz/components/TagList.tsx b/quartz/components/TagList.tsx index 6b93719..a730062 100644 --- a/quartz/components/TagList.tsx +++ b/quartz/components/TagList.tsx @@ -1,11 +1,11 @@ -import { resolveToRoot } from "../path" +import { pathToRoot } from "../path" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import { slug as slugAnchor } from 'github-slugger' function TagList({ fileData }: QuartzComponentProps) { const tags = fileData.frontmatter?.tags const slug = fileData.slug! - const baseDir = resolveToRoot(slug) + const baseDir = pathToRoot(slug) if (tags && tags.length > 0) { return
      {tags.map(tag => { const display = `#${tag}` diff --git a/quartz/components/pages/FolderContent.tsx b/quartz/components/pages/FolderContent.tsx index c8214d3..5abdfbc 100644 --- a/quartz/components/pages/FolderContent.tsx +++ b/quartz/components/pages/FolderContent.tsx @@ -5,11 +5,11 @@ import path from "path" import style from '../styles/listPage.scss' import { PageList } from "../PageList" -import { clientSideSlug } from "../../path" +import { toServerSlug } from "../../path" function FolderContent(props: QuartzComponentProps) { const { tree, fileData, allFiles } = props - const folderSlug = clientSideSlug(fileData.slug!) + const folderSlug = toServerSlug(fileData.slug!) const allPagesInFolder = allFiles.filter(file => { const fileSlug = file.slug ?? "" const prefixed = fileSlug.startsWith(folderSlug) diff --git a/quartz/components/pages/TagContent.tsx b/quartz/components/pages/TagContent.tsx index 81e8de2..de2367e 100644 --- a/quartz/components/pages/TagContent.tsx +++ b/quartz/components/pages/TagContent.tsx @@ -3,14 +3,14 @@ import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' import { toJsxRuntime } from "hast-util-to-jsx-runtime" import style from '../styles/listPage.scss' import { PageList } from "../PageList" -import { clientSideSlug } from "../../path" +import { toServerSlug } from "../../path" function TagContent(props: QuartzComponentProps) { const { tree, fileData, allFiles } = props const slug = fileData.slug if (slug?.startsWith("tags/")) { - const tag = clientSideSlug(slug.slice("tags/".length)) + const tag = toServerSlug(slug.slice("tags/".length)) const allPagesWithTag = allFiles.filter(file => (file.frontmatter?.tags ?? []).includes(tag)) const listProps = { ...props, diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx index cff61dd..e5cf5eb 100644 --- a/quartz/components/renderPage.tsx +++ b/quartz/components/renderPage.tsx @@ -3,7 +3,7 @@ import { QuartzComponent, QuartzComponentProps } from "./types"; import HeaderConstructor from "./Header" import BodyConstructor from "./Body" import { JSResourceToScriptElement, StaticResources } from "../resources"; -import { resolveToRoot } from "../path"; +import { CanonicalSlug, pathToRoot } from "../path"; interface RenderComponents { head: QuartzComponent @@ -15,8 +15,8 @@ interface RenderComponents { footer: QuartzComponent, } -export function pageResources(slug: string, staticResources: StaticResources): StaticResources { - const baseDir = resolveToRoot(slug) +export function pageResources(slug: CanonicalSlug, staticResources: StaticResources): StaticResources { + const baseDir = pathToRoot(slug) const contentIndexPath = baseDir + "/static/contentIndex.json" const contentIndexScript = `const fetchData = fetch(\`${contentIndexPath}\`).then(data => data.json())` @@ -32,7 +32,7 @@ export function pageResources(slug: string, staticResources: StaticResources): S } } -export function renderPage(slug: string, componentData: QuartzComponentProps, components: RenderComponents, pageResources: StaticResources): string { +export function renderPage(slug: CanonicalSlug, componentData: QuartzComponentProps, components: RenderComponents, pageResources: StaticResources): string { const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = components const Header = HeaderConstructor() const Body = BodyConstructor() diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 1556095..6682d70 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -1,24 +1,25 @@ import { ContentDetails } from "../../plugins/emitters/contentIndex" import * as d3 from 'd3' -import { registerEscapeHandler, relative, removeAllChildren } from "./util" +import { registerEscapeHandler, clientSideRelativePath, removeAllChildren } from "./util" +import { CanonicalSlug } from "../../path" type NodeData = { - id: string, + id: CanonicalSlug, text: string, tags: string[] } & d3.SimulationNodeDatum type LinkData = { - source: string, - target: string + source: CanonicalSlug, + target: CanonicalSlug } const localStorageKey = "graph-visited" -function getVisited(): Set { +function getVisited(): Set { return new Set(JSON.parse(localStorage.getItem(localStorageKey) ?? "[]")) } -function addToVisited(slug: string) { +function addToVisited(slug: CanonicalSlug) { const visited = getVisited() visited.add(slug) localStorage.setItem(localStorageKey, JSON.stringify([...visited])) @@ -167,7 +168,7 @@ async function renderGraph(container: string, slug: string) { .attr("fill", color) .style("cursor", "pointer") .on("click", (_, d) => { - const targ = relative(slug, d.id) + const targ = clientSideRelativePath(slug, d.id) window.spaNavigate(new URL(targ)) }) .on("mouseover", function(_, d) { diff --git a/quartz/components/scripts/search.inline.ts b/quartz/components/scripts/search.inline.ts index 57628f5..d92edb1 100644 --- a/quartz/components/scripts/search.inline.ts +++ b/quartz/components/scripts/search.inline.ts @@ -1,9 +1,10 @@ import { Document } from "flexsearch" import { ContentDetails } from "../../plugins/emitters/contentIndex" -import { registerEscapeHandler, relative, removeAllChildren } from "./util" +import { registerEscapeHandler, clientSideRelativePath, removeAllChildren } from "./util" +import { CanonicalSlug } from "../../path" interface Item { - slug: string, + slug: CanonicalSlug, title: string, content: string, } @@ -100,7 +101,7 @@ document.addEventListener("nav", async (e: unknown) => { } } - const formatForDisplay = (term: string, slug: string) => ({ + const formatForDisplay = (term: string, slug: CanonicalSlug) => ({ slug, title: highlight(term, data[slug].title ?? ""), content: highlight(term, data[slug].content ?? "", true), @@ -112,7 +113,7 @@ document.addEventListener("nav", async (e: unknown) => { button.id = slug button.innerHTML = `

      ${title}

      ${content}

      ` button.addEventListener('click', () => { - const targ = relative(currentSlug, slug) + const targ = clientSideRelativePath(currentSlug, slug) window.spaNavigate(new URL(targ)) }) return button @@ -142,7 +143,7 @@ document.addEventListener("nav", async (e: unknown) => { } // order titles ahead of content - const allIds: Set = new Set([...getByField("title"), ...getByField("content")]) + const allIds: Set = new Set([...getByField("title"), ...getByField("content")]) const finalResults = [...allIds].map(id => formatForDisplay(term, id)) displayResults(finalResults) } @@ -178,7 +179,7 @@ document.addEventListener("nav", async (e: unknown) => { for (const [slug, fileData] of Object.entries(data)) { await index.addAsync(slug, { - slug, + slug: slug as CanonicalSlug, title: fileData.title, content: fileData.content }) diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts index 057aa3d..5ba53e3 100644 --- a/quartz/components/scripts/spa.inline.ts +++ b/quartz/components/scripts/spa.inline.ts @@ -1,4 +1,5 @@ import micromorph from "micromorph" +import { CanonicalSlug, RelativeURL } from "../../path" // adapted from `micromorph` // https://github.com/natemoo-re/micromorph @@ -29,7 +30,7 @@ const getOpts = ({ target }: Event): { url: URL, scroll?: boolean } | undefined return { url: new URL(href), scroll: 'routerNoscroll' in a.dataset ? false : undefined } } -function notifyNav(url: string) { +function notifyNav(url: CanonicalSlug) { const event: CustomEventMap["nav"] = new CustomEvent("nav", { detail: { url } }) document.dispatchEvent(event) } @@ -100,7 +101,7 @@ function createRouter() { } return new class Router { - go(pathname: string) { + go(pathname: RelativeURL) { const url = new URL(pathname, window.location.toString()) return navigate(url, false) } diff --git a/quartz/components/scripts/util.ts b/quartz/components/scripts/util.ts index e94929b..a97faa6 100644 --- a/quartz/components/scripts/util.ts +++ b/quartz/components/scripts/util.ts @@ -18,19 +18,6 @@ export function registerEscapeHandler(outsideContainer: HTMLElement | null, cb: document.addEventListener('keydown', esc) } -export function stripIndex(s: string): string { - return s.endsWith("index") ? s.slice(0, -"index".length) : s -} - -export function relative(from: string, to: string) { - from = encodeURI(stripIndex(from)) - to = encodeURI(stripIndex(to)) - const start = [location.protocol, '//', location.host, location.pathname].join('') - const trimEnd = from.length === 0 ? start.length : -from.length - const url = start.slice(0, trimEnd) + to - return url -} - export function removeAllChildren(node: HTMLElement) { while (node.firstChild) { node.removeChild(node.firstChild) diff --git a/quartz/components/styles/backlinks.scss b/quartz/components/styles/backlinks.scss index 80baefc..04302f2 100644 --- a/quartz/components/styles/backlinks.scss +++ b/quartz/components/styles/backlinks.scss @@ -1,4 +1,6 @@ .backlinks { + position: relative; + & > h3 { font-size: 1rem; margin: 0; diff --git a/quartz/path.test.ts b/quartz/path.test.ts new file mode 100644 index 0000000..4996648 --- /dev/null +++ b/quartz/path.test.ts @@ -0,0 +1,159 @@ +import test, { describe } from 'node:test' +import * as path from './path' +import assert from 'node:assert' + +describe('typeguards', () => { + test('isClientSlug', () => { + assert(path.isClientSlug("http://example.com")) + assert(path.isClientSlug("http://example.com/index")) + assert(path.isClientSlug("http://example.com/index.html")) + assert(path.isClientSlug("http://example.com/")) + assert(path.isClientSlug("https://example.com")) + assert(path.isClientSlug("https://example.com/abc/def")) + assert(path.isClientSlug("https://example.com/abc/def/")) + assert(path.isClientSlug("https://example.com/abc/def#cool")) + assert(path.isClientSlug("https://example.com/abc/def?field=1&another=2")) + assert(path.isClientSlug("https://example.com/abc/def?field=1&another=2#cool")) + assert(path.isClientSlug("https://example.com/abc/def.html?field=1&another=2#cool")) + + assert(!path.isClientSlug("./")) + assert(!path.isClientSlug("")) + assert(!path.isClientSlug("ipfs://example.com")) + assert(!path.isClientSlug("http")) + assert(!path.isClientSlug("https")) + }) + + test('isCanonicalSlug', () => { + assert(path.isCanonicalSlug("/")) + assert(path.isCanonicalSlug("/abc")) + assert(path.isCanonicalSlug("/notindex")) + assert(path.isCanonicalSlug("/notindex/def")) + + assert(!path.isCanonicalSlug("//")) + assert(!path.isCanonicalSlug("/index")) + assert(!path.isCanonicalSlug("")) + assert(!path.isCanonicalSlug("index")) + assert(!path.isCanonicalSlug("index/abc")) + assert(!path.isCanonicalSlug("https://example.com")) + assert(!path.isCanonicalSlug("/abc/")) + assert(!path.isCanonicalSlug("/abc/index")) + assert(!path.isCanonicalSlug("/abc#anchor")) + assert(!path.isCanonicalSlug("/abc?query=1")) + assert(!path.isCanonicalSlug("/index.md")) + assert(!path.isCanonicalSlug("/index.html")) + }) + + test('isRelativeURL', () => { + assert(path.isRelativeURL(".")) + assert(path.isRelativeURL("..")) + assert(path.isRelativeURL("./abc/def")) + assert(path.isRelativeURL("./abc/def#an-anchor")) + assert(path.isRelativeURL("./abc/def?query=1#an-anchor")) + assert(path.isRelativeURL("../abc/def")) + + assert(!path.isRelativeURL("abc")) + assert(!path.isRelativeURL("")) + assert(!path.isRelativeURL("../")) + assert(!path.isRelativeURL("./")) + assert(!path.isRelativeURL("./abc/def.html")) + assert(!path.isRelativeURL("./abc/def.md")) + }) + + test('isServerSlug', () => { + assert(path.isServerSlug("/index")) + assert(path.isServerSlug("/abc/def")) + + assert(!path.isServerSlug("/")) + assert(!path.isServerSlug(".")) + assert(!path.isServerSlug("./abc/def")) + assert(!path.isServerSlug("../abc/def")) + assert(!path.isServerSlug("/index.html")) + assert(!path.isServerSlug("/abc/def.html")) + assert(!path.isServerSlug("/abc/def#anchor")) + assert(!path.isServerSlug("/abc/def?query=1")) + assert(!path.isServerSlug("/note with spaces")) + }) + + test('isFilePath', () => { + assert(path.isFilePath("/content/index.md")) + assert(path.isFilePath("/content/test.png")) + assert(!path.isFilePath("../test.pdf")) + assert(!path.isFilePath("content/test.png")) + assert(!path.isFilePath("content/test")) + assert(!path.isFilePath("./content/test")) + }) +}) + + +describe('transforms', () => { + function asserts(pairs: [string, string][], transform: (inp: Inp) => Out, checkPre: (x: any) => x is Inp, checkPost: (x: any) => x is Out) { + for (const [inp, expected] of pairs) { + assert(checkPre(inp), `${inp} wasn't the expected input type`) + const actual = transform(inp) + assert.strictEqual(actual, expected, `after transforming ${inp}, ${actual} was not ${expected}`) + assert(checkPost(actual), `${actual} wasn't the expected output type`) + } + } + + test('canonicalizeServer', () => { + asserts([ + ["/index", "/"], + ["/abc/def", "/abc/def"], + ], path.canonicalizeServer, path.isServerSlug, path.isCanonicalSlug) + }) + + test('canonicalizeClient', () => { + asserts([ + ["http://localhost:3000", "/"], + ["http://localhost:3000/index", "/"], + ["http://localhost:3000/test", "/test"], + ["http://example.com", "/"], + ["http://example.com/index", "/"], + ["http://example.com/index.html", "/"], + ["http://example.com/", "/"], + ["https://example.com", "/"], + ["https://example.com/abc/def", "/abc/def"], + ["https://example.com/abc/def/", "/abc/def"], + ["https://example.com/abc/def#cool", "/abc/def"], + ["https://example.com/abc/def?field=1&another=2", "/abc/def"], + ["https://example.com/abc/def?field=1&another=2#cool", "/abc/def"], + ["https://example.com/abc/def.html?field=1&another=2#cool", "/abc/def"], + ], path.canonicalizeClient, path.isClientSlug, path.isCanonicalSlug) + }) + + describe('slugifyFilePath', () => { + asserts([ + ["/content/index.md", "/content/index"], + ["/content/cool.png", "/content/cool"], + ["/index.md", "/index"], + ["/note with spaces.md", "/note-with-spaces"], + ], path.slugifyFilePath, path.isFilePath, path.isServerSlug) + }) + + describe('transformInternalLink', () => { + asserts([ + ["", "."], + [".", "."], + ["./", "."], + ["./index", "."], + ["./index.html", "."], + ["./index.md", "."], + ["content", "./content"], + ["content/test.md", "./content/test"], + ["./content/test.md", "./content/test"], + ["../content/test.md", "../content/test"], + ["tags/", "./tags"], + ["/tags/", "./tags"], + ["content/with spaces", "./content/with-spaces"], + ["content/with spaces#and Anchor!", "./content/with-spaces#and-anchor"], + ], path.transformInternalLink, (x: string): x is string => true, path.isRelativeURL) + }) + + describe('pathToRoot', () => { + asserts([ + ["/", "."], + ["/abc/def", "../.."], + ], path.pathToRoot, path.isCanonicalSlug, path.isRelativeURL) + }) +}) + diff --git a/quartz/path.ts b/quartz/path.ts index 0332584..8ea28c4 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -1,13 +1,154 @@ import path from 'path' import { slug as slugAnchor } from 'github-slugger' -function slugSegment(s: string): string { - return s.replace(/\s/g, '-') +// Quartz Paths +// Things in boxes are not actual types but rather sources which these types can be acquired from +// +// ┌────────────┐ +// ┌───────────┤ Browser ├────────────┐ +// │ └────────────┘ │ +// │ │ +// ▼ ▼ +// ┌────────┐ ┌─────────────┐ +// ┌───────────────────┤ Window │ │ LinkElement │ +// │ └────┬───┘ └──────┬──────┘ +// │ │ │ +// │ getClientSlug() │ .href │ +// │ ▼ ▼ +// │ +// │ Client Slug Relative URL +// getCanonicalSlug() │ https://test.ca/note/abc#anchor?query=123 ../note/def#anchor +// │ +// │ canonicalizeClient() │ ▲ +// │ ▼ │ +// │ │ +// └───────────────► Canonical Slug │ +// /note/abc │ +// │ +// ▲ │ +// canonicalizeServer() │ │ +// │ +// HTML File Server Slug │ +// /note/abc/index.html ◄───────────── /note/abc/index │ +// │ +// ▲ ┌────────┴────────┐ +// slugifyFilePath() │ transformInternalLink() │ │ +// │ │ │ +// ┌─────────┴──────────┐ ┌─────┴─────┐ ┌────────┴──────┐ +// │ File Path │ │ Wikilinks │ │ Markdown Link │ +// │ /note/abc/index.md │ └───────────┘ └───────────────┘ +// └────────────────────┘ ▲ ▲ +// ▲ │ │ +// │ ┌─────────┐ │ │ +// └────────────┤ MD File ├─────┴─────────────────┘ +// └─────────┘ + +/// Utility type to simulate nominal types in TypeScript +type SlugLike = string & { __brand: T } + +/** Client-side slug, usually obtained through `window.location` */ +export type ClientSlug = SlugLike<"client"> +export function isClientSlug(s: string): s is ClientSlug { + return /^https?:\/\/.+/.test(s) } -// on the client, 'index' isn't ever rendered so we should clean it up -export function clientSideSlug(fp: string): string { - // remove index +/** Canonical slug, should be used whenever you need to refer to the location of a file/note. + * On the client, this is normally stored in `document.body.dataset.slug` + */ +export type CanonicalSlug = SlugLike<"canonical"> +export function isCanonicalSlug(s: string): s is CanonicalSlug { + const validStart = s.startsWith("/") + const validEnding = s.length === 1 || (!s.endsWith("/") && !s.endsWith("/index")) + return !_containsForbiddenCharacters(s) && validStart && validEnding && !_hasFileExtension(s) +} + +/** A relative link, can be found on `href`s but can also be constructed for + * client-side navigation (e.g. search and graph) + */ +export type RelativeURL = SlugLike<"relative"> +export function isRelativeURL(s: string): s is RelativeURL { + const validStart = /^\.{1,2}/.test(s) + const validEnding = !s.endsWith("/") && !s.endsWith("/index") + return validStart && validEnding && !_hasFileExtension(s) +} + +/** A server side slug. This is what Quartz uses to emit files so uses index suffixes */ +export type ServerSlug = SlugLike<"server"> +export function isServerSlug(s: string): s is ServerSlug { + // must start with forward slash + const validStart = s.startsWith("/") + const validEnding = !s.endsWith("/") + return validStart && validEnding && !_containsForbiddenCharacters(s) && !_hasFileExtension(s) +} + +/** The real file path to a file on disk */ +export type FilePath = SlugLike<"filepath"> +export function isFilePath(s: string): s is FilePath { + return s.startsWith("/") && _hasFileExtension(s) +} + +export function getClientSlug(window: Window): ClientSlug { + return window.location.href as ClientSlug +} + +export function getCanonicalSlug(window: Window): CanonicalSlug { + return window.document.body.dataset.slug! as CanonicalSlug +} + +export function canonicalizeClient(slug: ClientSlug): CanonicalSlug { + const { pathname } = new URL(slug) + let fp = pathname + fp = fp.replace(new RegExp(path.extname(fp) + '$'), '') + return _canonicalize(fp) as CanonicalSlug +} + +export function canonicalizeServer(slug: ServerSlug): CanonicalSlug { + let fp = slug as string + return _canonicalize(fp) as CanonicalSlug +} + +export function slugifyFilePath(fp: FilePath): ServerSlug { + // strip file extension + const withoutFileExt = fp.replace(new RegExp(path.extname(fp) + '$'), '') + const slug = withoutFileExt + .split(path.sep) // fs can have diff interpretations of / + .map((segment) => segment.replace(/\s/g, '-')) // slugify all segments + .join('/') // always use / as sep + .replace(/\/$/, '') // remove trailing slash + + return slug as ServerSlug +} + +export function transformInternalLink(link: string): RelativeURL { + let [fplike, anchor] = link.split("#", 2) + let segments = fplike.split("/").filter(x => x.length > 0) + let prefix = segments.filter(_isRelativeSegment).join("/") + let fp = "/" + segments.filter(seg => !_isRelativeSegment(seg)).join("/") + fp = canonicalizeServer(slugifyFilePath(fp as FilePath)) + + if (fp.endsWith("index")) { + fp = fp.slice(0, -"index".length) + } + + let joined = [_stripSlashes(prefix), _stripSlashes(fp)].filter(x => x !== "").join("/") + anchor = anchor === undefined ? "" : '#' + slugAnchor(anchor) + return _addRelativeToStart(joined) + anchor as RelativeURL +} + +// resolve /a/b/c to ../../ +export function pathToRoot(slug: CanonicalSlug): RelativeURL { + let rootPath = slug + .split('/') + .filter(x => x !== '') + .map(_ => '..') + .join('/') + + return _addRelativeToStart(rootPath) as RelativeURL +} + +export const QUARTZ = "quartz" + +function _canonicalize(fp: string): string { if (fp.endsWith("index")) { fp = fp.slice(0, -"index".length) } @@ -17,50 +158,45 @@ export function clientSideSlug(fp: string): string { fp = fp.slice(0, -1) } + if (fp.length === 0) { + return "/" as CanonicalSlug + } + return fp } -export function trimPathSuffix(fp: string): string { - fp = clientSideSlug(fp) - let [cleanPath, anchor] = fp.split("#", 2) - anchor = anchor === undefined ? "" : "#" + anchor - - return cleanPath + anchor +function _containsForbiddenCharacters(s: string): boolean { + return s.includes(" ") || s.includes("#") || s.includes("?") } -export function slugify(s: string): string { - let [fp, anchor] = s.split("#", 2) - const sluggedAnchor = anchor === undefined ? "" : "#" + slugAnchor(anchor) - const withoutFileExt = fp.replace(new RegExp(path.extname(fp) + '$'), '') - const rawSlugSegments = withoutFileExt.split(path.sep) - const slugParts: string = rawSlugSegments - .map((segment) => slugSegment(segment)) - .join(path.posix.sep) - .replace(/\/$/, '') - return path.normalize(slugParts) + sluggedAnchor +function _hasFileExtension(s: string): boolean { + return /\.[A-Za-z]+$/.test(s) } -// resolve /a/b/c to ../../ -export function resolveToRoot(slug: string): string { - let fp = trimPathSuffix(slug) +function _isRelativeSegment(s: string): boolean { + return /^\.{0,2}$/.test(s) +} - if (fp === "") { - return "." +function _stripSlashes(s: string): string { + if (s.startsWith("/")) { + s = s.substring(1) } - return "./" + fp - .split('/') - .filter(x => x !== '') - .map(_ => '..') - .join('/') + if (s.endsWith("/")) { + s = s.slice(0, -1) + } + + return s } -export function relativeToRoot(slug: string, fp: string): string { - return path.join(resolveToRoot(slug), fp) -} +function _addRelativeToStart(s: string): string { + if (s === "") { + s = "." + } -export function relative(src: string, dest: string): string { - return path.relative(src, dest) -} + if (!s.startsWith(".")) { + s = "./" + s + } -export const QUARTZ = "quartz" + return s +} diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts index c9a019b..85681f1 100644 --- a/quartz/plugins/emitters/aliases.ts +++ b/quartz/plugins/emitters/aliases.ts @@ -1,4 +1,4 @@ -import { relativeToRoot } from "../../path" +import { CanonicalSlug, FilePath, ServerSlug, relativeToRoot } from "../../path" import { QuartzEmitterPlugin } from "../types" import path from 'path' @@ -7,14 +7,14 @@ export const AliasRedirects: QuartzEmitterPlugin = () => ({ getQuartzComponents() { return [] }, - async emit(contentFolder, _cfg, content, _resources, emit): Promise { - const fps: string[] = [] + async emit(contentFolder, _cfg, content, _resources, emit): Promise { + const fps: FilePath[] = [] for (const [_tree, file] of content) { const ogSlug = file.data.slug! const dir = path.relative(contentFolder, file.dirname ?? contentFolder) - let aliases: string[] = [] + let aliases: CanonicalSlug[] = [] if (file.data.frontmatter?.aliases) { aliases = file.data.frontmatter?.aliases } else if (file.data.frontmatter?.alias) { @@ -22,11 +22,11 @@ export const AliasRedirects: QuartzEmitterPlugin = () => ({ } for (const alias of aliases) { - const slug = alias.startsWith("/") + const slug = (alias.startsWith("/") ? alias - : path.posix.join(dir, alias) + : path.posix.join(dir, alias)) as ServerSlug - const fp = slug + ".html" + const fp = slug + ".html" as FilePath const redirUrl = relativeToRoot(slug, ogSlug) await emit({ content: ` diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts index a1d8648..cb2853b 100644 --- a/quartz/plugins/emitters/contentIndex.ts +++ b/quartz/plugins/emitters/contentIndex.ts @@ -1,11 +1,12 @@ import { GlobalConfiguration } from "../../cfg" +import { CanonicalSlug, ClientSlug } from "../../path" import { QuartzEmitterPlugin } from "../types" import path from "path" -export type ContentIndex = Map +export type ContentIndex = Map export type ContentDetails = { title: string, - links: string[], + links: CanonicalSlug[], tags: string[], content: string, date?: Date, @@ -25,8 +26,8 @@ const defaultOptions: Options = { } function generateSiteMap(cfg: GlobalConfiguration, idx: ContentIndex): string { - const base = cfg.canonicalUrl ?? "" - const createURLEntry = (slug: string, content: ContentDetails): string => ` + const base = cfg.baseUrl ?? "" + const createURLEntry = (slug: CanonicalSlug, content: ContentDetails): string => ` https://${base}/${slug} ${content.date?.toISOString()} ` @@ -35,10 +36,10 @@ function generateSiteMap(cfg: GlobalConfiguration, idx: ContentIndex): string { } function generateRSSFeed(cfg: GlobalConfiguration, idx: ContentIndex): string { - const base = cfg.canonicalUrl ?? "" - const root = `https://${base}` + const base = cfg.baseUrl ?? "" + const root = `https://${base}` as ClientSlug - const createURLEntry = (slug: string, content: ContentDetails): string => ` + const createURLEntry = (slug: CanonicalSlug, content: ContentDetails): string => ` ${content.title} ${root}/${slug} ${root}/${slug} diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index 576821a..cc36831 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -4,6 +4,7 @@ import HeaderConstructor from "../../components/Header" import BodyConstructor from "../../components/Body" import { pageResources, renderPage } from "../../components/renderPage" import { FullPageLayout } from "../../cfg" +import { FilePath } from "../../path" export const ContentPage: QuartzEmitterPlugin = (opts) => { if (!opts) { @@ -19,8 +20,8 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { getQuartzComponents() { return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] }, - async emit(_contentDir, cfg, content, resources, emit): Promise { - const fps: string[] = [] + async emit(_contentDir, cfg, content, resources, emit): Promise { + const fps: FilePath[] = [] const allFiles = content.map(c => c[1].data) for (const [tree, file] of content) { const slug = file.data.slug! @@ -41,7 +42,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { externalResources ) - const fp = file.data.slug + ".html" + const fp = file.data.slug + ".html" as FilePath await emit({ content, slug: file.data.slug!, diff --git a/quartz/plugins/emitters/folderPage.tsx b/quartz/plugins/emitters/folderPage.tsx index 1eed30d..0f06adc 100644 --- a/quartz/plugins/emitters/folderPage.tsx +++ b/quartz/plugins/emitters/folderPage.tsx @@ -6,7 +6,7 @@ import { pageResources, renderPage } from "../../components/renderPage" import { ProcessedContent, defaultProcessedContent } from "../vfile" import { FullPageLayout } from "../../cfg" import path from "path" -import { clientSideSlug } from "../../path" +import { FilePath, toServerSlug } from "../../path" export const FolderPage: QuartzEmitterPlugin = (opts) => { if (!opts) { @@ -22,7 +22,7 @@ export const FolderPage: QuartzEmitterPlugin = (opts) => { getQuartzComponents() { return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] }, - async emit(_contentDir, cfg, content, resources, emit): Promise { + async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] const allFiles = content.map(c => c[1].data) @@ -37,7 +37,7 @@ export const FolderPage: QuartzEmitterPlugin = (opts) => { ]))) for (const [tree, file] of content) { - const slug = clientSideSlug(file.data.slug!) + const slug = toServerSlug(file.data.slug!) if (folders.has(slug)) { folderDescriptions[slug] = [tree, file] } diff --git a/quartz/plugins/emitters/tagPage.tsx b/quartz/plugins/emitters/tagPage.tsx index 0cdb7c3..c5cf3b8 100644 --- a/quartz/plugins/emitters/tagPage.tsx +++ b/quartz/plugins/emitters/tagPage.tsx @@ -5,7 +5,7 @@ import BodyConstructor from "../../components/Body" import { pageResources, renderPage } from "../../components/renderPage" import { ProcessedContent, defaultProcessedContent } from "../vfile" import { FullPageLayout } from "../../cfg" -import { clientSideSlug } from "../../path" +import { FilePath, ServerSlug, toServerSlug } from "../../path" export const TagPage: QuartzEmitterPlugin = (opts) => { if (!opts) { @@ -21,17 +21,17 @@ export const TagPage: QuartzEmitterPlugin = (opts) => { getQuartzComponents() { return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] }, - async emit(_contentDir, cfg, content, resources, emit): Promise { - const fps: string[] = [] + async emit(_contentDir, cfg, content, resources, emit): Promise { + const fps: FilePath[] = [] const allFiles = content.map(c => c[1].data) const tags: Set = new Set(allFiles.flatMap(data => data.frontmatter?.tags ?? [])) const tagDescriptions: Record = Object.fromEntries([...tags].map(tag => ([ - tag, defaultProcessedContent({ slug: `tags/${tag}`, frontmatter: { title: `Tag: ${tag}`, tags: [] } }) + tag, defaultProcessedContent({ slug: `tags/${tag}` as ServerSlug, frontmatter: { title: `Tag: ${tag}`, tags: [] } }) ]))) for (const [tree, file] of content) { - const slug = clientSideSlug(file.data.slug!) + const slug = toServerSlug(file.data.slug!) if (slug.startsWith("tags/")) { const tag = slug.slice("tags/".length) if (tags.has(tag)) { @@ -60,7 +60,7 @@ export const TagPage: QuartzEmitterPlugin = (opts) => { externalResources ) - const fp = file.data.slug + ".html" + const fp = file.data.slug + ".html" as FilePath await emit({ content, slug: file.data.slug!, diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index da55a22..c2841c3 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -4,6 +4,7 @@ import { StaticResources } from '../resources' import { joinStyles } from '../theme' import { EmitCallback, PluginTypes } from './types' import styles from '../styles/base.scss' +import { FilePath, ServerSlug } from '../path' export type ComponentResources = { css: string[], @@ -51,7 +52,7 @@ function joinScripts(scripts: string[]): string { return scripts.map(script => `(function () {${script}})();`).join("\n") } -export async function emitComponentResources(cfg: GlobalConfiguration, res: ComponentResources, emit: EmitCallback): Promise { +export async function emitComponentResources(cfg: GlobalConfiguration, res: ComponentResources, emit: EmitCallback): Promise { const fps = await Promise.all([ emit({ slug: "index", @@ -99,8 +100,8 @@ export * from './emitters' declare module 'vfile' { // inserted in processors.ts interface DataMap { - slug: string - allSlugs: string[] - filePath: string + slug: ServerSlug + allSlugs: ServerSlug[] + filePath: FilePath } } diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts index f45e23f..dd6f6f2 100644 --- a/quartz/plugins/transformers/links.ts +++ b/quartz/plugins/transformers/links.ts @@ -1,5 +1,5 @@ import { QuartzTransformerPlugin } from "../types" -import { clientSideSlug, relative, relativeToRoot, slugify, trimPathSuffix } from "../../path" +import { CanonicalSlug, transformInternalLink } from "../../path" import path from "path" import { visit } from 'unist-util-visit' import isAbsoluteUrl from "is-absolute-url" @@ -27,9 +27,9 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = htmlPlugins() { return [() => { return (tree, file) => { - const curSlug = clientSideSlug(file.data.slug!) + const curSlug = file.data.slug! const transformLink = (target: string) => { - const targetSlug = clientSideSlug(slugify(decodeURI(target).trim())) + const targetSlug = transformInternalLink(target) if (opts.markdownLinkResolution === 'relative' && !path.isAbsolute(targetSlug)) { return './' + relative(curSlug, targetSlug) } else if (opts.markdownLinkResolution === 'shortest') { @@ -38,13 +38,13 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = // if the file name is unique, then it's just the filename const matchingFileNames = allSlugs.filter(slug => { - const parts = clientSideSlug(slug).split(path.posix.sep) + const parts = toServerSlug(slug).split(path.posix.sep) const fileName = parts.at(-1) return targetSlug === fileName }) if (matchingFileNames.length === 1) { - const targetSlug = clientSideSlug(matchingFileNames[0]) + const targetSlug = toServerSlug(matchingFileNames[0]) return './' + relativeToRoot(curSlug, targetSlug) } @@ -55,7 +55,7 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = return './' + relativeToRoot(curSlug, targetSlug) } - const outgoing: Set = new Set() + const outgoing: Set = new Set() visit(tree, 'element', (node, _index, _parent) => { // rewrite all links if ( @@ -113,6 +113,6 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = declare module 'vfile' { interface DataMap { - links: string[] + links: CanonicalSlug[] } } diff --git a/quartz/plugins/transformers/toc.ts b/quartz/plugins/transformers/toc.ts index 8d37def..ff79d66 100644 --- a/quartz/plugins/transformers/toc.ts +++ b/quartz/plugins/transformers/toc.ts @@ -3,6 +3,7 @@ import { Root } from "mdast" import { visit } from "unist-util-visit" import { toString } from "mdast-util-to-string" import { slug as slugAnchor } from 'github-slugger' +import { CanonicalSlug } from "../../path" export interface Options { maxDepth: 1 | 2 | 3 | 4 | 5 | 6, @@ -19,7 +20,7 @@ const defaultOptions: Options = { interface TocEntry { depth: number, text: string, - slug: string + slug: CanonicalSlug } export const TableOfContents: QuartzTransformerPlugin | undefined> = (userOpts) => { diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index f74b3c9..8c0d182 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -3,6 +3,7 @@ import { StaticResources } from "../resources" import { ProcessedContent } from "./vfile" import { GlobalConfiguration } from "../cfg" import { QuartzComponent } from "../components/types" +import { FilePath, ServerSlug } from "../path" export interface PluginTypes { transformers: QuartzTransformerPluginInstance[], @@ -29,14 +30,14 @@ export type QuartzFilterPluginInstance = { export type QuartzEmitterPlugin = (opts?: Options) => QuartzEmitterPluginInstance export type QuartzEmitterPluginInstance = { name: string - emit(contentDir: string, cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emitCallback: EmitCallback): Promise + emit(contentDir: string, cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emitCallback: EmitCallback): Promise getQuartzComponents(): QuartzComponent[] } export interface EmitOptions { - slug: string + slug: ServerSlug ext: `.${string}` | "" content: string } -export type EmitCallback = (data: EmitOptions) => Promise +export type EmitCallback = (data: EmitOptions) => Promise diff --git a/quartz/processors/emit.ts b/quartz/processors/emit.ts index 59875f5..4f03c7e 100644 --- a/quartz/processors/emit.ts +++ b/quartz/processors/emit.ts @@ -5,7 +5,7 @@ import { PerfTimer } from "../perf" import { ComponentResources, emitComponentResources, getComponentResources, getStaticResourcesFromPlugins } from "../plugins" import { EmitCallback } from "../plugins/types" import { ProcessedContent } from "../plugins/vfile" -import { QUARTZ, slugify } from "../path" +import { FilePath, QUARTZ, slugifyFilePath } from "../path" import { globbyStream } from "globby" import chalk from "chalk" @@ -71,7 +71,7 @@ export async function emitContent(contentFolder: string, output: string, cfg: Qu log.start(`Emitting output files`) const emit: EmitCallback = async ({ slug, ext, content }) => { - const pathToPage = path.join(output, slug + ext) + const pathToPage = path.join(output, slug + ext) as FilePath const dir = path.dirname(pathToPage) await fs.promises.mkdir(dir, { recursive: true }) await fs.promises.writeFile(pathToPage, content) @@ -123,15 +123,16 @@ export async function emitContent(contentFolder: string, output: string, cfg: Qu // glob all non MD/MDX/HTML files in content folder and copy it over const assetsPath = path.join(output, "assets") - for await (const fp of globbyStream("**", { + for await (const rawFp of globbyStream("**", { ignore: ["**/*.md"], cwd: contentFolder, })) { - const ext = path.extname(fp as string) - const src = path.join(contentFolder, fp as string) - const name = slugify(fp as string) + ext - const dest = path.join(assetsPath, name) - const dir = path.dirname(dest) + const fp = rawFp as FilePath + const ext = path.extname(fp) + const src = path.join(contentFolder, fp) as FilePath + const name = slugifyFilePath(fp as FilePath) + ext as FilePath + const dest = path.join(assetsPath, name) as FilePath + const dir = path.dirname(dest) as FilePath await fs.promises.mkdir(dir, { recursive: true }) // ensure dir exists await fs.promises.copyFile(src, dest) emittedFiles += 1 diff --git a/quartz/processors/parse.ts b/quartz/processors/parse.ts index 9947860..6d3d3d9 100644 --- a/quartz/processors/parse.ts +++ b/quartz/processors/parse.ts @@ -7,7 +7,7 @@ import { Root as HTMLRoot } from 'hast' import { ProcessedContent } from '../plugins/vfile' import { PerfTimer } from '../perf' import { read } from 'to-vfile' -import { slugify } from '../path' +import { FilePath, ServerSlug, slugifyFilePath } from '../path' import path from 'path' import os from 'os' import workerpool, { Promise as WorkerPromise } from 'workerpool' @@ -73,7 +73,7 @@ async function transpileWorkerScript() { }) } -export function createFileParser(transformers: QuartzTransformerPluginInstance[], baseDir: string, fps: string[], allSlugs: string[], verbose: boolean) { +export function createFileParser(transformers: QuartzTransformerPluginInstance[], baseDir: string, fps: FilePath[], allSlugs: ServerSlug[], verbose: boolean) { return async (processor: QuartzProcessor) => { const res: ProcessedContent[] = [] for (const fp of fps) { @@ -89,7 +89,7 @@ export function createFileParser(transformers: QuartzTransformerPluginInstance[] } // base data properties that plugins may use - file.data.slug = slugify(path.relative(baseDir, file.path)) + file.data.slug = slugifyFilePath(path.relative(baseDir, file.path) as FilePath) file.data.allSlugs = allSlugs file.data.filePath = fp @@ -110,7 +110,7 @@ export function createFileParser(transformers: QuartzTransformerPluginInstance[] } } -export async function parseMarkdown(transformers: QuartzTransformerPluginInstance[], baseDir: string, fps: string[], verbose: boolean): Promise { +export async function parseMarkdown(transformers: QuartzTransformerPluginInstance[], baseDir: string, fps: FilePath[], verbose: boolean): Promise { const perf = new PerfTimer() const log = new QuartzLogger(verbose) @@ -118,8 +118,7 @@ export async function parseMarkdown(transformers: QuartzTransformerPluginInstanc let concurrency = fps.length < CHUNK_SIZE ? 1 : os.availableParallelism() // get all slugs ahead of time as each thread needs a copy - // const slugs: string[] = fps.map(fp => slugify(path)) - const allSlugs = fps.map(fp => slugify(path.relative(baseDir, path.resolve(fp)))) + const allSlugs = fps.map(fp => slugifyFilePath(path.relative(baseDir, path.resolve(fp)) as FilePath)) let res: ProcessedContent[] = [] log.start(`Parsing input files using ${concurrency} threads`) diff --git a/quartz/worker.ts b/quartz/worker.ts index d99c96c..9c81ed0 100644 --- a/quartz/worker.ts +++ b/quartz/worker.ts @@ -1,11 +1,12 @@ import config from "../quartz.config" +import { FilePath, ServerSlug } from "./path" import { createFileParser, createProcessor } from "./processors/parse" const transformers = config.plugins.transformers const processor = createProcessor(transformers) // only called from worker thread -export async function parseFiles(baseDir: string, fps: string[], allSlugs: string[], verbose: boolean) { +export async function parseFiles(baseDir: string, fps: FilePath[], allSlugs: ServerSlug[], verbose: boolean) { const parse = createFileParser(transformers, baseDir, fps, allSlugs, verbose) return parse(processor) } diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index f166b0c..8702ba4 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./globals.d.ts","./index.d.ts","./node_modules/preact/src/jsx.d.ts","./node_modules/preact/src/index.d.ts","./node_modules/preact/jsx-runtime/src/index.d.ts","./quartz/resources.tsx","./node_modules/@types/unist/index.d.ts","./node_modules/@types/hast/index.d.ts","./node_modules/vfile-message/lib/index.d.ts","./node_modules/vfile-message/index.d.ts","./node_modules/vfile/lib/minurl.shared.d.ts","./node_modules/vfile/lib/index.d.ts","./node_modules/vfile/index.d.ts","./quartz/plugins/vfile.ts","./quartz/components/types.ts","./node_modules/unified/index.d.ts","./quartz/plugins/types.ts","./quartz/theme.ts","./quartz/cfg.ts","./quartz/components/articletitle.tsx","./node_modules/property-information/lib/util/info.d.ts","./node_modules/property-information/lib/util/schema.d.ts","./node_modules/property-information/lib/find.d.ts","./node_modules/property-information/lib/hast-to-react.d.ts","./node_modules/property-information/lib/normalize.d.ts","./node_modules/property-information/index.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/components.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/index.d.ts","./node_modules/hast-util-to-jsx-runtime/index.d.ts","./quartz/components/pages/content.tsx","./node_modules/github-slugger/index.d.ts","./quartz/path.ts","./quartz/components/date.tsx","./quartz/components/scripts/util.ts","./quartz/components/pagelist.tsx","./quartz/components/pages/tagcontent.tsx","./quartz/components/pages/foldercontent.tsx","./quartz/components/scripts/darkmode.inline.ts","./quartz/components/darkmode.tsx","./quartz/components/head.tsx","./quartz/components/pagetitle.tsx","./node_modules/reading-time/index.d.ts","./quartz/components/readingtime.tsx","./quartz/components/spacer.tsx","./quartz/components/scripts/toc.inline.ts","./quartz/components/tableofcontents.tsx","./quartz/components/taglist.tsx","./quartz/plugins/emitters/contentindex.ts","./node_modules/@types/d3-array/index.d.ts","./node_modules/@types/d3-selection/index.d.ts","./node_modules/@types/d3-axis/index.d.ts","./node_modules/@types/d3-brush/index.d.ts","./node_modules/@types/d3-chord/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/d3-contour/index.d.ts","./node_modules/@types/d3-delaunay/index.d.ts","./node_modules/@types/d3-dispatch/index.d.ts","./node_modules/@types/d3-drag/index.d.ts","./node_modules/@types/d3-dsv/index.d.ts","./node_modules/@types/d3-ease/index.d.ts","./node_modules/@types/d3-fetch/index.d.ts","./node_modules/@types/d3-force/index.d.ts","./node_modules/@types/d3-format/index.d.ts","./node_modules/@types/d3-geo/index.d.ts","./node_modules/@types/d3-hierarchy/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-path/index.d.ts","./node_modules/@types/d3-polygon/index.d.ts","./node_modules/@types/d3-quadtree/index.d.ts","./node_modules/@types/d3-random/index.d.ts","./node_modules/@types/d3-time/index.d.ts","./node_modules/@types/d3-scale/index.d.ts","./node_modules/@types/d3-scale-chromatic/index.d.ts","./node_modules/@types/d3-shape/index.d.ts","./node_modules/@types/d3-time-format/index.d.ts","./node_modules/@types/d3-timer/index.d.ts","./node_modules/@types/d3-transition/index.d.ts","./node_modules/@types/d3-zoom/index.d.ts","./node_modules/@types/d3/index.d.ts","./quartz/components/scripts/graph.inline.ts","./quartz/components/graph.tsx","./quartz/components/backlinks.tsx","./node_modules/@types/flexsearch/index.d.ts","./quartz/components/scripts/search.inline.ts","./quartz/components/search.tsx","./quartz/components/footer.tsx","./quartz/components/index.ts","./node_modules/gray-matter/gray-matter.d.ts","./node_modules/micromark-extension-frontmatter/matters.d.ts","./node_modules/@types/mdast/index.d.ts","./node_modules/micromark-util-types/index.d.ts","./node_modules/micromark-extension-frontmatter/lib/syntax.d.ts","./node_modules/micromark-extension-frontmatter/lib/html.d.ts","./node_modules/micromark-extension-frontmatter/index.d.ts","./node_modules/remark-frontmatter/index.d.ts","./quartz/plugins/transformers/frontmatter.ts","./node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-footnote/lib/html.d.ts","./node_modules/micromark-extension-gfm-footnote/index.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-strikethrough/index.d.ts","./node_modules/micromark-extension-gfm/index.d.ts","./node_modules/mdast-util-from-markdown/lib/index.d.ts","./node_modules/mdast-util-from-markdown/index.d.ts","./node_modules/mdast-util-to-markdown/lib/types.d.ts","./node_modules/mdast-util-to-markdown/lib/index.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","./node_modules/mdast-util-to-markdown/index.d.ts","./node_modules/markdown-table/index.d.ts","./node_modules/mdast-util-gfm-table/lib/index.d.ts","./node_modules/mdast-util-gfm-table/index.d.ts","./node_modules/mdast-util-gfm/lib/index.d.ts","./node_modules/mdast-util-gfm/index.d.ts","./node_modules/remark-gfm/index.d.ts","./node_modules/@types/nlcst/index.d.ts","./node_modules/retext-smartypants/index.d.ts","./node_modules/remark-smartypants/index.d.ts","./node_modules/rehype-slug/index.d.ts","./node_modules/hast-util-is-element/index.d.ts","./node_modules/rehype-autolink-headings/lib/index.d.ts","./node_modules/rehype-autolink-headings/index.d.ts","./quartz/plugins/transformers/gfm.ts","./node_modules/@napi-rs/simple-git/index.d.ts","./quartz/plugins/transformers/lastmod.ts","./node_modules/mdast-util-math/lib/index.d.ts","./node_modules/mdast-util-math/index.d.ts","./node_modules/remark-math/index.d.ts","./node_modules/@types/katex/index.d.ts","./node_modules/rehype-katex/index.d.ts","./quartz/plugins/transformers/latex.ts","./node_modules/hast-util-to-string/index.d.ts","./quartz/plugins/transformers/description.ts","./node_modules/unist-util-is/lib/index.d.ts","./node_modules/unist-util-is/index.d.ts","./node_modules/unist-util-visit-parents/lib/complex-types.d.ts","./node_modules/unist-util-visit-parents/lib/index.d.ts","./node_modules/unist-util-visit-parents/index.d.ts","./node_modules/unist-util-visit-parents/complex-types.d.ts","./node_modules/unist-util-visit/lib/index.d.ts","./node_modules/unist-util-visit/index.d.ts","./node_modules/is-absolute-url/index.d.ts","./quartz/plugins/transformers/links.ts","./node_modules/mdast-util-find-and-replace/lib/index.d.ts","./node_modules/mdast-util-find-and-replace/index.d.ts","./node_modules/parse5/dist/common/html.d.ts","./node_modules/parse5/dist/common/token.d.ts","./node_modules/parse5/dist/common/error-codes.d.ts","./node_modules/parse5/dist/tokenizer/preprocessor.d.ts","./node_modules/parse5/dist/tokenizer/index.d.ts","./node_modules/parse5/dist/tree-adapters/interface.d.ts","./node_modules/parse5/dist/parser/open-element-stack.d.ts","./node_modules/parse5/dist/parser/formatting-element-list.d.ts","./node_modules/parse5/dist/parser/index.d.ts","./node_modules/parse5/dist/tree-adapters/default.d.ts","./node_modules/parse5/dist/serializer/index.d.ts","./node_modules/parse5/dist/common/foreign-content.d.ts","./node_modules/parse5/dist/index.d.ts","./node_modules/hast-util-raw/complex-types.d.ts","./node_modules/hast-util-raw/lib/index.d.ts","./node_modules/hast-util-raw/index.d.ts","./node_modules/rehype-raw/index.d.ts","./quartz/components/scripts/callout.inline.ts","./quartz/plugins/transformers/ofm.ts","./node_modules/vscode-textmate/release/utils.d.ts","./node_modules/vscode-textmate/release/oniglib.d.ts","./node_modules/vscode-textmate/release/rule.d.ts","./node_modules/vscode-textmate/release/rawgrammar.d.ts","./node_modules/vscode-textmate/release/theme.d.ts","./node_modules/vscode-textmate/release/encodedtokenattributes.d.ts","./node_modules/vscode-textmate/release/main.d.ts","./node_modules/shiki/dist/index.d.ts","./node_modules/rehype-pretty-code/index.d.ts","./quartz/plugins/transformers/syntax.ts","./node_modules/mdast-util-to-string/lib/index.d.ts","./node_modules/mdast-util-to-string/index.d.ts","./quartz/plugins/transformers/toc.ts","./quartz/plugins/transformers/index.ts","./quartz/plugins/filters/draft.ts","./quartz/plugins/filters/explicit.ts","./quartz/plugins/filters/index.ts","./quartz/components/header.tsx","./quartz/components/scripts/clipboard.inline.ts","./quartz/components/body.tsx","./node_modules/preact-render-to-string/src/index.d.ts","./quartz/components/renderpage.tsx","./quartz/plugins/emitters/contentpage.tsx","./quartz/plugins/emitters/tagpage.tsx","./quartz/plugins/emitters/folderpage.tsx","./quartz/plugins/emitters/aliases.ts","./quartz/plugins/emitters/index.ts","./quartz/plugins/index.ts","./quartz.config.ts","./node_modules/chalk/index.d.ts","./node_modules/@types/pretty-time/index.d.ts","./quartz/perf.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/minipass/index.d.ts","./node_modules/lru-cache/dist/cjs/index.d.ts","./node_modules/path-scurry/dist/cjs/index.d.ts","./node_modules/minimatch/dist/cjs/ast.d.ts","./node_modules/minimatch/dist/cjs/escape.d.ts","./node_modules/minimatch/dist/cjs/unescape.d.ts","./node_modules/minimatch/dist/cjs/index.d.ts","./node_modules/glob/dist/mjs/pattern.d.ts","./node_modules/glob/dist/mjs/processor.d.ts","./node_modules/glob/dist/mjs/walker.d.ts","./node_modules/glob/dist/mjs/ignore.d.ts","./node_modules/glob/dist/mjs/glob.d.ts","./node_modules/glob/dist/mjs/has-magic.d.ts","./node_modules/glob/dist/mjs/index.d.ts","./node_modules/rimraf/dist/mjs/index.d.ts","./node_modules/@nodelib/fs.stat/out/types/index.d.ts","./node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.stat/out/settings.d.ts","./node_modules/@nodelib/fs.stat/out/providers/async.d.ts","./node_modules/@nodelib/fs.stat/out/index.d.ts","./node_modules/@nodelib/fs.scandir/out/types/index.d.ts","./node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.scandir/out/settings.d.ts","./node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","./node_modules/@nodelib/fs.scandir/out/index.d.ts","./node_modules/@nodelib/fs.walk/out/types/index.d.ts","./node_modules/@nodelib/fs.walk/out/settings.d.ts","./node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","./node_modules/@nodelib/fs.walk/out/readers/async.d.ts","./node_modules/@nodelib/fs.walk/out/providers/async.d.ts","./node_modules/@nodelib/fs.walk/out/index.d.ts","./node_modules/fast-glob/out/types/index.d.ts","./node_modules/fast-glob/out/settings.d.ts","./node_modules/fast-glob/out/managers/tasks.d.ts","./node_modules/fast-glob/out/index.d.ts","./node_modules/globby/index.d.ts","./node_modules/@types/serve-handler/index.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/remark-parse/lib/index.d.ts","./node_modules/remark-parse/index.d.ts","./node_modules/mdast-util-to-hast/lib/state.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","./node_modules/mdast-util-to-hast/lib/index.d.ts","./node_modules/mdast-util-to-hast/index.d.ts","./node_modules/remark-rehype/lib/index.d.ts","./node_modules/remark-rehype/index.d.ts","./node_modules/to-vfile/lib/index.d.ts","./node_modules/to-vfile/index.d.ts","./node_modules/@types/workerpool/index.d.ts","./node_modules/@types/cli-spinner/index.d.ts","./quartz/log.ts","./quartz/processors/parse.ts","./quartz/processors/filter.ts","./node_modules/micromorph/index.d.ts","./quartz/components/scripts/spa.inline.ts","./node_modules/plausible-tracker/build/main/lib/request.d.ts","./node_modules/plausible-tracker/build/main/lib/tracker.d.ts","./node_modules/plausible-tracker/build/main/index.d.ts","./quartz/components/scripts/plausible.inline.ts","./node_modules/@floating-ui/core/src/computeposition.d.ts","./node_modules/@floating-ui/core/src/detectoverflow.d.ts","./node_modules/@floating-ui/core/src/middleware/arrow.d.ts","./node_modules/@floating-ui/core/src/middleware/autoplacement.d.ts","./node_modules/@floating-ui/core/src/middleware/flip.d.ts","./node_modules/@floating-ui/core/src/middleware/hide.d.ts","./node_modules/@floating-ui/core/src/middleware/inline.d.ts","./node_modules/@floating-ui/core/src/middleware/offset.d.ts","./node_modules/@floating-ui/core/src/middleware/shift.d.ts","./node_modules/@floating-ui/core/src/middleware/size.d.ts","./node_modules/@floating-ui/core/src/utils/recttoclientrect.d.ts","./node_modules/@floating-ui/core/src/types.d.ts","./node_modules/@floating-ui/core/index.d.ts","./node_modules/@floating-ui/dom/src/autoupdate.d.ts","./node_modules/@floating-ui/dom/src/platform.d.ts","./node_modules/@floating-ui/dom/src/utils/getoverflowancestors.d.ts","./node_modules/@floating-ui/dom/src/index.d.ts","./node_modules/@floating-ui/dom/src/types.d.ts","./node_modules/@floating-ui/dom/index.d.ts","./quartz/components/scripts/popover.inline.ts","./quartz/processors/emit.ts","./quartz/build.ts","./quartz/worker.ts","./package.json","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/parse5/lib/tree-adapters/default.d.ts","./node_modules/@types/parse5/index.d.ts","./node_modules/@types/yargs-parser/index.d.ts","./node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"134d17146352bc4d1b3411101dde431269cf9a97f2392b98ebe4d47c788044a8","affectsGlobalScope":true},{"version":"fb374a56248d8a0717687924469f8a022a4e95a2d3502f5ac79fdaf01f15edf6","affectsGlobalScope":true},"cf0779719c437592be3ed4cb0f76760a13aa6c6408e53ea6ab186a92d8b65002","2f6891be00549893b5ce20ba53f1940f56822053d1a71b8a455ee699478a7468","670683503e4e107e88dfec53d4360106fefb23ae2cb01575ba338849647b15f2",{"version":"2d3bc86618092afa61f4e7bb368f264a019ba49b0737b827dec308b873b89302","signature":"04a2bd7c5b8d109b6462a67bd109aa9c76bd7304bfdf2698082fb8254f526b03"},"cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","3d2cd8f3047fff04a71e7037a6a4cb9f4accb28dbd8c0d83164d414811025af0","e0c7d85789b8811c90a8d21e25021349e8a756a256ae42d9e816ecd392f00f71","bb8aba28c9589792407d6ae0c1a6568f3ddc40be20da25bc1939e2c9d76436bb","8fa1868ab5af3818ff4746f383ea84206596e284f7dc5ffd40a0fac08ed093f9","8d4537ea6fcdde620af5bfb4e19f88db40d44073f76f567283aa043b81ef8a3e","0bb848976eff244e33741d63372cbfb4d15153a92c171d0a374a3c0ef327a175",{"version":"369a83721bb0977289073703f8d75ceffffc0f630260b1a9ffe7b1220b2c922c","signature":"85f430f0f0dfd94d427b372e3bc3f15ae1bfd0bc158519f3eb3d26d3f2645356"},{"version":"c5e1d1cda22d94676109a59051d82c1adfba6594aa2b375779e9e725baea4433","signature":"d90663f7fa166cd2338b71f073498cc8fbbd54177318841184e27f18ee9e86eb"},"af79b166f5d41ec2ebae57e9b67df564452b90ae3f0af4cb3c2d8ad5adbfd2db",{"version":"276a5c443d019f60448c1cd3fa93dcbceab53b77f8ff11a02102daf99d6318e5","signature":"fc67371f45ff5255e73cc5b7b004a4c92517f808acdced809bdd5587cf7a4744"},{"version":"f35192ce1312b6474d7fc04a8f43628bf227ef1038ded1848ed170c1c7de191a","signature":"c251b24e72e6ad5e74ee3776237270af0f720fc76e3f043139db67108803a396"},{"version":"8fb26fe4ff7baf574c78d2262eeb32883c4d596ccdb75e2dc0e7d095ca3219b5","signature":"837782aa36f46d05bd43a56b132e1e18d479653b1424df37e13f17ac944e7367"},{"version":"4653a12ee110d48697801371a08c4d14cc78977c14cf6fc73c73b2b6d0713a51","signature":"db268b93914f3bdbedf2e95c7bd400873cd25036dc62df98a38b2ad36726640f"},"7bd32cd2e05737c6a5041ca7a31ceca0c14ce065661c5d1ae5f7bfa35ff3fc5e","bdbb3f4e3f608f6034a78af17466f05ee85b1f1414f5e6f25f591c73a2f9b015","74e27c864416d1ad8947d13cef35e7c9afe0608255eb455096026e988c962295","46ab5ea5cdbc0ce75ade44ec0d9aa164f81e42b061d8e573b832a73ed181da57","d752d4dde165ab9bd56ddd111f59a6bf46eebbc6d4ba4e433f2ea21d1d0599e6","6527f50c0513ce908927055546f39578b9aaed6f1a69dec209b9101fd2d41017","222a249948ca193e1d11201057fe385cd69318c52314cf0a39d88d82739b7b20","4da5022999387d1d65bb058196da994891b4c46ec908c6571503dcf434766895","90c6c9dd17a3ca7c4aecf3990bc338f3a4575b70c38cac4e30d5e430f204deed",{"version":"6e4fc77ba2afcc9132c73f607740db26733d4c134546e0348950b6663292cc9c","signature":"82bd148e92253d2a148a37dff77659d20fce265b38068adf0a75aff3fe269020"},"1ac0f0d4aa1197aded0e7a41a08d2e687e7db61c967a2fad216b736f18a740fa",{"version":"44072e34f167de6c0dc763a846cf59d3a5af92d7e692a76aed50c6cf07dbd72a","signature":"e9783654b6fd275387d2d549e953cad1e5b29c37ada345451b98f440a1dfb8bb"},{"version":"97d8c3d7909eaa03744e52bf89710e0a0b8397207fc0c32e5b36c6727f4c81d6","signature":"9664cb716b6568b8def0b9403f20a91665102604d34240d210c7d7f7da94b76d"},{"version":"b8b28c2e479eb11a9710fe3f268fee2df1502651d32dda90d3cfe8af632bcb92","signature":"be9d71227836781223ab134e5fa779fb37bdd1daf379f509269cf1f7efbd7ecd"},{"version":"51c966972db4d9d7c1a1e4704b84a1c3637898122d3d61047795824ad503318b","signature":"cb678ed8e3849ea3c71e229b42a8cdd53af719cdb3a0eb83107a230b2b152c82"},{"version":"d1a1e3ee240d629f217233cddcb43e7271a4c4357294e64d6d4d00cb5320909b","signature":"a53cef57a41a198fa6895d114eb4d6f0d33b4b5c07618daf1cd4387ff2ade683"},{"version":"75fd1ed34f0996b4b462bc68ed0658b5a4696f01a0055ef4fcee75edcadaeb08","signature":"a53cef57a41a198fa6895d114eb4d6f0d33b4b5c07618daf1cd4387ff2ade683"},{"version":"8d557cb367ee184dcb14d4626f094b50f92fa2dd9210ae1520243f5a3224f488","signature":"187bfe3be0e92d1af047d56ca3998ba9201c7ddda83f40bfe621f1093e75c6ed","affectsGlobalScope":true},{"version":"bb1379f0079b639f1ad87048e58769ee67f36ec29b51a45906fb70cd8f9de1c8","signature":"c9cc7d2475deade9d2957ddd34981c4ef0dbbb81cce769f55fa1f2670b1d8546"},{"version":"76d86d9ba18881bce6596a4bdd009e59eb79faf873b61fa6191b5afc4b36e802","signature":"0ef5cc92999e91463d45458fa2d10b8321f83156aa48ebbc2ceabdaa37c504b2"},{"version":"6f2a295036ba7814b5957e75da96b6bcca13bbd122c64788bed0cf943176ea70","signature":"30e33547a746e1f12f63ff74aa06db5abbd438c0f95a4f0635a52c0bdab119ea"},"3d1600dc772549c3eacc2b8b0b26f2fd51f269cb863504b3edc3bd7dbbb1e4d2",{"version":"14136398ab419c919cac6d63a03647abbebc135598b1369ff01c3718d3f5929e","signature":"e3108ecd5a11b42d161aa318d1491db01e9ac3be64de77092e251478a1822477"},{"version":"7fc0c8d4b89c20289c7da73c9418e83fad9e871a2dc548c6dd198d6c2ac1eb35","signature":"11bddfda5d6b7315da285fec3ecdf4ecb4c62ccaed9115a68a20bbabbc36e233"},{"version":"1bb74e8ef96bba804760216526e3ec5e547e4e1ebe9ae31274c49c96d98ffd28","signature":"d066a30d75e96d038b6d9ab0c8ef58a1b7fb1f7de8f017e3def7186fe89605ef","affectsGlobalScope":true},{"version":"3ba0b5c532c90cb781546a44d0f005f72cf6ae51a417a50d23b8506be6dd6e8c","signature":"c58bb444d526af6c9a29499052cc6c9282d679ee0c3b6490beebc3d8c6e829ac"},{"version":"1c83e89fcc8d598f66b213f96e24f0ec1d5a831969f74b670e5b992c3585262c","signature":"6f11b7d2d2015e4fb61d1ddd1c35435b44540935174b5009448b86ac9f337a12"},{"version":"fe4c76e2f8e7f54ba32d2699b4b592c56545c52370b1dec0ed50ece4368bc33d","signature":"5bb9c16ab8eda88d2937aa6a77488dfa14b404a574678d0821826af3e4d0d01e"},"4fa5c6721346cafc445797831da394916f173d79a8343ac8bbf183d06042e869","a8c897d63ae6e779bbc4f4753a386389dfc3a45ceec6b6672f55b072d822d302","8fddb452bfcb60c598245e997aa9c9dce14b85a4c2e02489a50d97ab49e9b622","25d505ffc43befd205d780441b0a16e752ec1028f383a55cadd41841d1c7f153","39cb5be3f5302e759253b89f11bd3e885930b5649b840f4d5a81a763a5dd6c40","8a460dcdabe873ab0a85e421a7f339ad74445f60917bf67deed7d15d836b0247","a3b6c93a9838b8c94c6998e85646d6f2d07c20ecfe1e235dba62158b29451391","8f2d349c69976569d4c32e0e4e66598c9688159cac28cde38bbe0039dd1cadfa","6adc0305186bd1f72ca64adbd054b8e5e71f93b1d0623e90ebabf153541c06c0","c85a93f216df4ebb6dfea7ad46c8d6161a0f1948a20967ba0c85f0fff3f9edcd","0df330f74158aee4ce076b0bb15eb53fab95f615d26ccbd6ec6f5c4273110047","7b2ff705f3c3358807afce85ef146b7f7cdc882a79442630b034ec24d6a3906e","344ac2d6764eaa6b23b2e8e736c9bf0ae06a53479c6a1371d3d89ac964022692","e5907221fa3198e26f294ad77bf8f2996990b40484fe6781b65e099b1fe57933","ada362e162ad90df10c921c845546d911a6ad648a641a6945bf08c3ef1a09a17","f156602a8527c97f898fc96a33b7e025eed27870c2a63842c0c9ed506d7203ea","a8c34714c5da0bb0d2f74d31a44c9fb8b3b87efe6d8a0891182f9f6077723e69","4b51be04eb5bd9b929448380b3ced483ef1f6c3bbfaf7d3425bdbfa3b8eab11f","c24944ff5879b91478b153cf16802b9c6a10cfa3b7d85855813a08431ec2d36a","f1ba7a42f644ba5a281dd41b4bfc813d1f4a59e9c99227315cf778284d1e0b22","7adc301a699032ffd6d57e9ce97b2507e2ad652771cda558cb7ebb49a06e7696","f6319ead2de997fe24e6acc3594942d6819a4570f40e42cb979f5b078f3da1ca","4d3ae1585844151755e9d76cc41d82a6770b150559cb318c5366c869d487e01f","589cbf58df97db61280be456952054f5d54070e87a2c371303844a4bb288d8fa","c4e910182d6de2fcb3922631733faafdecd593370248adc1013be93352a8cc78","6bbf574c575a0491388f32aaa69c648140f24637b1d98ea6f3c97074c339f9e9",{"version":"07104ffff8802481908f08b4a220e399cc692d5edcfaaa7e6632156fc267be35","affectsGlobalScope":true},"3e135eeb6a6be4b07c1d2a170c105dde5f8b5c705f9be4e0f01166259724f125","f6c30cfb96957bb21586996d7c5d5861c236417f31b5f790055624c7df07e944","be04184c354d4b7207e68298ea4e0539cd3e55889778f3bad120c71593ad408e","37cf86c0651242b9b8c1b0bf89228a7be8ae40db6f3aac0b9e1de75bc7ddd5cb","32e5beeefac1493f9dbf2498eb4de6b5ef69a411eb1b9321cdf25a6f37086361",{"version":"540d4c316c5206437e31ee72c5672adbb1735e00c108ab84852dd658c7ddfe3b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"beb8d52b05d0a1ee1152b20f6e235f844ff8a1f0c0401cddfdc39df9ca9c0733","signature":"f6344f5621a8b19e44be2133a91e0389cd4afb9d51c37f19419e1bd83f762039"},{"version":"f373be86a3d74242132a0d50d99d77901dd90c01b52d9ca19798bae5e3360716","signature":"34576638e093402e0614bbb69ac5f9a31f7b6881a2a6b05366440ee282a22d6c"},"30b5b2c77d0e23531941808d959ee50ab2d08c3b385d2f446203c0d5d851e252",{"version":"cb2fa57b3768a66b2d291e545b59c09fdc67104e6f39738f6f8f65c31e3d10af","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"22618530eec9f4aeaf44e7061fec5d9ec5d6fafa056877d2c9bd0ee5aff0255f","signature":"1423c5fab3117766e5080c593d8df04b898828c2cf34f6470456e5cce0e2107b"},{"version":"43c45cdf893053f57f7e63f1d1df5efbee07d231a8f581526df741ba4f5bf730","signature":"13644be2518cef8bf0a3501595f29ccedfbfd4493ceab0db07a11515fbdc375e"},{"version":"424b2e23f7def3ef35cf936d8b3199c34070ad6722141553a4d4178fe02bdf7d","signature":"47e820c3980bf7e13eb380639dfbb7e9b1abe8667eb4864e0f4673254708752b"},"a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","fa81d09d80cc4288c57f8b0c30892392fc9ea7b1d59c3126472f432cb8f305dc","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","4cef6b76f45c58ff3044e1851afecd32be09fa6def7a626115b555b063e3e9ef","4fedbda3802091cd7dc7ca57059790ec6456a67a1f62638d0734d13e5b558d34","fea1f289a0585cdb13cd296e7fae0faaaa5dbf94d94687fe9d4f55dba6f4e138","9e4646339b6e49806147a857bedbb5d7d930a8101fb4724b4a0e2eb7910ac69d","0c0ad11991c2556f9c0e3074cc2f9bd04bd704f546b40363aec12c3fa5d5e41c",{"version":"d6474436da1d823d845bd8afd0f2d89a8c782b01d7025e8df30598f4dc449269","signature":"77336f441a096bdb2ca4a8321afa5c0db164a4a81b9b85c07823b06a9214f847"},"8510f56ab8598d18ec11cb2535112e2aace53e06da7d2d4fbb046e5c6cfb743e","1f85065e4d231eeb843a8485847ca66855a82984db1788ead57db359c6a52128","f10c018418c8621e4ab10596aed7202c49c36df8fda7f3c8a6ceba18724f4f85","26c304c279c0faf6ac61854c67373342e002a3d6c7ff0d8fcc7cee94f0ad323a","cc4ad1e0de78e65fbf1603669017fb939355e7bb4d38e48e78af619a390e4e23","f7598141e8c7143330f1cbfecb221b6f2beb95dc853ad6c20842891442944d0b","7ccd7b1d3c72e8ee639f48aaf190a4d2c9bf4c6650a22501d0fa98b8e3fc2fe1","31c74be259150eec1e3f8f4113f99cd10d5f1a278a5a7ef6fa29478d71766618","171a8d5b10a71ab01c4f43c110565a6a81d975eef7c46be20fc8162e21b2f188","ac052259a6eec4dc9e73e2309a64fa0fc4f7edba776418355b25e67cf24d3318","e83857dd6e1c80bacacdaee3eaf2bd71d8331880fd4705489e5e1383e0ac78a8","dceb21129b0ae66beddafba41b8765f27bf95669a8f7fbe3e94025e01c9351a8","859ea22746d11ed8386ec8d9b63b998462510705d527b83494f6a2fcaa7a5de4","825b79a00bb5650472780a23f75ee17cffe4d0eae235da96e50d3b8cd9456ea5","5b6ba1af9d52d4a47eb6908d1aebd2fe348d8212205b203d25ae528b46822eff","92ae8af22ba9f4d3728ee0075a23f5a9f2e071bb677e7db01ec2f44cc01ed473","a3f55be7fa724c524698e82466c2a651f352e673f63428d953923de161b1095c","f34def9623f89b02ac2568eeee0cfa655411e56b79f1198143053709d1987110","bc0d6e115f78a602be8f82c6977c3a3b4f84fa144e06706bd768797cd683f2b5","fb4b80d4f7140829a10b48ea77584e191098d20fbe77039e171fce8de1b257ac","871b7a0478e9b76721ca4f596acd219b2ff60f58fbf95198117ce4c1bf8eb52a","38a6564c83f8e5c76f0cbbd823c5ed16c9ea9e55f25629ca4a1384d3447b27f9","2faea076f501719cba9eb56cdf431e5efc09bc81b12a4329a825fedce77c6503","46f0d38a72546ad31308f6730267f835bea40803b9117c42a29ad009706cda9f","3a2cad3fdc52e8407c3c9a044c10a4db897bba4c1e30a96461f2e7b2be9955c0","a8e0ac700a94d9a42add85453d32842101fb1f08c1a296a02eb27105e78917e1","70cb02181c04656d711bca5c332549beae390bed0107bd97c419a3466bb39306","afe412b89ebed32a7eb2e44fe185cb24027d36f8543023e57ca36ead6e59193c","5a0012861a95843c567475a90362f686019af229a8946779ccc44c7efb5b1f44","586c4ef6496185cdbc08391fdc5f49dd80b14cdb2d01ace355b2b150f3fe71eb","148e197eb64a4c80531e4c959012755ce7fbfdbcb8d17721eac0c8a983c3e51c","edb06b0fc903fc619a7f2a3aeb6579e5b787eb624c349da738b574720558a596","d6fdaeb6f1e4e29d7827e30d743dfef5cb6c8bca4bc546001a3b3e751a2de06c","92f92e2b21f14f7ad07b15902ba806b89f37d8a83a7d127f7e638f92f241ddf8","74f4c396d57693d72e769ccc21b83542a78a6f3825ee0fe69cfefd7713f5e6cf","03a3957f7ccf2ceb0940c64e35734ed50c0d090c161924c44e79cfb7c9c437f1","010bb5235c40300fe81fd4af2dc7d48b573ef626e65d529242035274121f4c83","801bcd63fc346570aa633c166bc5869da8cb9ad252e113c4fe46800296f54147","1b23c2aae14c17f361f6fcef69be7a298f47c27724c9a1f891ea52eeea0a9f7f","4dd0179485e44a0d416b258ffc27667454ee4da96a7816ca998909cc42891d09","ff9426068448c2ecd28cef056c51c7eb9dbaeb3c7b8a5ab4843103d9081840eb","0a8e2910c8837f59fc6866cf9b81d4bb8c2d5449a242b7c0f8a41f07e88a07d8","9691ea7fbb97b0f4b0b8ce69d07b3f928800882e3b806bcd0b3bba12d2c7f443","78c5ff36a7b6e97c7825be17744fd45ffb2770ec40f486ca3dc4c1f9fabe2b6e","3c33c018c64e65691075dfae05fbc58febd6ce2d452257c35505ca70c96899d7",{"version":"07c5f039a0f2342f28d84d0b3e2048df3834e9a8f10da33905fd9d0ba914745f","signature":"8834205ba141ab91313b86538e251c725253c8929ee16ffe25dcaa8aff209dac"},"9ccad2264d463d89f9246a6e2b3c5fc2ea4fa93fd1d766661dd3fc06a0ec6128",{"version":"1f5acca4a3dbef8bd705512c44df2079433becdfcd57d984aac36e2aa796dca4","signature":"11535ba3e664110f0c5d406378ce9cdf5c606c5507bcdbf468e297b9c15ae79b"},"eac47ed99cc76de6507dd9d6a9910023d3fd810227f473050546c1b786bead4b","5cc3a8b25d4670152aff1f05614a58c94829388c033951aebf4be5cfa6c43ea9","6ba2d97e94a13a5c21c3c7105f01fda5491b7ecf638230cebc46ead1204a8559","a3c1977660766af91c7b8efe2106792f0f6375bde60a4f28a438242bd93c558e","ee2beb928f0554aacc404552cb44c86c8afd1aaf8e452e405e37861681c695bd",{"version":"5548c13a597571841a7c8e69bec72dd0c0941434fc9b7c66b2cf8daffc09e55b","signature":"d31c215f5e38113de9053c4fc2cf8927d56d28b9f44fedf46fb8d9f5c34bc45c"},"86ae9ad4466ed3302ebdf35cb380df8d798f998f44c76c8985d8edce586fa0cb",{"version":"fc00e7c33799a0c87641f0381feb2f1e834d8a72479716bcf1b3e4f5783f0eb3","signature":"c13809b0af560a664d6c648bf57ab6ab8852eae07c341b5f0be1239380a6ebef"},"63c010c8e3e0c33bfe2c4fffca858f9a7a28ee84c090652ae9f8501a6037afe5","c8abd849f7fdb1e4787b53520896cf142f2e19821f9af86615a6af4436074eef","cab76feb8bdafd8f888d060a7a014f5a407c7599e0b0d1f85e4e36694248a1f8","41a2c5474756ee1b12e5502bcaadddd6daa9b79e5fbed24b5c9e7d4352383170","cee0181994c0afe05ffc4bfc05ffdf4eba3275cef012c562b23572056e8b3466","0801dffb28c9a67ab387b8bd47392c05bbe3678d56b95a9127015e116437435f","d4de3f9c6acd93a96b7551506870ae1b84a60d07ba075d2d99296f9e27b96d35","083609ca47c047c6802bd40e974346a9509ef28367bb07769dbcead77cc7359f","082030c53946fdee90e485ee3fcf88fb07af4811d375f0d92e806ef6d893a54b",{"version":"c7365c98412a1507d6055436cbc76b20a1104ab26170e83ab2d81caf565caede","signature":"c0718a002468ca43526e1e90fa73b0a006a6133dd3fcb393a313c37379959f43"},"97ea5f1a03786cb55ff31e41afeef6c2c672de4697eff80f6b68f043694cf892","30d7301a01f01ccbeeced6181f48abe5715dab628868400e827d6dd057aabe97","3411c785dbe8fd42f7d644d1e05a7e72b624774a08a9356479754999419c3c5a","8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","33f3795a4617f98b1bb8dac36312119d02f31897ae75436a1e109ce042b48ee8","2850c9c5dc28d34ad5f354117d0419f325fc8932d2a62eadc4dc52c018cd569b","c753948f7e0febe7aa1a5b71a714001a127a68861309b2c4127775aa9b6d4f24","3e7a40e023e1d4a9eef1a6f08a3ded8edacb67ae5fce072014205d730f717ba5","a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","382100b010774614310d994bbf16cc9cd291c14f0d417126c7a7cfad1dc1d3f8","91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","4fdf56315340bd1770eb52e1601c3a98e45b1d207202831357e99ce29c35b55c","927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","be6fd74528b32986fbf0cd2cfa9192a5ed7f369060b32a7adcb0c8d055708e61","0e6d87e1af5b3cb046c54714f8afdd0d0fe3c499d96954f29466f92def0f435c","b25eaf53a7b338ea38921dcfe882a0e46a36a49c439a580018cd1e523a970dbb","2bc1325de383b9b270e0800b370cd33b87998f67380a0353167c37c3dcc13d3e","ded25fdd0b036433f1c7044d0f05c9c792b4873a648fbd33eec49f6238e3e572",{"version":"616bef7bfad90c7a561c88c83843d0325169dcfdeefaf991af88b63ef10d0f79","signature":"53637ba23c3f931f6f60396116156ba13b78463135de55a05e2dd73373dc0289","affectsGlobalScope":true},{"version":"b7fb9d65ff54fb9afd406d9dcc2a7172c2fde2c799f2041c08c91bba221e1463","signature":"c187cfd2a997a4b37c0c343cbc2824a5493060afd5915f1c872e5743b5c3ca62"},"e617a4e3425c1c4f6337f9065c844fee758eb60f2befe40f87d6bc295fe3dd6c","84cc254263404913255f7ed1ac7bdd05d5f1f2c233f6b48915f64aca2321ec17","67a4f653163df230b46606a9b97b568b5150d0e0e1ae1d613c59f7a3b0512449","3b1c2ccfa2572201a53e54008e1a2a321ef826f4260264749ed5158643cad6c0","0b30b078f688f2b4f4e378fa383e02e2d4c4213a1b22aebb020461e36e34aa92","7f204c0b47583a898e6dbe667ad290b837cd99822bf133d0ff23ba072becec52","df8ac16e33db5d15a25a0a175e8a5d5bd3d3b2f1d5d0edff099ac26e619932b6","3ccb7756294a7ed5b0e33a30b42c7b1b32a1736852a2db22a61906b45d31f72e","cb02adc4ad68023b2c8dc110d2f5f19eb84fbc176423ca4054f70f1a037fb375",{"version":"6027fada240a9c998c6d34d3b2b0a29d869296ecf88ccb02b2d783a8e78c4aa7","signature":"2ffb5be570de81083b20081137239470ae8a03c5b7ca1594cb93884a722b75c8"},"0cb2f19ca25c0f21a28218c5dcb5a7e994e81985086ca5daa9c8f4ebe64fde14","87f45900e657071ede09193a640840449cbbd84f442fa110ff6ad48258a79960",{"version":"6e12133b35d7f3275b86b131bd7123ca62cb8907ea48c16a869995a633d6fdf4","signature":"56fc117444fb16ff297d7c268cac9f0c2d70c300b25c313883982603958d1c77"},{"version":"2b21fde80cf1b06f4fcce125b445d092450d369fe2dd9b33ce68f43f4b81bcd1","signature":"0e018b649ec29af2d492109e7b3bb32bff6ee8085fbe813acd170882830e2f5a"},{"version":"7a921d32d182b211908ad5f8923f1a830519c12aedf4e469467c98ed02429f98","signature":"55e1ed3c1bde44633a0d47f5304541684e92db561027cc5e1704e8807785528d"},{"version":"190b8d024802f36edaeb098ce014ebf32980b4e3c1ac8fbaf08f46b81f9d2c22","signature":"3dfa32f25c6a1129e7993dd3e0a66c14732e8939fe59e299581a77013de603e0"},{"version":"21f105677d8c332867fc33c0820c6c2ae3bab9359a67394d4029d4a2b2b4879f","signature":"b1478d32f7d34beab99ba1352b10e8c4d009ad07f4c544c7911f400b4a54bbbb"},{"version":"a726a3aebe92ade854602bfb7c47e5a5ff4132adc258dc16f9481317f5a49e03","signature":"d2081c21fd7f6bd7ff4326487d1bf46c31c93e6ab1a01356f3cf334da6697caf"},{"version":"4e2b4193fa5ce0c618ce53ac2b3d8971baf420b7392bcbc5a40c517a5731d11d","signature":"d76c5c2aa1d91bb93a9104fe9a768eb82c7a0e0dd573b348fe21845b41067274","affectsGlobalScope":true},{"version":"21bcc28dc5705a3a8e894ce4abcc30a666a9dbebfa211ddca4dd4b7de17dfc34","signature":"ed2d3c7bef952d0a87da591e1a2bfbe1086875ec2e7b4fac37b3f26ebfadbfea"},"b8fafa9f8ae9069eff148da320ed56acd5c3c95112c5e03d4796e15ac76b974c",{"version":"73b5d2560c2c085a62894ac973061def8dfdee6e910782cfe182902ae0f68fb8","signature":"ce263e11bb7ede7e20e2787e9cbe298a515c588ed13a610525b60e69892b7927"},{"version":"f9552fb1f273de0fa296a6e415a75595d5321232b4dfee4f4cd489c61ecdc923","signature":"8889997e9d9431b55f9d23d07956727681a6210105152467cdebd84c550ab00b"},{"version":"651d461f6b7a39f5119f3ad6decb6326c12dceb975f52f718e9acadf1962288e","signature":"0239decdb850b94c8c5b9f4389391ad4180570f202069a87f200d2114f0dbefc"},{"version":"7b5eeebd8b586bc6729f4f96b81c7f8914d1a754684996bc2ee308d101df6a5c","signature":"1bdf3ca937c00f3299a0649ee125acf26a795ff195f0f64bb5442daeff00e5bb"},{"version":"056c2a7d27a34b56a2da28352ac865c3c784559dd515a463b267f8777583c0cf","signature":"d3ba77bd072cc0991b464f492c747027a27fb74c89309571a6efe16eb78124f4"},{"version":"f79b2d21931fc767f49e5fccc45aeff539ffd5dc519d468c075f465316ca6933","signature":"3d11f4b949aefeffcd10d9552a7a90b8823dff997d4ffefad720fe4aeedec77a"},{"version":"08f0f8da0959fb179267588c7ec818ec92cdf20ab98ad19095459133be9559cf","signature":"2608c6ba59d2ecec4c8692f0a35b9c2cf4028ba9013de02aa35655198c0e51be"},{"version":"4e8f5f1d36dbe7048b4b88c64376ca132452a85277554e5b9e645b5e99873818","signature":"13238d15e5de8fb1872f3075ee114727cce493008c172e8041c67de505aa8425"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","43a95e70896efd3483a07162a10895b0f1c9b6f05092ef114b46b1d9f7eef63a",{"version":"224bc47ac7f9a1f3795c1046ebfb8aae8b76180daf7d41ed77623b03b1a078d3","signature":"79a71c1a17f13f766d817c9357eb3de259659405679f75328fa36cc7606ec132"},"587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"a7534271773a27ff7d136d550e86b41894d8090fa857ba4c02b5bb18d2eb1c8e","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","57135ce61976a8b1dadd01bb412406d1805b90db6e8ecb726d0d78e0b5f76050",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b8e431e9b9bb2dc832b23d4e3e02774e953d5537998923f215ea446169e9a61e","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"7a2ba0c9af860ac3e77b35ed01fd96d15986f17aa22fe40f188ae556fb1070df","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"f5490f53d40291cc8607f5463434d1ac6c5564bc4fbb03abceb03a8f6b014457","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"19da7150ca062323b1db6311a6ef058c9b0a39cc64d836b5e9b75d301869653b","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270","1fb6c5ec52332a8b531a8d7a5300ac9301f98c4fe62f68e744e0841ccba65e7e",{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","993325544790073f77e945bee046d53988c0bc3ac5695c9cf8098166feb82661",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","16a3080e885ed52d4017c902227a8d0d8daf723d062bec9e45627c6fdcd6699b",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"247aa3419c98713231952b33801d4f46563fe542e03604acd8c63ac45a32409c","d0f7a15f34c5572c4d3710a95053196e76da944543dabe8265944bb7c6f52700","16a656bffe97ecd61893b2557b62ba9c9c500511a7c238ef6c2dd94f1ceb97d2","25552cdd29362e0176f96789dc0414de7f44bc144b07c74fac7577a28f91d70b","97066cfd7010c2463bfcc2e7c0adc4bf2786ea682035f5a210c21f123ca42237","de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3","1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f","854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","d392cdf58e0c7a988c3df400caa63a5c070c0bf13996ec619e3535e19e952a95","6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","237aa833f2cd2ff42db5d3f5a2b7b143ead11aff861097593ecd99015a69b220","50542cad26bd372cb942d418d42cdeced50a4d4226db390a1e3405f3d9a6103f","60660150e844e9d27f7ae4dfc7456f27fc683bed718d0e4a1dd4908d5da11d35","ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","5e763f3932cf04417e4145a103da1f1f67b10f7c584bcc976641611ed72af668","a5dcba6cd802f8e47bf0d83f3836a92cd494fac81b8a49924f190f61f92795ce","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","4498108732bcb5b7000ff9cdc011058b4155e985271ac3f926468acfed0c79dd","36d7b72ed8f35f9e21cc223c06697eca0d4699178fc59cfd3a310e2983fd0fd6","5a5cbc7aa7c4f74f49073d747a2a2518d1ec22694c88bc46092b0f25ccb8ebb7","51bfe35171efe121cefb2501a6cd674c367d541c4c8b0ae639c126adcc84f37d","4efb2a45d9d3e146d6237c2b74c2afcc7512f8bdd939995f2beaa27ec385a600","d51a4e4450ee23d941db79652c660ca2612691dba235fd5d14d4b2a622c72312","99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e","ac72dfd5a793c277251c116b35791d3ce358edfea94b942c270d2bda9be5cbfe","c1b6d322936b18698bf8ea6deed76e28d5a6a3cccb6c7fa345a01c969f637b65","8b0a2400ba7522569871331988f820ba4cfc386f845b01058c63a62ad9db8d03","d3e29566a694a4068d450a58f59e3a3662fc12f74345343d441ef4d954984503","f7b3e68f7972250809e5b0cbd8f0e1f9da8c1dbf70244f289b204f1b49c2d398","4c7c99f7787c5c2ea6cbd911a7b5c7c2a4ee1cb9d7f538805ee2550cf1f1fb99","1557bf37fc8d5f129436caa0212f25d6cbeaf9d20e2e3a60b13306ff62a1d7a0","9a1e77270d63875c9a38630f9a7a9126f9a8df0245d5eb220832a65d408079eb","e48d0036e626bb40f236e236670722445ffff854908c2d9515b2b5b7f677794f","30f9018873d6d80256298011161a664a14b927f719f8a7605ceb8b49bc8808da","f543ea0fe820064a2cdbb39d2b2846c507467c4771eafcda2091da43b05c077b","9066d02264a67aae05410c340c8fa41a79bb076c33d1c6ae3ec29a05828f4c05","00435c177c3da6998c2f95b9e71239f00cfabd3461401cc4d8606ee3afb732b1","d432a2956d1efa172e1c60a8186a81657f2f9f4ba449c6abdfa9d057d484c45d","bc6679207eccaa45e49b930ad45ec8e7903bd8b0868e086d8bad91f79c914ca0","4dd35e71d52007465787dd2f374cc756a29e6c9b96dc237d0465d0294170c529","7ebf1f440efe6efebeb58a44000820cbe959da9d9496621fa6dcbc02666e3002","08a9e70641597e23d00be62e3a94b69ad93c5cf5541ec7bfdeb5e9f69c845507","ded59c554118589a8729fb70429318e41e7e8155b2aff5f3d7a77933e49dbc10","3af507089e65c1472a87e5f7345ec18838d7e923c2c06fdad3d31543278af762","c867e6d7de78f96eb55b534b3aca1da4e029a6ab0e4ea9d0610acf11d737f8a0","2df075b38e2135201202640fe92bce8d03fb319fece410b088a22ab4e1be7702","b9f07153f8e881c4cca036abccaa134df30cf09a3381772d089d1eeabe45770d","88213e972b5989f217627bdcb79a697f66821e8ff135265712346d532243084f","bf6122555f34582e6d5424a88676d90f2333e0e920764895c15d39b6c856053c","bf04a1c9ccfeabf521b7b97f388d05bc5f628422253399eb157fec0d9cd213ce","3c6ecfcc6ac82b5866368d1efbddeeb3bfae03962747bf6928d8faa092e5b369","06d19317f4c8474255b3ceab7102763faf7ff0aa4cc305384b13ccb6d27b2e50","ebe1694b3a7a0265b9cf8fb3bfed6575907247b61add671ea9771fd6715d1b29","bdf4a7242e5cce621b5ba689351af780b0b665d97ea88c71f50801aa80560236","6bd6ae32288500128ae355de57d6bc3b5884f37e1e5d5ac597b142f63b3c8121","a6634dbc56e3d75efac697e59fef032aa15cc537acf7f6ad3a045001f48483f8","0ac932efed612f58eb5033bd449a5fe7ae1bc61fa0ff960f6ebbc8bd4ceda267","b4a07a5abe3d0a4c05f6722c024f842dc7909d5ab8e9212d98c393c2ea8cb09f","7f208ece77be50a024bf2309ca2e7ad1e747fa29f31e9906e3851d3be6641b9e","c0df6627d0c30dc70d26c2d500506b073ff63584c4621f9261e510ad954ad2bd",{"version":"e88f9fd0378cbd9b22b140a61d3b203727af7f3262c13de22cc86739467592f1","signature":"843e5b4615221e2297a8466945eeb3326723f4fd1192c06620ecc001dbaa87b5"},{"version":"39e6cb4e9464b307ad6865bd91a3fdec72a1561ab09a16aa0c3c4b2466cad578","signature":"2b0446d92ef10fb71ee5423c91665064ed00b309c3e9121e8db5325efe689004"},{"version":"f321747f0a859e20b6e228596fa370c063c37879df4878b571251c106ecf6568","signature":"20346a0a18e673d87ac10bdcec07bbef6b1d73f6354933cc6ea198052db90dde"},"9a1753ba092cbb7fa7c09355643656ce62f3e65fc204d273f4764a234194d541",{"version":"1df2f76c8a0126985bc29de1c197482a4373925547ef9a36021d012540dc5501","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"c7180c2c85eecd28207ef8d6a1334ec7e10d968e70e17317141d036f12640af9","a64e71ab2cd1198713aafa56d16390e2a0fa07d22a0301652117abf980b22f61","11131c8f6fadf6e6584a8250f3ffb4985e1eb3cc41dce0dee3da5f6827201790",{"version":"084ad3ce1720536c757bf6ef6c6ff27a97597b845308bad7c36cfaffc7fb0811","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"8dc56f817d20cf0717842ac1dcf3ac1a450ac3c667f1285754901e4af97bbe47","72156b7624d678a2686a22a45014218be4da7147f1058a5a5072fe981c492dd5","a20d054b8be41316bcc29752c5b9b42fab727b887a076a3af3bee18813d6e8c2","2eba4ddfbd6837ef33e58644f7dffbfe465d7222f9a9101789f02427f9541488","bb82c16e8371bfc6ee2ffd0095fd321d6acfa57c6c6445019567fec1b6b5e92a","6c65126b657a275259c4759b2b2f7b04879e61bc6c51df025b3748f87652a9eb","a5ad75d3dd3d3df0f62cb7a8ea12e76e0b4a3143ecde9e29c9cc0586b88365c0","03cd482c80ad0b724ca7d55cef7e3823d593b7cced98d7ef9d1bf757c5055b77","e93f395b0d6e68525181a6ecb3e7b81b1c5bf551f32f6cebbdffdef354fbe4a3","b881b069efb9d55b4b4b98de76d8c3920a29254e24f8f0c38557186e38cf6955","115825b28cb924401622fcab8676c3bab7ceebd9062a14229efe9c02bb8db8fb","2fa33b23888562c8111e9e10238eb26499c26616499446ac975263e41e0dc4af","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1","2cc54857ac3d2aa83d258db5c8aba9587c31dcb9f903f22603343f90326e6c2b","b0ed00813c153e350a56faa8c15668bf21375928e9b88bcc482d20f1f8415179","d0608ff924f53fee147c937c04efaa1e9010d44134d6f376b2fd5939dcc32a8d","3c8a75014278db57b6fe929a8877d60abee9ca84b8cdcc6df4f7da21cf06854c","b1b8f88d8704effc053062568916a6bd7b7bc6b24b411a53de383e888bf36144","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1",{"version":"88094fc6156ed74e965b4bebd9e32827f7a4e02d1b052d2a515ffabb5f4c4a9c","signature":"7923b0036389dde44f9e22a74e14d40e4618b037b298d6fcff9bf8a8e65d0362"},{"version":"fc726e3a76c8956dcaef816a374abf324ad7df708a64e860a777555847259591","signature":"af4ad03cc9d094f7ac7e525a67f8e924f36db2be48cc38ee6c57ce1ac6e7e86b"},{"version":"95efe27a33268e97a481482b109ce690dfb1063b2987381d31ae5fc449e36b10","signature":"21f51d354746587d23e1fe1f8b95980ed98e13f8eb035f4092a2c0ed105f4e5c"},{"version":"5d8b32e2d5d263f78b1d94589b5ca1d86a7c1bd219c128ec612c5e35849328e9","signature":"d0a44b5c269d19ec5f297bbc1f271c9dab0955034db6d1c4b6c9ef4e3ed91f4e"},{"version":"2811ee526b835745f24afaf18968fb37cc75fe0212223607eefd3272de0cc162","signature":"e9fcd960ddc55b0823f94dd96a5b3de96821199969e23b3e4d2c04f0574ce08f"},"6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","93b7325b49dfbf613d940ed0e471216657b2d77459dac34f1b5b1678f08f884c","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750"],"root":[62,63,67,75,76,[78,81],91,[93,102],[104,109],[142,144],[146,149],158,204,206,212,214,224,244,245,255,[258,265],[267,274],277,[406,408],410,414,[434,438]],"options":{"allowSyntheticDefaultImports":true,"esModuleInterop":true,"jsx":4,"jsxImportSource":"preact","module":99,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[324],[324,426],[324,416,426],[324,415,416,417,418,419,420,421,422,423,424,425],[324,432],[324,427,428,429,430,432],[324,427,428,429,430,431],[324,351,352],[324,352,353,354,355],[324,331,352,354],[324,351,353],[295,324,331],[295,324,331,347],[324,347,348,349,350],[324,347,349],[324,348],[312,324,331,356,357,358,361],[324,357,358,360],[294,324,331,356,357,358,359],[324,358],[324,356,357],[324,331,356],[324,331],[111,139,324],[110,116,324],[121,324],[116,324],[115,324],[133,324],[129,324],[111,128,139,324],[110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,324],[324,439],[68,324],[278,324],[281,324],[282,287,315,324],[283,294,295,302,312,323,324],[283,284,294,302,324],[285,324],[286,287,295,303,324],[287,312,320,324],[288,290,294,302,324],[289,324],[290,291,324],[294,324],[292,294,324],[294,295,296,312,323,324],[294,295,296,309,312,315,324],[324,328],[290,294,297,302,312,323,324],[294,295,297,298,302,312,320,323,324],[297,299,312,320,323,324],[278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330],[294,300,324],[301,323,324],[290,294,302,312,324],[303,324],[304,324],[281,305,324],[306,322,324,328],[307,324],[308,324],[294,309,310,324],[309,311,324,326],[282,294,312,313,314,315,324],[282,312,314,324],[312,313,324],[315,324],[316,324],[312,324],[294,318,319,324],[318,319,324],[287,302,312,320,324],[321,324],[302,322,324],[282,297,308,323,324],[287,324],[312,324,325],[324,326],[324,327],[282,287,294,296,305,312,323,324,326,328],[312,324,329],[324,441],[324,442],[295,297,324,331],[283,324,328,331],[324,443],[324,331,363,364,365],[324,363,364],[324,363],[324,331,362],[324,331,332,334,338,339,342],[324,343],[324,334,338,341],[324,332,334,338,341,342,343,344],[324,331,338],[324,334,338,339,341],[324,331,332,334,339,340,342],[324,366],[68,69,240,324,399],[69,240,324,399],[240,241,324],[69,74,158,206,214,224,239,240,258,273,324,399],[88,89,324],[68,69,87,88,240,324,399],[225,324],[152,208,219,324],[153,161,164,166,324],[68,152,153,161,164,167,193,208,324],[167,190,192,208,324],[152,167,190,191,193,208,324],[194,324],[167,190,193,208,324],[152,167,190,193,207,208,324],[69,240,324,372,397,398,399],[69,152,208,240,324,372,399],[324,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396],[69,152,208,240,324,399],[168,169,189,324],[152,168,208,324],[152,208,324],[170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,324],[168,324],[68,152,190,193,208,324],[256,324],[151,154,155,324],[151,153,161,164,167,324],[153,159,160,164,167,324],[153,161,164,167,324],[153,161,162,163,167,324],[324,338],[324,335,336,337],[294,312,324,331],[228,324],[227,228,324],[227,324],[227,228,229,231,232,235,236,237,238,324],[228,232,324],[227,228,229,231,232,233,234,324],[227,232,324],[232,236,324],[228,229,230,324],[229,324],[227,228,232,324],[295,304,324,331,332,333],[324,411,412],[324,411],[65,324],[64,65,324],[64,324],[82,83,84,85,86,324],[82,83,324],[82,324],[103,312,324],[202,324],[69,77,201,240,324,399],[69,77,210,240,324,399],[69,77,240,253,324,399],[69,77,240,241,242,324,399],[69,77,240,324,399],[77,151,152,156,208,324],[77,152,165,195,208,324],[77,152,208,324],[77,152,208,324,370],[77,152,167,193,208,324],[324,399,400],[69,77,152,208,240,324,398,399],[77,152,198,208,324],[77,197,324],[295,324,331,345],[252,324],[324,402],[74,158,206,214,224,258,273,323,324,331],[68,74,158,206,214,224,258,273,324],[68,215,324],[217,219,324],[216,218,324],[68,216,218,324],[68,215,216,217,324],[216,219,221,324],[68,215,216,219,220,324],[70,324],[73,324],[68,71,72,74,158,206,214,224,258,273,324],[250,324],[247,249,250,251,324],[246,324],[248,324],[246,247,249,324],[247,324],[66,80,149,273,324],[66,274,275,277,297,304,324,346,367,368,407,408,435],[66,76,78,79,324],[66,76,324],[63,66,76,93,95,324],[63,66,76,324],[66,324],[63,66,76,142,324],[66,67,76,93,324],[66,81,91,97,98,100,101,102,104,105,107,108,143,144,147,148,324],[66,75,76,93,94,95,324],[66,76,90,324],[63,66,76,90,96,304,324],[63,66,76,90,96,324],[66,76,93,324],[66,76,103,324],[66,67,76,93,263,265,266,324],[66,95,109,141,324],[66,324,413],[66,324,433],[66,95,109,145,324],[66,324,409],[63,66,76,146,324],[66,76,92,93,324],[65,66,67,69,75,80,240,324,399],[66,324,405],[66,92,304,324],[66,275,276,324],[66,78,93,304,324],[66,78,80,304,324],[66,76,78,80,263,265,267,324],[66,75,76,78,80,263,265,267,304,324],[66,109,268,269,270,271,324],[66,75,76,78,80,263,265,267,324],[66,78,324],[66,260,261,324],[63,66,67,74,76,78,79,80,158,206,214,224,258,259,262,272,324],[66,69,74,78,158,206,213,224,240,258,273,324,399],[66,74,78,150,157,206,214,224,258,273,324],[66,78,196,199,200,203,324],[66,158,204,206,212,214,224,245,255,258,324],[66,74,78,158,205,214,224,258,273,295,304,324],[66,78,209,211,324],[66,74,78,93,158,206,214,222,223,258,273,304,324],[66,67,77,78,92,93,152,208,222,226,243,304,324],[66,78,254,324],[66,74,78,92,152,158,206,208,214,222,224,257,273,324],[66,67,75,76,77,80,324],[66,69,74,158,206,214,224,240,258,273,324,399],[63,66,67,75,78,79,80,93,273,275,277,295,304,324,367,410,414,434],[66,75,78,277,324],[66,69,75,77,78,93,240,275,277,303,304,324,369,370,371,399,401,403,404,406],[66,287,324],[66,274,324,407],[80],[76,78,79],[65,76],[65],[81,91,97,98,100,101,102,104,105,107,108,143,144,147,148],[66,76],[67,76],[65,67,69,75,80,240,399],[405],[78],[78,80],[109,268,269,270,271],[260,261],[67,74,78,80,158,206,214,224,258,259,262,272,273],[74,78,158,206,214,224,258,273],[158,204,206,212,214,224,245,255,258],[67,75,76,77,80],[69,74,158,206,214,224,240,258,273,399],[75,80],[75,78],[69,75,77,78,240,370,399],[66],[75]],"referencedMap":[[62,1],[63,1],[427,2],[415,2],[416,2],[417,2],[418,3],[419,2],[420,3],[421,2],[422,2],[423,3],[424,3],[426,4],[425,2],[433,5],[428,5],[431,6],[429,5],[432,7],[430,1],[205,1],[353,8],[356,9],[355,10],[354,11],[352,12],[348,13],[351,14],[350,15],[349,16],[347,12],[362,17],[361,18],[360,19],[359,20],[358,21],[357,22],[405,23],[110,1],[112,24],[113,24],[114,1],[115,1],[117,25],[118,1],[119,1],[120,24],[121,1],[122,1],[123,26],[124,1],[125,1],[126,27],[127,1],[128,28],[129,1],[130,1],[131,1],[132,1],[135,1],[134,29],[111,1],[136,30],[137,1],[133,1],[138,1],[139,24],[140,31],[141,32],[440,33],[145,1],[116,1],[69,34],[210,1],[152,34],[439,1],[197,34],[278,35],[279,35],[281,36],[282,37],[283,38],[284,39],[285,40],[286,41],[287,42],[288,43],[289,44],[290,45],[291,45],[293,46],[292,47],[294,46],[295,48],[296,49],[280,50],[330,1],[297,51],[298,52],[299,53],[331,54],[300,55],[301,56],[302,57],[303,58],[304,59],[305,60],[306,61],[307,62],[308,63],[309,64],[310,64],[311,65],[312,66],[314,67],[313,68],[315,69],[316,70],[317,71],[318,72],[319,73],[320,74],[321,75],[322,76],[323,77],[324,78],[325,79],[326,80],[327,81],[328,82],[329,83],[442,84],[441,85],[276,1],[368,86],[68,1],[404,87],[443,1],[444,88],[275,1],[369,1],[366,89],[365,90],[364,91],[363,92],[92,1],[343,93],[344,94],[342,95],[345,96],[339,97],[340,98],[341,99],[367,100],[150,1],[201,101],[240,102],[242,103],[241,104],[90,105],[88,102],[89,106],[213,102],[223,1],[333,1],[191,1],[226,107],[225,108],[167,109],[166,110],[193,111],[192,112],[195,113],[194,114],[208,115],[207,114],[399,116],[373,117],[374,117],[375,117],[376,117],[377,117],[378,117],[379,117],[380,117],[381,117],[382,117],[383,117],[397,118],[384,117],[385,117],[386,117],[387,117],[388,117],[389,117],[390,117],[391,117],[393,117],[394,117],[392,117],[395,117],[396,117],[398,117],[372,119],[190,120],[170,121],[171,121],[172,121],[173,121],[174,121],[175,121],[176,122],[178,121],[177,121],[189,123],[179,121],[181,121],[180,121],[183,121],[182,121],[184,121],[185,121],[186,121],[187,121],[188,121],[169,124],[168,125],[257,126],[256,122],[156,127],[155,128],[154,128],[151,1],[161,129],[160,130],[159,130],[164,131],[162,130],[163,130],[165,130],[153,1],[409,1],[335,132],[336,132],[338,133],[337,132],[332,134],[229,135],[238,136],[227,1],[228,137],[239,138],[234,139],[235,140],[233,141],[237,142],[231,143],[230,144],[236,145],[232,136],[334,146],[413,147],[411,1],[412,148],[266,149],[66,150],[65,151],[64,149],[87,152],[84,153],[85,1],[86,1],[82,1],[83,154],[103,155],[203,156],[202,157],[211,158],[254,159],[243,160],[200,161],[157,162],[196,163],[209,164],[371,165],[370,166],[401,167],[400,168],[199,169],[198,170],[346,171],[253,172],[403,173],[402,174],[60,1],[61,1],[12,1],[13,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],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[77,175],[216,176],[215,34],[220,177],[219,178],[217,179],[218,180],[222,181],[221,182],[71,183],[70,34],[74,184],[73,185],[72,1],[251,186],[252,187],[247,188],[249,189],[248,190],[250,188],[246,191],[438,1],[274,192],[436,193],[80,194],[81,195],[144,196],[265,197],[100,197],[94,198],[148,197],[143,199],[101,200],[263,195],[149,201],[96,202],[91,203],[98,204],[97,205],[102,206],[104,207],[267,208],[244,1],[264,1],[99,1],[142,209],[414,210],[434,211],[146,212],[410,213],[106,1],[95,198],[147,214],[105,195],[107,197],[108,215],[76,216],[406,217],[93,218],[277,219],[271,220],[109,221],[268,222],[270,223],[272,224],[269,225],[260,226],[261,226],[262,227],[273,228],[214,229],[158,230],[204,231],[259,232],[206,233],[212,234],[224,235],[245,236],[255,237],[258,238],[78,239],[75,240],[435,241],[408,242],[407,243],[67,244],[79,198],[437,245]],"exportedModulesMap":[[62,1],[63,1],[427,2],[415,2],[416,2],[417,2],[418,3],[419,2],[420,3],[421,2],[422,2],[423,3],[424,3],[426,4],[425,2],[433,5],[428,5],[431,6],[429,5],[432,7],[430,1],[205,1],[353,8],[356,9],[355,10],[354,11],[352,12],[348,13],[351,14],[350,15],[349,16],[347,12],[362,17],[361,18],[360,19],[359,20],[358,21],[357,22],[405,23],[110,1],[112,24],[113,24],[114,1],[115,1],[117,25],[118,1],[119,1],[120,24],[121,1],[122,1],[123,26],[124,1],[125,1],[126,27],[127,1],[128,28],[129,1],[130,1],[131,1],[132,1],[135,1],[134,29],[111,1],[136,30],[137,1],[133,1],[138,1],[139,24],[140,31],[141,32],[440,33],[145,1],[116,1],[69,34],[210,1],[152,34],[439,1],[197,34],[278,35],[279,35],[281,36],[282,37],[283,38],[284,39],[285,40],[286,41],[287,42],[288,43],[289,44],[290,45],[291,45],[293,46],[292,47],[294,46],[295,48],[296,49],[280,50],[330,1],[297,51],[298,52],[299,53],[331,54],[300,55],[301,56],[302,57],[303,58],[304,59],[305,60],[306,61],[307,62],[308,63],[309,64],[310,64],[311,65],[312,66],[314,67],[313,68],[315,69],[316,70],[317,71],[318,72],[319,73],[320,74],[321,75],[322,76],[323,77],[324,78],[325,79],[326,80],[327,81],[328,82],[329,83],[442,84],[441,85],[276,1],[368,86],[68,1],[404,87],[443,1],[444,88],[275,1],[369,1],[366,89],[365,90],[364,91],[363,92],[92,1],[343,93],[344,94],[342,95],[345,96],[339,97],[340,98],[341,99],[367,100],[150,1],[201,101],[240,102],[242,103],[241,104],[90,105],[88,102],[89,106],[213,102],[223,1],[333,1],[191,1],[226,107],[225,108],[167,109],[166,110],[193,111],[192,112],[195,113],[194,114],[208,115],[207,114],[399,116],[373,117],[374,117],[375,117],[376,117],[377,117],[378,117],[379,117],[380,117],[381,117],[382,117],[383,117],[397,118],[384,117],[385,117],[386,117],[387,117],[388,117],[389,117],[390,117],[391,117],[393,117],[394,117],[392,117],[395,117],[396,117],[398,117],[372,119],[190,120],[170,121],[171,121],[172,121],[173,121],[174,121],[175,121],[176,122],[178,121],[177,121],[189,123],[179,121],[181,121],[180,121],[183,121],[182,121],[184,121],[185,121],[186,121],[187,121],[188,121],[169,124],[168,125],[257,126],[256,122],[156,127],[155,128],[154,128],[151,1],[161,129],[160,130],[159,130],[164,131],[162,130],[163,130],[165,130],[153,1],[409,1],[335,132],[336,132],[338,133],[337,132],[332,134],[229,135],[238,136],[227,1],[228,137],[239,138],[234,139],[235,140],[233,141],[237,142],[231,143],[230,144],[236,145],[232,136],[334,146],[413,147],[411,1],[412,148],[266,149],[66,150],[65,151],[64,149],[87,152],[84,153],[85,1],[86,1],[82,1],[83,154],[103,155],[203,156],[202,157],[211,158],[254,159],[243,160],[200,161],[157,162],[196,163],[209,164],[371,165],[370,166],[401,167],[400,168],[199,169],[198,170],[346,171],[253,172],[403,173],[402,174],[60,1],[61,1],[12,1],[13,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],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[77,175],[216,176],[215,34],[220,177],[219,178],[217,179],[218,180],[222,181],[221,182],[71,183],[70,34],[74,184],[73,185],[72,1],[251,186],[252,187],[247,188],[249,189],[248,190],[250,188],[246,191],[274,246],[80,247],[81,248],[144,248],[265,248],[100,249],[94,249],[148,249],[143,249],[101,248],[263,248],[149,250],[96,248],[91,251],[98,251],[97,251],[102,248],[104,248],[267,252],[147,249],[105,249],[107,248],[108,248],[76,253],[406,254],[271,255],[109,255],[268,256],[270,256],[272,257],[269,256],[260,255],[261,255],[262,258],[273,259],[214,260],[158,260],[204,255],[259,261],[206,260],[212,255],[224,260],[245,255],[255,255],[258,260],[78,262],[75,263],[435,264],[408,265],[407,266],[67,267],[437,268]],"semanticDiagnosticsPerFile":[62,63,427,415,416,417,418,419,420,421,422,423,424,426,425,433,428,431,429,432,430,205,353,356,355,354,352,348,351,350,349,347,362,361,360,359,358,357,405,110,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,135,134,111,136,137,133,138,139,140,141,440,145,116,69,210,152,439,197,278,279,281,282,283,284,285,286,287,288,289,290,291,293,292,294,295,296,280,330,297,298,299,331,300,301,302,303,304,305,306,307,308,309,310,311,312,314,313,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,442,441,276,368,68,404,443,444,275,369,366,365,364,363,92,343,344,342,345,339,340,341,367,150,201,240,242,241,90,88,89,213,223,333,191,226,225,167,166,193,192,195,194,208,207,399,373,374,375,376,377,378,379,380,381,382,383,397,384,385,386,387,388,389,390,391,393,394,392,395,396,398,372,190,170,171,172,173,174,175,176,178,177,189,179,181,180,183,182,184,185,186,187,188,169,168,257,256,156,155,154,151,161,160,159,164,162,163,165,153,409,335,336,338,337,332,229,238,227,228,239,234,235,233,237,231,230,236,232,334,413,411,412,266,66,65,64,87,84,85,86,82,83,103,203,202,211,254,243,200,157,196,209,371,370,401,400,199,198,346,253,403,402,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,77,216,215,220,219,217,218,222,221,71,70,74,73,72,251,252,247,249,248,250,246,438,274,436,80,81,144,265,100,94,148,143,101,263,149,96,91,98,97,102,104,267,244,264,99,142,414,434,146,410,106,95,147,105,107,108,76,406,93,277,271,109,268,270,272,269,260,261,262,273,214,158,204,259,206,212,224,245,255,258,78,75,435,408,407,67,79,437],"affectedFilesPendingEmit":[438,274,436,80,81,144,265,100,94,148,143,101,263,149,96,91,98,97,102,104,267,244,264,99,142,414,434,146,410,106,95,147,105,107,108,76,406,93,277,271,109,268,270,272,269,260,261,262,273,214,158,204,259,206,212,224,245,255,258,78,75,435,408,407,67,79,437]},"version":"5.1.3"} \ No newline at end of file +{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./globals.d.ts","./index.d.ts","./node_modules/preact/src/jsx.d.ts","./node_modules/preact/src/index.d.ts","./node_modules/preact/jsx-runtime/src/index.d.ts","./quartz/resources.tsx","./node_modules/@types/unist/index.d.ts","./node_modules/@types/hast/index.d.ts","./node_modules/vfile-message/lib/index.d.ts","./node_modules/vfile-message/index.d.ts","./node_modules/vfile/lib/minurl.shared.d.ts","./node_modules/vfile/lib/index.d.ts","./node_modules/vfile/index.d.ts","./quartz/plugins/vfile.ts","./quartz/components/types.ts","./node_modules/unified/index.d.ts","./quartz/plugins/types.ts","./quartz/theme.ts","./quartz/cfg.ts","./quartz/components/articletitle.tsx","./node_modules/property-information/lib/util/info.d.ts","./node_modules/property-information/lib/util/schema.d.ts","./node_modules/property-information/lib/find.d.ts","./node_modules/property-information/lib/hast-to-react.d.ts","./node_modules/property-information/lib/normalize.d.ts","./node_modules/property-information/index.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/components.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/index.d.ts","./node_modules/hast-util-to-jsx-runtime/index.d.ts","./quartz/components/pages/content.tsx","./node_modules/github-slugger/index.d.ts","./quartz/path.ts","./quartz/components/date.tsx","./quartz/components/scripts/util.ts","./quartz/components/pagelist.tsx","./quartz/components/pages/tagcontent.tsx","./quartz/components/pages/foldercontent.tsx","./quartz/components/scripts/darkmode.inline.ts","./quartz/components/darkmode.tsx","./quartz/components/head.tsx","./quartz/components/pagetitle.tsx","./node_modules/reading-time/index.d.ts","./quartz/components/readingtime.tsx","./quartz/components/spacer.tsx","./quartz/components/scripts/toc.inline.ts","./quartz/components/tableofcontents.tsx","./quartz/components/taglist.tsx","./quartz/plugins/emitters/contentindex.ts","./node_modules/@types/d3-array/index.d.ts","./node_modules/@types/d3-selection/index.d.ts","./node_modules/@types/d3-axis/index.d.ts","./node_modules/@types/d3-brush/index.d.ts","./node_modules/@types/d3-chord/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/d3-contour/index.d.ts","./node_modules/@types/d3-delaunay/index.d.ts","./node_modules/@types/d3-dispatch/index.d.ts","./node_modules/@types/d3-drag/index.d.ts","./node_modules/@types/d3-dsv/index.d.ts","./node_modules/@types/d3-ease/index.d.ts","./node_modules/@types/d3-fetch/index.d.ts","./node_modules/@types/d3-force/index.d.ts","./node_modules/@types/d3-format/index.d.ts","./node_modules/@types/d3-geo/index.d.ts","./node_modules/@types/d3-hierarchy/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-path/index.d.ts","./node_modules/@types/d3-polygon/index.d.ts","./node_modules/@types/d3-quadtree/index.d.ts","./node_modules/@types/d3-random/index.d.ts","./node_modules/@types/d3-time/index.d.ts","./node_modules/@types/d3-scale/index.d.ts","./node_modules/@types/d3-scale-chromatic/index.d.ts","./node_modules/@types/d3-shape/index.d.ts","./node_modules/@types/d3-time-format/index.d.ts","./node_modules/@types/d3-timer/index.d.ts","./node_modules/@types/d3-transition/index.d.ts","./node_modules/@types/d3-zoom/index.d.ts","./node_modules/@types/d3/index.d.ts","./quartz/components/scripts/graph.inline.ts","./quartz/components/graph.tsx","./quartz/components/backlinks.tsx","./node_modules/@types/flexsearch/index.d.ts","./quartz/components/scripts/search.inline.ts","./quartz/components/search.tsx","./package.json","./quartz/components/footer.tsx","./quartz/components/desktoponly.tsx","./quartz/components/mobileonly.tsx","./quartz/components/index.ts","./node_modules/gray-matter/gray-matter.d.ts","./node_modules/micromark-extension-frontmatter/matters.d.ts","./node_modules/@types/mdast/index.d.ts","./node_modules/micromark-util-types/index.d.ts","./node_modules/micromark-extension-frontmatter/lib/syntax.d.ts","./node_modules/micromark-extension-frontmatter/lib/html.d.ts","./node_modules/micromark-extension-frontmatter/index.d.ts","./node_modules/remark-frontmatter/index.d.ts","./node_modules/@types/js-yaml/index.d.ts","./quartz/plugins/transformers/frontmatter.ts","./node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-footnote/lib/html.d.ts","./node_modules/micromark-extension-gfm-footnote/index.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-strikethrough/index.d.ts","./node_modules/micromark-extension-gfm/index.d.ts","./node_modules/mdast-util-from-markdown/lib/index.d.ts","./node_modules/mdast-util-from-markdown/index.d.ts","./node_modules/mdast-util-to-markdown/lib/types.d.ts","./node_modules/mdast-util-to-markdown/lib/index.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","./node_modules/mdast-util-to-markdown/index.d.ts","./node_modules/markdown-table/index.d.ts","./node_modules/mdast-util-gfm-table/lib/index.d.ts","./node_modules/mdast-util-gfm-table/index.d.ts","./node_modules/mdast-util-gfm/lib/index.d.ts","./node_modules/mdast-util-gfm/index.d.ts","./node_modules/remark-gfm/index.d.ts","./node_modules/@types/nlcst/index.d.ts","./node_modules/retext-smartypants/index.d.ts","./node_modules/remark-smartypants/index.d.ts","./node_modules/rehype-slug/index.d.ts","./node_modules/hast-util-is-element/index.d.ts","./node_modules/rehype-autolink-headings/lib/index.d.ts","./node_modules/rehype-autolink-headings/index.d.ts","./quartz/plugins/transformers/gfm.ts","./node_modules/@napi-rs/simple-git/index.d.ts","./quartz/plugins/transformers/lastmod.ts","./node_modules/mdast-util-math/lib/index.d.ts","./node_modules/mdast-util-math/index.d.ts","./node_modules/remark-math/index.d.ts","./node_modules/@types/katex/index.d.ts","./node_modules/rehype-katex/index.d.ts","./node_modules/rehype-mathjax/lib/create-plugin.d.ts","./node_modules/rehype-mathjax/svg.d.ts","./quartz/plugins/transformers/latex.ts","./node_modules/hast-util-to-string/index.d.ts","./quartz/plugins/transformers/description.ts","./node_modules/unist-util-is/lib/index.d.ts","./node_modules/unist-util-is/index.d.ts","./node_modules/unist-util-visit-parents/lib/complex-types.d.ts","./node_modules/unist-util-visit-parents/lib/index.d.ts","./node_modules/unist-util-visit-parents/index.d.ts","./node_modules/unist-util-visit-parents/complex-types.d.ts","./node_modules/unist-util-visit/lib/index.d.ts","./node_modules/unist-util-visit/index.d.ts","./node_modules/is-absolute-url/index.d.ts","./quartz/plugins/transformers/links.ts","./node_modules/mdast-util-find-and-replace/lib/index.d.ts","./node_modules/mdast-util-find-and-replace/index.d.ts","./node_modules/parse5/dist/common/html.d.ts","./node_modules/parse5/dist/common/token.d.ts","./node_modules/parse5/dist/common/error-codes.d.ts","./node_modules/parse5/dist/tokenizer/preprocessor.d.ts","./node_modules/parse5/dist/tokenizer/index.d.ts","./node_modules/parse5/dist/tree-adapters/interface.d.ts","./node_modules/parse5/dist/parser/open-element-stack.d.ts","./node_modules/parse5/dist/parser/formatting-element-list.d.ts","./node_modules/parse5/dist/parser/index.d.ts","./node_modules/parse5/dist/tree-adapters/default.d.ts","./node_modules/parse5/dist/serializer/index.d.ts","./node_modules/parse5/dist/common/foreign-content.d.ts","./node_modules/parse5/dist/index.d.ts","./node_modules/hast-util-raw/complex-types.d.ts","./node_modules/hast-util-raw/lib/index.d.ts","./node_modules/hast-util-raw/index.d.ts","./node_modules/rehype-raw/index.d.ts","./quartz/components/scripts/callout.inline.ts","./quartz/plugins/transformers/ofm.ts","./node_modules/vscode-textmate/release/utils.d.ts","./node_modules/vscode-textmate/release/oniglib.d.ts","./node_modules/vscode-textmate/release/rule.d.ts","./node_modules/vscode-textmate/release/rawgrammar.d.ts","./node_modules/vscode-textmate/release/theme.d.ts","./node_modules/vscode-textmate/release/encodedtokenattributes.d.ts","./node_modules/vscode-textmate/release/main.d.ts","./node_modules/shiki/dist/index.d.ts","./node_modules/rehype-pretty-code/index.d.ts","./quartz/plugins/transformers/syntax.ts","./node_modules/mdast-util-to-string/lib/index.d.ts","./node_modules/mdast-util-to-string/index.d.ts","./quartz/plugins/transformers/toc.ts","./quartz/plugins/transformers/index.ts","./quartz/plugins/filters/draft.ts","./quartz/plugins/filters/explicit.ts","./quartz/plugins/filters/index.ts","./quartz/components/header.tsx","./quartz/components/scripts/clipboard.inline.ts","./quartz/components/body.tsx","./node_modules/preact-render-to-string/src/index.d.ts","./quartz/components/renderpage.tsx","./quartz/plugins/emitters/contentpage.tsx","./quartz/plugins/emitters/tagpage.tsx","./quartz/plugins/emitters/folderpage.tsx","./quartz/plugins/emitters/aliases.ts","./quartz/plugins/emitters/index.ts","./quartz/plugins/index.ts","./quartz.config.ts","./node_modules/chalk/index.d.ts","./node_modules/@types/pretty-time/index.d.ts","./quartz/perf.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/minipass/index.d.ts","./node_modules/lru-cache/dist/cjs/index.d.ts","./node_modules/path-scurry/dist/cjs/index.d.ts","./node_modules/minimatch/dist/cjs/ast.d.ts","./node_modules/minimatch/dist/cjs/escape.d.ts","./node_modules/minimatch/dist/cjs/unescape.d.ts","./node_modules/minimatch/dist/cjs/index.d.ts","./node_modules/glob/dist/mjs/pattern.d.ts","./node_modules/glob/dist/mjs/processor.d.ts","./node_modules/glob/dist/mjs/walker.d.ts","./node_modules/glob/dist/mjs/ignore.d.ts","./node_modules/glob/dist/mjs/glob.d.ts","./node_modules/glob/dist/mjs/has-magic.d.ts","./node_modules/glob/dist/mjs/index.d.ts","./node_modules/rimraf/dist/mjs/index.d.ts","./node_modules/@nodelib/fs.stat/out/types/index.d.ts","./node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.stat/out/settings.d.ts","./node_modules/@nodelib/fs.stat/out/providers/async.d.ts","./node_modules/@nodelib/fs.stat/out/index.d.ts","./node_modules/@nodelib/fs.scandir/out/types/index.d.ts","./node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.scandir/out/settings.d.ts","./node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","./node_modules/@nodelib/fs.scandir/out/index.d.ts","./node_modules/@nodelib/fs.walk/out/types/index.d.ts","./node_modules/@nodelib/fs.walk/out/settings.d.ts","./node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","./node_modules/@nodelib/fs.walk/out/readers/async.d.ts","./node_modules/@nodelib/fs.walk/out/providers/async.d.ts","./node_modules/@nodelib/fs.walk/out/index.d.ts","./node_modules/fast-glob/out/types/index.d.ts","./node_modules/fast-glob/out/settings.d.ts","./node_modules/fast-glob/out/managers/tasks.d.ts","./node_modules/fast-glob/out/index.d.ts","./node_modules/globby/index.d.ts","./node_modules/@types/serve-handler/index.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/remark-parse/lib/index.d.ts","./node_modules/remark-parse/index.d.ts","./node_modules/mdast-util-to-hast/lib/state.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","./node_modules/mdast-util-to-hast/lib/index.d.ts","./node_modules/mdast-util-to-hast/index.d.ts","./node_modules/remark-rehype/lib/index.d.ts","./node_modules/remark-rehype/index.d.ts","./node_modules/to-vfile/lib/index.d.ts","./node_modules/to-vfile/index.d.ts","./node_modules/@types/workerpool/index.d.ts","./node_modules/@types/cli-spinner/index.d.ts","./quartz/log.ts","./quartz/processors/parse.ts","./quartz/processors/filter.ts","./node_modules/micromorph/index.d.ts","./quartz/components/scripts/spa.inline.ts","./node_modules/plausible-tracker/build/main/lib/request.d.ts","./node_modules/plausible-tracker/build/main/lib/tracker.d.ts","./node_modules/plausible-tracker/build/main/index.d.ts","./quartz/components/scripts/plausible.inline.ts","./node_modules/@floating-ui/core/src/computeposition.d.ts","./node_modules/@floating-ui/core/src/detectoverflow.d.ts","./node_modules/@floating-ui/core/src/middleware/arrow.d.ts","./node_modules/@floating-ui/core/src/middleware/autoplacement.d.ts","./node_modules/@floating-ui/core/src/middleware/flip.d.ts","./node_modules/@floating-ui/core/src/middleware/hide.d.ts","./node_modules/@floating-ui/core/src/middleware/inline.d.ts","./node_modules/@floating-ui/core/src/middleware/offset.d.ts","./node_modules/@floating-ui/core/src/middleware/shift.d.ts","./node_modules/@floating-ui/core/src/middleware/size.d.ts","./node_modules/@floating-ui/core/src/utils/recttoclientrect.d.ts","./node_modules/@floating-ui/core/src/types.d.ts","./node_modules/@floating-ui/core/index.d.ts","./node_modules/@floating-ui/dom/src/autoupdate.d.ts","./node_modules/@floating-ui/dom/src/platform.d.ts","./node_modules/@floating-ui/dom/src/utils/getoverflowancestors.d.ts","./node_modules/@floating-ui/dom/src/index.d.ts","./node_modules/@floating-ui/dom/src/types.d.ts","./node_modules/@floating-ui/dom/index.d.ts","./quartz/components/scripts/popover.inline.ts","./quartz/processors/emit.ts","./quartz/build.ts","./quartz/path.test.ts","./quartz/worker.ts","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/mathjax/index.d.ts","./node_modules/@types/parse5/lib/tree-adapters/default.d.ts","./node_modules/@types/parse5/index.d.ts","./node_modules/@types/web/iterable.d.ts","./node_modules/@types/web/index.d.ts","./node_modules/@types/yargs-parser/index.d.ts","./node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"134d17146352bc4d1b3411101dde431269cf9a97f2392b98ebe4d47c788044a8","affectsGlobalScope":true},{"version":"fb374a56248d8a0717687924469f8a022a4e95a2d3502f5ac79fdaf01f15edf6","affectsGlobalScope":true},"cf0779719c437592be3ed4cb0f76760a13aa6c6408e53ea6ab186a92d8b65002","2f6891be00549893b5ce20ba53f1940f56822053d1a71b8a455ee699478a7468","670683503e4e107e88dfec53d4360106fefb23ae2cb01575ba338849647b15f2","4dbc7cdffebc96b5c0a1f3e4100c749d84f9be441685a263bc197ef495cef2a7","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","3d2cd8f3047fff04a71e7037a6a4cb9f4accb28dbd8c0d83164d414811025af0","e0c7d85789b8811c90a8d21e25021349e8a756a256ae42d9e816ecd392f00f71","bb8aba28c9589792407d6ae0c1a6568f3ddc40be20da25bc1939e2c9d76436bb","8fa1868ab5af3818ff4746f383ea84206596e284f7dc5ffd40a0fac08ed093f9","8d4537ea6fcdde620af5bfb4e19f88db40d44073f76f567283aa043b81ef8a3e","0bb848976eff244e33741d63372cbfb4d15153a92c171d0a374a3c0ef327a175",{"version":"369a83721bb0977289073703f8d75ceffffc0f630260b1a9ffe7b1220b2c922c","signature":"85f430f0f0dfd94d427b372e3bc3f15ae1bfd0bc158519f3eb3d26d3f2645356"},{"version":"bef50c2685584c78d81d93ca76ecd0ffe9fd2eb2e34758f59ea29e6ff00e1b82","signature":"75893e466a422fdafdc5aeaa4bb5681dc2381f339926ae07b7529b80fa63ec53"},"af79b166f5d41ec2ebae57e9b67df564452b90ae3f0af4cb3c2d8ad5adbfd2db",{"version":"276a5c443d019f60448c1cd3fa93dcbceab53b77f8ff11a02102daf99d6318e5","signature":"fc67371f45ff5255e73cc5b7b004a4c92517f808acdced809bdd5587cf7a4744"},"8467c73fc9a9ee4ff0ae236129b62dc3c3b0f2af70c33c1db2d338ba36f7c260",{"version":"7ef387251336b35d187c774cc9f0276489debebdaecacdff5ed1a619d0105763","signature":"837782aa36f46d05bd43a56b132e1e18d479653b1424df37e13f17ac944e7367"},{"version":"4653a12ee110d48697801371a08c4d14cc78977c14cf6fc73c73b2b6d0713a51","signature":"db268b93914f3bdbedf2e95c7bd400873cd25036dc62df98a38b2ad36726640f"},"7bd32cd2e05737c6a5041ca7a31ceca0c14ce065661c5d1ae5f7bfa35ff3fc5e","bdbb3f4e3f608f6034a78af17466f05ee85b1f1414f5e6f25f591c73a2f9b015","74e27c864416d1ad8947d13cef35e7c9afe0608255eb455096026e988c962295","46ab5ea5cdbc0ce75ade44ec0d9aa164f81e42b061d8e573b832a73ed181da57","d752d4dde165ab9bd56ddd111f59a6bf46eebbc6d4ba4e433f2ea21d1d0599e6","6527f50c0513ce908927055546f39578b9aaed6f1a69dec209b9101fd2d41017","222a249948ca193e1d11201057fe385cd69318c52314cf0a39d88d82739b7b20","4da5022999387d1d65bb058196da994891b4c46ec908c6571503dcf434766895","90c6c9dd17a3ca7c4aecf3990bc338f3a4575b70c38cac4e30d5e430f204deed",{"version":"6e4fc77ba2afcc9132c73f607740db26733d4c134546e0348950b6663292cc9c","signature":"82bd148e92253d2a148a37dff77659d20fce265b38068adf0a75aff3fe269020"},"1ac0f0d4aa1197aded0e7a41a08d2e687e7db61c967a2fad216b736f18a740fa","1b416e8211cb1da1abf942e1dfc49c6a7abf076151b219a56f5a97e5b2511c59","97d8c3d7909eaa03744e52bf89710e0a0b8397207fc0c32e5b36c6727f4c81d6","fa5ee48aad3d5d896fe40d6fe44f3dcbd250a9c85f5a2388363b25a0ff81b595",{"version":"5d74bae80a5b9b5ef5f797d98b2af3c5dd16e6670a607ffbf331e3c3d9f8b8ba","signature":"cb678ed8e3849ea3c71e229b42a8cdd53af719cdb3a0eb83107a230b2b152c82"},{"version":"467dff6e3bff3b38512ae04a684c7689659ad68febe8ec5939644f86abcc7962","signature":"a53cef57a41a198fa6895d114eb4d6f0d33b4b5c07618daf1cd4387ff2ade683"},{"version":"ecfd93a80956d243396282949bb0cce6382a399543d9a818169afac6b9ba75df","signature":"a24bc2e360abb87d683adfa231ff4a662f1e4031f847b26853f6743d03e5f07f"},{"version":"8d557cb367ee184dcb14d4626f094b50f92fa2dd9210ae1520243f5a3224f488","affectsGlobalScope":true},{"version":"bb1379f0079b639f1ad87048e58769ee67f36ec29b51a45906fb70cd8f9de1c8","signature":"c9cc7d2475deade9d2957ddd34981c4ef0dbbb81cce769f55fa1f2670b1d8546"},{"version":"4dd2d0f50ecc676fb824ae815e6db238096dbbb7c9d4cdf94570c60d1e40a6a5","signature":"b065d365ec0061cee80a56418eaf525157d1508ee9f54397c25a8cfacc2d4938"},{"version":"36efb6babf2c57021ed7c14978e6011ecf2d11b6b5a1bae935f5be10cdb9b1ba","signature":"30e33547a746e1f12f63ff74aa06db5abbd438c0f95a4f0635a52c0bdab119ea"},"3d1600dc772549c3eacc2b8b0b26f2fd51f269cb863504b3edc3bd7dbbb1e4d2",{"version":"3baccd6f2ad621c0cded0a13433711955e995c6ddd4009341206bb8fe5104f75","signature":"e3108ecd5a11b42d161aa318d1491db01e9ac3be64de77092e251478a1822477"},{"version":"9df529fdab08272fe3561ef9f54db65e4b1c12f11d9c2f6a7bb548fe0e1b50b6","signature":"9ee0417c5daee73d5a9b59d16fe3b66885de09de5b84ea204035c4b69e90ce3f"},{"version":"1bb74e8ef96bba804760216526e3ec5e547e4e1ebe9ae31274c49c96d98ffd28","affectsGlobalScope":true},{"version":"3b3eb21e2ca06c9b7ca4834a093e17e3d8166980cb84627e251a8801bba86798","signature":"c58bb444d526af6c9a29499052cc6c9282d679ee0c3b6490beebc3d8c6e829ac"},{"version":"83d5b0ace587be89d75c65626a5f27b773171d1d3f09a1bcb92a18dad1c3fc86","signature":"6f11b7d2d2015e4fb61d1ddd1c35435b44540935174b5009448b86ac9f337a12"},{"version":"752bc0d967be82657c7512624fb80f15b97dbdf935702610fd7442507423ba21","signature":"b70e088421b042a4e3518565605479bce7758369d230c0bef9609d64c85e80f5"},"4fa5c6721346cafc445797831da394916f173d79a8343ac8bbf183d06042e869","a8c897d63ae6e779bbc4f4753a386389dfc3a45ceec6b6672f55b072d822d302","8fddb452bfcb60c598245e997aa9c9dce14b85a4c2e02489a50d97ab49e9b622","25d505ffc43befd205d780441b0a16e752ec1028f383a55cadd41841d1c7f153","39cb5be3f5302e759253b89f11bd3e885930b5649b840f4d5a81a763a5dd6c40","8a460dcdabe873ab0a85e421a7f339ad74445f60917bf67deed7d15d836b0247","a3b6c93a9838b8c94c6998e85646d6f2d07c20ecfe1e235dba62158b29451391","8f2d349c69976569d4c32e0e4e66598c9688159cac28cde38bbe0039dd1cadfa","6adc0305186bd1f72ca64adbd054b8e5e71f93b1d0623e90ebabf153541c06c0","c85a93f216df4ebb6dfea7ad46c8d6161a0f1948a20967ba0c85f0fff3f9edcd","0df330f74158aee4ce076b0bb15eb53fab95f615d26ccbd6ec6f5c4273110047","7b2ff705f3c3358807afce85ef146b7f7cdc882a79442630b034ec24d6a3906e","344ac2d6764eaa6b23b2e8e736c9bf0ae06a53479c6a1371d3d89ac964022692","e5907221fa3198e26f294ad77bf8f2996990b40484fe6781b65e099b1fe57933","ada362e162ad90df10c921c845546d911a6ad648a641a6945bf08c3ef1a09a17","f156602a8527c97f898fc96a33b7e025eed27870c2a63842c0c9ed506d7203ea","a8c34714c5da0bb0d2f74d31a44c9fb8b3b87efe6d8a0891182f9f6077723e69","4b51be04eb5bd9b929448380b3ced483ef1f6c3bbfaf7d3425bdbfa3b8eab11f","c24944ff5879b91478b153cf16802b9c6a10cfa3b7d85855813a08431ec2d36a","f1ba7a42f644ba5a281dd41b4bfc813d1f4a59e9c99227315cf778284d1e0b22","7adc301a699032ffd6d57e9ce97b2507e2ad652771cda558cb7ebb49a06e7696","f6319ead2de997fe24e6acc3594942d6819a4570f40e42cb979f5b078f3da1ca","4d3ae1585844151755e9d76cc41d82a6770b150559cb318c5366c869d487e01f","589cbf58df97db61280be456952054f5d54070e87a2c371303844a4bb288d8fa","c4e910182d6de2fcb3922631733faafdecd593370248adc1013be93352a8cc78","6bbf574c575a0491388f32aaa69c648140f24637b1d98ea6f3c97074c339f9e9",{"version":"07104ffff8802481908f08b4a220e399cc692d5edcfaaa7e6632156fc267be35","affectsGlobalScope":true},"3e135eeb6a6be4b07c1d2a170c105dde5f8b5c705f9be4e0f01166259724f125","f6c30cfb96957bb21586996d7c5d5861c236417f31b5f790055624c7df07e944","be04184c354d4b7207e68298ea4e0539cd3e55889778f3bad120c71593ad408e","37cf86c0651242b9b8c1b0bf89228a7be8ae40db6f3aac0b9e1de75bc7ddd5cb","32e5beeefac1493f9dbf2498eb4de6b5ef69a411eb1b9321cdf25a6f37086361",{"version":"de91e4ee1bf679de40c7d9999c8eaa5b321176a23f2d1055cc86fa1d7d564924","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f4b452975bfbbb8a81d75386df7f1fd73121305dfd2d48a0ad9fa047a99f7e79","signature":"258ede9ca49f1cdab01cf7e562a48c5fdf55ccd4c8ec1aefa8561ea3ba4b002d"},{"version":"ad87caeb7cd6811e6035ad71861fcb9286b95a989f10e65056fc49028ee57709","signature":"34576638e093402e0614bbb69ac5f9a31f7b6881a2a6b05366440ee282a22d6c"},"30b5b2c77d0e23531941808d959ee50ab2d08c3b385d2f446203c0d5d851e252",{"version":"163f47b34144cddef467f26b428e41eae1a6132bf0cd774b4c6799df06ffc2bb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"22618530eec9f4aeaf44e7061fec5d9ec5d6fafa056877d2c9bd0ee5aff0255f","signature":"1423c5fab3117766e5080c593d8df04b898828c2cf34f6470456e5cce0e2107b"},"0f11d4db150840ac7be219fbcdde79dc02f9a77ebabcdd44c75d4d08f67faeb8",{"version":"311ec4381f9ca24750633a50b26fda87301274795fa786ca95a6723d63476a5d","signature":"710def090bb8066719ca23215c6be6d92593558476fa328f2be96893c4b85ef9"},{"version":"718accccc7822237fb0c70a9d0dcdce1714cb2282a20a8b6f2636c732cc9ce6f","signature":"9ccbbf82b7d1ca86f53d976576fe377302cf953efe6eb052aa75f95a30540a39"},{"version":"39582cde4757322edd52727a83a1c416d2e07a82b99f7341cdd2b07b07a8c082","signature":"9ccbbf82b7d1ca86f53d976576fe377302cf953efe6eb052aa75f95a30540a39"},{"version":"8accbcc195dc98c4d79023bf6ba7f0c5fd8347cbbb14a89641bf2063596bec07","signature":"4f983e837ce44bab9b258d34354ae7f82f6699f96675a35f39db62a675c97ddc"},"a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","fa81d09d80cc4288c57f8b0c30892392fc9ea7b1d59c3126472f432cb8f305dc","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","4cef6b76f45c58ff3044e1851afecd32be09fa6def7a626115b555b063e3e9ef","4fedbda3802091cd7dc7ca57059790ec6456a67a1f62638d0734d13e5b558d34","fea1f289a0585cdb13cd296e7fae0faaaa5dbf94d94687fe9d4f55dba6f4e138","9e4646339b6e49806147a857bedbb5d7d930a8101fb4724b4a0e2eb7910ac69d","0c0ad11991c2556f9c0e3074cc2f9bd04bd704f546b40363aec12c3fa5d5e41c","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed",{"version":"ed3fa940ce95a8872ed25b4a6b1c3dd9e552aecf302cdc27db550de9615242b0","signature":"77336f441a096bdb2ca4a8321afa5c0db164a4a81b9b85c07823b06a9214f847"},"8510f56ab8598d18ec11cb2535112e2aace53e06da7d2d4fbb046e5c6cfb743e","1f85065e4d231eeb843a8485847ca66855a82984db1788ead57db359c6a52128","f10c018418c8621e4ab10596aed7202c49c36df8fda7f3c8a6ceba18724f4f85","26c304c279c0faf6ac61854c67373342e002a3d6c7ff0d8fcc7cee94f0ad323a","cc4ad1e0de78e65fbf1603669017fb939355e7bb4d38e48e78af619a390e4e23","f7598141e8c7143330f1cbfecb221b6f2beb95dc853ad6c20842891442944d0b","7ccd7b1d3c72e8ee639f48aaf190a4d2c9bf4c6650a22501d0fa98b8e3fc2fe1","31c74be259150eec1e3f8f4113f99cd10d5f1a278a5a7ef6fa29478d71766618","171a8d5b10a71ab01c4f43c110565a6a81d975eef7c46be20fc8162e21b2f188","ac052259a6eec4dc9e73e2309a64fa0fc4f7edba776418355b25e67cf24d3318","e83857dd6e1c80bacacdaee3eaf2bd71d8331880fd4705489e5e1383e0ac78a8","dceb21129b0ae66beddafba41b8765f27bf95669a8f7fbe3e94025e01c9351a8","859ea22746d11ed8386ec8d9b63b998462510705d527b83494f6a2fcaa7a5de4","825b79a00bb5650472780a23f75ee17cffe4d0eae235da96e50d3b8cd9456ea5","5b6ba1af9d52d4a47eb6908d1aebd2fe348d8212205b203d25ae528b46822eff","92ae8af22ba9f4d3728ee0075a23f5a9f2e071bb677e7db01ec2f44cc01ed473","a3f55be7fa724c524698e82466c2a651f352e673f63428d953923de161b1095c","f34def9623f89b02ac2568eeee0cfa655411e56b79f1198143053709d1987110","bc0d6e115f78a602be8f82c6977c3a3b4f84fa144e06706bd768797cd683f2b5","fb4b80d4f7140829a10b48ea77584e191098d20fbe77039e171fce8de1b257ac","871b7a0478e9b76721ca4f596acd219b2ff60f58fbf95198117ce4c1bf8eb52a","38a6564c83f8e5c76f0cbbd823c5ed16c9ea9e55f25629ca4a1384d3447b27f9","2faea076f501719cba9eb56cdf431e5efc09bc81b12a4329a825fedce77c6503","46f0d38a72546ad31308f6730267f835bea40803b9117c42a29ad009706cda9f","3a2cad3fdc52e8407c3c9a044c10a4db897bba4c1e30a96461f2e7b2be9955c0","a8e0ac700a94d9a42add85453d32842101fb1f08c1a296a02eb27105e78917e1","70cb02181c04656d711bca5c332549beae390bed0107bd97c419a3466bb39306","afe412b89ebed32a7eb2e44fe185cb24027d36f8543023e57ca36ead6e59193c","5a0012861a95843c567475a90362f686019af229a8946779ccc44c7efb5b1f44","586c4ef6496185cdbc08391fdc5f49dd80b14cdb2d01ace355b2b150f3fe71eb","148e197eb64a4c80531e4c959012755ce7fbfdbcb8d17721eac0c8a983c3e51c","edb06b0fc903fc619a7f2a3aeb6579e5b787eb624c349da738b574720558a596","d6fdaeb6f1e4e29d7827e30d743dfef5cb6c8bca4bc546001a3b3e751a2de06c","92f92e2b21f14f7ad07b15902ba806b89f37d8a83a7d127f7e638f92f241ddf8","74f4c396d57693d72e769ccc21b83542a78a6f3825ee0fe69cfefd7713f5e6cf","03a3957f7ccf2ceb0940c64e35734ed50c0d090c161924c44e79cfb7c9c437f1","010bb5235c40300fe81fd4af2dc7d48b573ef626e65d529242035274121f4c83","801bcd63fc346570aa633c166bc5869da8cb9ad252e113c4fe46800296f54147","1b23c2aae14c17f361f6fcef69be7a298f47c27724c9a1f891ea52eeea0a9f7f","4dd0179485e44a0d416b258ffc27667454ee4da96a7816ca998909cc42891d09","ff9426068448c2ecd28cef056c51c7eb9dbaeb3c7b8a5ab4843103d9081840eb","0a8e2910c8837f59fc6866cf9b81d4bb8c2d5449a242b7c0f8a41f07e88a07d8","9691ea7fbb97b0f4b0b8ce69d07b3f928800882e3b806bcd0b3bba12d2c7f443","78c5ff36a7b6e97c7825be17744fd45ffb2770ec40f486ca3dc4c1f9fabe2b6e","3c33c018c64e65691075dfae05fbc58febd6ce2d452257c35505ca70c96899d7",{"version":"07c5f039a0f2342f28d84d0b3e2048df3834e9a8f10da33905fd9d0ba914745f","signature":"8834205ba141ab91313b86538e251c725253c8929ee16ffe25dcaa8aff209dac"},"9ccad2264d463d89f9246a6e2b3c5fc2ea4fa93fd1d766661dd3fc06a0ec6128",{"version":"1ff93d60f6c23c7a52974c9378a854cf0ce492cf219db5d1db24065a35cdb7b0","signature":"11535ba3e664110f0c5d406378ce9cdf5c606c5507bcdbf468e297b9c15ae79b"},"eac47ed99cc76de6507dd9d6a9910023d3fd810227f473050546c1b786bead4b","5cc3a8b25d4670152aff1f05614a58c94829388c033951aebf4be5cfa6c43ea9","6ba2d97e94a13a5c21c3c7105f01fda5491b7ecf638230cebc46ead1204a8559","a3c1977660766af91c7b8efe2106792f0f6375bde60a4f28a438242bd93c558e","ee2beb928f0554aacc404552cb44c86c8afd1aaf8e452e405e37861681c695bd","595d5cf77d30d6b5e8609b13d0597915f05cb37773e7668d3080ed8bf04e487b","18669ea666474ce42b7975382c3b9a5768e219996146ec066b5f983827bdbaed",{"version":"ea325be965da0249e3bc7523e672e9a33a12e0b4cc392128a3af397c58478716","signature":"d1298f05ad9476d943168d307d9e712f93354a171da3355c59a4ee65f2561e7f"},"86ae9ad4466ed3302ebdf35cb380df8d798f998f44c76c8985d8edce586fa0cb",{"version":"017e963a93d80f331641c2fa19a2362a987d82d46cf67ab3818e894a9a89dc4e","signature":"c13809b0af560a664d6c648bf57ab6ab8852eae07c341b5f0be1239380a6ebef"},"63c010c8e3e0c33bfe2c4fffca858f9a7a28ee84c090652ae9f8501a6037afe5","c8abd849f7fdb1e4787b53520896cf142f2e19821f9af86615a6af4436074eef","cab76feb8bdafd8f888d060a7a014f5a407c7599e0b0d1f85e4e36694248a1f8","41a2c5474756ee1b12e5502bcaadddd6daa9b79e5fbed24b5c9e7d4352383170","cee0181994c0afe05ffc4bfc05ffdf4eba3275cef012c562b23572056e8b3466","0801dffb28c9a67ab387b8bd47392c05bbe3678d56b95a9127015e116437435f","d4de3f9c6acd93a96b7551506870ae1b84a60d07ba075d2d99296f9e27b96d35","083609ca47c047c6802bd40e974346a9509ef28367bb07769dbcead77cc7359f","082030c53946fdee90e485ee3fcf88fb07af4811d375f0d92e806ef6d893a54b",{"version":"794d2987dc78bb60805fa4500d50b7ab33523cfa0c3f96d5d9c509ca8f2f293f","signature":"a6019842d451eb3a48e292f3b462fbae9e4b694c6fdc22b99e5fe9e2e781a7ac"},"97ea5f1a03786cb55ff31e41afeef6c2c672de4697eff80f6b68f043694cf892","30d7301a01f01ccbeeced6181f48abe5715dab628868400e827d6dd057aabe97","3411c785dbe8fd42f7d644d1e05a7e72b624774a08a9356479754999419c3c5a","8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","33f3795a4617f98b1bb8dac36312119d02f31897ae75436a1e109ce042b48ee8","2850c9c5dc28d34ad5f354117d0419f325fc8932d2a62eadc4dc52c018cd569b","c753948f7e0febe7aa1a5b71a714001a127a68861309b2c4127775aa9b6d4f24","3e7a40e023e1d4a9eef1a6f08a3ded8edacb67ae5fce072014205d730f717ba5","a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","382100b010774614310d994bbf16cc9cd291c14f0d417126c7a7cfad1dc1d3f8","91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","4fdf56315340bd1770eb52e1601c3a98e45b1d207202831357e99ce29c35b55c","927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","be6fd74528b32986fbf0cd2cfa9192a5ed7f369060b32a7adcb0c8d055708e61","0e6d87e1af5b3cb046c54714f8afdd0d0fe3c499d96954f29466f92def0f435c","b25eaf53a7b338ea38921dcfe882a0e46a36a49c439a580018cd1e523a970dbb","2bc1325de383b9b270e0800b370cd33b87998f67380a0353167c37c3dcc13d3e","ded25fdd0b036433f1c7044d0f05c9c792b4873a648fbd33eec49f6238e3e572",{"version":"826229354d99c4759dbad2af176f3484be0f93b2dbd2bd0cf0f19808cdaf5516","affectsGlobalScope":true},{"version":"6b05268cec24091283de2b81503e925691747662c93ac2accd9541b61a1c63e7","signature":"2e45a21d5d6d2de77da7fc28e048739dcf4ed0512fd856ca07c71065f9471bb5"},"e617a4e3425c1c4f6337f9065c844fee758eb60f2befe40f87d6bc295fe3dd6c","84cc254263404913255f7ed1ac7bdd05d5f1f2c233f6b48915f64aca2321ec17","67a4f653163df230b46606a9b97b568b5150d0e0e1ae1d613c59f7a3b0512449","3b1c2ccfa2572201a53e54008e1a2a321ef826f4260264749ed5158643cad6c0","0b30b078f688f2b4f4e378fa383e02e2d4c4213a1b22aebb020461e36e34aa92","7f204c0b47583a898e6dbe667ad290b837cd99822bf133d0ff23ba072becec52","df8ac16e33db5d15a25a0a175e8a5d5bd3d3b2f1d5d0edff099ac26e619932b6","421c86381da2dd0b7053140641e564c6f06dbca3457dfef94dd5191c7a91e761","9771ad326e8d22467bf407c5473fc51cb8a0f73a5d420809c5ad0f7f62b65821",{"version":"afc9d9ff588336581c255a383a97174e426826aa2468da4857f54d9476ec726a","signature":"2ffb5be570de81083b20081137239470ae8a03c5b7ca1594cb93884a722b75c8"},"0cb2f19ca25c0f21a28218c5dcb5a7e994e81985086ca5daa9c8f4ebe64fde14","87f45900e657071ede09193a640840449cbbd84f442fa110ff6ad48258a79960",{"version":"6e12133b35d7f3275b86b131bd7123ca62cb8907ea48c16a869995a633d6fdf4","signature":"56fc117444fb16ff297d7c268cac9f0c2d70c300b25c313883982603958d1c77"},{"version":"a13de7ba0d4bf497c94ae018e0d7bde0966c87be667de983bff231c130694b22","signature":"2976ccd441771cd68f782e2bc1f214ec00ea1ae2d6319d791ef226920fd32b09"},{"version":"7a921d32d182b211908ad5f8923f1a830519c12aedf4e469467c98ed02429f98","signature":"55e1ed3c1bde44633a0d47f5304541684e92db561027cc5e1704e8807785528d"},{"version":"190b8d024802f36edaeb098ce014ebf32980b4e3c1ac8fbaf08f46b81f9d2c22","signature":"3dfa32f25c6a1129e7993dd3e0a66c14732e8939fe59e299581a77013de603e0"},{"version":"21f105677d8c332867fc33c0820c6c2ae3bab9359a67394d4029d4a2b2b4879f","signature":"b1478d32f7d34beab99ba1352b10e8c4d009ad07f4c544c7911f400b4a54bbbb"},{"version":"a726a3aebe92ade854602bfb7c47e5a5ff4132adc258dc16f9481317f5a49e03","signature":"d2081c21fd7f6bd7ff4326487d1bf46c31c93e6ab1a01356f3cf334da6697caf"},{"version":"4e2b4193fa5ce0c618ce53ac2b3d8971baf420b7392bcbc5a40c517a5731d11d","affectsGlobalScope":true},{"version":"21bcc28dc5705a3a8e894ce4abcc30a666a9dbebfa211ddca4dd4b7de17dfc34","signature":"ed2d3c7bef952d0a87da591e1a2bfbe1086875ec2e7b4fac37b3f26ebfadbfea"},"b8fafa9f8ae9069eff148da320ed56acd5c3c95112c5e03d4796e15ac76b974c",{"version":"03f5d297d9c13f76a7e71c93b1c63c8b5370f4575f23c1a356a0c15949348962","signature":"ce263e11bb7ede7e20e2787e9cbe298a515c588ed13a610525b60e69892b7927"},{"version":"f9552fb1f273de0fa296a6e415a75595d5321232b4dfee4f4cd489c61ecdc923","signature":"8889997e9d9431b55f9d23d07956727681a6210105152467cdebd84c550ab00b"},{"version":"055718890a584286612a5dd629dc481f394d384c3e968a0c8518dfe1b2df7dcb","signature":"0239decdb850b94c8c5b9f4389391ad4180570f202069a87f200d2114f0dbefc"},{"version":"8b9a09488511561af6cfa5c6f54a40688079d3a2d15f7e4688ae6b3f2c5da7d8","signature":"1bdf3ca937c00f3299a0649ee125acf26a795ff195f0f64bb5442daeff00e5bb"},{"version":"056c2a7d27a34b56a2da28352ac865c3c784559dd515a463b267f8777583c0cf","signature":"d3ba77bd072cc0991b464f492c747027a27fb74c89309571a6efe16eb78124f4"},{"version":"f79b2d21931fc767f49e5fccc45aeff539ffd5dc519d468c075f465316ca6933","signature":"3d11f4b949aefeffcd10d9552a7a90b8823dff997d4ffefad720fe4aeedec77a"},{"version":"2ad18f21e41ce16c0cb687d539c449ff254aa982e0a71a387106b0ae03da345d","signature":"b812948156e37b016049d1e52e99d6d0ab7747654a618e5da5a4bd400f2c47fc"},{"version":"fba296c3b05f947027cb76914c58de540aaf0e262420ce35a1fb8d0832720f42","signature":"13238d15e5de8fb1872f3075ee114727cce493008c172e8041c67de505aa8425"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","43a95e70896efd3483a07162a10895b0f1c9b6f05092ef114b46b1d9f7eef63a","224bc47ac7f9a1f3795c1046ebfb8aae8b76180daf7d41ed77623b03b1a078d3","587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"c81c51f43e343b6d89114b17341fb9d381c4ccbb25e0ee77532376052c801ba7","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","57135ce61976a8b1dadd01bb412406d1805b90db6e8ecb726d0d78e0b5f76050",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b8e431e9b9bb2dc832b23d4e3e02774e953d5537998923f215ea446169e9a61e","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"7a2ba0c9af860ac3e77b35ed01fd96d15986f17aa22fe40f188ae556fb1070df","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"f5490f53d40291cc8607f5463434d1ac6c5564bc4fbb03abceb03a8f6b014457","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"19da7150ca062323b1db6311a6ef058c9b0a39cc64d836b5e9b75d301869653b","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270",{"version":"ba437529769c1d4766a8a6d5a304f46fbb4f5f1716f23f4cbf20b7a4fd82d8ba","affectsGlobalScope":true},{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","993325544790073f77e945bee046d53988c0bc3ac5695c9cf8098166feb82661",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","16a3080e885ed52d4017c902227a8d0d8daf723d062bec9e45627c6fdcd6699b",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"247aa3419c98713231952b33801d4f46563fe542e03604acd8c63ac45a32409c","d0f7a15f34c5572c4d3710a95053196e76da944543dabe8265944bb7c6f52700","a17971bcd87302fd817c6f62f77b3a33ecb9d4b0200fddc44d6081d98092092c","2efc9e4063a2c7727ad90067d630fd4736319ad9402646d96e0143880b0c8cad","c56ef8201a294d65d1132160ebc76ed0c0a98dcf983d20775c8c8c0912210572","de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3","1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f","854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","d392cdf58e0c7a988c3df400caa63a5c070c0bf13996ec619e3535e19e952a95","6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","237aa833f2cd2ff42db5d3f5a2b7b143ead11aff861097593ecd99015a69b220","50542cad26bd372cb942d418d42cdeced50a4d4226db390a1e3405f3d9a6103f","60660150e844e9d27f7ae4dfc7456f27fc683bed718d0e4a1dd4908d5da11d35","ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","5e763f3932cf04417e4145a103da1f1f67b10f7c584bcc976641611ed72af668","a5dcba6cd802f8e47bf0d83f3836a92cd494fac81b8a49924f190f61f92795ce","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","d406b797d7b2aff9f8bd6c023acfaa5a5fc415bfbf01975e23d415d3f54857af","7d71b2d1a537fe41760a16441cd95d98fcb59ddf9c714aba2fecba961ab253b6","a9bd8a2bbd03a72054cbdf0cd2a77fabea4e3ae591dd02b8f58bda0c34e50c1c","386cc88a3bdee8bc651ead59f8afc9dc5729fc933549bbd217409eabad05ba3e","4efb2a45d9d3e146d6237c2b74c2afcc7512f8bdd939995f2beaa27ec385a600","d51a4e4450ee23d941db79652c660ca2612691dba235fd5d14d4b2a622c72312","3b8ac5f54f287ac748e109a2639392ee70ae7e9a3f58ee637e21e1b3d57bed03","ac72dfd5a793c277251c116b35791d3ce358edfea94b942c270d2bda9be5cbfe","c1b6d322936b18698bf8ea6deed76e28d5a6a3cccb6c7fa345a01c969f637b65","8b0a2400ba7522569871331988f820ba4cfc386f845b01058c63a62ad9db8d03","d3e29566a694a4068d450a58f59e3a3662fc12f74345343d441ef4d954984503","f7b3e68f7972250809e5b0cbd8f0e1f9da8c1dbf70244f289b204f1b49c2d398","4c7c99f7787c5c2ea6cbd911a7b5c7c2a4ee1cb9d7f538805ee2550cf1f1fb99","1557bf37fc8d5f129436caa0212f25d6cbeaf9d20e2e3a60b13306ff62a1d7a0","9a1e77270d63875c9a38630f9a7a9126f9a8df0245d5eb220832a65d408079eb","e48d0036e626bb40f236e236670722445ffff854908c2d9515b2b5b7f677794f","30f9018873d6d80256298011161a664a14b927f719f8a7605ceb8b49bc8808da","f543ea0fe820064a2cdbb39d2b2846c507467c4771eafcda2091da43b05c077b","9066d02264a67aae05410c340c8fa41a79bb076c33d1c6ae3ec29a05828f4c05","00435c177c3da6998c2f95b9e71239f00cfabd3461401cc4d8606ee3afb732b1","d432a2956d1efa172e1c60a8186a81657f2f9f4ba449c6abdfa9d057d484c45d","bc6679207eccaa45e49b930ad45ec8e7903bd8b0868e086d8bad91f79c914ca0","4dd35e71d52007465787dd2f374cc756a29e6c9b96dc237d0465d0294170c529","7ebf1f440efe6efebeb58a44000820cbe959da9d9496621fa6dcbc02666e3002","08a9e70641597e23d00be62e3a94b69ad93c5cf5541ec7bfdeb5e9f69c845507","ded59c554118589a8729fb70429318e41e7e8155b2aff5f3d7a77933e49dbc10","3af507089e65c1472a87e5f7345ec18838d7e923c2c06fdad3d31543278af762","c867e6d7de78f96eb55b534b3aca1da4e029a6ab0e4ea9d0610acf11d737f8a0","2df075b38e2135201202640fe92bce8d03fb319fece410b088a22ab4e1be7702","b9f07153f8e881c4cca036abccaa134df30cf09a3381772d089d1eeabe45770d","88213e972b5989f217627bdcb79a697f66821e8ff135265712346d532243084f","bf6122555f34582e6d5424a88676d90f2333e0e920764895c15d39b6c856053c","bf04a1c9ccfeabf521b7b97f388d05bc5f628422253399eb157fec0d9cd213ce","3c6ecfcc6ac82b5866368d1efbddeeb3bfae03962747bf6928d8faa092e5b369","06d19317f4c8474255b3ceab7102763faf7ff0aa4cc305384b13ccb6d27b2e50","ebe1694b3a7a0265b9cf8fb3bfed6575907247b61add671ea9771fd6715d1b29","bdf4a7242e5cce621b5ba689351af780b0b665d97ea88c71f50801aa80560236","6bd6ae32288500128ae355de57d6bc3b5884f37e1e5d5ac597b142f63b3c8121","a6634dbc56e3d75efac697e59fef032aa15cc537acf7f6ad3a045001f48483f8","0ac932efed612f58eb5033bd449a5fe7ae1bc61fa0ff960f6ebbc8bd4ceda267","b4a07a5abe3d0a4c05f6722c024f842dc7909d5ab8e9212d98c393c2ea8cb09f","7f208ece77be50a024bf2309ca2e7ad1e747fa29f31e9906e3851d3be6641b9e","c0df6627d0c30dc70d26c2d500506b073ff63584c4621f9261e510ad954ad2bd","e88f9fd0378cbd9b22b140a61d3b203727af7f3262c13de22cc86739467592f1",{"version":"bdb7c48f64a9ab61ce33025490f20f3ee64dca975980929394c3ea6f678dff91","signature":"ec68a760ec1026e96f05efae21a51772e1509c52efa154c9af9f30395fd963a1"},{"version":"f321747f0a859e20b6e228596fa370c063c37879df4878b571251c106ecf6568","signature":"20346a0a18e673d87ac10bdcec07bbef6b1d73f6354933cc6ea198052db90dde"},"9a1753ba092cbb7fa7c09355643656ce62f3e65fc204d273f4764a234194d541","1df2f76c8a0126985bc29de1c197482a4373925547ef9a36021d012540dc5501","c7180c2c85eecd28207ef8d6a1334ec7e10d968e70e17317141d036f12640af9","a64e71ab2cd1198713aafa56d16390e2a0fa07d22a0301652117abf980b22f61","11131c8f6fadf6e6584a8250f3ffb4985e1eb3cc41dce0dee3da5f6827201790","084ad3ce1720536c757bf6ef6c6ff27a97597b845308bad7c36cfaffc7fb0811","8dc56f817d20cf0717842ac1dcf3ac1a450ac3c667f1285754901e4af97bbe47","72156b7624d678a2686a22a45014218be4da7147f1058a5a5072fe981c492dd5","a20d054b8be41316bcc29752c5b9b42fab727b887a076a3af3bee18813d6e8c2","2eba4ddfbd6837ef33e58644f7dffbfe465d7222f9a9101789f02427f9541488","bb82c16e8371bfc6ee2ffd0095fd321d6acfa57c6c6445019567fec1b6b5e92a","6c65126b657a275259c4759b2b2f7b04879e61bc6c51df025b3748f87652a9eb","a5ad75d3dd3d3df0f62cb7a8ea12e76e0b4a3143ecde9e29c9cc0586b88365c0","03cd482c80ad0b724ca7d55cef7e3823d593b7cced98d7ef9d1bf757c5055b77","e93f395b0d6e68525181a6ecb3e7b81b1c5bf551f32f6cebbdffdef354fbe4a3","b881b069efb9d55b4b4b98de76d8c3920a29254e24f8f0c38557186e38cf6955","115825b28cb924401622fcab8676c3bab7ceebd9062a14229efe9c02bb8db8fb","2fa33b23888562c8111e9e10238eb26499c26616499446ac975263e41e0dc4af","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1","1f542c79756fda13fdeda2c6c90a560ebddb14758eb5c3278ef8b750a03c9bec","b0ed00813c153e350a56faa8c15668bf21375928e9b88bcc482d20f1f8415179","d0608ff924f53fee147c937c04efaa1e9010d44134d6f376b2fd5939dcc32a8d","3c8a75014278db57b6fe929a8877d60abee9ca84b8cdcc6df4f7da21cf06854c","56ba943e5d952fcb6cc620d73692fba08b6bb8a36c97f3662457ead8fc1789d4","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1","6e0264cee3fddcb8f261cd89d273a016af93896cd266cad69702b87325fe7bde",{"version":"01d006d95423a2b4ca4274e2480322173ef03259d7602a0f423374856528c35e","signature":"af4ad03cc9d094f7ac7e525a67f8e924f36db2be48cc38ee6c57ce1ac6e7e86b"},{"version":"14bc3ffff9a6d38b38afccd30c08c43f0b2a0162fb44d07a61a9f3f9245e28e1","signature":"984c34bfd8e9fea7d516bbfdc55674b912d5f37577535774f3769f6d71ce243a"},"c8fe9dee8de47a347fa842945abc4a52e3aad2400faa569c22d014992323cad1",{"version":"d7f12d34db496cd2a3a99323584d884ad57784c78d56f66285e8c497aaa1873a","signature":"1a7f8bea3893bf3f708d9b603407b637a09023fa43578df7a112a9964af00d8e"},"6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","93b7325b49dfbf613d940ed0e471216657b2d77459dac34f1b5b1678f08f884c",{"version":"dc86a12ed9ce7fd7ec0fb346636021a9178ea44018b9db232ac222b7ee9d3b37","affectsGlobalScope":true},"fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa",{"version":"1299e8425dd59707f139bd03d22e732001a21d580865f9fb29e1c71ab82a5c5a","affectsGlobalScope":true},{"version":"432fd0ab160ed857ac6576c8d8c21cb5f249f8e0d129fec79e7e59e44a279d67","affectsGlobalScope":true},"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750"],"root":[62,63,67,75,76,[78,81],91,[93,102],[104,109],[142,144],[146,152],162,208,210,218,220,230,250,251,261,[264,271],[273,280],283,[412,414],416,420,[440,444]],"options":{"allowSyntheticDefaultImports":true,"esModuleInterop":true,"jsx":4,"jsxImportSource":"preact","module":99,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[330],[330,432],[330,422,432],[330,421,422,423,424,425,426,427,428,429,430,431],[330,438],[330,433,434,435,436,438],[330,433,434,435,436,437],[330,357,358],[330,358,359,360,361],[330,337,358,360],[330,357,359],[301,330,337],[301,330,337,353],[330,353,354,355,356],[330,353,355],[330,354],[318,330,337,362,363,364,367],[330,363,364,366],[300,330,337,362,363,364,365],[330,364],[330,362,363],[330,337,362],[330,337],[111,139,330],[110,116,330],[121,330],[116,330],[115,330],[133,330],[129,330],[111,128,139,330],[110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,330],[330,445],[68,330],[284,330],[287,330],[288,293,321,330],[289,300,301,308,318,329,330],[289,290,300,308,330],[291,330],[292,293,301,309,330],[293,318,326,330],[294,296,300,308,330],[295,330],[296,297,330],[300,330],[298,300,330],[300,301,302,318,329,330],[300,301,302,315,318,321,330],[330,334],[296,300,303,308,318,329,330],[300,301,303,304,308,318,326,329,330],[303,305,318,326,329,330],[284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336],[300,306,330],[307,329,330],[296,300,308,318,330],[309,330],[310,330],[287,311,330],[312,328,330,334],[313,330],[314,330],[300,315,316,330],[315,317,330,332],[288,300,318,319,320,321,330],[288,318,320,330],[318,319,330],[321,330],[322,330],[318,330],[300,324,325,330],[324,325,330],[293,308,318,326,330],[327,330],[308,328,330],[288,303,314,329,330],[293,330],[318,330,331],[330,332],[330,333],[288,293,300,302,311,318,329,330,332,334],[318,330,335],[330,448],[330,449],[301,303,330,337],[330,450],[289,330,334,337],[330,452],[330,337,369,370,371],[330,369,370],[330,369],[330,337,368],[330,337,338,340,344,345,348],[330,349],[330,340,344,347],[330,338,340,344,347,348,349,350],[330,337,344],[330,340,344,345,347],[330,337,338,340,345,346,348],[330,372],[68,69,246,330,405],[69,246,330,405],[246,247,330],[69,74,162,210,220,230,245,246,264,279,330,405],[88,89,330],[68,69,87,88,246,330,405],[231,330],[155,212,225,330],[156,165,168,170,330],[68,155,156,165,168,171,197,212,330],[171,194,196,212,330],[155,171,194,195,197,212,330],[198,330],[171,194,197,212,330],[155,171,194,197,211,212,330],[69,246,330,378,403,404,405],[69,155,212,246,330,378,405],[330,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402],[69,155,212,246,330,405],[172,173,193,330],[155,172,212,330],[155,212,330],[174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,330],[172,330],[68,155,194,197,212,330],[262,330],[154,157,158,330],[154,156,165,168,171,330],[156,163,164,168,171,330],[156,165,168,171,330],[156,165,166,167,171,330],[330,344],[330,341,342,343],[300,318,330,337],[234,330],[233,234,330],[233,330],[233,234,235,237,238,241,242,243,244,330],[234,238,330],[233,234,235,237,238,239,240,330],[233,238,330],[238,242,330],[234,235,236,330],[235,330],[233,234,238,330],[301,310,330,337,338,339],[330,417,418],[330,417],[65,330],[64,65,330],[64,330],[82,83,84,85,86,330],[82,83,330],[82,330],[103,318,330],[206,330],[69,77,205,246,330,405],[69,77,214,246,330,405],[69,77,246,330,405],[69,77,216,246,330,405],[69,77,246,259,330,405],[69,77,246,247,248,330,405],[77,154,155,159,212,330],[77,155,169,199,212,330],[77,155,212,330],[77,155,212,330,376],[77,155,171,197,212,330],[330,405,406],[69,77,155,212,246,330,404,405],[77,155,202,212,330],[77,201,330],[301,330,337,351],[258,330],[330,408],[74,162,210,220,230,264,279,329,330,337],[68,74,162,210,220,230,264,279,330],[68,221,330],[223,225,330],[222,224,330],[68,222,224,330],[68,221,222,223,330],[222,225,227,330],[68,221,222,225,226,330],[70,330],[73,330],[68,71,72,74,162,210,220,230,264,279,330],[256,330],[253,255,256,257,330],[252,330],[254,330],[252,253,255,330],[253,330],[66,80,152,279,330],[66,280,281,283,303,310,330,352,373,374,413,414,441],[66,76,78,79,330],[66,76,330],[63,66,76,93,95,330],[63,66,76,330],[66,330],[63,66,76,148,330],[63,66,76,142,330],[66,67,76,93,330],[66,81,91,97,98,100,101,102,104,105,107,108,143,144,147,149,150,151,330],[66,75,76,93,94,95,330],[66,76,90,330],[63,66,76,90,93,96,310,330],[63,66,76,90,93,96,330],[66,76,93,330],[66,76,103,330],[66,67,76,93,269,271,272,330],[66,95,109,141,330],[66,330,419],[66,330,439],[66,95,109,145,330],[66,330,415],[63,66,76,146,330],[66,76,92,93,330],[65,66,67,69,75,80,246,330,405],[66,330,411],[66,93,284,323,330],[66,92,310,330],[66,281,282,330],[66,78,93,310,330],[66,78,80,310,330],[66,76,78,80,269,271,273,330],[66,75,76,78,80,93,269,271,273,310,330],[66,109,274,275,276,277,330],[66,75,76,78,80,93,269,271,273,330],[66,78,330],[66,266,267,330],[63,66,67,74,76,78,79,80,93,162,210,220,230,264,265,268,278,330],[66,69,74,78,162,210,219,230,246,264,279,330,405],[66,74,78,92,153,160,161,210,220,230,264,279,330],[66,78,200,203,204,207,330],[66,162,208,210,218,220,230,251,261,264,330],[66,74,78,162,209,220,230,264,279,301,310,330],[66,78,213,215,217,330],[66,74,78,93,162,210,220,228,229,264,279,310,330],[66,67,77,78,92,93,155,212,228,232,249,310,330],[66,78,260,330],[66,74,78,92,155,162,210,212,220,228,230,263,279,330],[66,67,75,76,77,80,330],[66,69,74,162,210,220,230,246,264,279,330,405],[63,66,67,75,78,79,80,93,279,281,283,301,310,330,373,412,416,420,440],[66,75,78,283,330],[66,69,75,77,78,93,246,281,283,309,310,330,375,376,377,405,407,409,410,412],[66,293,330],[66,93,280,330,413],[80],[76,78,79],[65,76],[65],[81,91,97,98,100,101,102,104,105,107,108,143,144,147,149,150,151],[66,76],[67,76],[65,67,69,75,80,246,405],[78],[78,80],[109,274,275,276,277],[266,267],[67,74,78,80,93,162,210,220,230,264,265,268,278,279],[74,78,162,210,220,230,264,279],[162,208,210,218,220,230,251,261,264],[67,75,76,77,80],[69,74,162,210,220,230,246,264,279,405],[75,80],[75,78],[69,75,77,78,93,246,376,405],[75,93]],"referencedMap":[[62,1],[63,1],[433,2],[421,2],[422,2],[423,2],[424,3],[425,2],[426,3],[427,2],[428,2],[429,3],[430,3],[432,4],[431,2],[439,5],[434,5],[437,6],[435,5],[438,7],[436,1],[209,1],[359,8],[362,9],[361,10],[360,11],[358,12],[354,13],[357,14],[356,15],[355,16],[353,12],[368,17],[367,18],[366,19],[365,20],[364,21],[363,22],[411,23],[110,1],[112,24],[113,24],[114,1],[115,1],[117,25],[118,1],[119,1],[120,24],[121,1],[122,1],[123,26],[124,1],[125,1],[126,27],[127,1],[128,28],[129,1],[130,1],[131,1],[132,1],[135,1],[134,29],[111,1],[136,30],[137,1],[133,1],[138,1],[139,24],[140,31],[141,32],[446,33],[145,1],[116,1],[69,34],[161,1],[214,1],[447,1],[155,34],[445,1],[201,34],[284,35],[285,35],[287,36],[288,37],[289,38],[290,39],[291,40],[292,41],[293,42],[294,43],[295,44],[296,45],[297,45],[299,46],[298,47],[300,46],[301,48],[302,49],[286,50],[336,1],[303,51],[304,52],[305,53],[337,54],[306,55],[307,56],[308,57],[309,58],[310,59],[311,60],[312,61],[313,62],[314,63],[315,64],[316,64],[317,65],[318,66],[320,67],[319,68],[321,69],[322,70],[323,71],[324,72],[325,73],[326,74],[327,75],[328,76],[329,77],[330,78],[331,79],[332,80],[333,81],[334,82],[335,83],[449,84],[448,85],[282,1],[374,86],[68,1],[451,87],[450,1],[410,88],[452,1],[453,89],[281,1],[375,1],[372,90],[371,91],[370,92],[369,93],[92,1],[349,94],[350,95],[348,96],[351,97],[345,98],[346,99],[347,100],[373,101],[153,1],[205,102],[246,103],[248,104],[247,105],[90,106],[88,103],[89,107],[219,103],[229,1],[339,1],[195,1],[232,108],[231,109],[171,110],[170,111],[197,112],[196,113],[199,114],[198,115],[212,116],[211,115],[405,117],[379,118],[380,118],[381,118],[382,118],[383,118],[384,118],[385,118],[386,118],[387,118],[388,118],[389,118],[403,119],[390,118],[391,118],[392,118],[393,118],[394,118],[395,118],[396,118],[397,118],[399,118],[400,118],[398,118],[401,118],[402,118],[404,118],[378,120],[194,121],[174,122],[175,122],[176,122],[177,122],[178,122],[179,122],[180,123],[182,122],[181,122],[193,124],[183,122],[185,122],[184,122],[187,122],[186,122],[188,122],[189,122],[190,122],[191,122],[192,122],[173,125],[172,126],[263,127],[262,123],[159,128],[158,129],[157,129],[154,1],[165,130],[164,131],[163,131],[168,132],[166,131],[167,131],[169,131],[156,1],[415,1],[341,133],[342,133],[344,134],[343,133],[338,135],[235,136],[244,137],[233,1],[234,138],[245,139],[240,140],[241,141],[239,142],[243,143],[237,144],[236,145],[242,146],[238,137],[340,147],[419,148],[417,1],[418,149],[272,150],[66,151],[65,152],[64,150],[87,153],[84,154],[85,1],[86,1],[82,1],[83,155],[103,156],[207,157],[206,158],[215,159],[216,160],[217,161],[260,162],[249,163],[204,160],[160,164],[200,165],[213,166],[377,167],[376,168],[407,169],[406,170],[203,171],[202,172],[352,173],[259,174],[409,175],[408,176],[60,1],[61,1],[12,1],[13,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],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[77,177],[222,178],[221,34],[226,179],[225,180],[223,181],[224,182],[228,183],[227,184],[71,185],[70,34],[74,186],[73,187],[72,1],[257,188],[258,189],[253,190],[255,191],[254,192],[256,190],[252,193],[148,1],[280,194],[442,195],[80,196],[81,197],[144,198],[271,199],[100,199],[94,200],[150,197],[149,201],[143,202],[101,203],[269,197],[152,204],[151,197],[96,205],[91,206],[98,207],[97,208],[102,209],[104,210],[273,211],[250,1],[270,1],[99,1],[142,212],[420,213],[440,214],[146,215],[416,216],[106,1],[95,200],[147,217],[105,197],[107,199],[108,218],[76,219],[412,220],[443,221],[93,222],[283,223],[277,224],[109,225],[274,226],[276,227],[278,228],[275,229],[266,230],[267,230],[268,231],[279,232],[220,233],[162,234],[208,235],[265,236],[210,237],[218,238],[230,239],[251,240],[261,241],[264,242],[78,243],[75,244],[441,245],[414,246],[413,247],[67,248],[79,200],[444,249]],"exportedModulesMap":[[62,1],[63,1],[433,2],[421,2],[422,2],[423,2],[424,3],[425,2],[426,3],[427,2],[428,2],[429,3],[430,3],[432,4],[431,2],[439,5],[434,5],[437,6],[435,5],[438,7],[436,1],[209,1],[359,8],[362,9],[361,10],[360,11],[358,12],[354,13],[357,14],[356,15],[355,16],[353,12],[368,17],[367,18],[366,19],[365,20],[364,21],[363,22],[411,23],[110,1],[112,24],[113,24],[114,1],[115,1],[117,25],[118,1],[119,1],[120,24],[121,1],[122,1],[123,26],[124,1],[125,1],[126,27],[127,1],[128,28],[129,1],[130,1],[131,1],[132,1],[135,1],[134,29],[111,1],[136,30],[137,1],[133,1],[138,1],[139,24],[140,31],[141,32],[446,33],[145,1],[116,1],[69,34],[161,1],[214,1],[447,1],[155,34],[445,1],[201,34],[284,35],[285,35],[287,36],[288,37],[289,38],[290,39],[291,40],[292,41],[293,42],[294,43],[295,44],[296,45],[297,45],[299,46],[298,47],[300,46],[301,48],[302,49],[286,50],[336,1],[303,51],[304,52],[305,53],[337,54],[306,55],[307,56],[308,57],[309,58],[310,59],[311,60],[312,61],[313,62],[314,63],[315,64],[316,64],[317,65],[318,66],[320,67],[319,68],[321,69],[322,70],[323,71],[324,72],[325,73],[326,74],[327,75],[328,76],[329,77],[330,78],[331,79],[332,80],[333,81],[334,82],[335,83],[449,84],[448,85],[282,1],[374,86],[68,1],[451,87],[450,1],[410,88],[452,1],[453,89],[281,1],[375,1],[372,90],[371,91],[370,92],[369,93],[92,1],[349,94],[350,95],[348,96],[351,97],[345,98],[346,99],[347,100],[373,101],[153,1],[205,102],[246,103],[248,104],[247,105],[90,106],[88,103],[89,107],[219,103],[229,1],[339,1],[195,1],[232,108],[231,109],[171,110],[170,111],[197,112],[196,113],[199,114],[198,115],[212,116],[211,115],[405,117],[379,118],[380,118],[381,118],[382,118],[383,118],[384,118],[385,118],[386,118],[387,118],[388,118],[389,118],[403,119],[390,118],[391,118],[392,118],[393,118],[394,118],[395,118],[396,118],[397,118],[399,118],[400,118],[398,118],[401,118],[402,118],[404,118],[378,120],[194,121],[174,122],[175,122],[176,122],[177,122],[178,122],[179,122],[180,123],[182,122],[181,122],[193,124],[183,122],[185,122],[184,122],[187,122],[186,122],[188,122],[189,122],[190,122],[191,122],[192,122],[173,125],[172,126],[263,127],[262,123],[159,128],[158,129],[157,129],[154,1],[165,130],[164,131],[163,131],[168,132],[166,131],[167,131],[169,131],[156,1],[415,1],[341,133],[342,133],[344,134],[343,133],[338,135],[235,136],[244,137],[233,1],[234,138],[245,139],[240,140],[241,141],[239,142],[243,143],[237,144],[236,145],[242,146],[238,137],[340,147],[419,148],[417,1],[418,149],[272,150],[66,151],[65,152],[64,150],[87,153],[84,154],[85,1],[86,1],[82,1],[83,155],[103,156],[207,157],[206,158],[215,159],[216,160],[217,161],[260,162],[249,163],[204,160],[160,164],[200,165],[213,166],[377,167],[376,168],[407,169],[406,170],[203,171],[202,172],[352,173],[259,174],[409,175],[408,176],[60,1],[61,1],[12,1],[13,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],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[77,177],[222,178],[221,34],[226,179],[225,180],[223,181],[224,182],[228,183],[227,184],[71,185],[70,34],[74,186],[73,187],[72,1],[257,188],[258,189],[253,190],[255,191],[254,192],[256,190],[252,193],[148,1],[280,250],[80,251],[81,252],[144,252],[271,252],[100,253],[94,200],[150,252],[149,253],[143,253],[101,252],[269,252],[152,254],[151,252],[96,252],[91,255],[98,255],[97,255],[102,252],[104,252],[273,256],[250,1],[270,1],[99,1],[420,213],[440,214],[416,216],[106,1],[95,200],[147,253],[105,252],[107,252],[108,252],[76,257],[412,220],[443,221],[93,222],[283,223],[277,258],[109,258],[274,259],[276,259],[278,260],[275,259],[266,258],[267,258],[268,261],[279,262],[220,263],[162,263],[208,258],[265,264],[210,263],[218,258],[230,263],[251,258],[261,258],[264,263],[78,265],[75,266],[441,267],[414,268],[413,269],[67,248],[79,200],[444,270]],"semanticDiagnosticsPerFile":[62,63,433,421,422,423,424,425,426,427,428,429,430,432,431,439,434,437,435,438,436,209,359,362,361,360,358,354,357,356,355,353,368,367,366,365,364,363,411,110,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,135,134,111,136,137,133,138,139,140,141,446,145,116,69,161,214,447,155,445,201,284,285,287,288,289,290,291,292,293,294,295,296,297,299,298,300,301,302,286,336,303,304,305,337,306,307,308,309,310,311,312,313,314,315,316,317,318,320,319,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,449,448,282,374,68,451,450,410,452,453,281,375,372,371,370,369,92,349,350,348,351,345,346,347,373,153,205,246,248,247,90,88,89,219,229,339,195,232,231,171,170,197,196,199,198,212,211,405,379,380,381,382,383,384,385,386,387,388,389,403,390,391,392,393,394,395,396,397,399,400,398,401,402,404,378,194,174,175,176,177,178,179,180,182,181,193,183,185,184,187,186,188,189,190,191,192,173,172,263,262,159,158,157,154,165,164,163,168,166,167,169,156,415,341,342,344,343,338,235,244,233,234,245,240,241,239,243,237,236,242,238,340,419,417,418,272,66,65,64,87,84,85,86,82,83,103,207,206,215,216,217,260,249,204,160,200,213,377,376,407,406,203,202,352,259,409,408,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,77,222,221,226,225,223,224,228,227,71,70,74,73,72,257,258,253,255,254,256,252,148,280,[442,[{"file":"./quartz/build.ts","start":1752,"length":9,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'string[]' is not assignable to parameter of type 'FilePath[]'.","category":1,"code":2345,"next":[{"messageText":"Type 'string' is not assignable to type 'FilePath'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type '{ __brand: \"filepath\"; }'.","category":1,"code":2322}]}]}}]],80,81,[144,[{"file":"./quartz/components/backlinks.tsx","start":128,"length":14,"messageText":"Module '\"../path\"' has no exported member 'relativeToRoot'.","category":1,"code":2305},{"file":"./quartz/components/backlinks.tsx","start":169,"length":14,"messageText":"Module '\"./scripts/util\"' has no exported member 'clientSideSlug'.","category":1,"code":2305}]],271,100,94,150,149,143,[101,[{"file":"./quartz/components/head.tsx","start":9,"length":12,"messageText":"'\"../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724}]],269,152,151,[96,[{"file":"./quartz/components/pagelist.tsx","start":9,"length":14,"messageText":"Module '\"../path\"' has no exported member 'relativeToRoot'.","category":1,"code":2305},{"file":"./quartz/components/pagelist.tsx","start":132,"length":14,"messageText":"Module '\"./scripts/util\"' has no exported member 'clientSideSlug'.","category":1,"code":2305}]],91,[98,[{"file":"./quartz/components/pages/foldercontent.tsx","start":306,"length":12,"messageText":"'\"../../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724}]],[97,[{"file":"./quartz/components/pages/tagcontent.tsx","start":281,"length":12,"messageText":"'\"../../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724}]],[102,[{"file":"./quartz/components/pagetitle.tsx","start":286,"length":4,"code":2345,"category":1,"messageText":"Argument of type 'ServerSlug' is not assignable to parameter of type 'CanonicalSlug'."}]],104,[273,[{"file":"./quartz/components/renderpage.tsx","start":662,"length":4,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'string' is not assignable to parameter of type 'CanonicalSlug'.","category":1,"code":2345,"next":[{"messageText":"Type 'string' is not assignable to type '{ __brand: \"canonical\"; }'.","category":1,"code":2322}]}}]],250,270,99,[142,[{"file":"./quartz/components/scripts/graph.inline.ts","start":126,"length":22,"messageText":"Module '\"./util\"' has no exported member 'clientSideRelativePath'.","category":1,"code":2305}]],420,440,[146,[{"file":"./quartz/components/scripts/search.inline.ts","start":139,"length":22,"messageText":"Module '\"./util\"' has no exported member 'clientSideRelativePath'.","category":1,"code":2305}]],416,106,95,147,105,107,[108,[{"file":"./quartz/components/taglist.tsx","start":321,"length":4,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'ServerSlug' is not assignable to parameter of type 'CanonicalSlug'.","category":1,"code":2345,"next":[{"messageText":"Type 'ServerSlug' is not assignable to type '{ __brand: \"canonical\"; }'.","category":1,"code":2322,"next":[{"messageText":"Types of property '__brand' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type '\"server\"' is not assignable to type '\"canonical\"'.","category":1,"code":2322}]}]}]}}]],76,412,443,93,283,[277,[{"file":"./quartz/plugins/emitters/aliases.ts","start":9,"length":14,"messageText":"Module '\"../../path\"' has no exported member 'relativeToRoot'.","category":1,"code":2305}]],109,274,[276,[{"file":"./quartz/plugins/emitters/folderpage.tsx","start":434,"length":12,"messageText":"'\"../../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724},{"file":"./quartz/plugins/emitters/folderpage.tsx","start":1522,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type 'string' is not assignable to type 'ServerSlug'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type '{ __brand: \"server\"; }'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./quartz/plugins/index.ts","start":2756,"length":4,"messageText":"The expected type comes from property 'slug' which is declared here on type 'Partial'","category":3,"code":6500}]}]],278,[275,[{"file":"./quartz/plugins/emitters/tagpage.tsx","start":410,"length":12,"messageText":"'\"../../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724},{"file":"./quartz/plugins/emitters/tagpage.tsx","start":1371,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type 'ServerSlug'.","relatedInformation":[{"file":"./quartz/plugins/index.ts","start":2756,"length":4,"messageText":"The expected type comes from property 'slug' which is declared here on type 'Partial'","category":3,"code":6500}]}]],266,267,268,279,220,162,208,265,210,218,[230,[{"file":"./quartz/plugins/transformers/links.ts","start":60,"length":12,"messageText":"'\"../../path\"' has no exported member named 'toServerSlug'. Did you mean 'ServerSlug'?","category":1,"code":2724},{"file":"./quartz/plugins/transformers/links.ts","start":74,"length":8,"messageText":"Module '\"../../path\"' has no exported member 'relative'.","category":1,"code":2305},{"file":"./quartz/plugins/transformers/links.ts","start":84,"length":14,"messageText":"Module '\"../../path\"' has no exported member 'relativeToRoot'.","category":1,"code":2305},{"file":"./quartz/plugins/transformers/links.ts","start":100,"length":7,"messageText":"Module '\"../../path\"' has no exported member 'slugify'.","category":1,"code":2305},{"file":"./quartz/plugins/transformers/links.ts","start":109,"length":14,"messageText":"Module '\"../../path\"' has no exported member 'trimPathSuffix'.","category":1,"code":2305}]],[251,[{"file":"./quartz/plugins/transformers/ofm.ts","start":235,"length":7,"messageText":"Module '\"../../path\"' has no exported member 'slugify'.","category":1,"code":2305}]],261,264,78,75,441,414,413,67,79,444],"affectedFilesPendingEmit":[148,280,442,80,81,144,271,100,94,150,149,143,101,269,152,151,96,91,98,97,102,104,273,250,270,99,142,420,440,146,416,106,95,147,105,107,108,76,412,443,93,283,277,109,274,276,278,275,266,267,268,279,220,162,208,265,210,218,230,251,261,264,78,75,441,414,413,67,79,444]},"version":"5.1.6"} \ No newline at end of file