diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..7078b83 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,24 @@ +module.exports = { + root: true, + parser: "@typescript-eslint/parser", + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier", + ], + plugins: ["svelte3", "@typescript-eslint"], + ignorePatterns: ["*.cjs"], + overrides: [{ files: ["*.svelte"], processor: "svelte3/svelte3" }], + settings: { + "svelte3/typescript": () => require("typescript"), + }, + parserOptions: { + sourceType: "module", + ecmaVersion: 2020, + }, + env: { + browser: true, + es2017: true, + node: true, + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6c6aaf --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +.output +vite.config.js.timestamp-* +vite.config.ts.timestamp-* +.netlify diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile new file mode 100644 index 0000000..ae85198 --- /dev/null +++ b/.gitpod.Dockerfile @@ -0,0 +1,7 @@ +FROM gitpod/workspace-full:latest + +RUN bash -c 'VERSION="18.13.0" \ + && source $HOME/.nvm/nvm.sh && nvm install $VERSION \ + && nvm use $VERSION && nvm alias default $VERSION' + +RUN echo "nvm use default &>/dev/null" >> ~/.bashrc.d/51-nvm-fix diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..25bd768 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,40 @@ +image: + file: .gitpod.Dockerfile + +ports: + - port: 3000 + onOpen: open-preview + visibility: public + name: Website + description: Preview of Website + +# List the start up tasks. You can start them in parallel in multiple terminals. See https://www.gitpod.io/docs/configure/workspaces/tasks/ +tasks: + - name: Installing Dependencies + init: npm install + - name: Start Dev Server + command: npm run dev + +github: + prebuilds: + # enable for the master/default branch (defaults to true) + master: true + # enable for all branches in this repo (defaults to false) + branches: true + # enable for pull requests coming from this repo (defaults to true) + pullRequests: true + # enable for pull requests coming from forks (defaults to false) + pullRequestsFromForks: true + # add a check to pull requests (defaults to true) + addCheck: true + # add a "Review in Gitpod" button as a comment to pull requests (defaults to false) + addComment: false + # add a "Review in Gitpod" button to the pull request's description (defaults to false) + addBadge: true + # add a label once the prebuild is ready to pull requests (defaults to false) + addLabel: false + +vscode: + extensions: + - svelte.svelte-vscode + - bradlc.vscode-tailwindcss diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..36af219 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 0000000..cdb4f6a --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx svelte-check --fail-on-hints diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..27a5fa6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2023 Gitpod + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c0fd47 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# CDE Universe Website + +[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/gitpod-io/CDE-Universe) + +> This repository contains the website will be hosted on [cdeuniverse.com](https://cdeuniverse.com/) + +Contributing is as easy as starting a new workspace: + +[![Open in Gitpod](https://www.gitpod.io/svg/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/gitpod-io/CDE-Universe) + +--- + + + + + Gitpod Logo + + +Owned by [Gitpod](https://www.gitpod.io/) diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..aba0ad1 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,71 @@ +[build] + command = "npm run build" + publish = "build/" + +[functions] + directory = "src/functions" + node_bundler = "esbuild" + +[[headers]] + for = "/*" + [headers.values] + X-Frame-Options = "DENY" + X-XSS-Protection = "1; mode=block" + # + # X-Content-Type-Options controls whether browsers attempt to detect + # the content type, rather than relyihng on the Content-Type header. + # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options + X-Content-Type-Options = "nosniff" + # + # Strict-Transport-Security to require HTTPS connections in supported + # browsers. These settings are required to be eligible for inclusion + # in the HSTS Preload list; see: https://hstspreload.org/ + Strict-Transport-Security = """ + max-age=31536000; \ + includeSubDomains; \ + preload \ + """ + # + # Referrer-Policy controls the Referer header in requests. + # + # same-origin allows analytics tools to understand user journeys. + Referrer-Policy = "same-origin" + # + # Content-Security-Policy controls what resources can be loaded on the page. + Content-Security-Policy = "frame-ancestors 'self' *.gitpod.io *.staging.gitpod-dev.com" + # + # Permissions-Policy controls the features that the site can request. + # + # https://developer.chrome.com/en/docs/privacy-sandbox/permissions-policy/ + # https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md + Permissions-Policy = """\ + accelerometer=(), \ + ambient-light-sensor=(), \ + autoplay=(), \ + battery=(), \ + camera=(), \ + cross-origin-isolated=(), \ + display-capture=(), \ + document-domain=(), \ + encrypted-media=(), \ + execution-while-not-rendered=(), \ + execution-while-out-of-viewport=(), \ + fullscreen=(), \ + geolocation=(), \ + gyroscope=(), \ + hid=(), \ + idle-detection=(), \ + magnetometer=(), \ + microphone=(), \ + midi=(), \ + navigation-override=(), \ + payment=(), \ + picture-in-picture=(), \ + publickey-credentials-get=(), \ + screen-wake-lock=(), \ + serial=(), \ + sync-xhr=(), \ + usb=(), \ + web-share=(), \ + xr-spatial-tracking=() \ + """ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..74e6b12 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5441 @@ +{ + "name": "cde-universe", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cde-universe", + "version": "0.0.1", + "devDependencies": { + "@fontsource/fira-mono": "^4.5.10", + "@neoconfetti/svelte": "^1.0.0", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-netlify": "^2.0.6", + "@sveltejs/kit": "^1.5.0", + "@types/cookie": "^0.5.1", + "@typescript-eslint/eslint-plugin": "^5.54.1", + "@typescript-eslint/parser": "^5.54.1", + "eslint": "^8.36.0", + "eslint-config-prettier": "^8.7.0", + "eslint-plugin-svelte3": "^4.0.0", + "husky": "^8.0.3", + "prettier": "^2.8.4", + "prettier-plugin-svelte": "^2.9.0", + "svelte": "^3.54.0", + "svelte-check": "^3.0.1", + "svelte-preprocess": "^5.0.1", + "tslib": "^2.4.1", + "typescript": "^4.9.3", + "vite": "^4.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", + "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fontsource/fira-mono": { + "version": "4.5.10", + "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz", + "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@neoconfetti/svelte": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz", + "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz", + "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^2.2.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/adapter-netlify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-netlify/-/adapter-netlify-2.0.6.tgz", + "integrity": "sha512-9guxI9jG/v/JTr/I1E1YGKppKWRyvs60VuhPJcGBrj2MfoBxR40vhxkrWPFcNJoAdyQUSjqxbg7sZLA4WbNfgA==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5", + "esbuild": "^0.16.3", + "set-cookie-parser": "^2.5.1" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.5.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.13.0.tgz", + "integrity": "sha512-t44xqlSTn/k+BridiJFTD8dCRPNd9msCSSPLZT+/3P9deNp/al6ed396MSpsskK7r2kevYmmxywK16qtn6Rvjw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.0", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mime": "^3.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.5.1", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "5.21.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.54.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz", + "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "deepmerge": "^4.3.0", + "kleur": "^4.1.5", + "magic-string": "^0.29.0", + "svelte-hmr": "^0.15.1", + "vitefu": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.54.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz", + "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/type-utils": "5.56.0", + "@typescript-eslint/utils": "5.56.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz", + "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/typescript-estree": "5.56.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz", + "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/visitor-keys": "5.56.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz", + "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.56.0", + "@typescript-eslint/utils": "5.56.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz", + "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz", + "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/visitor-keys": "5.56.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz", + "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/typescript-estree": "5.56.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz", + "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.56.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz", + "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", + "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", + "dev": true, + "peerDependencies": { + "eslint": ">=8.0.0", + "svelte": "^3.2.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz", + "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "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/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz", + "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", + "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", + "dev": true, + "peerDependencies": { + "prettier": "^1.16.4 || ^2.0.0", + "svelte": "^3.2.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz", + "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.57.0.tgz", + "integrity": "sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/svelte-check": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.4.tgz", + "integrity": "sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.0.0", + "typescript": "^4.9.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0" + } + }, + "node_modules/svelte-hmr": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", + "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": ">=3.19.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz", + "integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 14.10.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-preprocess/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz", + "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.18.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz", + "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz", + "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz", + "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz", + "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz", + "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz", + "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz", + "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz", + "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz", + "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz", + "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz", + "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz", + "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz", + "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz", + "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz", + "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz", + "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz", + "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz", + "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz", + "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz", + "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz", + "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz", + "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz", + "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.12", + "@esbuild/android-arm64": "0.17.12", + "@esbuild/android-x64": "0.17.12", + "@esbuild/darwin-arm64": "0.17.12", + "@esbuild/darwin-x64": "0.17.12", + "@esbuild/freebsd-arm64": "0.17.12", + "@esbuild/freebsd-x64": "0.17.12", + "@esbuild/linux-arm": "0.17.12", + "@esbuild/linux-arm64": "0.17.12", + "@esbuild/linux-ia32": "0.17.12", + "@esbuild/linux-loong64": "0.17.12", + "@esbuild/linux-mips64el": "0.17.12", + "@esbuild/linux-ppc64": "0.17.12", + "@esbuild/linux-riscv64": "0.17.12", + "@esbuild/linux-s390x": "0.17.12", + "@esbuild/linux-x64": "0.17.12", + "@esbuild/netbsd-x64": "0.17.12", + "@esbuild/openbsd-x64": "0.17.12", + "@esbuild/sunos-x64": "0.17.12", + "@esbuild/win32-arm64": "0.17.12", + "@esbuild/win32-ia32": "0.17.12", + "@esbuild/win32-x64": "0.17.12" + } + }, + "node_modules/vitefu": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", + "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", + "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true + }, + "@fontsource/fira-mono": { + "version": "4.5.10", + "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz", + "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@neoconfetti/svelte": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz", + "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@sveltejs/adapter-auto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz", + "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==", + "dev": true, + "requires": { + "import-meta-resolve": "^2.2.0" + } + }, + "@sveltejs/adapter-netlify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-netlify/-/adapter-netlify-2.0.6.tgz", + "integrity": "sha512-9guxI9jG/v/JTr/I1E1YGKppKWRyvs60VuhPJcGBrj2MfoBxR40vhxkrWPFcNJoAdyQUSjqxbg7sZLA4WbNfgA==", + "dev": true, + "requires": { + "@iarna/toml": "^2.2.5", + "esbuild": "^0.16.3", + "set-cookie-parser": "^2.5.1" + } + }, + "@sveltejs/kit": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.13.0.tgz", + "integrity": "sha512-t44xqlSTn/k+BridiJFTD8dCRPNd9msCSSPLZT+/3P9deNp/al6ed396MSpsskK7r2kevYmmxywK16qtn6Rvjw==", + "dev": true, + "requires": { + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.0", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mime": "^3.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.5.1", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "5.21.0" + } + }, + "@sveltejs/vite-plugin-svelte": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz", + "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "deepmerge": "^4.3.0", + "kleur": "^4.1.5", + "magic-string": "^0.29.0", + "svelte-hmr": "^0.15.1", + "vitefu": "^0.2.4" + }, + "dependencies": { + "magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz", + "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/type-utils": "5.56.0", + "@typescript-eslint/utils": "5.56.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz", + "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/typescript-estree": "5.56.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz", + "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/visitor-keys": "5.56.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz", + "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.56.0", + "@typescript-eslint/utils": "5.56.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz", + "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz", + "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/visitor-keys": "5.56.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz", + "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.56.0", + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/typescript-estree": "5.56.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz", + "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.56.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "devalue": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz", + "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "requires": {} + }, + "eslint-plugin-svelte3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", + "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "espree": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-meta-resolve": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz", + "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz", + "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==", + "dev": true + }, + "prettier-plugin-svelte": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", + "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", + "dev": true, + "requires": {} + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz", + "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "requires": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svelte": { + "version": "3.57.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.57.0.tgz", + "integrity": "sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==", + "dev": true + }, + "svelte-check": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.4.tgz", + "integrity": "sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.0.0", + "typescript": "^4.9.4" + } + }, + "svelte-hmr": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", + "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", + "dev": true, + "requires": {} + }, + "svelte-preprocess": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz", + "integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==", + "dev": true, + "requires": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "undici": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz", + "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "vite": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "dev": true, + "requires": { + "esbuild": "^0.17.5", + "fsevents": "~2.3.2", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.18.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz", + "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz", + "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz", + "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz", + "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz", + "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz", + "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz", + "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz", + "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz", + "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz", + "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz", + "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz", + "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz", + "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz", + "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz", + "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz", + "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz", + "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz", + "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz", + "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz", + "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz", + "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz", + "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.17.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz", + "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.12", + "@esbuild/android-arm64": "0.17.12", + "@esbuild/android-x64": "0.17.12", + "@esbuild/darwin-arm64": "0.17.12", + "@esbuild/darwin-x64": "0.17.12", + "@esbuild/freebsd-arm64": "0.17.12", + "@esbuild/freebsd-x64": "0.17.12", + "@esbuild/linux-arm": "0.17.12", + "@esbuild/linux-arm64": "0.17.12", + "@esbuild/linux-ia32": "0.17.12", + "@esbuild/linux-loong64": "0.17.12", + "@esbuild/linux-mips64el": "0.17.12", + "@esbuild/linux-ppc64": "0.17.12", + "@esbuild/linux-riscv64": "0.17.12", + "@esbuild/linux-s390x": "0.17.12", + "@esbuild/linux-x64": "0.17.12", + "@esbuild/netbsd-x64": "0.17.12", + "@esbuild/openbsd-x64": "0.17.12", + "@esbuild/sunos-x64": "0.17.12", + "@esbuild/win32-arm64": "0.17.12", + "@esbuild/win32-ia32": "0.17.12", + "@esbuild/win32-x64": "0.17.12" + } + } + } + }, + "vitefu": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", + "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", + "dev": true, + "requires": {} + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..628f5ff --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "cde-universe", + "version": "0.0.1", + "type": "module", + "scripts": { + "build": "vite build", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "dev": "vite dev", + "format": "prettier --write .", + "lint": "prettier --check . && eslint .", + "prepare": "husky install", + "preview": "vite preview" + }, + "lint-staged": { + "*.{cjs,js,ts,css,scss,svelte}": [ + "eslint --fix", + "prettier --write" + ] + }, + "devDependencies": { + "@fontsource/fira-mono": "^4.5.10", + "@neoconfetti/svelte": "^1.0.0", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-netlify": "^2.0.6", + "@sveltejs/kit": "^1.5.0", + "@types/cookie": "^0.5.1", + "@typescript-eslint/eslint-plugin": "^5.54.1", + "@typescript-eslint/parser": "^5.54.1", + "eslint": "^8.36.0", + "eslint-config-prettier": "^8.7.0", + "eslint-plugin-svelte3": "^4.0.0", + "husky": "^8.0.3", + "prettier": "^2.8.4", + "prettier-plugin-svelte": "^2.9.0", + "svelte": "^3.54.0", + "svelte-check": "^3.0.1", + "svelte-preprocess": "^5.0.1", + "tslib": "^2.4.1", + "typescript": "^4.9.3", + "vite": "^4.0.0" + } +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..899c7e8 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,12 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..117bd02 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/images/github.svg b/src/lib/images/github.svg new file mode 100644 index 0000000..bc5d249 --- /dev/null +++ b/src/lib/images/github.svg @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/lib/images/svelte-logo.svg b/src/lib/images/svelte-logo.svg new file mode 100644 index 0000000..49492a8 --- /dev/null +++ b/src/lib/images/svelte-logo.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/src/lib/images/svelte-welcome.png b/src/lib/images/svelte-welcome.png new file mode 100644 index 0000000..fe7d2d6 Binary files /dev/null and b/src/lib/images/svelte-welcome.png differ diff --git a/src/lib/images/svelte-welcome.webp b/src/lib/images/svelte-welcome.webp new file mode 100644 index 0000000..6ec1a28 Binary files /dev/null and b/src/lib/images/svelte-welcome.webp differ diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..a4aea7f --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,55 @@ + + +
+
+ +
+ +
+ + +
+ + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..cb86aef --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,59 @@ + + + + Home + + + +
+

+ + + + Welcome + + + + to your new
SvelteKit app +

+ +

+ try editing src/routes/+page.svelte +

+ + +
+ + diff --git a/src/routes/+page.ts b/src/routes/+page.ts new file mode 100644 index 0000000..a72419a --- /dev/null +++ b/src/routes/+page.ts @@ -0,0 +1,3 @@ +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/src/routes/Counter.svelte b/src/routes/Counter.svelte new file mode 100644 index 0000000..84e2a9e --- /dev/null +++ b/src/routes/Counter.svelte @@ -0,0 +1,113 @@ + + +
+ + +
+
+ + {Math.floor($displayed_count)} +
+
+ + +
+ + diff --git a/src/routes/Header.svelte b/src/routes/Header.svelte new file mode 100644 index 0000000..c867ca2 --- /dev/null +++ b/src/routes/Header.svelte @@ -0,0 +1,133 @@ + + +
+
+ + SvelteKit + +
+ + + +
+ + GitHub + +
+
+ + diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte new file mode 100644 index 0000000..b590233 --- /dev/null +++ b/src/routes/about/+page.svelte @@ -0,0 +1,27 @@ + + About + + + +
+

About this app

+ +

+ This is a SvelteKit app. You can make your + own by typing the following into your command line and following the prompts: +

+ +
npm create svelte@latest
+ +

+ The page you're looking at is purely static HTML, with no client-side + interactivity needed. Because of that, we don't need to load any JavaScript. + Try viewing the page's source, or opening the devtools network panel and + reloading. +

+ +

+ The Sverdle page illustrates SvelteKit's data loading + and form handling. Try using it with JavaScript disabled! +

+
diff --git a/src/routes/about/+page.ts b/src/routes/about/+page.ts new file mode 100644 index 0000000..cd03567 --- /dev/null +++ b/src/routes/about/+page.ts @@ -0,0 +1,9 @@ +import { dev } from "$app/environment"; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/src/routes/styles.css b/src/routes/styles.css new file mode 100644 index 0000000..d75a05d --- /dev/null +++ b/src/routes/styles.css @@ -0,0 +1,112 @@ +@import "@fontsource/fira-mono"; + +:root { + --font-body: Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + --font-mono: "Fira Mono", monospace; + --color-bg-0: rgb(202, 216, 228); + --color-bg-1: hsl(209, 36%, 86%); + --color-bg-2: hsl(224, 44%, 95%); + --color-theme-1: #ff3e00; + --color-theme-2: #4075a6; + --color-text: rgba(0, 0, 0, 0.7); + --column-width: 42rem; + --column-margin-top: 4rem; + font-family: var(--font-body); + color: var(--color-text); +} + +body { + min-height: 100vh; + margin: 0; + background-attachment: fixed; + background-color: var(--color-bg-1); + background-size: 100vw 100vh; + background-image: radial-gradient( + 50% 50% at 50% 50%, + rgba(255, 255, 255, 0.75) 0%, + rgba(255, 255, 255, 0) 100% + ), + linear-gradient( + 180deg, + var(--color-bg-0) 0%, + var(--color-bg-1) 15%, + var(--color-bg-2) 50% + ); +} + +h1, +h2, +p { + font-weight: 400; +} + +p { + line-height: 1.5; +} + +a { + color: var(--color-theme-1); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +h1 { + font-size: 2rem; + text-align: center; +} + +h2 { + font-size: 1rem; +} + +pre { + font-size: 16px; + font-family: var(--font-mono); + background-color: rgba(255, 255, 255, 0.45); + border-radius: 3px; + box-shadow: 2px 2px 6px rgb(255 255 255 / 25%); + padding: 0.5em; + overflow-x: auto; + color: var(--color-text); +} + +.text-column { + display: flex; + max-width: 48rem; + flex: 0.6; + flex-direction: column; + justify-content: center; + margin: 0 auto; +} + +input, +button { + font-size: inherit; + font-family: inherit; +} + +button:focus:not(:focus-visible) { + outline: none; +} + +@media (min-width: 720px) { + h1 { + font-size: 2.4rem; + } +} + +.visually-hidden { + border: 0; + clip: rect(0 0 0 0); + height: auto; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; +} diff --git a/src/routes/sverdle/+page.server.ts b/src/routes/sverdle/+page.server.ts new file mode 100644 index 0000000..6b77347 --- /dev/null +++ b/src/routes/sverdle/+page.server.ts @@ -0,0 +1,69 @@ +import { fail } from "@sveltejs/kit"; +import { Game } from "./game"; +import type { PageServerLoad, Actions } from "./$types"; + +export const load = (({ cookies }) => { + const game = new Game(cookies.get("sverdle")); + + return { + /** + * The player's guessed words so far + */ + guesses: game.guesses, + + /** + * An array of strings like '__x_c' corresponding to the guesses, where 'x' means + * an exact match, and 'c' means a close match (right letter, wrong place) + */ + answers: game.answers, + + /** + * The correct answer, revealed if the game is over + */ + answer: game.answers.length >= 6 ? game.answer : null, + }; +}) satisfies PageServerLoad; + +export const actions = { + /** + * Modify game state in reaction to a keypress. If client-side JavaScript + * is available, this will happen in the browser instead of here + */ + update: async ({ request, cookies }) => { + const game = new Game(cookies.get("sverdle")); + + const data = await request.formData(); + const key = data.get("key"); + + const i = game.answers.length; + + if (key === "backspace") { + game.guesses[i] = game.guesses[i].slice(0, -1); + } else { + game.guesses[i] += key; + } + + cookies.set("sverdle", game.toString()); + }, + + /** + * Modify game state in reaction to a guessed word. This logic always runs on + * the server, so that people can't cheat by peeking at the JavaScript + */ + enter: async ({ request, cookies }) => { + const game = new Game(cookies.get("sverdle")); + + const data = await request.formData(); + const guess = data.getAll("guess") as string[]; + + if (!game.enter(guess)) { + return fail(400, { badGuess: true }); + } + + cookies.set("sverdle", game.toString()); + }, + + restart: async ({ cookies }) => { + cookies.delete("sverdle"); + }, +} satisfies Actions; diff --git a/src/routes/sverdle/+page.svelte b/src/routes/sverdle/+page.svelte new file mode 100644 index 0000000..1e89b66 --- /dev/null +++ b/src/routes/sverdle/+page.svelte @@ -0,0 +1,414 @@ + + + + + + Sverdle + + + +

Sverdle

+ +
{ + // prevent default callback from resetting the form + return ({ update }) => { + update({ reset: false }); + }; + }} +> + How to play + +
+ {#each Array(6) as _, row} + {@const current = row === i} +

Row {row + 1}

+
+ {#each Array(5) as _, column} + {@const answer = data.answers[row]?.[column]} + {@const value = data.guesses[row]?.[column] ?? ""} + {@const selected = current && column === data.guesses[row].length} + {@const exact = answer === "x"} + {@const close = answer === "c"} + {@const missing = answer === "_"} +
+ {value} + + {#if exact} + (correct) + {:else if close} + (present) + {:else if missing} + (absent) + {:else} + empty + {/if} + + +
+ {/each} +
+ {/each} +
+ +
+ {#if won || data.answers.length >= 6} + {#if !won && data.answer} +

the answer was "{data.answer}"

+ {/if} + + {:else} +
+ + + + + {#each ["qwertyuiop", "asdfghjkl", "zxcvbnm"] as row} +
+ {#each row as letter} + + {/each} +
+ {/each} +
+ {/if} +
+
+ +{#if won} +
+{/if} + + diff --git a/src/routes/sverdle/game.ts b/src/routes/sverdle/game.ts new file mode 100644 index 0000000..a0f4ca3 --- /dev/null +++ b/src/routes/sverdle/game.ts @@ -0,0 +1,75 @@ +import { words, allowed } from "./words.server"; + +export class Game { + index: number; + guesses: string[]; + answers: string[]; + answer: string; + + /** + * Create a game object from the player's cookie, or initialise a new game + */ + constructor(serialized: string | undefined = undefined) { + if (serialized) { + const [index, guesses, answers] = serialized.split("-"); + + this.index = +index; + this.guesses = guesses ? guesses.split(" ") : []; + this.answers = answers ? answers.split(" ") : []; + } else { + this.index = Math.floor(Math.random() * words.length); + this.guesses = ["", "", "", "", "", ""]; + this.answers = []; + } + + this.answer = words[this.index]; + } + + /** + * Update game state based on a guess of a five-letter word. Returns + * true if the guess was valid, false otherwise + */ + enter(letters: string[]) { + const word = letters.join(""); + const valid = allowed.has(word); + + if (!valid) return false; + + this.guesses[this.answers.length] = word; + + const available = Array.from(this.answer); + const answer = Array(5).fill("_"); + + // first, find exact matches + for (let i = 0; i < 5; i += 1) { + if (letters[i] === available[i]) { + answer[i] = "x"; + available[i] = " "; + } + } + + // then find close matches (this has to happen + // in a second step, otherwise an early close + // match can prevent a later exact match) + for (let i = 0; i < 5; i += 1) { + if (answer[i] === "_") { + const index = available.indexOf(letters[i]); + if (index !== -1) { + answer[i] = "c"; + available[index] = " "; + } + } + } + + this.answers.push(answer.join("")); + + return true; + } + + /** + * Serialize game state so it can be set as a cookie + */ + toString() { + return `${this.index}-${this.guesses.join(" ")}-${this.answers.join(" ")}`; + } +} diff --git a/src/routes/sverdle/how-to-play/+page.svelte b/src/routes/sverdle/how-to-play/+page.svelte new file mode 100644 index 0000000..a253ede --- /dev/null +++ b/src/routes/sverdle/how-to-play/+page.svelte @@ -0,0 +1,102 @@ + + How to play Sverdle + + + +
+

How to play Sverdle

+ +

+ Sverdle is a clone of Wordle, the word guessing game. To play, enter a five-letter English word. For + example: +

+ +
+ r + i + t + z + y +
+ +

+ The y is in the right place. + r + and + t + are the right letters, but in the wrong place. The other letters are wrong, and + can be discarded. Let's make another guess: +

+ +
+ p + a + r + t + y +
+ +

+ This time we guessed right! You have six guesses to get the + word. +

+ +

+ Unlike the original Wordle, Sverdle runs on the server instead of in the + browser, making it impossible to cheat. It uses <form> and + cookies to submit data, meaning you can even play with JavaScript disabled! +

+
+ + diff --git a/src/routes/sverdle/how-to-play/+page.ts b/src/routes/sverdle/how-to-play/+page.ts new file mode 100644 index 0000000..cd03567 --- /dev/null +++ b/src/routes/sverdle/how-to-play/+page.ts @@ -0,0 +1,9 @@ +import { dev } from "$app/environment"; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/src/routes/sverdle/reduced-motion.ts b/src/routes/sverdle/reduced-motion.ts new file mode 100644 index 0000000..c57cb78 --- /dev/null +++ b/src/routes/sverdle/reduced-motion.ts @@ -0,0 +1,26 @@ +import { readable } from "svelte/store"; +import { browser } from "$app/environment"; + +const reduced_motion_query = "(prefers-reduced-motion: reduce)"; + +const get_initial_motion_preference = () => { + if (!browser) return false; + return window.matchMedia(reduced_motion_query).matches; +}; + +export const reduced_motion = readable( + get_initial_motion_preference(), + (set) => { + if (browser) { + const set_reduced_motion = (event: MediaQueryListEvent) => { + set(event.matches); + }; + const media_query_list = window.matchMedia(reduced_motion_query); + media_query_list.addEventListener("change", set_reduced_motion); + + return () => { + media_query_list.removeEventListener("change", set_reduced_motion); + }; + } + } +); diff --git a/src/routes/sverdle/words.server.ts b/src/routes/sverdle/words.server.ts new file mode 100644 index 0000000..bef4674 --- /dev/null +++ b/src/routes/sverdle/words.server.ts @@ -0,0 +1,12980 @@ +/** The list of possible words */ +export const words = [ + "aback", + "abase", + "abate", + "abbey", + "abbot", + "abhor", + "abide", + "abled", + "abode", + "abort", + "about", + "above", + "abuse", + "abyss", + "acorn", + "acrid", + "actor", + "acute", + "adage", + "adapt", + "adept", + "admin", + "admit", + "adobe", + "adopt", + "adore", + "adorn", + "adult", + "affix", + "afire", + "afoot", + "afoul", + "after", + "again", + "agape", + "agate", + "agent", + "agile", + "aging", + "aglow", + "agony", + "agora", + "agree", + "ahead", + "aider", + "aisle", + "alarm", + "album", + "alert", + "algae", + "alibi", + "alien", + "align", + "alike", + "alive", + "allay", + "alley", + "allot", + "allow", + "alloy", + "aloft", + "alone", + "along", + "aloof", + "aloud", + "alpha", + "altar", + "alter", + "amass", + "amaze", + "amber", + "amble", + "amend", + "amiss", + "amity", + "among", + "ample", + "amply", + "amuse", + "angel", + "anger", + "angle", + "angry", + "angst", + "anime", + "ankle", + "annex", + "annoy", + "annul", + "anode", + "antic", + "anvil", + "aorta", + "apart", + "aphid", + "aping", + "apnea", + "apple", + "apply", + "apron", + "aptly", + "arbor", + "ardor", + "arena", + "argue", + "arise", + "armor", + "aroma", + "arose", + "array", + "arrow", + "arson", + "artsy", + "ascot", + "ashen", + "aside", + "askew", + "assay", + "asset", + "atoll", + "atone", + "attic", + "audio", + "audit", + "augur", + "aunty", + "avail", + "avert", + "avian", + "avoid", + "await", + "awake", + "award", + "aware", + "awash", + "awful", + "awoke", + "axial", + "axiom", + "axion", + "azure", + "bacon", + "badge", + "badly", + "bagel", + "baggy", + "baker", + "baler", + "balmy", + "banal", + "banjo", + "barge", + "baron", + "basal", + "basic", + "basil", + "basin", + "basis", + "baste", + "batch", + "bathe", + "baton", + "batty", + "bawdy", + "bayou", + "beach", + "beady", + "beard", + "beast", + "beech", + "beefy", + "befit", + "began", + "begat", + "beget", + "begin", + "begun", + "being", + "belch", + "belie", + "belle", + "belly", + "below", + "bench", + "beret", + "berry", + "berth", + "beset", + "betel", + "bevel", + "bezel", + "bible", + "bicep", + "biddy", + "bigot", + "bilge", + "billy", + "binge", + "bingo", + "biome", + "birch", + "birth", + "bison", + "bitty", + "black", + "blade", + "blame", + "bland", + "blank", + "blare", + "blast", + "blaze", + "bleak", + "bleat", + "bleed", + "bleep", + "blend", + "bless", + "blimp", + "blind", + "blink", + "bliss", + "blitz", + "bloat", + "block", + "bloke", + "blond", + "blood", + "bloom", + "blown", + "bluer", + "bluff", + "blunt", + "blurb", + "blurt", + "blush", + "board", + "boast", + "bobby", + "boney", + "bongo", + "bonus", + "booby", + "boost", + "booth", + "booty", + "booze", + "boozy", + "borax", + "borne", + "bosom", + "bossy", + "botch", + "bough", + "boule", + "bound", + "bowel", + "boxer", + "brace", + "braid", + "brain", + "brake", + "brand", + "brash", + "brass", + "brave", + "bravo", + "brawl", + "brawn", + "bread", + "break", + "breed", + "briar", + "bribe", + "brick", + "bride", + "brief", + "brine", + "bring", + "brink", + "briny", + "brisk", + "broad", + "broil", + "broke", + "brood", + "brook", + "broom", + "broth", + "brown", + "brunt", + "brush", + "brute", + "buddy", + "budge", + "buggy", + "bugle", + "build", + "built", + "bulge", + "bulky", + "bully", + "bunch", + "bunny", + "burly", + "burnt", + "burst", + "bused", + "bushy", + "butch", + "butte", + "buxom", + "buyer", + "bylaw", + "cabal", + "cabby", + "cabin", + "cable", + "cacao", + "cache", + "cacti", + "caddy", + "cadet", + "cagey", + "cairn", + "camel", + "cameo", + "canal", + "candy", + "canny", + "canoe", + "canon", + "caper", + "caput", + "carat", + "cargo", + "carol", + "carry", + "carve", + "caste", + "catch", + "cater", + "catty", + "caulk", + "cause", + "cavil", + "cease", + "cedar", + "cello", + "chafe", + "chaff", + "chain", + "chair", + "chalk", + "champ", + "chant", + "chaos", + "chard", + "charm", + "chart", + "chase", + "chasm", + "cheap", + "cheat", + "check", + "cheek", + "cheer", + "chess", + "chest", + "chick", + "chide", + "chief", + "child", + "chili", + "chill", + "chime", + "china", + "chirp", + "chock", + "choir", + "choke", + "chord", + "chore", + "chose", + "chuck", + "chump", + "chunk", + "churn", + "chute", + "cider", + "cigar", + "cinch", + "circa", + "civic", + "civil", + "clack", + "claim", + "clamp", + "clang", + "clank", + "clash", + "clasp", + "class", + "clean", + "clear", + "cleat", + "cleft", + "clerk", + "click", + "cliff", + "climb", + "cling", + "clink", + "cloak", + "clock", + "clone", + "close", + "cloth", + "cloud", + "clout", + "clove", + "clown", + "cluck", + "clued", + "clump", + "clung", + "coach", + "coast", + "cobra", + "cocoa", + "colon", + "color", + "comet", + "comfy", + "comic", + "comma", + "conch", + "condo", + "conic", + "copse", + "coral", + "corer", + "corny", + "couch", + "cough", + "could", + "count", + "coupe", + "court", + "coven", + "cover", + "covet", + "covey", + "cower", + "coyly", + "crack", + "craft", + "cramp", + "crane", + "crank", + "crash", + "crass", + "crate", + "crave", + "crawl", + "craze", + "crazy", + "creak", + "cream", + "credo", + "creed", + "creek", + "creep", + "creme", + "crepe", + "crept", + "cress", + "crest", + "crick", + "cried", + "crier", + "crime", + "crimp", + "crisp", + "croak", + "crock", + "crone", + "crony", + "crook", + "cross", + "croup", + "crowd", + "crown", + "crude", + "cruel", + "crumb", + "crump", + "crush", + "crust", + "crypt", + "cubic", + "cumin", + "curio", + "curly", + "curry", + "curse", + "curve", + "curvy", + "cutie", + "cyber", + "cycle", + "cynic", + "daddy", + "daily", + "dairy", + "daisy", + "dally", + "dance", + "dandy", + "datum", + "daunt", + "dealt", + "death", + "debar", + "debit", + "debug", + "debut", + "decal", + "decay", + "decor", + "decoy", + "decry", + "defer", + "deign", + "deity", + "delay", + "delta", + "delve", + "demon", + "demur", + "denim", + "dense", + "depot", + "depth", + "derby", + "deter", + "detox", + "deuce", + "devil", + "diary", + "dicey", + "digit", + "dilly", + "dimly", + "diner", + "dingo", + "dingy", + "diode", + "dirge", + "dirty", + "disco", + "ditch", + "ditto", + "ditty", + "diver", + "dizzy", + "dodge", + "dodgy", + "dogma", + "doing", + "dolly", + "donor", + "donut", + "dopey", + "doubt", + "dough", + "dowdy", + "dowel", + "downy", + "dowry", + "dozen", + "draft", + "drain", + "drake", + "drama", + "drank", + "drape", + "drawl", + "drawn", + "dread", + "dream", + "dress", + "dried", + "drier", + "drift", + "drill", + "drink", + "drive", + "droit", + "droll", + "drone", + "drool", + "droop", + "dross", + "drove", + "drown", + "druid", + "drunk", + "dryer", + "dryly", + "duchy", + "dully", + "dummy", + "dumpy", + "dunce", + "dusky", + "dusty", + "dutch", + "duvet", + "dwarf", + "dwell", + "dwelt", + "dying", + "eager", + "eagle", + "early", + "earth", + "easel", + "eaten", + "eater", + "ebony", + "eclat", + "edict", + "edify", + "eerie", + "egret", + "eight", + "eject", + "eking", + "elate", + "elbow", + "elder", + "elect", + "elegy", + "elfin", + "elide", + "elite", + "elope", + "elude", + "email", + "embed", + "ember", + "emcee", + "empty", + "enact", + "endow", + "enema", + "enemy", + "enjoy", + "ennui", + "ensue", + "enter", + "entry", + "envoy", + "epoch", + "epoxy", + "equal", + "equip", + "erase", + "erect", + "erode", + "error", + "erupt", + "essay", + "ester", + "ether", + "ethic", + "ethos", + "etude", + "evade", + "event", + "every", + "evict", + "evoke", + "exact", + "exalt", + "excel", + "exert", + "exile", + "exist", + "expel", + "extol", + "extra", + "exult", + "eying", + "fable", + "facet", + "faint", + "fairy", + "faith", + "false", + "fancy", + "fanny", + "farce", + "fatal", + "fatty", + "fault", + "fauna", + "favor", + "feast", + "fecal", + "feign", + "fella", + "felon", + "femme", + "femur", + "fence", + "feral", + "ferry", + "fetal", + "fetch", + "fetid", + "fetus", + "fever", + "fewer", + "fiber", + "fibre", + "ficus", + "field", + "fiend", + "fiery", + "fifth", + "fifty", + "fight", + "filer", + "filet", + "filly", + "filmy", + "filth", + "final", + "finch", + "finer", + "first", + "fishy", + "fixer", + "fizzy", + "fjord", + "flack", + "flail", + "flair", + "flake", + "flaky", + "flame", + "flank", + "flare", + "flash", + "flask", + "fleck", + "fleet", + "flesh", + "flick", + "flier", + "fling", + "flint", + "flirt", + "float", + "flock", + "flood", + "floor", + "flora", + "floss", + "flour", + "flout", + "flown", + "fluff", + "fluid", + "fluke", + "flume", + "flung", + "flunk", + "flush", + "flute", + "flyer", + "foamy", + "focal", + "focus", + "foggy", + "foist", + "folio", + "folly", + "foray", + "force", + "forge", + "forgo", + "forte", + "forth", + "forty", + "forum", + "found", + "foyer", + "frail", + "frame", + "frank", + "fraud", + "freak", + "freed", + "freer", + "fresh", + "friar", + "fried", + "frill", + "frisk", + "fritz", + "frock", + "frond", + "front", + "frost", + "froth", + "frown", + "froze", + "fruit", + "fudge", + "fugue", + "fully", + "fungi", + "funky", + "funny", + "furor", + "furry", + "fussy", + "fuzzy", + "gaffe", + "gaily", + "gamer", + "gamma", + "gamut", + "gassy", + "gaudy", + "gauge", + "gaunt", + "gauze", + "gavel", + "gawky", + "gayer", + "gayly", + "gazer", + "gecko", + "geeky", + "geese", + "genie", + "genre", + "ghost", + "ghoul", + "giant", + "giddy", + "gipsy", + "girly", + "girth", + "given", + "giver", + "glade", + "gland", + "glare", + "glass", + "glaze", + "gleam", + "glean", + "glide", + "glint", + "gloat", + "globe", + "gloom", + "glory", + "gloss", + "glove", + "glyph", + "gnash", + "gnome", + "godly", + "going", + "golem", + "golly", + "gonad", + "goner", + "goody", + "gooey", + "goofy", + "goose", + "gorge", + "gouge", + "gourd", + "grace", + "grade", + "graft", + "grail", + "grain", + "grand", + "grant", + "grape", + "graph", + "grasp", + "grass", + "grate", + "grave", + "gravy", + "graze", + "great", + "greed", + "green", + "greet", + "grief", + "grill", + "grime", + "grimy", + "grind", + "gripe", + "groan", + "groin", + "groom", + "grope", + "gross", + "group", + "grout", + "grove", + "growl", + "grown", + "gruel", + "gruff", + "grunt", + "guard", + "guava", + "guess", + "guest", + "guide", + "guild", + "guile", + "guilt", + "guise", + "gulch", + "gully", + "gumbo", + "gummy", + "guppy", + "gusto", + "gusty", + "gypsy", + "habit", + "hairy", + "halve", + "handy", + "happy", + "hardy", + "harem", + "harpy", + "harry", + "harsh", + "haste", + "hasty", + "hatch", + "hater", + "haunt", + "haute", + "haven", + "havoc", + "hazel", + "heady", + "heard", + "heart", + "heath", + "heave", + "heavy", + "hedge", + "hefty", + "heist", + "helix", + "hello", + "hence", + "heron", + "hilly", + "hinge", + "hippo", + "hippy", + "hitch", + "hoard", + "hobby", + "hoist", + "holly", + "homer", + "honey", + "honor", + "horde", + "horny", + "horse", + "hotel", + "hotly", + "hound", + "house", + "hovel", + "hover", + "howdy", + "human", + "humid", + "humor", + "humph", + "humus", + "hunch", + "hunky", + "hurry", + "husky", + "hussy", + "hutch", + "hydro", + "hyena", + "hymen", + "hyper", + "icily", + "icing", + "ideal", + "idiom", + "idiot", + "idler", + "idyll", + "igloo", + "iliac", + "image", + "imbue", + "impel", + "imply", + "inane", + "inbox", + "incur", + "index", + "inept", + "inert", + "infer", + "ingot", + "inlay", + "inlet", + "inner", + "input", + "inter", + "intro", + "ionic", + "irate", + "irony", + "islet", + "issue", + "itchy", + "ivory", + "jaunt", + "jazzy", + "jelly", + "jerky", + "jetty", + "jewel", + "jiffy", + "joint", + "joist", + "joker", + "jolly", + "joust", + "judge", + "juice", + "juicy", + "jumbo", + "jumpy", + "junta", + "junto", + "juror", + "kappa", + "karma", + "kayak", + "kebab", + "khaki", + "kinky", + "kiosk", + "kitty", + "knack", + "knave", + "knead", + "kneed", + "kneel", + "knelt", + "knife", + "knock", + "knoll", + "known", + "koala", + "krill", + "label", + "labor", + "laden", + "ladle", + "lager", + "lance", + "lanky", + "lapel", + "lapse", + "large", + "larva", + "lasso", + "latch", + "later", + "lathe", + "latte", + "laugh", + "layer", + "leach", + "leafy", + "leaky", + "leant", + "leapt", + "learn", + "lease", + "leash", + "least", + "leave", + "ledge", + "leech", + "leery", + "lefty", + "legal", + "leggy", + "lemon", + "lemur", + "leper", + "level", + "lever", + "libel", + "liege", + "light", + "liken", + "lilac", + "limbo", + "limit", + "linen", + "liner", + "lingo", + "lipid", + "lithe", + "liver", + "livid", + "llama", + "loamy", + "loath", + "lobby", + "local", + "locus", + "lodge", + "lofty", + "logic", + "login", + "loopy", + "loose", + "lorry", + "loser", + "louse", + "lousy", + "lover", + "lower", + "lowly", + "loyal", + "lucid", + "lucky", + "lumen", + "lumpy", + "lunar", + "lunch", + "lunge", + "lupus", + "lurch", + "lurid", + "lusty", + "lying", + "lymph", + "lynch", + "lyric", + "macaw", + "macho", + "macro", + "madam", + "madly", + "mafia", + "magic", + "magma", + "maize", + "major", + "maker", + "mambo", + "mamma", + "mammy", + "manga", + "mange", + "mango", + "mangy", + "mania", + "manic", + "manly", + "manor", + "maple", + "march", + "marry", + "marsh", + "mason", + "masse", + "match", + "matey", + "mauve", + "maxim", + "maybe", + "mayor", + "mealy", + "meant", + "meaty", + "mecca", + "medal", + "media", + "medic", + "melee", + "melon", + "mercy", + "merge", + "merit", + "merry", + "metal", + "meter", + "metro", + "micro", + "midge", + "midst", + "might", + "milky", + "mimic", + "mince", + "miner", + "minim", + "minor", + "minty", + "minus", + "mirth", + "miser", + "missy", + "mocha", + "modal", + "model", + "modem", + "mogul", + "moist", + "molar", + "moldy", + "money", + "month", + "moody", + "moose", + "moral", + "moron", + "morph", + "mossy", + "motel", + "motif", + "motor", + "motto", + "moult", + "mound", + "mount", + "mourn", + "mouse", + "mouth", + "mover", + "movie", + "mower", + "mucky", + "mucus", + "muddy", + "mulch", + "mummy", + "munch", + "mural", + "murky", + "mushy", + "music", + "musky", + "musty", + "myrrh", + "nadir", + "naive", + "nanny", + "nasal", + "nasty", + "natal", + "naval", + "navel", + "needy", + "neigh", + "nerdy", + "nerve", + "never", + "newer", + "newly", + "nicer", + "niche", + "niece", + "night", + "ninja", + "ninny", + "ninth", + "noble", + "nobly", + "noise", + "noisy", + "nomad", + "noose", + "north", + "nosey", + "notch", + "novel", + "nudge", + "nurse", + "nutty", + "nylon", + "nymph", + "oaken", + "obese", + "occur", + "ocean", + "octal", + "octet", + "odder", + "oddly", + "offal", + "offer", + "often", + "olden", + "older", + "olive", + "ombre", + "omega", + "onion", + "onset", + "opera", + "opine", + "opium", + "optic", + "orbit", + "order", + "organ", + "other", + "otter", + "ought", + "ounce", + "outdo", + "outer", + "outgo", + "ovary", + "ovate", + "overt", + "ovine", + "ovoid", + "owing", + "owner", + "oxide", + "ozone", + "paddy", + "pagan", + "paint", + "paler", + "palsy", + "panel", + "panic", + "pansy", + "papal", + "paper", + "parer", + "parka", + "parry", + "parse", + "party", + "pasta", + "paste", + "pasty", + "patch", + "patio", + "patsy", + "patty", + "pause", + "payee", + "payer", + "peace", + "peach", + "pearl", + "pecan", + "pedal", + "penal", + "pence", + "penne", + "penny", + "perch", + "peril", + "perky", + "pesky", + "pesto", + "petal", + "petty", + "phase", + "phone", + "phony", + "photo", + "piano", + "picky", + "piece", + "piety", + "piggy", + "pilot", + "pinch", + "piney", + "pinky", + "pinto", + "piper", + "pique", + "pitch", + "pithy", + "pivot", + "pixel", + "pixie", + "pizza", + "place", + "plaid", + "plain", + "plait", + "plane", + "plank", + "plant", + "plate", + "plaza", + "plead", + "pleat", + "plied", + "plier", + "pluck", + "plumb", + "plume", + "plump", + "plunk", + "plush", + "poesy", + "point", + "poise", + "poker", + "polar", + "polka", + "polyp", + "pooch", + "poppy", + "porch", + "poser", + "posit", + "posse", + "pouch", + "pound", + "pouty", + "power", + "prank", + "prawn", + "preen", + "press", + "price", + "prick", + "pride", + "pried", + "prime", + "primo", + "print", + "prior", + "prism", + "privy", + "prize", + "probe", + "prone", + "prong", + "proof", + "prose", + "proud", + "prove", + "prowl", + "proxy", + "prude", + "prune", + "psalm", + "pubic", + "pudgy", + "puffy", + "pulpy", + "pulse", + "punch", + "pupal", + "pupil", + "puppy", + "puree", + "purer", + "purge", + "purse", + "pushy", + "putty", + "pygmy", + "quack", + "quail", + "quake", + "qualm", + "quark", + "quart", + "quash", + "quasi", + "queen", + "queer", + "quell", + "query", + "quest", + "queue", + "quick", + "quiet", + "quill", + "quilt", + "quirk", + "quite", + "quota", + "quote", + "quoth", + "rabbi", + "rabid", + "racer", + "radar", + "radii", + "radio", + "rainy", + "raise", + "rajah", + "rally", + "ralph", + "ramen", + "ranch", + "randy", + "range", + "rapid", + "rarer", + "raspy", + "ratio", + "ratty", + "raven", + "rayon", + "razor", + "reach", + "react", + "ready", + "realm", + "rearm", + "rebar", + "rebel", + "rebus", + "rebut", + "recap", + "recur", + "recut", + "reedy", + "refer", + "refit", + "regal", + "rehab", + "reign", + "relax", + "relay", + "relic", + "remit", + "renal", + "renew", + "repay", + "repel", + "reply", + "rerun", + "reset", + "resin", + "retch", + "retro", + "retry", + "reuse", + "revel", + "revue", + "rhino", + "rhyme", + "rider", + "ridge", + "rifle", + "right", + "rigid", + "rigor", + "rinse", + "ripen", + "riper", + "risen", + "riser", + "risky", + "rival", + "river", + "rivet", + "roach", + "roast", + "robin", + "robot", + "rocky", + "rodeo", + "roger", + "rogue", + "roomy", + "roost", + "rotor", + "rouge", + "rough", + "round", + "rouse", + "route", + "rover", + "rowdy", + "rower", + "royal", + "ruddy", + "ruder", + "rugby", + "ruler", + "rumba", + "rumor", + "rupee", + "rural", + "rusty", + "sadly", + "safer", + "saint", + "salad", + "sally", + "salon", + "salsa", + "salty", + "salve", + "salvo", + "sandy", + "saner", + "sappy", + "sassy", + "satin", + "satyr", + "sauce", + "saucy", + "sauna", + "saute", + "savor", + "savoy", + "savvy", + "scald", + "scale", + "scalp", + "scaly", + "scamp", + "scant", + "scare", + "scarf", + "scary", + "scene", + "scent", + "scion", + "scoff", + "scold", + "scone", + "scoop", + "scope", + "score", + "scorn", + "scour", + "scout", + "scowl", + "scram", + "scrap", + "scree", + "screw", + "scrub", + "scrum", + "scuba", + "sedan", + "seedy", + "segue", + "seize", + "semen", + "sense", + "sepia", + "serif", + "serum", + "serve", + "setup", + "seven", + "sever", + "sewer", + "shack", + "shade", + "shady", + "shaft", + "shake", + "shaky", + "shale", + "shall", + "shalt", + "shame", + "shank", + "shape", + "shard", + "share", + "shark", + "sharp", + "shave", + "shawl", + "shear", + "sheen", + "sheep", + "sheer", + "sheet", + "sheik", + "shelf", + "shell", + "shied", + "shift", + "shine", + "shiny", + "shire", + "shirk", + "shirt", + "shoal", + "shock", + "shone", + "shook", + "shoot", + "shore", + "shorn", + "short", + "shout", + "shove", + "shown", + "showy", + "shrew", + "shrub", + "shrug", + "shuck", + "shunt", + "shush", + "shyly", + "siege", + "sieve", + "sight", + "sigma", + "silky", + "silly", + "since", + "sinew", + "singe", + "siren", + "sissy", + "sixth", + "sixty", + "skate", + "skier", + "skiff", + "skill", + "skimp", + "skirt", + "skulk", + "skull", + "skunk", + "slack", + "slain", + "slang", + "slant", + "slash", + "slate", + "slave", + "sleek", + "sleep", + "sleet", + "slept", + "slice", + "slick", + "slide", + "slime", + "slimy", + "sling", + "slink", + "sloop", + "slope", + "slosh", + "sloth", + "slump", + "slung", + "slunk", + "slurp", + "slush", + "slyly", + "smack", + "small", + "smart", + "smash", + "smear", + "smell", + "smelt", + "smile", + "smirk", + "smite", + "smith", + "smock", + "smoke", + "smoky", + "smote", + "snack", + "snail", + "snake", + "snaky", + "snare", + "snarl", + "sneak", + "sneer", + "snide", + "sniff", + "snipe", + "snoop", + "snore", + "snort", + "snout", + "snowy", + "snuck", + "snuff", + "soapy", + "sober", + "soggy", + "solar", + "solid", + "solve", + "sonar", + "sonic", + "sooth", + "sooty", + "sorry", + "sound", + "south", + "sower", + "space", + "spade", + "spank", + "spare", + "spark", + "spasm", + "spawn", + "speak", + "spear", + "speck", + "speed", + "spell", + "spelt", + "spend", + "spent", + "sperm", + "spice", + "spicy", + "spied", + "spiel", + "spike", + "spiky", + "spill", + "spilt", + "spine", + "spiny", + "spire", + "spite", + "splat", + "split", + "spoil", + "spoke", + "spoof", + "spook", + "spool", + "spoon", + "spore", + "sport", + "spout", + "spray", + "spree", + "sprig", + "spunk", + "spurn", + "spurt", + "squad", + "squat", + "squib", + "stack", + "staff", + "stage", + "staid", + "stain", + "stair", + "stake", + "stale", + "stalk", + "stall", + "stamp", + "stand", + "stank", + "stare", + "stark", + "start", + "stash", + "state", + "stave", + "stead", + "steak", + "steal", + "steam", + "steed", + "steel", + "steep", + "steer", + "stein", + "stern", + "stick", + "stiff", + "still", + "stilt", + "sting", + "stink", + "stint", + "stock", + "stoic", + "stoke", + "stole", + "stomp", + "stone", + "stony", + "stood", + "stool", + "stoop", + "store", + "stork", + "storm", + "story", + "stout", + "stove", + "strap", + "straw", + "stray", + "strip", + "strut", + "stuck", + "study", + "stuff", + "stump", + "stung", + "stunk", + "stunt", + "style", + "suave", + "sugar", + "suing", + "suite", + "sulky", + "sully", + "sumac", + "sunny", + "super", + "surer", + "surge", + "surly", + "sushi", + "swami", + "swamp", + "swarm", + "swash", + "swath", + "swear", + "sweat", + "sweep", + "sweet", + "swell", + "swept", + "swift", + "swill", + "swine", + "swing", + "swirl", + "swish", + "swoon", + "swoop", + "sword", + "swore", + "sworn", + "swung", + "synod", + "syrup", + "tabby", + "table", + "taboo", + "tacit", + "tacky", + "taffy", + "taint", + "taken", + "taker", + "tally", + "talon", + "tamer", + "tango", + "tangy", + "taper", + "tapir", + "tardy", + "tarot", + "taste", + "tasty", + "tatty", + "taunt", + "tawny", + "teach", + "teary", + "tease", + "teddy", + "teeth", + "tempo", + "tenet", + "tenor", + "tense", + "tenth", + "tepee", + "tepid", + "terra", + "terse", + "testy", + "thank", + "theft", + "their", + "theme", + "there", + "these", + "theta", + "thick", + "thief", + "thigh", + "thing", + "think", + "third", + "thong", + "thorn", + "those", + "three", + "threw", + "throb", + "throw", + "thrum", + "thumb", + "thump", + "thyme", + "tiara", + "tibia", + "tidal", + "tiger", + "tight", + "tilde", + "timer", + "timid", + "tipsy", + "titan", + "tithe", + "title", + "toast", + "today", + "toddy", + "token", + "tonal", + "tonga", + "tonic", + "tooth", + "topaz", + "topic", + "torch", + "torso", + "torus", + "total", + "totem", + "touch", + "tough", + "towel", + "tower", + "toxic", + "toxin", + "trace", + "track", + "tract", + "trade", + "trail", + "train", + "trait", + "tramp", + "trash", + "trawl", + "tread", + "treat", + "trend", + "triad", + "trial", + "tribe", + "trice", + "trick", + "tried", + "tripe", + "trite", + "troll", + "troop", + "trope", + "trout", + "trove", + "truce", + "truck", + "truer", + "truly", + "trump", + "trunk", + "truss", + "trust", + "truth", + "tryst", + "tubal", + "tuber", + "tulip", + "tulle", + "tumor", + "tunic", + "turbo", + "tutor", + "twang", + "tweak", + "tweed", + "tweet", + "twice", + "twine", + "twirl", + "twist", + "twixt", + "tying", + "udder", + "ulcer", + "ultra", + "umbra", + "uncle", + "uncut", + "under", + "undid", + "undue", + "unfed", + "unfit", + "unify", + "union", + "unite", + "unity", + "unlit", + "unmet", + "unset", + "untie", + "until", + "unwed", + "unzip", + "upper", + "upset", + "urban", + "urine", + "usage", + "usher", + "using", + "usual", + "usurp", + "utile", + "utter", + "vague", + "valet", + "valid", + "valor", + "value", + "valve", + "vapid", + "vapor", + "vault", + "vaunt", + "vegan", + "venom", + "venue", + "verge", + "verse", + "verso", + "verve", + "vicar", + "video", + "vigil", + "vigor", + "villa", + "vinyl", + "viola", + "viper", + "viral", + "virus", + "visit", + "visor", + "vista", + "vital", + "vivid", + "vixen", + "vocal", + "vodka", + "vogue", + "voice", + "voila", + "vomit", + "voter", + "vouch", + "vowel", + "vying", + "wacky", + "wafer", + "wager", + "wagon", + "waist", + "waive", + "waltz", + "warty", + "waste", + "watch", + "water", + "waver", + "waxen", + "weary", + "weave", + "wedge", + "weedy", + "weigh", + "weird", + "welch", + "welsh", + "wench", + "whack", + "whale", + "wharf", + "wheat", + "wheel", + "whelp", + "where", + "which", + "whiff", + "while", + "whine", + "whiny", + "whirl", + "whisk", + "white", + "whole", + "whoop", + "whose", + "widen", + "wider", + "widow", + "width", + "wield", + "wight", + "willy", + "wimpy", + "wince", + "winch", + "windy", + "wiser", + "wispy", + "witch", + "witty", + "woken", + "woman", + "women", + "woody", + "wooer", + "wooly", + "woozy", + "wordy", + "world", + "worry", + "worse", + "worst", + "worth", + "would", + "wound", + "woven", + "wrack", + "wrath", + "wreak", + "wreck", + "wrest", + "wring", + "wrist", + "write", + "wrong", + "wrote", + "wrung", + "wryly", + "yacht", + "yearn", + "yeast", + "yield", + "young", + "youth", + "zebra", + "zesty", + "zonal", +]; + +/** The list of valid guesses, of which the list of possible words is a subset */ +export const allowed = new Set([ + ...words, + "aahed", + "aalii", + "aargh", + "aarti", + "abaca", + "abaci", + "abacs", + "abaft", + "abaka", + "abamp", + "aband", + "abash", + "abask", + "abaya", + "abbas", + "abbed", + "abbes", + "abcee", + "abeam", + "abear", + "abele", + "abers", + "abets", + "abies", + "abler", + "ables", + "ablet", + "ablow", + "abmho", + "abohm", + "aboil", + "aboma", + "aboon", + "abord", + "abore", + "abram", + "abray", + "abrim", + "abrin", + "abris", + "absey", + "absit", + "abuna", + "abune", + "abuts", + "abuzz", + "abyes", + "abysm", + "acais", + "acari", + "accas", + "accoy", + "acerb", + "acers", + "aceta", + "achar", + "ached", + "aches", + "achoo", + "acids", + "acidy", + "acing", + "acini", + "ackee", + "acker", + "acmes", + "acmic", + "acned", + "acnes", + "acock", + "acold", + "acred", + "acres", + "acros", + "acted", + "actin", + "acton", + "acyls", + "adaws", + "adays", + "adbot", + "addax", + "added", + "adder", + "addio", + "addle", + "adeem", + "adhan", + "adieu", + "adios", + "adits", + "adman", + "admen", + "admix", + "adobo", + "adown", + "adoze", + "adrad", + "adred", + "adsum", + "aduki", + "adunc", + "adust", + "advew", + "adyta", + "adzed", + "adzes", + "aecia", + "aedes", + "aegis", + "aeons", + "aerie", + "aeros", + "aesir", + "afald", + "afara", + "afars", + "afear", + "aflaj", + "afore", + "afrit", + "afros", + "agama", + "agami", + "agars", + "agast", + "agave", + "agaze", + "agene", + "agers", + "agger", + "aggie", + "aggri", + "aggro", + "aggry", + "aghas", + "agila", + "agios", + "agism", + "agist", + "agita", + "aglee", + "aglet", + "agley", + "agloo", + "aglus", + "agmas", + "agoge", + "agone", + "agons", + "agood", + "agria", + "agrin", + "agros", + "agued", + "agues", + "aguna", + "aguti", + "aheap", + "ahent", + "ahigh", + "ahind", + "ahing", + "ahint", + "ahold", + "ahull", + "ahuru", + "aidas", + "aided", + "aides", + "aidoi", + "aidos", + "aiery", + "aigas", + "aight", + "ailed", + "aimed", + "aimer", + "ainee", + "ainga", + "aioli", + "aired", + "airer", + "airns", + "airth", + "airts", + "aitch", + "aitus", + "aiver", + "aiyee", + "aizle", + "ajies", + "ajiva", + "ajuga", + "ajwan", + "akees", + "akela", + "akene", + "aking", + "akita", + "akkas", + "alaap", + "alack", + "alamo", + "aland", + "alane", + "alang", + "alans", + "alant", + "alapa", + "alaps", + "alary", + "alate", + "alays", + "albas", + "albee", + "alcid", + "alcos", + "aldea", + "alder", + "aldol", + "aleck", + "alecs", + "alefs", + "aleft", + "aleph", + "alews", + "aleye", + "alfas", + "algal", + "algas", + "algid", + "algin", + "algor", + "algum", + "alias", + "alifs", + "aline", + "alist", + "aliya", + "alkie", + "alkos", + "alkyd", + "alkyl", + "allee", + "allel", + "allis", + "allod", + "allyl", + "almah", + "almas", + "almeh", + "almes", + "almud", + "almug", + "alods", + "aloed", + "aloes", + "aloha", + "aloin", + "aloos", + "alowe", + "altho", + "altos", + "alula", + "alums", + "alure", + "alvar", + "alway", + "amahs", + "amain", + "amate", + "amaut", + "amban", + "ambit", + "ambos", + "ambry", + "ameba", + "ameer", + "amene", + "amens", + "ament", + "amias", + "amice", + "amici", + "amide", + "amido", + "amids", + "amies", + "amiga", + "amigo", + "amine", + "amino", + "amins", + "amirs", + "amlas", + "amman", + "ammon", + "ammos", + "amnia", + "amnic", + "amnio", + "amoks", + "amole", + "amort", + "amour", + "amove", + "amowt", + "amped", + "ampul", + "amrit", + "amuck", + "amyls", + "anana", + "anata", + "ancho", + "ancle", + "ancon", + "andro", + "anear", + "anele", + "anent", + "angas", + "anglo", + "anigh", + "anile", + "anils", + "anima", + "animi", + "anion", + "anise", + "anker", + "ankhs", + "ankus", + "anlas", + "annal", + "annas", + "annat", + "anoas", + "anole", + "anomy", + "ansae", + "antae", + "antar", + "antas", + "anted", + "antes", + "antis", + "antra", + "antre", + "antsy", + "anura", + "anyon", + "apace", + "apage", + "apaid", + "apayd", + "apays", + "apeak", + "apeek", + "apers", + "apert", + "apery", + "apgar", + "aphis", + "apian", + "apiol", + "apish", + "apism", + "apode", + "apods", + "apoop", + "aport", + "appal", + "appay", + "appel", + "appro", + "appui", + "appuy", + "apres", + "apses", + "apsis", + "apsos", + "apted", + "apter", + "aquae", + "aquas", + "araba", + "araks", + "arame", + "arars", + "arbas", + "arced", + "archi", + "arcos", + "arcus", + "ardeb", + "ardri", + "aread", + "areae", + "areal", + "arear", + "areas", + "areca", + "aredd", + "arede", + "arefy", + "areic", + "arene", + "arepa", + "arere", + "arete", + "arets", + "arett", + "argal", + "argan", + "argil", + "argle", + "argol", + "argon", + "argot", + "argus", + "arhat", + "arias", + "ariel", + "ariki", + "arils", + "ariot", + "arish", + "arked", + "arled", + "arles", + "armed", + "armer", + "armet", + "armil", + "arnas", + "arnut", + "aroba", + "aroha", + "aroid", + "arpas", + "arpen", + "arrah", + "arras", + "arret", + "arris", + "arroz", + "arsed", + "arses", + "arsey", + "arsis", + "artal", + "artel", + "artic", + "artis", + "aruhe", + "arums", + "arval", + "arvee", + "arvos", + "aryls", + "asana", + "ascon", + "ascus", + "asdic", + "ashed", + "ashes", + "ashet", + "asked", + "asker", + "askoi", + "askos", + "aspen", + "asper", + "aspic", + "aspie", + "aspis", + "aspro", + "assai", + "assam", + "asses", + "assez", + "assot", + "aster", + "astir", + "astun", + "asura", + "asway", + "aswim", + "asyla", + "ataps", + "ataxy", + "atigi", + "atilt", + "atimy", + "atlas", + "atman", + "atmas", + "atmos", + "atocs", + "atoke", + "atoks", + "atoms", + "atomy", + "atony", + "atopy", + "atria", + "atrip", + "attap", + "attar", + "atuas", + "audad", + "auger", + "aught", + "aulas", + "aulic", + "auloi", + "aulos", + "aumil", + "aunes", + "aunts", + "aurae", + "aural", + "aurar", + "auras", + "aurei", + "aures", + "auric", + "auris", + "aurum", + "autos", + "auxin", + "avale", + "avant", + "avast", + "avels", + "avens", + "avers", + "avgas", + "avine", + "avion", + "avise", + "aviso", + "avize", + "avows", + "avyze", + "awarn", + "awato", + "awave", + "aways", + "awdls", + "aweel", + "aweto", + "awing", + "awmry", + "awned", + "awner", + "awols", + "awork", + "axels", + "axile", + "axils", + "axing", + "axite", + "axled", + "axles", + "axman", + "axmen", + "axoid", + "axone", + "axons", + "ayahs", + "ayaya", + "ayelp", + "aygre", + "ayins", + "ayont", + "ayres", + "ayrie", + "azans", + "azide", + "azido", + "azine", + "azlon", + "azoic", + "azole", + "azons", + "azote", + "azoth", + "azuki", + "azurn", + "azury", + "azygy", + "azyme", + "azyms", + "baaed", + "baals", + "babas", + "babel", + "babes", + "babka", + "baboo", + "babul", + "babus", + "bacca", + "bacco", + "baccy", + "bacha", + "bachs", + "backs", + "baddy", + "baels", + "baffs", + "baffy", + "bafts", + "baghs", + "bagie", + "bahts", + "bahus", + "bahut", + "bails", + "bairn", + "baisa", + "baith", + "baits", + "baiza", + "baize", + "bajan", + "bajra", + "bajri", + "bajus", + "baked", + "baken", + "bakes", + "bakra", + "balas", + "balds", + "baldy", + "baled", + "bales", + "balks", + "balky", + "balls", + "bally", + "balms", + "baloo", + "balsa", + "balti", + "balun", + "balus", + "bambi", + "banak", + "banco", + "bancs", + "banda", + "bandh", + "bands", + "bandy", + "baned", + "banes", + "bangs", + "bania", + "banks", + "banns", + "bants", + "bantu", + "banty", + "banya", + "bapus", + "barbe", + "barbs", + "barby", + "barca", + "barde", + "bardo", + "bards", + "bardy", + "bared", + "barer", + "bares", + "barfi", + "barfs", + "baric", + "barks", + "barky", + "barms", + "barmy", + "barns", + "barny", + "barps", + "barra", + "barre", + "barro", + "barry", + "barye", + "basan", + "based", + "basen", + "baser", + "bases", + "basho", + "basij", + "basks", + "bason", + "basse", + "bassi", + "basso", + "bassy", + "basta", + "basti", + "basto", + "basts", + "bated", + "bates", + "baths", + "batik", + "batta", + "batts", + "battu", + "bauds", + "bauks", + "baulk", + "baurs", + "bavin", + "bawds", + "bawks", + "bawls", + "bawns", + "bawrs", + "bawty", + "bayed", + "bayer", + "bayes", + "bayle", + "bayts", + "bazar", + "bazoo", + "beads", + "beaks", + "beaky", + "beals", + "beams", + "beamy", + "beano", + "beans", + "beany", + "beare", + "bears", + "beath", + "beats", + "beaty", + "beaus", + "beaut", + "beaux", + "bebop", + "becap", + "becke", + "becks", + "bedad", + "bedel", + "bedes", + "bedew", + "bedim", + "bedye", + "beedi", + "beefs", + "beeps", + "beers", + "beery", + "beets", + "befog", + "begad", + "begar", + "begem", + "begot", + "begum", + "beige", + "beigy", + "beins", + "bekah", + "belah", + "belar", + "belay", + "belee", + "belga", + "bells", + "belon", + "belts", + "bemad", + "bemas", + "bemix", + "bemud", + "bends", + "bendy", + "benes", + "benet", + "benga", + "benis", + "benne", + "benni", + "benny", + "bento", + "bents", + "benty", + "bepat", + "beray", + "beres", + "bergs", + "berko", + "berks", + "berme", + "berms", + "berob", + "beryl", + "besat", + "besaw", + "besee", + "beses", + "besit", + "besom", + "besot", + "besti", + "bests", + "betas", + "beted", + "betes", + "beths", + "betid", + "beton", + "betta", + "betty", + "bever", + "bevor", + "bevue", + "bevvy", + "bewet", + "bewig", + "bezes", + "bezil", + "bezzy", + "bhais", + "bhaji", + "bhang", + "bhats", + "bhels", + "bhoot", + "bhuna", + "bhuts", + "biach", + "biali", + "bialy", + "bibbs", + "bibes", + "biccy", + "bices", + "bided", + "bider", + "bides", + "bidet", + "bidis", + "bidon", + "bield", + "biers", + "biffo", + "biffs", + "biffy", + "bifid", + "bigae", + "biggs", + "biggy", + "bigha", + "bight", + "bigly", + "bigos", + "bijou", + "biked", + "biker", + "bikes", + "bikie", + "bilbo", + "bilby", + "biled", + "biles", + "bilgy", + "bilks", + "bills", + "bimah", + "bimas", + "bimbo", + "binal", + "bindi", + "binds", + "biner", + "bines", + "bings", + "bingy", + "binit", + "binks", + "bints", + "biogs", + "biont", + "biota", + "biped", + "bipod", + "birds", + "birks", + "birle", + "birls", + "biros", + "birrs", + "birse", + "birsy", + "bises", + "bisks", + "bisom", + "bitch", + "biter", + "bites", + "bitos", + "bitou", + "bitsy", + "bitte", + "bitts", + "bivia", + "bivvy", + "bizes", + "bizzo", + "bizzy", + "blabs", + "blads", + "blady", + "blaer", + "blaes", + "blaff", + "blags", + "blahs", + "blain", + "blams", + "blart", + "blase", + "blash", + "blate", + "blats", + "blatt", + "blaud", + "blawn", + "blaws", + "blays", + "blear", + "blebs", + "blech", + "blees", + "blent", + "blert", + "blest", + "blets", + "bleys", + "blimy", + "bling", + "blini", + "blins", + "bliny", + "blips", + "blist", + "blite", + "blits", + "blive", + "blobs", + "blocs", + "blogs", + "blook", + "bloop", + "blore", + "blots", + "blows", + "blowy", + "blubs", + "blude", + "bluds", + "bludy", + "blued", + "blues", + "bluet", + "bluey", + "bluid", + "blume", + "blunk", + "blurs", + "blype", + "boabs", + "boaks", + "boars", + "boart", + "boats", + "bobac", + "bobak", + "bobas", + "bobol", + "bobos", + "bocca", + "bocce", + "bocci", + "boche", + "bocks", + "boded", + "bodes", + "bodge", + "bodhi", + "bodle", + "boeps", + "boets", + "boeuf", + "boffo", + "boffs", + "bogan", + "bogey", + "boggy", + "bogie", + "bogle", + "bogue", + "bogus", + "bohea", + "bohos", + "boils", + "boing", + "boink", + "boite", + "boked", + "bokeh", + "bokes", + "bokos", + "bolar", + "bolas", + "bolds", + "boles", + "bolix", + "bolls", + "bolos", + "bolts", + "bolus", + "bomas", + "bombe", + "bombo", + "bombs", + "bonce", + "bonds", + "boned", + "boner", + "bones", + "bongs", + "bonie", + "bonks", + "bonne", + "bonny", + "bonza", + "bonze", + "booai", + "booay", + "boobs", + "boody", + "booed", + "boofy", + "boogy", + "boohs", + "books", + "booky", + "bools", + "booms", + "boomy", + "boong", + "boons", + "boord", + "boors", + "boose", + "boots", + "boppy", + "borak", + "boral", + "boras", + "borde", + "bords", + "bored", + "boree", + "borel", + "borer", + "bores", + "borgo", + "boric", + "borks", + "borms", + "borna", + "boron", + "borts", + "borty", + "bortz", + "bosie", + "bosks", + "bosky", + "boson", + "bosun", + "botas", + "botel", + "botes", + "bothy", + "botte", + "botts", + "botty", + "bouge", + "bouks", + "boult", + "bouns", + "bourd", + "bourg", + "bourn", + "bouse", + "bousy", + "bouts", + "bovid", + "bowat", + "bowed", + "bower", + "bowes", + "bowet", + "bowie", + "bowls", + "bowne", + "bowrs", + "bowse", + "boxed", + "boxen", + "boxes", + "boxla", + "boxty", + "boyar", + "boyau", + "boyed", + "boyfs", + "boygs", + "boyla", + "boyos", + "boysy", + "bozos", + "braai", + "brach", + "brack", + "bract", + "brads", + "braes", + "brags", + "brail", + "braks", + "braky", + "brame", + "brane", + "brank", + "brans", + "brant", + "brast", + "brats", + "brava", + "bravi", + "braws", + "braxy", + "brays", + "braza", + "braze", + "bream", + "brede", + "breds", + "breem", + "breer", + "brees", + "breid", + "breis", + "breme", + "brens", + "brent", + "brere", + "brers", + "breve", + "brews", + "breys", + "brier", + "bries", + "brigs", + "briki", + "briks", + "brill", + "brims", + "brins", + "brios", + "brise", + "briss", + "brith", + "brits", + "britt", + "brize", + "broch", + "brock", + "brods", + "brogh", + "brogs", + "brome", + "bromo", + "bronc", + "brond", + "brool", + "broos", + "brose", + "brosy", + "brows", + "brugh", + "bruin", + "bruit", + "brule", + "brume", + "brung", + "brusk", + "brust", + "bruts", + "buats", + "buaze", + "bubal", + "bubas", + "bubba", + "bubbe", + "bubby", + "bubus", + "buchu", + "bucko", + "bucks", + "bucku", + "budas", + "budis", + "budos", + "buffa", + "buffe", + "buffi", + "buffo", + "buffs", + "buffy", + "bufos", + "bufty", + "buhls", + "buhrs", + "buiks", + "buist", + "bukes", + "bulbs", + "bulgy", + "bulks", + "bulla", + "bulls", + "bulse", + "bumbo", + "bumfs", + "bumph", + "bumps", + "bumpy", + "bunas", + "bunce", + "bunco", + "bunde", + "bundh", + "bunds", + "bundt", + "bundu", + "bundy", + "bungs", + "bungy", + "bunia", + "bunje", + "bunjy", + "bunko", + "bunks", + "bunns", + "bunts", + "bunty", + "bunya", + "buoys", + "buppy", + "buran", + "buras", + "burbs", + "burds", + "buret", + "burfi", + "burgh", + "burgs", + "burin", + "burka", + "burke", + "burks", + "burls", + "burns", + "buroo", + "burps", + "burqa", + "burro", + "burrs", + "burry", + "bursa", + "burse", + "busby", + "buses", + "busks", + "busky", + "bussu", + "busti", + "busts", + "busty", + "buteo", + "butes", + "butle", + "butoh", + "butts", + "butty", + "butut", + "butyl", + "buzzy", + "bwana", + "bwazi", + "byded", + "bydes", + "byked", + "bykes", + "byres", + "byrls", + "byssi", + "bytes", + "byway", + "caaed", + "cabas", + "caber", + "cabob", + "caboc", + "cabre", + "cacas", + "cacks", + "cacky", + "cadee", + "cades", + "cadge", + "cadgy", + "cadie", + "cadis", + "cadre", + "caeca", + "caese", + "cafes", + "caffs", + "caged", + "cager", + "cages", + "cagot", + "cahow", + "caids", + "cains", + "caird", + "cajon", + "cajun", + "caked", + "cakes", + "cakey", + "calfs", + "calid", + "calif", + "calix", + "calks", + "calla", + "calls", + "calms", + "calmy", + "calos", + "calpa", + "calps", + "calve", + "calyx", + "caman", + "camas", + "cames", + "camis", + "camos", + "campi", + "campo", + "camps", + "campy", + "camus", + "caned", + "caneh", + "caner", + "canes", + "cangs", + "canid", + "canna", + "canns", + "canso", + "canst", + "canto", + "cants", + "canty", + "capas", + "caped", + "capes", + "capex", + "caphs", + "capiz", + "caple", + "capon", + "capos", + "capot", + "capri", + "capul", + "carap", + "carbo", + "carbs", + "carby", + "cardi", + "cards", + "cardy", + "cared", + "carer", + "cares", + "caret", + "carex", + "carks", + "carle", + "carls", + "carns", + "carny", + "carob", + "carom", + "caron", + "carpi", + "carps", + "carrs", + "carse", + "carta", + "carte", + "carts", + "carvy", + "casas", + "casco", + "cased", + "cases", + "casks", + "casky", + "casts", + "casus", + "cates", + "cauda", + "cauks", + "cauld", + "cauls", + "caums", + "caups", + "cauri", + "causa", + "cavas", + "caved", + "cavel", + "caver", + "caves", + "cavie", + "cawed", + "cawks", + "caxon", + "ceaze", + "cebid", + "cecal", + "cecum", + "ceded", + "ceder", + "cedes", + "cedis", + "ceiba", + "ceili", + "ceils", + "celeb", + "cella", + "celli", + "cells", + "celom", + "celts", + "cense", + "cento", + "cents", + "centu", + "ceorl", + "cepes", + "cerci", + "cered", + "ceres", + "cerge", + "ceria", + "ceric", + "cerne", + "ceroc", + "ceros", + "certs", + "certy", + "cesse", + "cesta", + "cesti", + "cetes", + "cetyl", + "cezve", + "chace", + "chack", + "chaco", + "chado", + "chads", + "chaft", + "chais", + "chals", + "chams", + "chana", + "chang", + "chank", + "chape", + "chaps", + "chapt", + "chara", + "chare", + "chark", + "charr", + "chars", + "chary", + "chats", + "chave", + "chavs", + "chawk", + "chaws", + "chaya", + "chays", + "cheep", + "chefs", + "cheka", + "chela", + "chelp", + "chemo", + "chems", + "chere", + "chert", + "cheth", + "chevy", + "chews", + "chewy", + "chiao", + "chias", + "chibs", + "chica", + "chich", + "chico", + "chics", + "chiel", + "chiks", + "chile", + "chimb", + "chimo", + "chimp", + "chine", + "ching", + "chink", + "chino", + "chins", + "chips", + "chirk", + "chirl", + "chirm", + "chiro", + "chirr", + "chirt", + "chiru", + "chits", + "chive", + "chivs", + "chivy", + "chizz", + "choco", + "chocs", + "chode", + "chogs", + "choil", + "choko", + "choky", + "chola", + "choli", + "cholo", + "chomp", + "chons", + "choof", + "chook", + "choom", + "choon", + "chops", + "chota", + "chott", + "chout", + "choux", + "chowk", + "chows", + "chubs", + "chufa", + "chuff", + "chugs", + "chums", + "churl", + "churr", + "chuse", + "chuts", + "chyle", + "chyme", + "chynd", + "cibol", + "cided", + "cides", + "ciels", + "ciggy", + "cilia", + "cills", + "cimar", + "cimex", + "cinct", + "cines", + "cinqs", + "cions", + "cippi", + "circs", + "cires", + "cirls", + "cirri", + "cisco", + "cissy", + "cists", + "cital", + "cited", + "citer", + "cites", + "cives", + "civet", + "civie", + "civvy", + "clach", + "clade", + "clads", + "claes", + "clags", + "clame", + "clams", + "clans", + "claps", + "clapt", + "claro", + "clart", + "clary", + "clast", + "clats", + "claut", + "clave", + "clavi", + "claws", + "clays", + "cleck", + "cleek", + "cleep", + "clefs", + "clegs", + "cleik", + "clems", + "clepe", + "clept", + "cleve", + "clews", + "clied", + "clies", + "clift", + "clime", + "cline", + "clint", + "clipe", + "clips", + "clipt", + "clits", + "cloam", + "clods", + "cloff", + "clogs", + "cloke", + "clomb", + "clomp", + "clonk", + "clons", + "cloop", + "cloot", + "clops", + "clote", + "clots", + "clour", + "clous", + "clows", + "cloye", + "cloys", + "cloze", + "clubs", + "clues", + "cluey", + "clunk", + "clype", + "cnida", + "coact", + "coady", + "coala", + "coals", + "coaly", + "coapt", + "coarb", + "coate", + "coati", + "coats", + "cobbs", + "cobby", + "cobia", + "coble", + "cobza", + "cocas", + "cocci", + "cocco", + "cocks", + "cocky", + "cocos", + "codas", + "codec", + "coded", + "coden", + "coder", + "codes", + "codex", + "codon", + "coeds", + "coffs", + "cogie", + "cogon", + "cogue", + "cohab", + "cohen", + "cohoe", + "cohog", + "cohos", + "coifs", + "coign", + "coils", + "coins", + "coirs", + "coits", + "coked", + "cokes", + "colas", + "colby", + "colds", + "coled", + "coles", + "coley", + "colic", + "colin", + "colls", + "colly", + "colog", + "colts", + "colza", + "comae", + "comal", + "comas", + "combe", + "combi", + "combo", + "combs", + "comby", + "comer", + "comes", + "comix", + "commo", + "comms", + "commy", + "compo", + "comps", + "compt", + "comte", + "comus", + "coned", + "cones", + "coney", + "confs", + "conga", + "conge", + "congo", + "conia", + "conin", + "conks", + "conky", + "conne", + "conns", + "conte", + "conto", + "conus", + "convo", + "cooch", + "cooed", + "cooee", + "cooer", + "cooey", + "coofs", + "cooks", + "cooky", + "cools", + "cooly", + "coomb", + "cooms", + "coomy", + "coons", + "coops", + "coopt", + "coost", + "coots", + "cooze", + "copal", + "copay", + "coped", + "copen", + "coper", + "copes", + "coppy", + "copra", + "copsy", + "coqui", + "coram", + "corbe", + "corby", + "cords", + "cored", + "cores", + "corey", + "corgi", + "coria", + "corks", + "corky", + "corms", + "corni", + "corno", + "corns", + "cornu", + "corps", + "corse", + "corso", + "cosec", + "cosed", + "coses", + "coset", + "cosey", + "cosie", + "costa", + "coste", + "costs", + "cotan", + "coted", + "cotes", + "coths", + "cotta", + "cotts", + "coude", + "coups", + "courb", + "courd", + "coure", + "cours", + "couta", + "couth", + "coved", + "coves", + "covin", + "cowal", + "cowan", + "cowed", + "cowks", + "cowls", + "cowps", + "cowry", + "coxae", + "coxal", + "coxed", + "coxes", + "coxib", + "coyau", + "coyed", + "coyer", + "coypu", + "cozed", + "cozen", + "cozes", + "cozey", + "cozie", + "craal", + "crabs", + "crags", + "craic", + "craig", + "crake", + "crame", + "crams", + "crans", + "crape", + "craps", + "crapy", + "crare", + "craws", + "crays", + "creds", + "creel", + "crees", + "crems", + "crena", + "creps", + "crepy", + "crewe", + "crews", + "crias", + "cribs", + "cries", + "crims", + "crine", + "crios", + "cripe", + "crips", + "crise", + "crith", + "crits", + "croci", + "crocs", + "croft", + "crogs", + "cromb", + "crome", + "cronk", + "crons", + "crool", + "croon", + "crops", + "crore", + "crost", + "crout", + "crows", + "croze", + "cruck", + "crudo", + "cruds", + "crudy", + "crues", + "cruet", + "cruft", + "crunk", + "cruor", + "crura", + "cruse", + "crusy", + "cruve", + "crwth", + "cryer", + "ctene", + "cubby", + "cubeb", + "cubed", + "cuber", + "cubes", + "cubit", + "cuddy", + "cuffo", + "cuffs", + "cuifs", + "cuing", + "cuish", + "cuits", + "cukes", + "culch", + "culet", + "culex", + "culls", + "cully", + "culms", + "culpa", + "culti", + "cults", + "culty", + "cumec", + "cundy", + "cunei", + "cunit", + "cunts", + "cupel", + "cupid", + "cuppa", + "cuppy", + "curat", + "curbs", + "curch", + "curds", + "curdy", + "cured", + "curer", + "cures", + "curet", + "curfs", + "curia", + "curie", + "curli", + "curls", + "curns", + "curny", + "currs", + "cursi", + "curst", + "cusec", + "cushy", + "cusks", + "cusps", + "cuspy", + "cusso", + "cusum", + "cutch", + "cuter", + "cutes", + "cutey", + "cutin", + "cutis", + "cutto", + "cutty", + "cutup", + "cuvee", + "cuzes", + "cwtch", + "cyano", + "cyans", + "cycad", + "cycas", + "cyclo", + "cyder", + "cylix", + "cymae", + "cymar", + "cymas", + "cymes", + "cymol", + "cysts", + "cytes", + "cyton", + "czars", + "daals", + "dabba", + "daces", + "dacha", + "dacks", + "dadah", + "dadas", + "dados", + "daffs", + "daffy", + "dagga", + "daggy", + "dagos", + "dahls", + "daiko", + "daine", + "daint", + "daker", + "daled", + "dales", + "dalis", + "dalle", + "dalts", + "daman", + "damar", + "dames", + "damme", + "damns", + "damps", + "dampy", + "dancy", + "dangs", + "danio", + "danks", + "danny", + "dants", + "daraf", + "darbs", + "darcy", + "dared", + "darer", + "dares", + "darga", + "dargs", + "daric", + "daris", + "darks", + "darky", + "darns", + "darre", + "darts", + "darzi", + "dashi", + "dashy", + "datal", + "dated", + "dater", + "dates", + "datos", + "datto", + "daube", + "daubs", + "dauby", + "dauds", + "dault", + "daurs", + "dauts", + "daven", + "davit", + "dawah", + "dawds", + "dawed", + "dawen", + "dawks", + "dawns", + "dawts", + "dayan", + "daych", + "daynt", + "dazed", + "dazer", + "dazes", + "deads", + "deair", + "deals", + "deans", + "deare", + "dearn", + "dears", + "deary", + "deash", + "deave", + "deaws", + "deawy", + "debag", + "debby", + "debel", + "debes", + "debts", + "debud", + "debur", + "debus", + "debye", + "decad", + "decaf", + "decan", + "decko", + "decks", + "decos", + "dedal", + "deeds", + "deedy", + "deely", + "deems", + "deens", + "deeps", + "deere", + "deers", + "deets", + "deeve", + "deevs", + "defat", + "deffo", + "defis", + "defog", + "degas", + "degum", + "degus", + "deice", + "deids", + "deify", + "deils", + "deism", + "deist", + "deked", + "dekes", + "dekko", + "deled", + "deles", + "delfs", + "delft", + "delis", + "dells", + "delly", + "delos", + "delph", + "delts", + "deman", + "demes", + "demic", + "demit", + "demob", + "demoi", + "demos", + "dempt", + "denar", + "denay", + "dench", + "denes", + "denet", + "denis", + "dents", + "deoxy", + "derat", + "deray", + "dered", + "deres", + "derig", + "derma", + "derms", + "derns", + "derny", + "deros", + "derro", + "derry", + "derth", + "dervs", + "desex", + "deshi", + "desis", + "desks", + "desse", + "devas", + "devel", + "devis", + "devon", + "devos", + "devot", + "dewan", + "dewar", + "dewax", + "dewed", + "dexes", + "dexie", + "dhaba", + "dhaks", + "dhals", + "dhikr", + "dhobi", + "dhole", + "dholl", + "dhols", + "dhoti", + "dhows", + "dhuti", + "diact", + "dials", + "diane", + "diazo", + "dibbs", + "diced", + "dicer", + "dices", + "dicht", + "dicks", + "dicky", + "dicot", + "dicta", + "dicts", + "dicty", + "diddy", + "didie", + "didos", + "didst", + "diebs", + "diels", + "diene", + "diets", + "diffs", + "dight", + "dikas", + "diked", + "diker", + "dikes", + "dikey", + "dildo", + "dilli", + "dills", + "dimbo", + "dimer", + "dimes", + "dimps", + "dinar", + "dined", + "dines", + "dinge", + "dings", + "dinic", + "dinks", + "dinky", + "dinna", + "dinos", + "dints", + "diols", + "diota", + "dippy", + "dipso", + "diram", + "direr", + "dirke", + "dirks", + "dirls", + "dirts", + "disas", + "disci", + "discs", + "dishy", + "disks", + "disme", + "dital", + "ditas", + "dited", + "dites", + "ditsy", + "ditts", + "ditzy", + "divan", + "divas", + "dived", + "dives", + "divis", + "divna", + "divos", + "divot", + "divvy", + "diwan", + "dixie", + "dixit", + "diyas", + "dizen", + "djinn", + "djins", + "doabs", + "doats", + "dobby", + "dobes", + "dobie", + "dobla", + "dobra", + "dobro", + "docht", + "docks", + "docos", + "docus", + "doddy", + "dodos", + "doeks", + "doers", + "doest", + "doeth", + "doffs", + "dogan", + "doges", + "dogey", + "doggo", + "doggy", + "dogie", + "dohyo", + "doilt", + "doily", + "doits", + "dojos", + "dolce", + "dolci", + "doled", + "doles", + "dolia", + "dolls", + "dolma", + "dolor", + "dolos", + "dolts", + "domal", + "domed", + "domes", + "domic", + "donah", + "donas", + "donee", + "doner", + "donga", + "dongs", + "donko", + "donna", + "donne", + "donny", + "donsy", + "doobs", + "dooce", + "doody", + "dooks", + "doole", + "dools", + "dooly", + "dooms", + "doomy", + "doona", + "doorn", + "doors", + "doozy", + "dopas", + "doped", + "doper", + "dopes", + "dorad", + "dorba", + "dorbs", + "doree", + "dores", + "doric", + "doris", + "dorks", + "dorky", + "dorms", + "dormy", + "dorps", + "dorrs", + "dorsa", + "dorse", + "dorts", + "dorty", + "dosai", + "dosas", + "dosed", + "doseh", + "doser", + "doses", + "dosha", + "dotal", + "doted", + "doter", + "dotes", + "dotty", + "douar", + "douce", + "doucs", + "douks", + "doula", + "douma", + "doums", + "doups", + "doura", + "douse", + "douts", + "doved", + "doven", + "dover", + "doves", + "dovie", + "dowar", + "dowds", + "dowed", + "dower", + "dowie", + "dowle", + "dowls", + "dowly", + "downa", + "downs", + "dowps", + "dowse", + "dowts", + "doxed", + "doxes", + "doxie", + "doyen", + "doyly", + "dozed", + "dozer", + "dozes", + "drabs", + "drack", + "draco", + "draff", + "drags", + "drail", + "drams", + "drant", + "draps", + "drats", + "drave", + "draws", + "drays", + "drear", + "dreck", + "dreed", + "dreer", + "drees", + "dregs", + "dreks", + "drent", + "drere", + "drest", + "dreys", + "dribs", + "drice", + "dries", + "drily", + "drips", + "dript", + "droid", + "droil", + "droke", + "drole", + "drome", + "drony", + "droob", + "droog", + "drook", + "drops", + "dropt", + "drouk", + "drows", + "drubs", + "drugs", + "drums", + "drupe", + "druse", + "drusy", + "druxy", + "dryad", + "dryas", + "dsobo", + "dsomo", + "duads", + "duals", + "duans", + "duars", + "dubbo", + "ducal", + "ducat", + "duces", + "ducks", + "ducky", + "ducts", + "duddy", + "duded", + "dudes", + "duels", + "duets", + "duett", + "duffs", + "dufus", + "duing", + "duits", + "dukas", + "duked", + "dukes", + "dukka", + "dulce", + "dules", + "dulia", + "dulls", + "dulse", + "dumas", + "dumbo", + "dumbs", + "dumka", + "dumky", + "dumps", + "dunam", + "dunch", + "dunes", + "dungs", + "dungy", + "dunks", + "dunno", + "dunny", + "dunsh", + "dunts", + "duomi", + "duomo", + "duped", + "duper", + "dupes", + "duple", + "duply", + "duppy", + "dural", + "duras", + "dured", + "dures", + "durgy", + "durns", + "duroc", + "duros", + "duroy", + "durra", + "durrs", + "durry", + "durst", + "durum", + "durzi", + "dusks", + "dusts", + "duxes", + "dwaal", + "dwale", + "dwalm", + "dwams", + "dwang", + "dwaum", + "dweeb", + "dwile", + "dwine", + "dyads", + "dyers", + "dyked", + "dykes", + "dykey", + "dykon", + "dynel", + "dynes", + "dzhos", + "eagre", + "ealed", + "eales", + "eaned", + "eards", + "eared", + "earls", + "earns", + "earnt", + "earst", + "eased", + "easer", + "eases", + "easle", + "easts", + "eathe", + "eaved", + "eaves", + "ebbed", + "ebbet", + "ebons", + "ebook", + "ecads", + "eched", + "eches", + "echos", + "ecrus", + "edema", + "edged", + "edger", + "edges", + "edile", + "edits", + "educe", + "educt", + "eejit", + "eensy", + "eeven", + "eevns", + "effed", + "egads", + "egers", + "egest", + "eggar", + "egged", + "egger", + "egmas", + "ehing", + "eider", + "eidos", + "eigne", + "eiked", + "eikon", + "eilds", + "eisel", + "ejido", + "ekkas", + "elain", + "eland", + "elans", + "elchi", + "eldin", + "elemi", + "elfed", + "eliad", + "elint", + "elmen", + "eloge", + "elogy", + "eloin", + "elops", + "elpee", + "elsin", + "elute", + "elvan", + "elven", + "elver", + "elves", + "emacs", + "embar", + "embay", + "embog", + "embow", + "embox", + "embus", + "emeer", + "emend", + "emerg", + "emery", + "emeus", + "emics", + "emirs", + "emits", + "emmas", + "emmer", + "emmet", + "emmew", + "emmys", + "emoji", + "emong", + "emote", + "emove", + "empts", + "emule", + "emure", + "emyde", + "emyds", + "enarm", + "enate", + "ended", + "ender", + "endew", + "endue", + "enews", + "enfix", + "eniac", + "enlit", + "enmew", + "ennog", + "enoki", + "enols", + "enorm", + "enows", + "enrol", + "ensew", + "ensky", + "entia", + "enure", + "enurn", + "envoi", + "enzym", + "eorls", + "eosin", + "epact", + "epees", + "ephah", + "ephas", + "ephod", + "ephor", + "epics", + "epode", + "epopt", + "epris", + "eques", + "equid", + "erbia", + "erevs", + "ergon", + "ergos", + "ergot", + "erhus", + "erica", + "erick", + "erics", + "ering", + "erned", + "ernes", + "erose", + "erred", + "erses", + "eruct", + "erugo", + "eruvs", + "erven", + "ervil", + "escar", + "escot", + "esile", + "eskar", + "esker", + "esnes", + "esses", + "estoc", + "estop", + "estro", + "etage", + "etape", + "etats", + "etens", + "ethal", + "ethne", + "ethyl", + "etics", + "etnas", + "ettin", + "ettle", + "etuis", + "etwee", + "etyma", + "eughs", + "euked", + "eupad", + "euros", + "eusol", + "evens", + "evert", + "evets", + "evhoe", + "evils", + "evite", + "evohe", + "ewers", + "ewest", + "ewhow", + "ewked", + "exams", + "exeat", + "execs", + "exeem", + "exeme", + "exfil", + "exies", + "exine", + "exing", + "exits", + "exode", + "exome", + "exons", + "expat", + "expos", + "exude", + "exuls", + "exurb", + "eyass", + "eyers", + "eyots", + "eyras", + "eyres", + "eyrie", + "eyrir", + "ezine", + "fabby", + "faced", + "facer", + "faces", + "facia", + "facta", + "facts", + "faddy", + "faded", + "fader", + "fades", + "fadge", + "fados", + "faena", + "faery", + "faffs", + "faffy", + "faggy", + "fagin", + "fagot", + "faiks", + "fails", + "faine", + "fains", + "fairs", + "faked", + "faker", + "fakes", + "fakey", + "fakie", + "fakir", + "falaj", + "falls", + "famed", + "fames", + "fanal", + "fands", + "fanes", + "fanga", + "fango", + "fangs", + "fanks", + "fanon", + "fanos", + "fanum", + "faqir", + "farad", + "farci", + "farcy", + "fards", + "fared", + "farer", + "fares", + "farle", + "farls", + "farms", + "faros", + "farro", + "farse", + "farts", + "fasci", + "fasti", + "fasts", + "fated", + "fates", + "fatly", + "fatso", + "fatwa", + "faugh", + "fauld", + "fauns", + "faurd", + "fauts", + "fauve", + "favas", + "favel", + "faver", + "faves", + "favus", + "fawns", + "fawny", + "faxed", + "faxes", + "fayed", + "fayer", + "fayne", + "fayre", + "fazed", + "fazes", + "feals", + "feare", + "fears", + "feart", + "fease", + "feats", + "feaze", + "feces", + "fecht", + "fecit", + "fecks", + "fedex", + "feebs", + "feeds", + "feels", + "feens", + "feers", + "feese", + "feeze", + "fehme", + "feint", + "feist", + "felch", + "felid", + "fells", + "felly", + "felts", + "felty", + "femal", + "femes", + "femmy", + "fends", + "fendy", + "fenis", + "fenks", + "fenny", + "fents", + "feods", + "feoff", + "ferer", + "feres", + "feria", + "ferly", + "fermi", + "ferms", + "ferns", + "ferny", + "fesse", + "festa", + "fests", + "festy", + "fetas", + "feted", + "fetes", + "fetor", + "fetta", + "fetts", + "fetwa", + "feuar", + "feuds", + "feued", + "feyed", + "feyer", + "feyly", + "fezes", + "fezzy", + "fiars", + "fiats", + "fibro", + "fices", + "fiche", + "fichu", + "ficin", + "ficos", + "fides", + "fidge", + "fidos", + "fiefs", + "fient", + "fiere", + "fiers", + "fiest", + "fifed", + "fifer", + "fifes", + "fifis", + "figgy", + "figos", + "fiked", + "fikes", + "filar", + "filch", + "filed", + "files", + "filii", + "filks", + "fille", + "fillo", + "fills", + "filmi", + "films", + "filos", + "filum", + "finca", + "finds", + "fined", + "fines", + "finis", + "finks", + "finny", + "finos", + "fiord", + "fiqhs", + "fique", + "fired", + "firer", + "fires", + "firie", + "firks", + "firms", + "firns", + "firry", + "firth", + "fiscs", + "fisks", + "fists", + "fisty", + "fitch", + "fitly", + "fitna", + "fitte", + "fitts", + "fiver", + "fives", + "fixed", + "fixes", + "fixit", + "fjeld", + "flabs", + "flaff", + "flags", + "flaks", + "flamm", + "flams", + "flamy", + "flane", + "flans", + "flaps", + "flary", + "flats", + "flava", + "flawn", + "flaws", + "flawy", + "flaxy", + "flays", + "fleam", + "fleas", + "fleek", + "fleer", + "flees", + "flegs", + "fleme", + "fleur", + "flews", + "flexi", + "flexo", + "fleys", + "flics", + "flied", + "flies", + "flimp", + "flims", + "flips", + "flirs", + "flisk", + "flite", + "flits", + "flitt", + "flobs", + "flocs", + "floes", + "flogs", + "flong", + "flops", + "flors", + "flory", + "flosh", + "flota", + "flote", + "flows", + "flubs", + "flued", + "flues", + "fluey", + "fluky", + "flump", + "fluor", + "flurr", + "fluty", + "fluyt", + "flyby", + "flype", + "flyte", + "foals", + "foams", + "foehn", + "fogey", + "fogie", + "fogle", + "fogou", + "fohns", + "foids", + "foils", + "foins", + "folds", + "foley", + "folia", + "folic", + "folie", + "folks", + "folky", + "fomes", + "fonda", + "fonds", + "fondu", + "fones", + "fonly", + "fonts", + "foods", + "foody", + "fools", + "foots", + "footy", + "foram", + "forbs", + "forby", + "fordo", + "fords", + "forel", + "fores", + "forex", + "forks", + "forky", + "forme", + "forms", + "forts", + "forza", + "forze", + "fossa", + "fosse", + "fouat", + "fouds", + "fouer", + "fouet", + "foule", + "fouls", + "fount", + "fours", + "fouth", + "fovea", + "fowls", + "fowth", + "foxed", + "foxes", + "foxie", + "foyle", + "foyne", + "frabs", + "frack", + "fract", + "frags", + "fraim", + "franc", + "frape", + "fraps", + "frass", + "frate", + "frati", + "frats", + "fraus", + "frays", + "frees", + "freet", + "freit", + "fremd", + "frena", + "freon", + "frere", + "frets", + "fribs", + "frier", + "fries", + "frigs", + "frise", + "frist", + "frith", + "frits", + "fritt", + "frize", + "frizz", + "froes", + "frogs", + "frons", + "frore", + "frorn", + "frory", + "frosh", + "frows", + "frowy", + "frugs", + "frump", + "frush", + "frust", + "fryer", + "fubar", + "fubby", + "fubsy", + "fucks", + "fucus", + "fuddy", + "fudgy", + "fuels", + "fuero", + "fuffs", + "fuffy", + "fugal", + "fuggy", + "fugie", + "fugio", + "fugle", + "fugly", + "fugus", + "fujis", + "fulls", + "fumed", + "fumer", + "fumes", + "fumet", + "fundi", + "funds", + "fundy", + "fungo", + "fungs", + "funks", + "fural", + "furan", + "furca", + "furls", + "furol", + "furrs", + "furth", + "furze", + "furzy", + "fused", + "fusee", + "fusel", + "fuses", + "fusil", + "fusks", + "fusts", + "fusty", + "futon", + "fuzed", + "fuzee", + "fuzes", + "fuzil", + "fyces", + "fyked", + "fykes", + "fyles", + "fyrds", + "fytte", + "gabba", + "gabby", + "gable", + "gaddi", + "gades", + "gadge", + "gadid", + "gadis", + "gadje", + "gadjo", + "gadso", + "gaffs", + "gaged", + "gager", + "gages", + "gaids", + "gains", + "gairs", + "gaita", + "gaits", + "gaitt", + "gajos", + "galah", + "galas", + "galax", + "galea", + "galed", + "gales", + "galls", + "gally", + "galop", + "galut", + "galvo", + "gamas", + "gamay", + "gamba", + "gambe", + "gambo", + "gambs", + "gamed", + "games", + "gamey", + "gamic", + "gamin", + "gamme", + "gammy", + "gamps", + "ganch", + "gandy", + "ganef", + "ganev", + "gangs", + "ganja", + "ganof", + "gants", + "gaols", + "gaped", + "gaper", + "gapes", + "gapos", + "gappy", + "garbe", + "garbo", + "garbs", + "garda", + "gares", + "garis", + "garms", + "garni", + "garre", + "garth", + "garum", + "gases", + "gasps", + "gaspy", + "gasts", + "gatch", + "gated", + "gater", + "gates", + "gaths", + "gator", + "gauch", + "gaucy", + "gauds", + "gauje", + "gault", + "gaums", + "gaumy", + "gaups", + "gaurs", + "gauss", + "gauzy", + "gavot", + "gawcy", + "gawds", + "gawks", + "gawps", + "gawsy", + "gayal", + "gazal", + "gazar", + "gazed", + "gazes", + "gazon", + "gazoo", + "geals", + "geans", + "geare", + "gears", + "geats", + "gebur", + "gecks", + "geeks", + "geeps", + "geest", + "geist", + "geits", + "gelds", + "gelee", + "gelid", + "gelly", + "gelts", + "gemel", + "gemma", + "gemmy", + "gemot", + "genal", + "genas", + "genes", + "genet", + "genic", + "genii", + "genip", + "genny", + "genoa", + "genom", + "genro", + "gents", + "genty", + "genua", + "genus", + "geode", + "geoid", + "gerah", + "gerbe", + "geres", + "gerle", + "germs", + "germy", + "gerne", + "gesse", + "gesso", + "geste", + "gests", + "getas", + "getup", + "geums", + "geyan", + "geyer", + "ghast", + "ghats", + "ghaut", + "ghazi", + "ghees", + "ghest", + "ghyll", + "gibed", + "gibel", + "giber", + "gibes", + "gibli", + "gibus", + "gifts", + "gigas", + "gighe", + "gigot", + "gigue", + "gilas", + "gilds", + "gilet", + "gills", + "gilly", + "gilpy", + "gilts", + "gimel", + "gimme", + "gimps", + "gimpy", + "ginch", + "ginge", + "gings", + "ginks", + "ginny", + "ginzo", + "gipon", + "gippo", + "gippy", + "girds", + "girls", + "girns", + "giron", + "giros", + "girrs", + "girsh", + "girts", + "gismo", + "gisms", + "gists", + "gitch", + "gites", + "giust", + "gived", + "gives", + "gizmo", + "glace", + "glads", + "glady", + "glaik", + "glair", + "glams", + "glans", + "glary", + "glaum", + "glaur", + "glazy", + "gleba", + "glebe", + "gleby", + "glede", + "gleds", + "gleed", + "gleek", + "glees", + "gleet", + "gleis", + "glens", + "glent", + "gleys", + "glial", + "glias", + "glibs", + "gliff", + "glift", + "glike", + "glime", + "glims", + "glisk", + "glits", + "glitz", + "gloam", + "globi", + "globs", + "globy", + "glode", + "glogg", + "gloms", + "gloop", + "glops", + "glost", + "glout", + "glows", + "gloze", + "glued", + "gluer", + "glues", + "gluey", + "glugs", + "glume", + "glums", + "gluon", + "glute", + "gluts", + "gnarl", + "gnarr", + "gnars", + "gnats", + "gnawn", + "gnaws", + "gnows", + "goads", + "goafs", + "goals", + "goary", + "goats", + "goaty", + "goban", + "gobar", + "gobbi", + "gobbo", + "gobby", + "gobis", + "gobos", + "godet", + "godso", + "goels", + "goers", + "goest", + "goeth", + "goety", + "gofer", + "goffs", + "gogga", + "gogos", + "goier", + "gojis", + "golds", + "goldy", + "goles", + "golfs", + "golpe", + "golps", + "gombo", + "gomer", + "gompa", + "gonch", + "gonef", + "gongs", + "gonia", + "gonif", + "gonks", + "gonna", + "gonof", + "gonys", + "gonzo", + "gooby", + "goods", + "goofs", + "googs", + "gooks", + "gooky", + "goold", + "gools", + "gooly", + "goons", + "goony", + "goops", + "goopy", + "goors", + "goory", + "goosy", + "gopak", + "gopik", + "goral", + "goras", + "gored", + "gores", + "goris", + "gorms", + "gormy", + "gorps", + "gorse", + "gorsy", + "gosht", + "gosse", + "gotch", + "goths", + "gothy", + "gotta", + "gouch", + "gouks", + "goura", + "gouts", + "gouty", + "gowan", + "gowds", + "gowfs", + "gowks", + "gowls", + "gowns", + "goxes", + "goyim", + "goyle", + "graal", + "grabs", + "grads", + "graff", + "graip", + "grama", + "grame", + "gramp", + "grams", + "grana", + "grans", + "grapy", + "gravs", + "grays", + "grebe", + "grebo", + "grece", + "greek", + "grees", + "grege", + "grego", + "grein", + "grens", + "grese", + "greve", + "grews", + "greys", + "grice", + "gride", + "grids", + "griff", + "grift", + "grigs", + "grike", + "grins", + "griot", + "grips", + "gript", + "gripy", + "grise", + "grist", + "grisy", + "grith", + "grits", + "grize", + "groat", + "grody", + "grogs", + "groks", + "groma", + "grone", + "groof", + "grosz", + "grots", + "grouf", + "grovy", + "grows", + "grrls", + "grrrl", + "grubs", + "grued", + "grues", + "grufe", + "grume", + "grump", + "grund", + "gryce", + "gryde", + "gryke", + "grype", + "grypt", + "guaco", + "guana", + "guano", + "guans", + "guars", + "gucks", + "gucky", + "gudes", + "guffs", + "gugas", + "guids", + "guimp", + "guiro", + "gulag", + "gular", + "gulas", + "gules", + "gulet", + "gulfs", + "gulfy", + "gulls", + "gulph", + "gulps", + "gulpy", + "gumma", + "gummi", + "gumps", + "gundy", + "gunge", + "gungy", + "gunks", + "gunky", + "gunny", + "guqin", + "gurdy", + "gurge", + "gurls", + "gurly", + "gurns", + "gurry", + "gursh", + "gurus", + "gushy", + "gusla", + "gusle", + "gusli", + "gussy", + "gusts", + "gutsy", + "gutta", + "gutty", + "guyed", + "guyle", + "guyot", + "guyse", + "gwine", + "gyals", + "gyans", + "gybed", + "gybes", + "gyeld", + "gymps", + "gynae", + "gynie", + "gynny", + "gynos", + "gyoza", + "gypos", + "gyppo", + "gyppy", + "gyral", + "gyred", + "gyres", + "gyron", + "gyros", + "gyrus", + "gytes", + "gyved", + "gyves", + "haafs", + "haars", + "hable", + "habus", + "hacek", + "hacks", + "hadal", + "haded", + "hades", + "hadji", + "hadst", + "haems", + "haets", + "haffs", + "hafiz", + "hafts", + "haggs", + "hahas", + "haick", + "haika", + "haiks", + "haiku", + "hails", + "haily", + "hains", + "haint", + "hairs", + "haith", + "hajes", + "hajis", + "hajji", + "hakam", + "hakas", + "hakea", + "hakes", + "hakim", + "hakus", + "halal", + "haled", + "haler", + "hales", + "halfa", + "halfs", + "halid", + "hallo", + "halls", + "halma", + "halms", + "halon", + "halos", + "halse", + "halts", + "halva", + "halwa", + "hamal", + "hamba", + "hamed", + "hames", + "hammy", + "hamza", + "hanap", + "hance", + "hanch", + "hands", + "hangi", + "hangs", + "hanks", + "hanky", + "hansa", + "hanse", + "hants", + "haole", + "haoma", + "hapax", + "haply", + "happi", + "hapus", + "haram", + "hards", + "hared", + "hares", + "harim", + "harks", + "harls", + "harms", + "harns", + "haros", + "harps", + "harts", + "hashy", + "hasks", + "hasps", + "hasta", + "hated", + "hates", + "hatha", + "hauds", + "haufs", + "haugh", + "hauld", + "haulm", + "hauls", + "hault", + "hauns", + "hause", + "haver", + "haves", + "hawed", + "hawks", + "hawms", + "hawse", + "hayed", + "hayer", + "hayey", + "hayle", + "hazan", + "hazed", + "hazer", + "hazes", + "heads", + "heald", + "heals", + "heame", + "heaps", + "heapy", + "heare", + "hears", + "heast", + "heats", + "heben", + "hebes", + "hecht", + "hecks", + "heder", + "hedgy", + "heeds", + "heedy", + "heels", + "heeze", + "hefte", + "hefts", + "heids", + "heigh", + "heils", + "heirs", + "hejab", + "hejra", + "heled", + "heles", + "helio", + "hells", + "helms", + "helos", + "helot", + "helps", + "helve", + "hemal", + "hemes", + "hemic", + "hemin", + "hemps", + "hempy", + "hench", + "hends", + "henge", + "henna", + "henny", + "henry", + "hents", + "hepar", + "herbs", + "herby", + "herds", + "heres", + "herls", + "herma", + "herms", + "herns", + "heros", + "herry", + "herse", + "hertz", + "herye", + "hesps", + "hests", + "hetes", + "heths", + "heuch", + "heugh", + "hevea", + "hewed", + "hewer", + "hewgh", + "hexad", + "hexed", + "hexer", + "hexes", + "hexyl", + "heyed", + "hiant", + "hicks", + "hided", + "hider", + "hides", + "hiems", + "highs", + "hight", + "hijab", + "hijra", + "hiked", + "hiker", + "hikes", + "hikoi", + "hilar", + "hilch", + "hillo", + "hills", + "hilts", + "hilum", + "hilus", + "himbo", + "hinau", + "hinds", + "hings", + "hinky", + "hinny", + "hints", + "hiois", + "hiply", + "hired", + "hiree", + "hirer", + "hires", + "hissy", + "hists", + "hithe", + "hived", + "hiver", + "hives", + "hizen", + "hoaed", + "hoagy", + "hoars", + "hoary", + "hoast", + "hobos", + "hocks", + "hocus", + "hodad", + "hodja", + "hoers", + "hogan", + "hogen", + "hoggs", + "hoghs", + "hohed", + "hoick", + "hoied", + "hoiks", + "hoing", + "hoise", + "hokas", + "hoked", + "hokes", + "hokey", + "hokis", + "hokku", + "hokum", + "holds", + "holed", + "holes", + "holey", + "holks", + "holla", + "hollo", + "holme", + "holms", + "holon", + "holos", + "holts", + "homas", + "homed", + "homes", + "homey", + "homie", + "homme", + "homos", + "honan", + "honda", + "honds", + "honed", + "honer", + "hones", + "hongi", + "hongs", + "honks", + "honky", + "hooch", + "hoods", + "hoody", + "hooey", + "hoofs", + "hooka", + "hooks", + "hooky", + "hooly", + "hoons", + "hoops", + "hoord", + "hoors", + "hoosh", + "hoots", + "hooty", + "hoove", + "hopak", + "hoped", + "hoper", + "hopes", + "hoppy", + "horah", + "horal", + "horas", + "horis", + "horks", + "horme", + "horns", + "horst", + "horsy", + "hosed", + "hosel", + "hosen", + "hoser", + "hoses", + "hosey", + "hosta", + "hosts", + "hotch", + "hoten", + "hotty", + "houff", + "houfs", + "hough", + "houri", + "hours", + "houts", + "hovea", + "hoved", + "hoven", + "hoves", + "howbe", + "howes", + "howff", + "howfs", + "howks", + "howls", + "howre", + "howso", + "hoxed", + "hoxes", + "hoyas", + "hoyed", + "hoyle", + "hubby", + "hucks", + "hudna", + "hudud", + "huers", + "huffs", + "huffy", + "huger", + "huggy", + "huhus", + "huias", + "hulas", + "hules", + "hulks", + "hulky", + "hullo", + "hulls", + "hully", + "humas", + "humfs", + "humic", + "humps", + "humpy", + "hunks", + "hunts", + "hurds", + "hurls", + "hurly", + "hurra", + "hurst", + "hurts", + "hushy", + "husks", + "husos", + "hutia", + "huzza", + "huzzy", + "hwyls", + "hydra", + "hyens", + "hygge", + "hying", + "hykes", + "hylas", + "hyleg", + "hyles", + "hylic", + "hymns", + "hynde", + "hyoid", + "hyped", + "hypes", + "hypha", + "hyphy", + "hypos", + "hyrax", + "hyson", + "hythe", + "iambi", + "iambs", + "ibrik", + "icers", + "iched", + "iches", + "ichor", + "icier", + "icker", + "ickle", + "icons", + "ictal", + "ictic", + "ictus", + "idant", + "ideas", + "idees", + "ident", + "idled", + "idles", + "idola", + "idols", + "idyls", + "iftar", + "igapo", + "igged", + "iglus", + "ihram", + "ikans", + "ikats", + "ikons", + "ileac", + "ileal", + "ileum", + "ileus", + "iliad", + "ilial", + "ilium", + "iller", + "illth", + "imago", + "imams", + "imari", + "imaum", + "imbar", + "imbed", + "imide", + "imido", + "imids", + "imine", + "imino", + "immew", + "immit", + "immix", + "imped", + "impis", + "impot", + "impro", + "imshi", + "imshy", + "inapt", + "inarm", + "inbye", + "incel", + "incle", + "incog", + "incus", + "incut", + "indew", + "india", + "indie", + "indol", + "indow", + "indri", + "indue", + "inerm", + "infix", + "infos", + "infra", + "ingan", + "ingle", + "inion", + "inked", + "inker", + "inkle", + "inned", + "innit", + "inorb", + "inrun", + "inset", + "inspo", + "intel", + "intil", + "intis", + "intra", + "inula", + "inure", + "inurn", + "inust", + "invar", + "inwit", + "iodic", + "iodid", + "iodin", + "iotas", + "ippon", + "irade", + "irids", + "iring", + "irked", + "iroko", + "irone", + "irons", + "isbas", + "ishes", + "isled", + "isles", + "isnae", + "issei", + "istle", + "items", + "ither", + "ivied", + "ivies", + "ixias", + "ixnay", + "ixora", + "ixtle", + "izard", + "izars", + "izzat", + "jaaps", + "jabot", + "jacal", + "jacks", + "jacky", + "jaded", + "jades", + "jafas", + "jaffa", + "jagas", + "jager", + "jaggs", + "jaggy", + "jagir", + "jagra", + "jails", + "jaker", + "jakes", + "jakey", + "jalap", + "jalop", + "jambe", + "jambo", + "jambs", + "jambu", + "james", + "jammy", + "jamon", + "janes", + "janns", + "janny", + "janty", + "japan", + "japed", + "japer", + "japes", + "jarks", + "jarls", + "jarps", + "jarta", + "jarul", + "jasey", + "jaspe", + "jasps", + "jatos", + "jauks", + "jaups", + "javas", + "javel", + "jawan", + "jawed", + "jaxie", + "jeans", + "jeats", + "jebel", + "jedis", + "jeels", + "jeely", + "jeeps", + "jeers", + "jeeze", + "jefes", + "jeffs", + "jehad", + "jehus", + "jelab", + "jello", + "jells", + "jembe", + "jemmy", + "jenny", + "jeons", + "jerid", + "jerks", + "jerry", + "jesse", + "jests", + "jesus", + "jetes", + "jeton", + "jeune", + "jewed", + "jewie", + "jhala", + "jiaos", + "jibba", + "jibbs", + "jibed", + "jiber", + "jibes", + "jiffs", + "jiggy", + "jigot", + "jihad", + "jills", + "jilts", + "jimmy", + "jimpy", + "jingo", + "jinks", + "jinne", + "jinni", + "jinns", + "jirds", + "jirga", + "jirre", + "jisms", + "jived", + "jiver", + "jives", + "jivey", + "jnana", + "jobed", + "jobes", + "jocko", + "jocks", + "jocky", + "jocos", + "jodel", + "joeys", + "johns", + "joins", + "joked", + "jokes", + "jokey", + "jokol", + "joled", + "joles", + "jolls", + "jolts", + "jolty", + "jomon", + "jomos", + "jones", + "jongs", + "jonty", + "jooks", + "joram", + "jorum", + "jotas", + "jotty", + "jotun", + "joual", + "jougs", + "jouks", + "joule", + "jours", + "jowar", + "jowed", + "jowls", + "jowly", + "joyed", + "jubas", + "jubes", + "jucos", + "judas", + "judgy", + "judos", + "jugal", + "jugum", + "jujus", + "juked", + "jukes", + "jukus", + "julep", + "jumar", + "jumby", + "jumps", + "junco", + "junks", + "junky", + "jupes", + "jupon", + "jural", + "jurat", + "jurel", + "jures", + "justs", + "jutes", + "jutty", + "juves", + "juvie", + "kaama", + "kabab", + "kabar", + "kabob", + "kacha", + "kacks", + "kadai", + "kades", + "kadis", + "kafir", + "kagos", + "kagus", + "kahal", + "kaiak", + "kaids", + "kaies", + "kaifs", + "kaika", + "kaiks", + "kails", + "kaims", + "kaing", + "kains", + "kakas", + "kakis", + "kalam", + "kales", + "kalif", + "kalis", + "kalpa", + "kamas", + "kames", + "kamik", + "kamis", + "kamme", + "kanae", + "kanas", + "kandy", + "kaneh", + "kanes", + "kanga", + "kangs", + "kanji", + "kants", + "kanzu", + "kaons", + "kapas", + "kaphs", + "kapok", + "kapow", + "kapus", + "kaput", + "karas", + "karat", + "karks", + "karns", + "karoo", + "karos", + "karri", + "karst", + "karsy", + "karts", + "karzy", + "kasha", + "kasme", + "katal", + "katas", + "katis", + "katti", + "kaugh", + "kauri", + "kauru", + "kaury", + "kaval", + "kavas", + "kawas", + "kawau", + "kawed", + "kayle", + "kayos", + "kazis", + "kazoo", + "kbars", + "kebar", + "kebob", + "kecks", + "kedge", + "kedgy", + "keech", + "keefs", + "keeks", + "keels", + "keema", + "keeno", + "keens", + "keeps", + "keets", + "keeve", + "kefir", + "kehua", + "keirs", + "kelep", + "kelim", + "kells", + "kelly", + "kelps", + "kelpy", + "kelts", + "kelty", + "kembo", + "kembs", + "kemps", + "kempt", + "kempy", + "kenaf", + "kench", + "kendo", + "kenos", + "kente", + "kents", + "kepis", + "kerbs", + "kerel", + "kerfs", + "kerky", + "kerma", + "kerne", + "kerns", + "keros", + "kerry", + "kerve", + "kesar", + "kests", + "ketas", + "ketch", + "ketes", + "ketol", + "kevel", + "kevil", + "kexes", + "keyed", + "keyer", + "khadi", + "khafs", + "khans", + "khaph", + "khats", + "khaya", + "khazi", + "kheda", + "kheth", + "khets", + "khoja", + "khors", + "khoum", + "khuds", + "kiaat", + "kiack", + "kiang", + "kibbe", + "kibbi", + "kibei", + "kibes", + "kibla", + "kicks", + "kicky", + "kiddo", + "kiddy", + "kidel", + "kidge", + "kiefs", + "kiers", + "kieve", + "kievs", + "kight", + "kikes", + "kikoi", + "kiley", + "kilim", + "kills", + "kilns", + "kilos", + "kilps", + "kilts", + "kilty", + "kimbo", + "kinas", + "kinda", + "kinds", + "kindy", + "kines", + "kings", + "kinin", + "kinks", + "kinos", + "kiore", + "kipes", + "kippa", + "kipps", + "kirby", + "kirks", + "kirns", + "kirri", + "kisan", + "kissy", + "kists", + "kited", + "kiter", + "kites", + "kithe", + "kiths", + "kitul", + "kivas", + "kiwis", + "klang", + "klaps", + "klett", + "klick", + "klieg", + "kliks", + "klong", + "kloof", + "kluge", + "klutz", + "knags", + "knaps", + "knarl", + "knars", + "knaur", + "knawe", + "knees", + "knell", + "knish", + "knits", + "knive", + "knobs", + "knops", + "knosp", + "knots", + "knout", + "knowe", + "knows", + "knubs", + "knurl", + "knurr", + "knurs", + "knuts", + "koans", + "koaps", + "koban", + "kobos", + "koels", + "koffs", + "kofta", + "kogal", + "kohas", + "kohen", + "kohls", + "koine", + "kojis", + "kokam", + "kokas", + "koker", + "kokra", + "kokum", + "kolas", + "kolos", + "kombu", + "konbu", + "kondo", + "konks", + "kooks", + "kooky", + "koori", + "kopek", + "kophs", + "kopje", + "koppa", + "korai", + "koras", + "korat", + "kores", + "korma", + "koros", + "korun", + "korus", + "koses", + "kotch", + "kotos", + "kotow", + "koura", + "kraal", + "krabs", + "kraft", + "krais", + "krait", + "krang", + "krans", + "kranz", + "kraut", + "krays", + "kreep", + "kreng", + "krewe", + "krona", + "krone", + "kroon", + "krubi", + "krunk", + "ksars", + "kubie", + "kudos", + "kudus", + "kudzu", + "kufis", + "kugel", + "kuias", + "kukri", + "kukus", + "kulak", + "kulan", + "kulas", + "kulfi", + "kumis", + "kumys", + "kuris", + "kurre", + "kurta", + "kurus", + "kusso", + "kutas", + "kutch", + "kutis", + "kutus", + "kuzus", + "kvass", + "kvell", + "kwela", + "kyack", + "kyaks", + "kyang", + "kyars", + "kyats", + "kybos", + "kydst", + "kyles", + "kylie", + "kylin", + "kylix", + "kyloe", + "kynde", + "kynds", + "kypes", + "kyrie", + "kytes", + "kythe", + "laari", + "labda", + "labia", + "labis", + "labra", + "laced", + "lacer", + "laces", + "lacet", + "lacey", + "lacks", + "laddy", + "laded", + "lader", + "lades", + "laers", + "laevo", + "lagan", + "lahal", + "lahar", + "laich", + "laics", + "laids", + "laigh", + "laika", + "laiks", + "laird", + "lairs", + "lairy", + "laith", + "laity", + "laked", + "laker", + "lakes", + "lakhs", + "lakin", + "laksa", + "laldy", + "lalls", + "lamas", + "lambs", + "lamby", + "lamed", + "lamer", + "lames", + "lamia", + "lammy", + "lamps", + "lanai", + "lanas", + "lanch", + "lande", + "lands", + "lanes", + "lanks", + "lants", + "lapin", + "lapis", + "lapje", + "larch", + "lards", + "lardy", + "laree", + "lares", + "largo", + "laris", + "larks", + "larky", + "larns", + "larnt", + "larum", + "lased", + "laser", + "lases", + "lassi", + "lassu", + "lassy", + "lasts", + "latah", + "lated", + "laten", + "latex", + "lathi", + "laths", + "lathy", + "latke", + "latus", + "lauan", + "lauch", + "lauds", + "laufs", + "laund", + "laura", + "laval", + "lavas", + "laved", + "laver", + "laves", + "lavra", + "lavvy", + "lawed", + "lawer", + "lawin", + "lawks", + "lawns", + "lawny", + "laxed", + "laxer", + "laxes", + "laxly", + "layed", + "layin", + "layup", + "lazar", + "lazed", + "lazes", + "lazos", + "lazzi", + "lazzo", + "leads", + "leady", + "leafs", + "leaks", + "leams", + "leans", + "leany", + "leaps", + "leare", + "lears", + "leary", + "leats", + "leavy", + "leaze", + "leben", + "leccy", + "ledes", + "ledgy", + "ledum", + "leear", + "leeks", + "leeps", + "leers", + "leese", + "leets", + "leeze", + "lefte", + "lefts", + "leger", + "leges", + "legge", + "leggo", + "legit", + "lehrs", + "lehua", + "leirs", + "leish", + "leman", + "lemed", + "lemel", + "lemes", + "lemma", + "lemme", + "lends", + "lenes", + "lengs", + "lenis", + "lenos", + "lense", + "lenti", + "lento", + "leone", + "lepid", + "lepra", + "lepta", + "lered", + "leres", + "lerps", + "lesbo", + "leses", + "lests", + "letch", + "lethe", + "letup", + "leuch", + "leuco", + "leuds", + "leugh", + "levas", + "levee", + "leves", + "levin", + "levis", + "lewis", + "lexes", + "lexis", + "lezes", + "lezza", + "lezzy", + "liana", + "liane", + "liang", + "liard", + "liars", + "liart", + "liber", + "libra", + "libri", + "lichi", + "licht", + "licit", + "licks", + "lidar", + "lidos", + "liefs", + "liens", + "liers", + "lieus", + "lieve", + "lifer", + "lifes", + "lifts", + "ligan", + "liger", + "ligge", + "ligne", + "liked", + "liker", + "likes", + "likin", + "lills", + "lilos", + "lilts", + "liman", + "limas", + "limax", + "limba", + "limbi", + "limbs", + "limby", + "limed", + "limen", + "limes", + "limey", + "limma", + "limns", + "limos", + "limpa", + "limps", + "linac", + "linch", + "linds", + "lindy", + "lined", + "lines", + "liney", + "linga", + "lings", + "lingy", + "linin", + "links", + "linky", + "linns", + "linny", + "linos", + "lints", + "linty", + "linum", + "linux", + "lions", + "lipas", + "lipes", + "lipin", + "lipos", + "lippy", + "liras", + "lirks", + "lirot", + "lisks", + "lisle", + "lisps", + "lists", + "litai", + "litas", + "lited", + "liter", + "lites", + "litho", + "liths", + "litre", + "lived", + "liven", + "lives", + "livor", + "livre", + "llano", + "loach", + "loads", + "loafs", + "loams", + "loans", + "loast", + "loave", + "lobar", + "lobed", + "lobes", + "lobos", + "lobus", + "loche", + "lochs", + "locie", + "locis", + "locks", + "locos", + "locum", + "loden", + "lodes", + "loess", + "lofts", + "logan", + "loges", + "loggy", + "logia", + "logie", + "logoi", + "logon", + "logos", + "lohan", + "loids", + "loins", + "loipe", + "loirs", + "lokes", + "lolls", + "lolly", + "lolog", + "lomas", + "lomed", + "lomes", + "loner", + "longa", + "longe", + "longs", + "looby", + "looed", + "looey", + "loofa", + "loofs", + "looie", + "looks", + "looky", + "looms", + "loons", + "loony", + "loops", + "loord", + "loots", + "loped", + "loper", + "lopes", + "loppy", + "loral", + "loran", + "lords", + "lordy", + "lorel", + "lores", + "loric", + "loris", + "losed", + "losel", + "losen", + "loses", + "lossy", + "lotah", + "lotas", + "lotes", + "lotic", + "lotos", + "lotsa", + "lotta", + "lotte", + "lotto", + "lotus", + "loued", + "lough", + "louie", + "louis", + "louma", + "lound", + "louns", + "loupe", + "loups", + "loure", + "lours", + "loury", + "louts", + "lovat", + "loved", + "loves", + "lovey", + "lovie", + "lowan", + "lowed", + "lowes", + "lownd", + "lowne", + "lowns", + "lowps", + "lowry", + "lowse", + "lowts", + "loxed", + "loxes", + "lozen", + "luach", + "luaus", + "lubed", + "lubes", + "lubra", + "luces", + "lucks", + "lucre", + "ludes", + "ludic", + "ludos", + "luffa", + "luffs", + "luged", + "luger", + "luges", + "lulls", + "lulus", + "lumas", + "lumbi", + "lumme", + "lummy", + "lumps", + "lunas", + "lunes", + "lunet", + "lungi", + "lungs", + "lunks", + "lunts", + "lupin", + "lured", + "lurer", + "lures", + "lurex", + "lurgi", + "lurgy", + "lurks", + "lurry", + "lurve", + "luser", + "lushy", + "lusks", + "lusts", + "lusus", + "lutea", + "luted", + "luter", + "lutes", + "luvvy", + "luxed", + "luxer", + "luxes", + "lweis", + "lyams", + "lyard", + "lyart", + "lyase", + "lycea", + "lycee", + "lycra", + "lymes", + "lynes", + "lyres", + "lysed", + "lyses", + "lysin", + "lysis", + "lysol", + "lyssa", + "lyted", + "lytes", + "lythe", + "lytic", + "lytta", + "maaed", + "maare", + "maars", + "mabes", + "macas", + "maced", + "macer", + "maces", + "mache", + "machi", + "machs", + "macks", + "macle", + "macon", + "madge", + "madid", + "madre", + "maerl", + "mafic", + "mages", + "maggs", + "magot", + "magus", + "mahoe", + "mahua", + "mahwa", + "maids", + "maiko", + "maiks", + "maile", + "maill", + "mails", + "maims", + "mains", + "maire", + "mairs", + "maise", + "maist", + "makar", + "makes", + "makis", + "makos", + "malam", + "malar", + "malas", + "malax", + "males", + "malic", + "malik", + "malis", + "malls", + "malms", + "malmy", + "malts", + "malty", + "malus", + "malva", + "malwa", + "mamas", + "mamba", + "mamee", + "mamey", + "mamie", + "manas", + "manat", + "mandi", + "maneb", + "maned", + "maneh", + "manes", + "manet", + "mangs", + "manis", + "manky", + "manna", + "manos", + "manse", + "manta", + "manto", + "manty", + "manul", + "manus", + "mapau", + "maqui", + "marae", + "marah", + "maras", + "marcs", + "mardy", + "mares", + "marge", + "margs", + "maria", + "marid", + "marka", + "marks", + "marle", + "marls", + "marly", + "marms", + "maron", + "maror", + "marra", + "marri", + "marse", + "marts", + "marvy", + "masas", + "mased", + "maser", + "mases", + "mashy", + "masks", + "massa", + "massy", + "masts", + "masty", + "masus", + "matai", + "mated", + "mater", + "mates", + "maths", + "matin", + "matlo", + "matte", + "matts", + "matza", + "matzo", + "mauby", + "mauds", + "mauls", + "maund", + "mauri", + "mausy", + "mauts", + "mauzy", + "maven", + "mavie", + "mavin", + "mavis", + "mawed", + "mawks", + "mawky", + "mawns", + "mawrs", + "maxed", + "maxes", + "maxis", + "mayan", + "mayas", + "mayed", + "mayos", + "mayst", + "mazed", + "mazer", + "mazes", + "mazey", + "mazut", + "mbira", + "meads", + "meals", + "meane", + "means", + "meany", + "meare", + "mease", + "meath", + "meats", + "mebos", + "mechs", + "mecks", + "medii", + "medle", + "meeds", + "meers", + "meets", + "meffs", + "meins", + "meint", + "meiny", + "meith", + "mekka", + "melas", + "melba", + "melds", + "melic", + "melik", + "mells", + "melts", + "melty", + "memes", + "memos", + "menad", + "mends", + "mened", + "menes", + "menge", + "mengs", + "mensa", + "mense", + "mensh", + "menta", + "mento", + "menus", + "meous", + "meows", + "merch", + "mercs", + "merde", + "mered", + "merel", + "merer", + "meres", + "meril", + "meris", + "merks", + "merle", + "merls", + "merse", + "mesal", + "mesas", + "mesel", + "meses", + "meshy", + "mesic", + "mesne", + "meson", + "messy", + "mesto", + "meted", + "metes", + "metho", + "meths", + "metic", + "metif", + "metis", + "metol", + "metre", + "meuse", + "meved", + "meves", + "mewed", + "mewls", + "meynt", + "mezes", + "mezze", + "mezzo", + "mhorr", + "miaou", + "miaow", + "miasm", + "miaul", + "micas", + "miche", + "micht", + "micks", + "micky", + "micos", + "micra", + "middy", + "midgy", + "midis", + "miens", + "mieve", + "miffs", + "miffy", + "mifty", + "miggs", + "mihas", + "mihis", + "miked", + "mikes", + "mikra", + "mikva", + "milch", + "milds", + "miler", + "miles", + "milfs", + "milia", + "milko", + "milks", + "mille", + "mills", + "milor", + "milos", + "milpa", + "milts", + "milty", + "miltz", + "mimed", + "mimeo", + "mimer", + "mimes", + "mimsy", + "minae", + "minar", + "minas", + "mincy", + "minds", + "mined", + "mines", + "minge", + "mings", + "mingy", + "minis", + "minke", + "minks", + "minny", + "minos", + "mints", + "mired", + "mires", + "mirex", + "mirid", + "mirin", + "mirks", + "mirky", + "mirly", + "miros", + "mirvs", + "mirza", + "misch", + "misdo", + "mises", + "misgo", + "misos", + "missa", + "mists", + "misty", + "mitch", + "miter", + "mites", + "mitis", + "mitre", + "mitts", + "mixed", + "mixen", + "mixer", + "mixes", + "mixte", + "mixup", + "mizen", + "mizzy", + "mneme", + "moans", + "moats", + "mobby", + "mobes", + "mobey", + "mobie", + "moble", + "mochi", + "mochs", + "mochy", + "mocks", + "moder", + "modes", + "modge", + "modii", + "modus", + "moers", + "mofos", + "moggy", + "mohel", + "mohos", + "mohrs", + "mohua", + "mohur", + "moile", + "moils", + "moira", + "moire", + "moits", + "mojos", + "mokes", + "mokis", + "mokos", + "molal", + "molas", + "molds", + "moled", + "moles", + "molla", + "molls", + "molly", + "molto", + "molts", + "molys", + "momes", + "momma", + "mommy", + "momus", + "monad", + "monal", + "monas", + "monde", + "mondo", + "moner", + "mongo", + "mongs", + "monic", + "monie", + "monks", + "monos", + "monte", + "monty", + "moobs", + "mooch", + "moods", + "mooed", + "mooks", + "moola", + "mooli", + "mools", + "mooly", + "moong", + "moons", + "moony", + "moops", + "moors", + "moory", + "moots", + "moove", + "moped", + "moper", + "mopes", + "mopey", + "moppy", + "mopsy", + "mopus", + "morae", + "moras", + "morat", + "moray", + "morel", + "mores", + "moria", + "morne", + "morns", + "morra", + "morro", + "morse", + "morts", + "mosed", + "moses", + "mosey", + "mosks", + "mosso", + "moste", + "mosts", + "moted", + "moten", + "motes", + "motet", + "motey", + "moths", + "mothy", + "motis", + "motte", + "motts", + "motty", + "motus", + "motza", + "mouch", + "moues", + "mould", + "mouls", + "moups", + "moust", + "mousy", + "moved", + "moves", + "mowas", + "mowed", + "mowra", + "moxas", + "moxie", + "moyas", + "moyle", + "moyls", + "mozed", + "mozes", + "mozos", + "mpret", + "mucho", + "mucic", + "mucid", + "mucin", + "mucks", + "mucor", + "mucro", + "mudge", + "mudir", + "mudra", + "muffs", + "mufti", + "mugga", + "muggs", + "muggy", + "muhly", + "muids", + "muils", + "muirs", + "muist", + "mujik", + "mulct", + "muled", + "mules", + "muley", + "mulga", + "mulie", + "mulla", + "mulls", + "mulse", + "mulsh", + "mumms", + "mumps", + "mumsy", + "mumus", + "munga", + "munge", + "mungo", + "mungs", + "munis", + "munts", + "muntu", + "muons", + "muras", + "mured", + "mures", + "murex", + "murid", + "murks", + "murls", + "murly", + "murra", + "murre", + "murri", + "murrs", + "murry", + "murti", + "murva", + "musar", + "musca", + "mused", + "muser", + "muses", + "muset", + "musha", + "musit", + "musks", + "musos", + "musse", + "mussy", + "musth", + "musts", + "mutch", + "muted", + "muter", + "mutes", + "mutha", + "mutis", + "muton", + "mutts", + "muxed", + "muxes", + "muzak", + "muzzy", + "mvule", + "myall", + "mylar", + "mynah", + "mynas", + "myoid", + "myoma", + "myope", + "myops", + "myopy", + "mysid", + "mythi", + "myths", + "mythy", + "myxos", + "mzees", + "naams", + "naans", + "nabes", + "nabis", + "nabks", + "nabla", + "nabob", + "nache", + "nacho", + "nacre", + "nadas", + "naeve", + "naevi", + "naffs", + "nagas", + "naggy", + "nagor", + "nahal", + "naiad", + "naifs", + "naiks", + "nails", + "naira", + "nairu", + "naked", + "naker", + "nakfa", + "nalas", + "naled", + "nalla", + "named", + "namer", + "names", + "namma", + "namus", + "nanas", + "nance", + "nancy", + "nandu", + "nanna", + "nanos", + "nanua", + "napas", + "naped", + "napes", + "napoo", + "nappa", + "nappe", + "nappy", + "naras", + "narco", + "narcs", + "nards", + "nares", + "naric", + "naris", + "narks", + "narky", + "narre", + "nashi", + "natch", + "nates", + "natis", + "natty", + "nauch", + "naunt", + "navar", + "naves", + "navew", + "navvy", + "nawab", + "nazes", + "nazir", + "nazis", + "nduja", + "neafe", + "neals", + "neaps", + "nears", + "neath", + "neats", + "nebek", + "nebel", + "necks", + "neddy", + "needs", + "neeld", + "neele", + "neemb", + "neems", + "neeps", + "neese", + "neeze", + "negro", + "negus", + "neifs", + "neist", + "neive", + "nelis", + "nelly", + "nemas", + "nemns", + "nempt", + "nenes", + "neons", + "neper", + "nepit", + "neral", + "nerds", + "nerka", + "nerks", + "nerol", + "nerts", + "nertz", + "nervy", + "nests", + "netes", + "netop", + "netts", + "netty", + "neuks", + "neume", + "neums", + "nevel", + "neves", + "nevus", + "newbs", + "newed", + "newel", + "newie", + "newsy", + "newts", + "nexts", + "nexus", + "ngaio", + "ngana", + "ngati", + "ngoma", + "ngwee", + "nicad", + "nicht", + "nicks", + "nicol", + "nidal", + "nided", + "nides", + "nidor", + "nidus", + "niefs", + "nieve", + "nifes", + "niffs", + "niffy", + "nifty", + "niger", + "nighs", + "nihil", + "nikab", + "nikah", + "nikau", + "nills", + "nimbi", + "nimbs", + "nimps", + "niner", + "nines", + "ninon", + "nipas", + "nippy", + "niqab", + "nirls", + "nirly", + "nisei", + "nisse", + "nisus", + "niter", + "nites", + "nitid", + "niton", + "nitre", + "nitro", + "nitry", + "nitty", + "nival", + "nixed", + "nixer", + "nixes", + "nixie", + "nizam", + "nkosi", + "noahs", + "nobby", + "nocks", + "nodal", + "noddy", + "nodes", + "nodus", + "noels", + "noggs", + "nohow", + "noils", + "noily", + "noint", + "noirs", + "noles", + "nolls", + "nolos", + "nomas", + "nomen", + "nomes", + "nomic", + "nomoi", + "nomos", + "nonas", + "nonce", + "nones", + "nonet", + "nongs", + "nonis", + "nonny", + "nonyl", + "noobs", + "nooit", + "nooks", + "nooky", + "noons", + "noops", + "nopal", + "noria", + "noris", + "norks", + "norma", + "norms", + "nosed", + "noser", + "noses", + "notal", + "noted", + "noter", + "notes", + "notum", + "nould", + "noule", + "nouls", + "nouns", + "nouny", + "noups", + "novae", + "novas", + "novum", + "noway", + "nowed", + "nowls", + "nowts", + "nowty", + "noxal", + "noxes", + "noyau", + "noyed", + "noyes", + "nubby", + "nubia", + "nucha", + "nuddy", + "nuder", + "nudes", + "nudie", + "nudzh", + "nuffs", + "nugae", + "nuked", + "nukes", + "nulla", + "nulls", + "numbs", + "numen", + "nummy", + "nunny", + "nurds", + "nurdy", + "nurls", + "nurrs", + "nutso", + "nutsy", + "nyaff", + "nyala", + "nying", + "nyssa", + "oaked", + "oaker", + "oakum", + "oared", + "oases", + "oasis", + "oasts", + "oaten", + "oater", + "oaths", + "oaves", + "obang", + "obeah", + "obeli", + "obeys", + "obias", + "obied", + "obiit", + "obits", + "objet", + "oboes", + "obole", + "oboli", + "obols", + "occam", + "ocher", + "oches", + "ochre", + "ochry", + "ocker", + "ocrea", + "octad", + "octan", + "octas", + "octyl", + "oculi", + "odahs", + "odals", + "odeon", + "odeum", + "odism", + "odist", + "odium", + "odors", + "odour", + "odyle", + "odyls", + "ofays", + "offed", + "offie", + "oflag", + "ofter", + "ogams", + "ogeed", + "ogees", + "oggin", + "ogham", + "ogive", + "ogled", + "ogler", + "ogles", + "ogmic", + "ogres", + "ohias", + "ohing", + "ohmic", + "ohone", + "oidia", + "oiled", + "oiler", + "oinks", + "oints", + "ojime", + "okapi", + "okays", + "okehs", + "okras", + "oktas", + "oldie", + "oleic", + "olein", + "olent", + "oleos", + "oleum", + "olios", + "ollas", + "ollav", + "oller", + "ollie", + "ology", + "olpae", + "olpes", + "omasa", + "omber", + "ombus", + "omens", + "omers", + "omits", + "omlah", + "omovs", + "omrah", + "oncer", + "onces", + "oncet", + "oncus", + "onely", + "oners", + "onery", + "onium", + "onkus", + "onlay", + "onned", + "ontic", + "oobit", + "oohed", + "oomph", + "oonts", + "ooped", + "oorie", + "ooses", + "ootid", + "oozed", + "oozes", + "opahs", + "opals", + "opens", + "opepe", + "oping", + "oppos", + "opsin", + "opted", + "opter", + "orach", + "oracy", + "orals", + "orang", + "orant", + "orate", + "orbed", + "orcas", + "orcin", + "ordos", + "oread", + "orfes", + "orgia", + "orgic", + "orgue", + "oribi", + "oriel", + "orixa", + "orles", + "orlon", + "orlop", + "ormer", + "ornis", + "orpin", + "orris", + "ortho", + "orval", + "orzos", + "oscar", + "oshac", + "osier", + "osmic", + "osmol", + "ossia", + "ostia", + "otaku", + "otary", + "ottar", + "ottos", + "oubit", + "oucht", + "ouens", + "ouija", + "oulks", + "oumas", + "oundy", + "oupas", + "ouped", + "ouphe", + "ouphs", + "ourie", + "ousel", + "ousts", + "outby", + "outed", + "outre", + "outro", + "outta", + "ouzel", + "ouzos", + "ovals", + "ovels", + "ovens", + "overs", + "ovist", + "ovoli", + "ovolo", + "ovule", + "owche", + "owies", + "owled", + "owler", + "owlet", + "owned", + "owres", + "owrie", + "owsen", + "oxbow", + "oxers", + "oxeye", + "oxids", + "oxies", + "oxime", + "oxims", + "oxlip", + "oxter", + "oyers", + "ozeki", + "ozzie", + "paals", + "paans", + "pacas", + "paced", + "pacer", + "paces", + "pacey", + "pacha", + "packs", + "pacos", + "pacta", + "pacts", + "padis", + "padle", + "padma", + "padre", + "padri", + "paean", + "paedo", + "paeon", + "paged", + "pager", + "pages", + "pagle", + "pagod", + "pagri", + "paiks", + "pails", + "pains", + "paire", + "pairs", + "paisa", + "paise", + "pakka", + "palas", + "palay", + "palea", + "paled", + "pales", + "palet", + "palis", + "palki", + "palla", + "palls", + "pally", + "palms", + "palmy", + "palpi", + "palps", + "palsa", + "pampa", + "panax", + "pance", + "panda", + "pands", + "pandy", + "paned", + "panes", + "panga", + "pangs", + "panim", + "panko", + "panne", + "panni", + "panto", + "pants", + "panty", + "paoli", + "paolo", + "papas", + "papaw", + "papes", + "pappi", + "pappy", + "parae", + "paras", + "parch", + "pardi", + "pards", + "pardy", + "pared", + "paren", + "pareo", + "pares", + "pareu", + "parev", + "parge", + "pargo", + "paris", + "parki", + "parks", + "parky", + "parle", + "parly", + "parma", + "parol", + "parps", + "parra", + "parrs", + "parti", + "parts", + "parve", + "parvo", + "paseo", + "pases", + "pasha", + "pashm", + "paska", + "paspy", + "passe", + "pasts", + "pated", + "paten", + "pater", + "pates", + "paths", + "patin", + "patka", + "patly", + "patte", + "patus", + "pauas", + "pauls", + "pavan", + "paved", + "paven", + "paver", + "paves", + "pavid", + "pavin", + "pavis", + "pawas", + "pawaw", + "pawed", + "pawer", + "pawks", + "pawky", + "pawls", + "pawns", + "paxes", + "payed", + "payor", + "paysd", + "peage", + "peags", + "peaks", + "peaky", + "peals", + "peans", + "peare", + "pears", + "peart", + "pease", + "peats", + "peaty", + "peavy", + "peaze", + "pebas", + "pechs", + "pecke", + "pecks", + "pecky", + "pedes", + "pedis", + "pedro", + "peece", + "peeks", + "peels", + "peens", + "peeoy", + "peepe", + "peeps", + "peers", + "peery", + "peeve", + "peggy", + "peghs", + "peins", + "peise", + "peize", + "pekan", + "pekes", + "pekin", + "pekoe", + "pelas", + "pelau", + "peles", + "pelfs", + "pells", + "pelma", + "pelon", + "pelta", + "pelts", + "pends", + "pendu", + "pened", + "penes", + "pengo", + "penie", + "penis", + "penks", + "penna", + "penni", + "pents", + "peons", + "peony", + "pepla", + "pepos", + "peppy", + "pepsi", + "perai", + "perce", + "percs", + "perdu", + "perdy", + "perea", + "peres", + "peris", + "perks", + "perms", + "perns", + "perog", + "perps", + "perry", + "perse", + "perst", + "perts", + "perve", + "pervo", + "pervs", + "pervy", + "pesos", + "pests", + "pesty", + "petar", + "peter", + "petit", + "petre", + "petri", + "petti", + "petto", + "pewee", + "pewit", + "peyse", + "phage", + "phang", + "phare", + "pharm", + "pheer", + "phene", + "pheon", + "phese", + "phial", + "phish", + "phizz", + "phlox", + "phoca", + "phono", + "phons", + "phots", + "phpht", + "phuts", + "phyla", + "phyle", + "piani", + "pians", + "pibal", + "pical", + "picas", + "piccy", + "picks", + "picot", + "picra", + "picul", + "piend", + "piers", + "piert", + "pieta", + "piets", + "piezo", + "pight", + "pigmy", + "piing", + "pikas", + "pikau", + "piked", + "piker", + "pikes", + "pikey", + "pikis", + "pikul", + "pilae", + "pilaf", + "pilao", + "pilar", + "pilau", + "pilaw", + "pilch", + "pilea", + "piled", + "pilei", + "piler", + "piles", + "pilis", + "pills", + "pilow", + "pilum", + "pilus", + "pimas", + "pimps", + "pinas", + "pined", + "pines", + "pingo", + "pings", + "pinko", + "pinks", + "pinna", + "pinny", + "pinon", + "pinot", + "pinta", + "pints", + "pinup", + "pions", + "piony", + "pious", + "pioye", + "pioys", + "pipal", + "pipas", + "piped", + "pipes", + "pipet", + "pipis", + "pipit", + "pippy", + "pipul", + "pirai", + "pirls", + "pirns", + "pirog", + "pisco", + "pises", + "pisky", + "pisos", + "pissy", + "piste", + "pitas", + "piths", + "piton", + "pitot", + "pitta", + "piums", + "pixes", + "pized", + "pizes", + "plaas", + "plack", + "plage", + "plans", + "plaps", + "plash", + "plasm", + "plast", + "plats", + "platt", + "platy", + "playa", + "plays", + "pleas", + "plebe", + "plebs", + "plena", + "pleon", + "plesh", + "plews", + "plica", + "plies", + "plims", + "pling", + "plink", + "ploat", + "plods", + "plong", + "plonk", + "plook", + "plops", + "plots", + "plotz", + "plouk", + "plows", + "ploye", + "ploys", + "plues", + "pluff", + "plugs", + "plums", + "plumy", + "pluot", + "pluto", + "plyer", + "poach", + "poaka", + "poake", + "poboy", + "pocks", + "pocky", + "podal", + "poddy", + "podex", + "podge", + "podgy", + "podia", + "poems", + "poeps", + "poets", + "pogey", + "pogge", + "pogos", + "pohed", + "poilu", + "poind", + "pokal", + "poked", + "pokes", + "pokey", + "pokie", + "poled", + "poler", + "poles", + "poley", + "polio", + "polis", + "polje", + "polks", + "polls", + "polly", + "polos", + "polts", + "polys", + "pombe", + "pomes", + "pommy", + "pomos", + "pomps", + "ponce", + "poncy", + "ponds", + "pones", + "poney", + "ponga", + "pongo", + "pongs", + "pongy", + "ponks", + "ponts", + "ponty", + "ponzu", + "poods", + "pooed", + "poofs", + "poofy", + "poohs", + "pooja", + "pooka", + "pooks", + "pools", + "poons", + "poops", + "poopy", + "poori", + "poort", + "poots", + "poove", + "poovy", + "popes", + "poppa", + "popsy", + "porae", + "poral", + "pored", + "porer", + "pores", + "porge", + "porgy", + "porin", + "porks", + "porky", + "porno", + "porns", + "porny", + "porta", + "ports", + "porty", + "posed", + "poses", + "posey", + "posho", + "posts", + "potae", + "potch", + "poted", + "potes", + "potin", + "potoo", + "potsy", + "potto", + "potts", + "potty", + "pouff", + "poufs", + "pouke", + "pouks", + "poule", + "poulp", + "poult", + "poupe", + "poupt", + "pours", + "pouts", + "powan", + "powin", + "pownd", + "powns", + "powny", + "powre", + "poxed", + "poxes", + "poynt", + "poyou", + "poyse", + "pozzy", + "praam", + "prads", + "prahu", + "prams", + "prana", + "prang", + "praos", + "prase", + "prate", + "prats", + "pratt", + "praty", + "praus", + "prays", + "predy", + "preed", + "prees", + "preif", + "prems", + "premy", + "prent", + "preon", + "preop", + "preps", + "presa", + "prese", + "prest", + "preve", + "prexy", + "preys", + "prial", + "pricy", + "prief", + "prier", + "pries", + "prigs", + "prill", + "prima", + "primi", + "primp", + "prims", + "primy", + "prink", + "prion", + "prise", + "priss", + "proas", + "probs", + "prods", + "proem", + "profs", + "progs", + "proin", + "proke", + "prole", + "proll", + "promo", + "proms", + "pronk", + "props", + "prore", + "proso", + "pross", + "prost", + "prosy", + "proto", + "proul", + "prows", + "proyn", + "prunt", + "pruta", + "pryer", + "pryse", + "pseud", + "pshaw", + "psion", + "psoae", + "psoai", + "psoas", + "psora", + "psych", + "psyop", + "pubco", + "pubes", + "pubis", + "pucan", + "pucer", + "puces", + "pucka", + "pucks", + "puddy", + "pudge", + "pudic", + "pudor", + "pudsy", + "pudus", + "puers", + "puffa", + "puffs", + "puggy", + "pugil", + "puhas", + "pujah", + "pujas", + "pukas", + "puked", + "puker", + "pukes", + "pukey", + "pukka", + "pukus", + "pulao", + "pulas", + "puled", + "puler", + "pules", + "pulik", + "pulis", + "pulka", + "pulks", + "pulli", + "pulls", + "pully", + "pulmo", + "pulps", + "pulus", + "pumas", + "pumie", + "pumps", + "punas", + "punce", + "punga", + "pungs", + "punji", + "punka", + "punks", + "punky", + "punny", + "punto", + "punts", + "punty", + "pupae", + "pupas", + "pupus", + "purda", + "pured", + "pures", + "purin", + "puris", + "purls", + "purpy", + "purrs", + "pursy", + "purty", + "puses", + "pusle", + "pussy", + "putid", + "puton", + "putti", + "putto", + "putts", + "puzel", + "pwned", + "pyats", + "pyets", + "pygal", + "pyins", + "pylon", + "pyned", + "pynes", + "pyoid", + "pyots", + "pyral", + "pyran", + "pyres", + "pyrex", + "pyric", + "pyros", + "pyxed", + "pyxes", + "pyxie", + "pyxis", + "pzazz", + "qadis", + "qaids", + "qajaq", + "qanat", + "qapik", + "qibla", + "qophs", + "qorma", + "quads", + "quaff", + "quags", + "quair", + "quais", + "quaky", + "quale", + "quant", + "quare", + "quass", + "quate", + "quats", + "quayd", + "quays", + "qubit", + "quean", + "queme", + "quena", + "quern", + "queyn", + "queys", + "quich", + "quids", + "quiff", + "quims", + "quina", + "quine", + "quino", + "quins", + "quint", + "quipo", + "quips", + "quipu", + "quire", + "quirt", + "quist", + "quits", + "quoad", + "quods", + "quoif", + "quoin", + "quoit", + "quoll", + "quonk", + "quops", + "qursh", + "quyte", + "rabat", + "rabic", + "rabis", + "raced", + "races", + "rache", + "racks", + "racon", + "radge", + "radix", + "radon", + "raffs", + "rafts", + "ragas", + "ragde", + "raged", + "ragee", + "rager", + "rages", + "ragga", + "raggs", + "raggy", + "ragis", + "ragus", + "rahed", + "rahui", + "raias", + "raids", + "raiks", + "raile", + "rails", + "raine", + "rains", + "raird", + "raita", + "raits", + "rajas", + "rajes", + "raked", + "rakee", + "raker", + "rakes", + "rakia", + "rakis", + "rakus", + "rales", + "ramal", + "ramee", + "ramet", + "ramie", + "ramin", + "ramis", + "rammy", + "ramps", + "ramus", + "ranas", + "rance", + "rands", + "ranee", + "ranga", + "rangi", + "rangs", + "rangy", + "ranid", + "ranis", + "ranke", + "ranks", + "rants", + "raped", + "raper", + "rapes", + "raphe", + "rappe", + "rared", + "raree", + "rares", + "rarks", + "rased", + "raser", + "rases", + "rasps", + "rasse", + "rasta", + "ratal", + "ratan", + "ratas", + "ratch", + "rated", + "ratel", + "rater", + "rates", + "ratha", + "rathe", + "raths", + "ratoo", + "ratos", + "ratus", + "rauns", + "raupo", + "raved", + "ravel", + "raver", + "raves", + "ravey", + "ravin", + "rawer", + "rawin", + "rawly", + "rawns", + "raxed", + "raxes", + "rayah", + "rayas", + "rayed", + "rayle", + "rayne", + "razed", + "razee", + "razer", + "razes", + "razoo", + "readd", + "reads", + "reais", + "reaks", + "realo", + "reals", + "reame", + "reams", + "reamy", + "reans", + "reaps", + "rears", + "reast", + "reata", + "reate", + "reave", + "rebbe", + "rebec", + "rebid", + "rebit", + "rebop", + "rebuy", + "recal", + "recce", + "recco", + "reccy", + "recit", + "recks", + "recon", + "recta", + "recti", + "recto", + "redan", + "redds", + "reddy", + "reded", + "redes", + "redia", + "redid", + "redip", + "redly", + "redon", + "redos", + "redox", + "redry", + "redub", + "redux", + "redye", + "reech", + "reede", + "reeds", + "reefs", + "reefy", + "reeks", + "reeky", + "reels", + "reens", + "reest", + "reeve", + "refed", + "refel", + "reffo", + "refis", + "refix", + "refly", + "refry", + "regar", + "reges", + "reggo", + "regie", + "regma", + "regna", + "regos", + "regur", + "rehem", + "reifs", + "reify", + "reiki", + "reiks", + "reink", + "reins", + "reird", + "reist", + "reive", + "rejig", + "rejon", + "reked", + "rekes", + "rekey", + "relet", + "relie", + "relit", + "rello", + "reman", + "remap", + "remen", + "remet", + "remex", + "remix", + "renay", + "rends", + "reney", + "renga", + "renig", + "renin", + "renne", + "renos", + "rente", + "rents", + "reoil", + "reorg", + "repeg", + "repin", + "repla", + "repos", + "repot", + "repps", + "repro", + "reran", + "rerig", + "resat", + "resaw", + "resay", + "resee", + "reses", + "resew", + "resid", + "resit", + "resod", + "resow", + "resto", + "rests", + "resty", + "resus", + "retag", + "retax", + "retem", + "retia", + "retie", + "retox", + "revet", + "revie", + "rewan", + "rewax", + "rewed", + "rewet", + "rewin", + "rewon", + "rewth", + "rexes", + "rezes", + "rheas", + "rheme", + "rheum", + "rhies", + "rhime", + "rhine", + "rhody", + "rhomb", + "rhone", + "rhumb", + "rhyne", + "rhyta", + "riads", + "rials", + "riant", + "riata", + "ribas", + "ribby", + "ribes", + "riced", + "ricer", + "rices", + "ricey", + "richt", + "ricin", + "ricks", + "rides", + "ridgy", + "ridic", + "riels", + "riems", + "rieve", + "rifer", + "riffs", + "rifte", + "rifts", + "rifty", + "riggs", + "rigol", + "riled", + "riles", + "riley", + "rille", + "rills", + "rimae", + "rimed", + "rimer", + "rimes", + "rimus", + "rinds", + "rindy", + "rines", + "rings", + "rinks", + "rioja", + "riots", + "riped", + "ripes", + "ripps", + "rises", + "rishi", + "risks", + "risps", + "risus", + "rites", + "ritts", + "ritzy", + "rivas", + "rived", + "rivel", + "riven", + "rives", + "riyal", + "rizas", + "roads", + "roams", + "roans", + "roars", + "roary", + "roate", + "robed", + "robes", + "roble", + "rocks", + "roded", + "rodes", + "roguy", + "rohes", + "roids", + "roils", + "roily", + "roins", + "roist", + "rojak", + "rojis", + "roked", + "roker", + "rokes", + "rolag", + "roles", + "rolfs", + "rolls", + "romal", + "roman", + "romeo", + "romps", + "ronde", + "rondo", + "roneo", + "rones", + "ronin", + "ronne", + "ronte", + "ronts", + "roods", + "roofs", + "roofy", + "rooks", + "rooky", + "rooms", + "roons", + "roops", + "roopy", + "roosa", + "roose", + "roots", + "rooty", + "roped", + "roper", + "ropes", + "ropey", + "roque", + "roral", + "rores", + "roric", + "rorid", + "rorie", + "rorts", + "rorty", + "rosed", + "roses", + "roset", + "roshi", + "rosin", + "rosit", + "rosti", + "rosts", + "rotal", + "rotan", + "rotas", + "rotch", + "roted", + "rotes", + "rotis", + "rotls", + "roton", + "rotos", + "rotte", + "rouen", + "roues", + "roule", + "rouls", + "roums", + "roups", + "roupy", + "roust", + "routh", + "routs", + "roved", + "roven", + "roves", + "rowan", + "rowed", + "rowel", + "rowen", + "rowie", + "rowme", + "rownd", + "rowth", + "rowts", + "royne", + "royst", + "rozet", + "rozit", + "ruana", + "rubai", + "rubby", + "rubel", + "rubes", + "rubin", + "ruble", + "rubli", + "rubus", + "ruche", + "rucks", + "rudas", + "rudds", + "rudes", + "rudie", + "rudis", + "rueda", + "ruers", + "ruffe", + "ruffs", + "rugae", + "rugal", + "ruggy", + "ruing", + "ruins", + "rukhs", + "ruled", + "rules", + "rumal", + "rumbo", + "rumen", + "rumes", + "rumly", + "rummy", + "rumpo", + "rumps", + "rumpy", + "runch", + "runds", + "runed", + "runes", + "rungs", + "runic", + "runny", + "runts", + "runty", + "rupia", + "rurps", + "rurus", + "rusas", + "ruses", + "rushy", + "rusks", + "rusma", + "russe", + "rusts", + "ruths", + "rutin", + "rutty", + "ryals", + "rybat", + "ryked", + "rykes", + "rymme", + "rynds", + "ryots", + "ryper", + "saags", + "sabal", + "sabed", + "saber", + "sabes", + "sabha", + "sabin", + "sabir", + "sable", + "sabot", + "sabra", + "sabre", + "sacks", + "sacra", + "saddo", + "sades", + "sadhe", + "sadhu", + "sadis", + "sados", + "sadza", + "safed", + "safes", + "sagas", + "sager", + "sages", + "saggy", + "sagos", + "sagum", + "saheb", + "sahib", + "saice", + "saick", + "saics", + "saids", + "saiga", + "sails", + "saims", + "saine", + "sains", + "sairs", + "saist", + "saith", + "sajou", + "sakai", + "saker", + "sakes", + "sakia", + "sakis", + "sakti", + "salal", + "salat", + "salep", + "sales", + "salet", + "salic", + "salix", + "salle", + "salmi", + "salol", + "salop", + "salpa", + "salps", + "salse", + "salto", + "salts", + "salue", + "salut", + "saman", + "samas", + "samba", + "sambo", + "samek", + "samel", + "samen", + "sames", + "samey", + "samfu", + "sammy", + "sampi", + "samps", + "sands", + "saned", + "sanes", + "sanga", + "sangh", + "sango", + "sangs", + "sanko", + "sansa", + "santo", + "sants", + "saola", + "sapan", + "sapid", + "sapor", + "saran", + "sards", + "sared", + "saree", + "sarge", + "sargo", + "sarin", + "saris", + "sarks", + "sarky", + "sarod", + "saros", + "sarus", + "saser", + "sasin", + "sasse", + "satai", + "satay", + "sated", + "satem", + "sates", + "satis", + "sauba", + "sauch", + "saugh", + "sauls", + "sault", + "saunt", + "saury", + "sauts", + "saved", + "saver", + "saves", + "savey", + "savin", + "sawah", + "sawed", + "sawer", + "saxes", + "sayed", + "sayer", + "sayid", + "sayne", + "sayon", + "sayst", + "sazes", + "scabs", + "scads", + "scaff", + "scags", + "scail", + "scala", + "scall", + "scams", + "scand", + "scans", + "scapa", + "scape", + "scapi", + "scarp", + "scars", + "scart", + "scath", + "scats", + "scatt", + "scaud", + "scaup", + "scaur", + "scaws", + "sceat", + "scena", + "scend", + "schav", + "schmo", + "schul", + "schwa", + "sclim", + "scody", + "scogs", + "scoog", + "scoot", + "scopa", + "scops", + "scots", + "scoug", + "scoup", + "scowp", + "scows", + "scrab", + "scrae", + "scrag", + "scran", + "scrat", + "scraw", + "scray", + "scrim", + "scrip", + "scrob", + "scrod", + "scrog", + "scrow", + "scudi", + "scudo", + "scuds", + "scuff", + "scuft", + "scugs", + "sculk", + "scull", + "sculp", + "sculs", + "scums", + "scups", + "scurf", + "scurs", + "scuse", + "scuta", + "scute", + "scuts", + "scuzz", + "scyes", + "sdayn", + "sdein", + "seals", + "seame", + "seams", + "seamy", + "seans", + "seare", + "sears", + "sease", + "seats", + "seaze", + "sebum", + "secco", + "sechs", + "sects", + "seder", + "sedes", + "sedge", + "sedgy", + "sedum", + "seeds", + "seeks", + "seeld", + "seels", + "seely", + "seems", + "seeps", + "seepy", + "seers", + "sefer", + "segar", + "segni", + "segno", + "segol", + "segos", + "sehri", + "seifs", + "seils", + "seine", + "seirs", + "seise", + "seism", + "seity", + "seiza", + "sekos", + "sekts", + "selah", + "seles", + "selfs", + "sella", + "selle", + "sells", + "selva", + "semee", + "semes", + "semie", + "semis", + "senas", + "sends", + "senes", + "sengi", + "senna", + "senor", + "sensa", + "sensi", + "sente", + "senti", + "sents", + "senvy", + "senza", + "sepad", + "sepal", + "sepic", + "sepoy", + "septa", + "septs", + "serac", + "serai", + "seral", + "sered", + "serer", + "seres", + "serfs", + "serge", + "seric", + "serin", + "serks", + "seron", + "serow", + "serra", + "serre", + "serrs", + "serry", + "servo", + "sesey", + "sessa", + "setae", + "setal", + "seton", + "setts", + "sewan", + "sewar", + "sewed", + "sewel", + "sewen", + "sewin", + "sexed", + "sexer", + "sexes", + "sexto", + "sexts", + "seyen", + "shads", + "shags", + "shahs", + "shako", + "shakt", + "shalm", + "shaly", + "shama", + "shams", + "shand", + "shans", + "shaps", + "sharn", + "shash", + "shaul", + "shawm", + "shawn", + "shaws", + "shaya", + "shays", + "shchi", + "sheaf", + "sheal", + "sheas", + "sheds", + "sheel", + "shend", + "shent", + "sheol", + "sherd", + "shere", + "shero", + "shets", + "sheva", + "shewn", + "shews", + "shiai", + "shiel", + "shier", + "shies", + "shill", + "shily", + "shims", + "shins", + "ships", + "shirr", + "shirs", + "shish", + "shiso", + "shist", + "shite", + "shits", + "shiur", + "shiva", + "shive", + "shivs", + "shlep", + "shlub", + "shmek", + "shmoe", + "shoat", + "shoed", + "shoer", + "shoes", + "shogi", + "shogs", + "shoji", + "shojo", + "shola", + "shool", + "shoon", + "shoos", + "shope", + "shops", + "shorl", + "shote", + "shots", + "shott", + "showd", + "shows", + "shoyu", + "shred", + "shris", + "shrow", + "shtik", + "shtum", + "shtup", + "shule", + "shuln", + "shuls", + "shuns", + "shura", + "shute", + "shuts", + "shwas", + "shyer", + "sials", + "sibbs", + "sibyl", + "sices", + "sicht", + "sicko", + "sicks", + "sicky", + "sidas", + "sided", + "sider", + "sides", + "sidha", + "sidhe", + "sidle", + "sield", + "siens", + "sient", + "sieth", + "sieur", + "sifts", + "sighs", + "sigil", + "sigla", + "signa", + "signs", + "sijos", + "sikas", + "siker", + "sikes", + "silds", + "siled", + "silen", + "siler", + "siles", + "silex", + "silks", + "sills", + "silos", + "silts", + "silty", + "silva", + "simar", + "simas", + "simba", + "simis", + "simps", + "simul", + "sinds", + "sined", + "sines", + "sings", + "sinhs", + "sinks", + "sinky", + "sinus", + "siped", + "sipes", + "sippy", + "sired", + "siree", + "sires", + "sirih", + "siris", + "siroc", + "sirra", + "sirup", + "sisal", + "sises", + "sista", + "sists", + "sitar", + "sited", + "sites", + "sithe", + "sitka", + "situp", + "situs", + "siver", + "sixer", + "sixes", + "sixmo", + "sixte", + "sizar", + "sized", + "sizel", + "sizer", + "sizes", + "skags", + "skail", + "skald", + "skank", + "skart", + "skats", + "skatt", + "skaws", + "skean", + "skear", + "skeds", + "skeed", + "skeef", + "skeen", + "skeer", + "skees", + "skeet", + "skegg", + "skegs", + "skein", + "skelf", + "skell", + "skelm", + "skelp", + "skene", + "skens", + "skeos", + "skeps", + "skers", + "skets", + "skews", + "skids", + "skied", + "skies", + "skiey", + "skimo", + "skims", + "skink", + "skins", + "skint", + "skios", + "skips", + "skirl", + "skirr", + "skite", + "skits", + "skive", + "skivy", + "sklim", + "skoal", + "skody", + "skoff", + "skogs", + "skols", + "skool", + "skort", + "skosh", + "skran", + "skrik", + "skuas", + "skugs", + "skyed", + "skyer", + "skyey", + "skyfs", + "skyre", + "skyrs", + "skyte", + "slabs", + "slade", + "slaes", + "slags", + "slaid", + "slake", + "slams", + "slane", + "slank", + "slaps", + "slart", + "slats", + "slaty", + "slaws", + "slays", + "slebs", + "sleds", + "sleer", + "slews", + "sleys", + "slier", + "slily", + "slims", + "slipe", + "slips", + "slipt", + "slish", + "slits", + "slive", + "sloan", + "slobs", + "sloes", + "slogs", + "sloid", + "slojd", + "slomo", + "sloom", + "sloot", + "slops", + "slopy", + "slorm", + "slots", + "slove", + "slows", + "sloyd", + "slubb", + "slubs", + "slued", + "slues", + "sluff", + "slugs", + "sluit", + "slums", + "slurb", + "slurs", + "sluse", + "sluts", + "slyer", + "slype", + "smaak", + "smaik", + "smalm", + "smalt", + "smarm", + "smaze", + "smeek", + "smees", + "smeik", + "smeke", + "smerk", + "smews", + "smirr", + "smirs", + "smits", + "smogs", + "smoko", + "smolt", + "smoor", + "smoot", + "smore", + "smorg", + "smout", + "smowt", + "smugs", + "smurs", + "smush", + "smuts", + "snabs", + "snafu", + "snags", + "snaps", + "snarf", + "snark", + "snars", + "snary", + "snash", + "snath", + "snaws", + "snead", + "sneap", + "snebs", + "sneck", + "sneds", + "sneed", + "snees", + "snell", + "snibs", + "snick", + "snies", + "snift", + "snigs", + "snips", + "snipy", + "snirt", + "snits", + "snobs", + "snods", + "snoek", + "snoep", + "snogs", + "snoke", + "snood", + "snook", + "snool", + "snoot", + "snots", + "snowk", + "snows", + "snubs", + "snugs", + "snush", + "snyes", + "soaks", + "soaps", + "soare", + "soars", + "soave", + "sobas", + "socas", + "soces", + "socko", + "socks", + "socle", + "sodas", + "soddy", + "sodic", + "sodom", + "sofar", + "sofas", + "softa", + "softs", + "softy", + "soger", + "sohur", + "soils", + "soily", + "sojas", + "sojus", + "sokah", + "soken", + "sokes", + "sokol", + "solah", + "solan", + "solas", + "solde", + "soldi", + "soldo", + "solds", + "soled", + "solei", + "soler", + "soles", + "solon", + "solos", + "solum", + "solus", + "soman", + "somas", + "sonce", + "sonde", + "sones", + "songs", + "sonly", + "sonne", + "sonny", + "sonse", + "sonsy", + "sooey", + "sooks", + "sooky", + "soole", + "sools", + "sooms", + "soops", + "soote", + "soots", + "sophs", + "sophy", + "sopor", + "soppy", + "sopra", + "soral", + "soras", + "sorbo", + "sorbs", + "sorda", + "sordo", + "sords", + "sored", + "soree", + "sorel", + "sorer", + "sores", + "sorex", + "sorgo", + "sorns", + "sorra", + "sorta", + "sorts", + "sorus", + "soths", + "sotol", + "souce", + "souct", + "sough", + "souks", + "souls", + "soums", + "soups", + "soupy", + "sours", + "souse", + "souts", + "sowar", + "sowce", + "sowed", + "sowff", + "sowfs", + "sowle", + "sowls", + "sowms", + "sownd", + "sowne", + "sowps", + "sowse", + "sowth", + "soyas", + "soyle", + "soyuz", + "sozin", + "spacy", + "spado", + "spaed", + "spaer", + "spaes", + "spags", + "spahi", + "spail", + "spain", + "spait", + "spake", + "spald", + "spale", + "spall", + "spalt", + "spams", + "spane", + "spang", + "spans", + "spard", + "spars", + "spart", + "spate", + "spats", + "spaul", + "spawl", + "spaws", + "spayd", + "spays", + "spaza", + "spazz", + "speal", + "spean", + "speat", + "specs", + "spect", + "speel", + "speer", + "speil", + "speir", + "speks", + "speld", + "spelk", + "speos", + "spets", + "speug", + "spews", + "spewy", + "spial", + "spica", + "spick", + "spics", + "spide", + "spier", + "spies", + "spiff", + "spifs", + "spiks", + "spile", + "spims", + "spina", + "spink", + "spins", + "spirt", + "spiry", + "spits", + "spitz", + "spivs", + "splay", + "splog", + "spode", + "spods", + "spoom", + "spoor", + "spoot", + "spork", + "sposh", + "spots", + "sprad", + "sprag", + "sprat", + "spred", + "sprew", + "sprit", + "sprod", + "sprog", + "sprue", + "sprug", + "spuds", + "spued", + "spuer", + "spues", + "spugs", + "spule", + "spume", + "spumy", + "spurs", + "sputa", + "spyal", + "spyre", + "squab", + "squaw", + "squeg", + "squid", + "squit", + "squiz", + "stabs", + "stade", + "stags", + "stagy", + "staig", + "stane", + "stang", + "staph", + "staps", + "starn", + "starr", + "stars", + "stats", + "staun", + "staws", + "stays", + "stean", + "stear", + "stedd", + "stede", + "steds", + "steek", + "steem", + "steen", + "steil", + "stela", + "stele", + "stell", + "steme", + "stems", + "stend", + "steno", + "stens", + "stent", + "steps", + "stept", + "stere", + "stets", + "stews", + "stewy", + "steys", + "stich", + "stied", + "sties", + "stilb", + "stile", + "stime", + "stims", + "stimy", + "stipa", + "stipe", + "stire", + "stirk", + "stirp", + "stirs", + "stive", + "stivy", + "stoae", + "stoai", + "stoas", + "stoat", + "stobs", + "stoep", + "stogy", + "stoit", + "stoln", + "stoma", + "stond", + "stong", + "stonk", + "stonn", + "stook", + "stoor", + "stope", + "stops", + "stopt", + "stoss", + "stots", + "stott", + "stoun", + "stoup", + "stour", + "stown", + "stowp", + "stows", + "strad", + "strae", + "strag", + "strak", + "strep", + "strew", + "stria", + "strig", + "strim", + "strop", + "strow", + "stroy", + "strum", + "stubs", + "stude", + "studs", + "stull", + "stulm", + "stumm", + "stums", + "stuns", + "stupa", + "stupe", + "sture", + "sturt", + "styed", + "styes", + "styli", + "stylo", + "styme", + "stymy", + "styre", + "styte", + "subah", + "subas", + "subby", + "suber", + "subha", + "succi", + "sucks", + "sucky", + "sucre", + "sudds", + "sudor", + "sudsy", + "suede", + "suent", + "suers", + "suete", + "suets", + "suety", + "sugan", + "sughs", + "sugos", + "suhur", + "suids", + "suint", + "suits", + "sujee", + "sukhs", + "sukuk", + "sulci", + "sulfa", + "sulfo", + "sulks", + "sulph", + "sulus", + "sumis", + "summa", + "sumos", + "sumph", + "sumps", + "sunis", + "sunks", + "sunna", + "sunns", + "sunup", + "supes", + "supra", + "surah", + "sural", + "suras", + "surat", + "surds", + "sured", + "sures", + "surfs", + "surfy", + "surgy", + "surra", + "sused", + "suses", + "susus", + "sutor", + "sutra", + "sutta", + "swabs", + "swack", + "swads", + "swage", + "swags", + "swail", + "swain", + "swale", + "swaly", + "swamy", + "swang", + "swank", + "swans", + "swaps", + "swapt", + "sward", + "sware", + "swarf", + "swart", + "swats", + "swayl", + "sways", + "sweal", + "swede", + "sweed", + "sweel", + "sweer", + "swees", + "sweir", + "swelt", + "swerf", + "sweys", + "swies", + "swigs", + "swile", + "swims", + "swink", + "swipe", + "swire", + "swiss", + "swith", + "swits", + "swive", + "swizz", + "swobs", + "swole", + "swoln", + "swops", + "swopt", + "swots", + "swoun", + "sybbe", + "sybil", + "syboe", + "sybow", + "sycee", + "syces", + "sycon", + "syens", + "syker", + "sykes", + "sylis", + "sylph", + "sylva", + "symar", + "synch", + "syncs", + "synds", + "syned", + "synes", + "synth", + "syped", + "sypes", + "syphs", + "syrah", + "syren", + "sysop", + "sythe", + "syver", + "taals", + "taata", + "taber", + "tabes", + "tabid", + "tabis", + "tabla", + "tabor", + "tabun", + "tabus", + "tacan", + "taces", + "tacet", + "tache", + "tacho", + "tachs", + "tacks", + "tacos", + "tacts", + "taels", + "tafia", + "taggy", + "tagma", + "tahas", + "tahrs", + "taiga", + "taigs", + "taiko", + "tails", + "tains", + "taira", + "taish", + "taits", + "tajes", + "takas", + "takes", + "takhi", + "takin", + "takis", + "takky", + "talak", + "talaq", + "talar", + "talas", + "talcs", + "talcy", + "talea", + "taler", + "tales", + "talks", + "talky", + "talls", + "talma", + "talpa", + "taluk", + "talus", + "tamal", + "tamed", + "tames", + "tamin", + "tamis", + "tammy", + "tamps", + "tanas", + "tanga", + "tangi", + "tangs", + "tanhs", + "tanka", + "tanks", + "tanky", + "tanna", + "tansy", + "tanti", + "tanto", + "tanty", + "tapas", + "taped", + "tapen", + "tapes", + "tapet", + "tapis", + "tappa", + "tapus", + "taras", + "tardo", + "tared", + "tares", + "targa", + "targe", + "tarns", + "taroc", + "tarok", + "taros", + "tarps", + "tarre", + "tarry", + "tarsi", + "tarts", + "tarty", + "tasar", + "tased", + "taser", + "tases", + "tasks", + "tassa", + "tasse", + "tasso", + "tatar", + "tater", + "tates", + "taths", + "tatie", + "tatou", + "tatts", + "tatus", + "taube", + "tauld", + "tauon", + "taupe", + "tauts", + "tavah", + "tavas", + "taver", + "tawai", + "tawas", + "tawed", + "tawer", + "tawie", + "tawse", + "tawts", + "taxed", + "taxer", + "taxes", + "taxis", + "taxol", + "taxon", + "taxor", + "taxus", + "tayra", + "tazza", + "tazze", + "teade", + "teads", + "teaed", + "teaks", + "teals", + "teams", + "tears", + "teats", + "teaze", + "techs", + "techy", + "tecta", + "teels", + "teems", + "teend", + "teene", + "teens", + "teeny", + "teers", + "teffs", + "teggs", + "tegua", + "tegus", + "tehrs", + "teiid", + "teils", + "teind", + "teins", + "telae", + "telco", + "teles", + "telex", + "telia", + "telic", + "tells", + "telly", + "teloi", + "telos", + "temed", + "temes", + "tempi", + "temps", + "tempt", + "temse", + "tench", + "tends", + "tendu", + "tenes", + "tenge", + "tenia", + "tenne", + "tenno", + "tenny", + "tenon", + "tents", + "tenty", + "tenue", + "tepal", + "tepas", + "tepoy", + "terai", + "teras", + "terce", + "terek", + "teres", + "terfe", + "terfs", + "terga", + "terms", + "terne", + "terns", + "terry", + "terts", + "tesla", + "testa", + "teste", + "tests", + "tetes", + "teths", + "tetra", + "tetri", + "teuch", + "teugh", + "tewed", + "tewel", + "tewit", + "texas", + "texes", + "texts", + "thack", + "thagi", + "thaim", + "thale", + "thali", + "thana", + "thane", + "thang", + "thans", + "thanx", + "tharm", + "thars", + "thaws", + "thawy", + "thebe", + "theca", + "theed", + "theek", + "thees", + "thegn", + "theic", + "thein", + "thelf", + "thema", + "thens", + "theow", + "therm", + "thesp", + "thete", + "thews", + "thewy", + "thigs", + "thilk", + "thill", + "thine", + "thins", + "thiol", + "thirl", + "thoft", + "thole", + "tholi", + "thoro", + "thorp", + "thous", + "thowl", + "thrae", + "thraw", + "thrid", + "thrip", + "throe", + "thuds", + "thugs", + "thuja", + "thunk", + "thurl", + "thuya", + "thymi", + "thymy", + "tians", + "tiars", + "tical", + "ticca", + "ticed", + "tices", + "tichy", + "ticks", + "ticky", + "tiddy", + "tided", + "tides", + "tiers", + "tiffs", + "tifos", + "tifts", + "tiges", + "tigon", + "tikas", + "tikes", + "tikis", + "tikka", + "tilak", + "tiled", + "tiler", + "tiles", + "tills", + "tilly", + "tilth", + "tilts", + "timbo", + "timed", + "times", + "timon", + "timps", + "tinas", + "tinct", + "tinds", + "tinea", + "tined", + "tines", + "tinge", + "tings", + "tinks", + "tinny", + "tints", + "tinty", + "tipis", + "tippy", + "tired", + "tires", + "tirls", + "tiros", + "tirrs", + "titch", + "titer", + "titis", + "titre", + "titty", + "titup", + "tiyin", + "tiyns", + "tizes", + "tizzy", + "toads", + "toady", + "toaze", + "tocks", + "tocky", + "tocos", + "todde", + "toeas", + "toffs", + "toffy", + "tofts", + "tofus", + "togae", + "togas", + "toged", + "toges", + "togue", + "tohos", + "toile", + "toils", + "toing", + "toise", + "toits", + "tokay", + "toked", + "toker", + "tokes", + "tokos", + "tolan", + "tolar", + "tolas", + "toled", + "toles", + "tolls", + "tolly", + "tolts", + "tolus", + "tolyl", + "toman", + "tombs", + "tomes", + "tomia", + "tommy", + "tomos", + "tondi", + "tondo", + "toned", + "toner", + "tones", + "toney", + "tongs", + "tonka", + "tonks", + "tonne", + "tonus", + "tools", + "tooms", + "toons", + "toots", + "toped", + "topee", + "topek", + "toper", + "topes", + "tophe", + "tophi", + "tophs", + "topis", + "topoi", + "topos", + "toppy", + "toque", + "torah", + "toran", + "toras", + "torcs", + "tores", + "toric", + "torii", + "toros", + "torot", + "torrs", + "torse", + "torsi", + "torsk", + "torta", + "torte", + "torts", + "tosas", + "tosed", + "toses", + "toshy", + "tossy", + "toted", + "toter", + "totes", + "totty", + "touks", + "touns", + "tours", + "touse", + "tousy", + "touts", + "touze", + "touzy", + "towed", + "towie", + "towns", + "towny", + "towse", + "towsy", + "towts", + "towze", + "towzy", + "toyed", + "toyer", + "toyon", + "toyos", + "tozed", + "tozes", + "tozie", + "trabs", + "trads", + "tragi", + "traik", + "trams", + "trank", + "tranq", + "trans", + "trant", + "trape", + "traps", + "trapt", + "trass", + "trats", + "tratt", + "trave", + "trayf", + "trays", + "treck", + "treed", + "treen", + "trees", + "trefa", + "treif", + "treks", + "trema", + "trems", + "tress", + "trest", + "trets", + "trews", + "treyf", + "treys", + "triac", + "tride", + "trier", + "tries", + "triff", + "trigo", + "trigs", + "trike", + "trild", + "trill", + "trims", + "trine", + "trins", + "triol", + "trior", + "trios", + "trips", + "tripy", + "trist", + "troad", + "troak", + "troat", + "trock", + "trode", + "trods", + "trogs", + "trois", + "troke", + "tromp", + "trona", + "tronc", + "trone", + "tronk", + "trons", + "trooz", + "troth", + "trots", + "trows", + "troys", + "trued", + "trues", + "trugo", + "trugs", + "trull", + "tryer", + "tryke", + "tryma", + "tryps", + "tsade", + "tsadi", + "tsars", + "tsked", + "tsuba", + "tsubo", + "tuans", + "tuart", + "tuath", + "tubae", + "tubar", + "tubas", + "tubby", + "tubed", + "tubes", + "tucks", + "tufas", + "tuffe", + "tuffs", + "tufts", + "tufty", + "tugra", + "tuile", + "tuina", + "tuism", + "tuktu", + "tules", + "tulpa", + "tulsi", + "tumid", + "tummy", + "tumps", + "tumpy", + "tunas", + "tunds", + "tuned", + "tuner", + "tunes", + "tungs", + "tunny", + "tupek", + "tupik", + "tuple", + "tuque", + "turds", + "turfs", + "turfy", + "turks", + "turme", + "turms", + "turns", + "turnt", + "turps", + "turrs", + "tushy", + "tusks", + "tusky", + "tutee", + "tutti", + "tutty", + "tutus", + "tuxes", + "tuyer", + "twaes", + "twain", + "twals", + "twank", + "twats", + "tways", + "tweel", + "tween", + "tweep", + "tweer", + "twerk", + "twerp", + "twier", + "twigs", + "twill", + "twilt", + "twink", + "twins", + "twiny", + "twire", + "twirp", + "twite", + "twits", + "twoer", + "twyer", + "tyees", + "tyers", + "tyiyn", + "tykes", + "tyler", + "tymps", + "tynde", + "tyned", + "tynes", + "typal", + "typed", + "types", + "typey", + "typic", + "typos", + "typps", + "typto", + "tyran", + "tyred", + "tyres", + "tyros", + "tythe", + "tzars", + "udals", + "udons", + "ugali", + "ugged", + "uhlan", + "uhuru", + "ukase", + "ulama", + "ulans", + "ulema", + "ulmin", + "ulnad", + "ulnae", + "ulnar", + "ulnas", + "ulpan", + "ulvas", + "ulyie", + "ulzie", + "umami", + "umbel", + "umber", + "umble", + "umbos", + "umbre", + "umiac", + "umiak", + "umiaq", + "ummah", + "ummas", + "ummed", + "umped", + "umphs", + "umpie", + "umpty", + "umrah", + "umras", + "unais", + "unapt", + "unarm", + "unary", + "unaus", + "unbag", + "unban", + "unbar", + "unbed", + "unbid", + "unbox", + "uncap", + "unces", + "uncia", + "uncos", + "uncoy", + "uncus", + "undam", + "undee", + "undos", + "undug", + "uneth", + "unfix", + "ungag", + "unget", + "ungod", + "ungot", + "ungum", + "unhat", + "unhip", + "unica", + "units", + "unjam", + "unked", + "unket", + "unkid", + "unlaw", + "unlay", + "unled", + "unlet", + "unlid", + "unman", + "unmew", + "unmix", + "unpay", + "unpeg", + "unpen", + "unpin", + "unred", + "unrid", + "unrig", + "unrip", + "unsaw", + "unsay", + "unsee", + "unsew", + "unsex", + "unsod", + "untax", + "untin", + "unwet", + "unwit", + "unwon", + "upbow", + "upbye", + "updos", + "updry", + "upend", + "upjet", + "uplay", + "upled", + "uplit", + "upped", + "upran", + "uprun", + "upsee", + "upsey", + "uptak", + "upter", + "uptie", + "uraei", + "urali", + "uraos", + "urare", + "urari", + "urase", + "urate", + "urbex", + "urbia", + "urdee", + "ureal", + "ureas", + "uredo", + "ureic", + "urena", + "urent", + "urged", + "urger", + "urges", + "urial", + "urite", + "urman", + "urnal", + "urned", + "urped", + "ursae", + "ursid", + "urson", + "urubu", + "urvas", + "users", + "usnea", + "usque", + "usure", + "usury", + "uteri", + "uveal", + "uveas", + "uvula", + "vacua", + "vaded", + "vades", + "vagal", + "vagus", + "vails", + "vaire", + "vairs", + "vairy", + "vakas", + "vakil", + "vales", + "valis", + "valse", + "vamps", + "vampy", + "vanda", + "vaned", + "vanes", + "vangs", + "vants", + "vaped", + "vaper", + "vapes", + "varan", + "varas", + "vardy", + "varec", + "vares", + "varia", + "varix", + "varna", + "varus", + "varve", + "vasal", + "vases", + "vasts", + "vasty", + "vatic", + "vatus", + "vauch", + "vaute", + "vauts", + "vawte", + "vaxes", + "veale", + "veals", + "vealy", + "veena", + "veeps", + "veers", + "veery", + "vegas", + "veges", + "vegie", + "vegos", + "vehme", + "veils", + "veily", + "veins", + "veiny", + "velar", + "velds", + "veldt", + "veles", + "vells", + "velum", + "venae", + "venal", + "vends", + "vendu", + "veney", + "venge", + "venin", + "vents", + "venus", + "verbs", + "verra", + "verry", + "verst", + "verts", + "vertu", + "vespa", + "vesta", + "vests", + "vetch", + "vexed", + "vexer", + "vexes", + "vexil", + "vezir", + "vials", + "viand", + "vibes", + "vibex", + "vibey", + "viced", + "vices", + "vichy", + "viers", + "views", + "viewy", + "vifda", + "viffs", + "vigas", + "vigia", + "vilde", + "viler", + "villi", + "vills", + "vimen", + "vinal", + "vinas", + "vinca", + "vined", + "viner", + "vines", + "vinew", + "vinic", + "vinos", + "vints", + "viold", + "viols", + "vired", + "vireo", + "vires", + "virga", + "virge", + "virid", + "virls", + "virtu", + "visas", + "vised", + "vises", + "visie", + "visne", + "vison", + "visto", + "vitae", + "vitas", + "vitex", + "vitro", + "vitta", + "vivas", + "vivat", + "vivda", + "viver", + "vives", + "vizir", + "vizor", + "vleis", + "vlies", + "vlogs", + "voars", + "vocab", + "voces", + "voddy", + "vodou", + "vodun", + "voema", + "vogie", + "voids", + "voile", + "voips", + "volae", + "volar", + "voled", + "voles", + "volet", + "volks", + "volta", + "volte", + "volti", + "volts", + "volva", + "volve", + "vomer", + "voted", + "votes", + "vouge", + "voulu", + "vowed", + "vower", + "voxel", + "vozhd", + "vraic", + "vrils", + "vroom", + "vrous", + "vrouw", + "vrows", + "vuggs", + "vuggy", + "vughs", + "vughy", + "vulgo", + "vulns", + "vulva", + "vutty", + "waacs", + "wacke", + "wacko", + "wacks", + "wadds", + "waddy", + "waded", + "wader", + "wades", + "wadge", + "wadis", + "wadts", + "waffs", + "wafts", + "waged", + "wages", + "wagga", + "wagyu", + "wahoo", + "waide", + "waifs", + "waift", + "wails", + "wains", + "wairs", + "waite", + "waits", + "wakas", + "waked", + "waken", + "waker", + "wakes", + "wakfs", + "waldo", + "walds", + "waled", + "waler", + "wales", + "walie", + "walis", + "walks", + "walla", + "walls", + "wally", + "walty", + "wamed", + "wames", + "wamus", + "wands", + "waned", + "wanes", + "waney", + "wangs", + "wanks", + "wanky", + "wanle", + "wanly", + "wanna", + "wants", + "wanty", + "wanze", + "waqfs", + "warbs", + "warby", + "wards", + "wared", + "wares", + "warez", + "warks", + "warms", + "warns", + "warps", + "warre", + "warst", + "warts", + "wases", + "washy", + "wasms", + "wasps", + "waspy", + "wasts", + "watap", + "watts", + "wauff", + "waugh", + "wauks", + "waulk", + "wauls", + "waurs", + "waved", + "waves", + "wavey", + "wawas", + "wawes", + "wawls", + "waxed", + "waxer", + "waxes", + "wayed", + "wazir", + "wazoo", + "weald", + "weals", + "weamb", + "weans", + "wears", + "webby", + "weber", + "wecht", + "wedel", + "wedgy", + "weeds", + "weeke", + "weeks", + "weels", + "weems", + "weens", + "weeny", + "weeps", + "weepy", + "weest", + "weete", + "weets", + "wefte", + "wefts", + "weids", + "weils", + "weirs", + "weise", + "weize", + "wekas", + "welds", + "welke", + "welks", + "welkt", + "wells", + "welly", + "welts", + "wembs", + "wends", + "wenge", + "wenny", + "wents", + "weros", + "wersh", + "wests", + "wetas", + "wetly", + "wexed", + "wexes", + "whamo", + "whams", + "whang", + "whaps", + "whare", + "whata", + "whats", + "whaup", + "whaur", + "wheal", + "whear", + "wheen", + "wheep", + "wheft", + "whelk", + "whelm", + "whens", + "whets", + "whews", + "wheys", + "whids", + "whift", + "whigs", + "whilk", + "whims", + "whins", + "whios", + "whips", + "whipt", + "whirr", + "whirs", + "whish", + "whiss", + "whist", + "whits", + "whity", + "whizz", + "whomp", + "whoof", + "whoot", + "whops", + "whore", + "whorl", + "whort", + "whoso", + "whows", + "whump", + "whups", + "whyda", + "wicca", + "wicks", + "wicky", + "widdy", + "wides", + "wiels", + "wifed", + "wifes", + "wifey", + "wifie", + "wifty", + "wigan", + "wigga", + "wiggy", + "wikis", + "wilco", + "wilds", + "wiled", + "wiles", + "wilga", + "wilis", + "wilja", + "wills", + "wilts", + "wimps", + "winds", + "wined", + "wines", + "winey", + "winge", + "wings", + "wingy", + "winks", + "winna", + "winns", + "winos", + "winze", + "wiped", + "wiper", + "wipes", + "wired", + "wirer", + "wires", + "wirra", + "wised", + "wises", + "wisha", + "wisht", + "wisps", + "wists", + "witan", + "wited", + "wites", + "withe", + "withs", + "withy", + "wived", + "wiver", + "wives", + "wizen", + "wizes", + "woads", + "woald", + "wocks", + "wodge", + "woful", + "wojus", + "woker", + "wokka", + "wolds", + "wolfs", + "wolly", + "wolve", + "wombs", + "womby", + "womyn", + "wonga", + "wongi", + "wonks", + "wonky", + "wonts", + "woods", + "wooed", + "woofs", + "woofy", + "woold", + "wools", + "woons", + "woops", + "woopy", + "woose", + "woosh", + "wootz", + "words", + "works", + "worms", + "wormy", + "worts", + "wowed", + "wowee", + "woxen", + "wrang", + "wraps", + "wrapt", + "wrast", + "wrate", + "wrawl", + "wrens", + "wrick", + "wried", + "wrier", + "wries", + "writs", + "wroke", + "wroot", + "wroth", + "wryer", + "wuddy", + "wudus", + "wulls", + "wurst", + "wuses", + "wushu", + "wussy", + "wuxia", + "wyled", + "wyles", + "wynds", + "wynns", + "wyted", + "wytes", + "xebec", + "xenia", + "xenic", + "xenon", + "xeric", + "xerox", + "xerus", + "xoana", + "xrays", + "xylan", + "xylem", + "xylic", + "xylol", + "xylyl", + "xysti", + "xysts", + "yaars", + "yabas", + "yabba", + "yabby", + "yacca", + "yacka", + "yacks", + "yaffs", + "yager", + "yages", + "yagis", + "yahoo", + "yaird", + "yakka", + "yakow", + "yales", + "yamen", + "yampy", + "yamun", + "yangs", + "yanks", + "yapok", + "yapon", + "yapps", + "yappy", + "yarak", + "yarco", + "yards", + "yarer", + "yarfa", + "yarks", + "yarns", + "yarrs", + "yarta", + "yarto", + "yates", + "yauds", + "yauld", + "yaups", + "yawed", + "yawey", + "yawls", + "yawns", + "yawny", + "yawps", + "ybore", + "yclad", + "ycled", + "ycond", + "ydrad", + "ydred", + "yeads", + "yeahs", + "yealm", + "yeans", + "yeard", + "years", + "yecch", + "yechs", + "yechy", + "yedes", + "yeeds", + "yeesh", + "yeggs", + "yelks", + "yells", + "yelms", + "yelps", + "yelts", + "yenta", + "yente", + "yerba", + "yerds", + "yerks", + "yeses", + "yesks", + "yests", + "yesty", + "yetis", + "yetts", + "yeuks", + "yeuky", + "yeven", + "yeves", + "yewen", + "yexed", + "yexes", + "yfere", + "yiked", + "yikes", + "yills", + "yince", + "yipes", + "yippy", + "yirds", + "yirks", + "yirrs", + "yirth", + "yites", + "yitie", + "ylems", + "ylike", + "ylkes", + "ymolt", + "ympes", + "yobbo", + "yobby", + "yocks", + "yodel", + "yodhs", + "yodle", + "yogas", + "yogee", + "yoghs", + "yogic", + "yogin", + "yogis", + "yoick", + "yojan", + "yoked", + "yokel", + "yoker", + "yokes", + "yokul", + "yolks", + "yolky", + "yomim", + "yomps", + "yonic", + "yonis", + "yonks", + "yoofs", + "yoops", + "yores", + "yorks", + "yorps", + "youks", + "yourn", + "yours", + "yourt", + "youse", + "yowed", + "yowes", + "yowie", + "yowls", + "yowza", + "yrapt", + "yrent", + "yrivd", + "yrneh", + "ysame", + "ytost", + "yuans", + "yucas", + "yucca", + "yucch", + "yucko", + "yucks", + "yucky", + "yufts", + "yugas", + "yuked", + "yukes", + "yukky", + "yukos", + "yulan", + "yules", + "yummo", + "yummy", + "yumps", + "yupon", + "yuppy", + "yurta", + "yurts", + "yuzus", + "zabra", + "zacks", + "zaida", + "zaidy", + "zaire", + "zakat", + "zaman", + "zambo", + "zamia", + "zanja", + "zante", + "zanza", + "zanze", + "zappy", + "zarfs", + "zaris", + "zatis", + "zaxes", + "zayin", + "zazen", + "zeals", + "zebec", + "zebub", + "zebus", + "zedas", + "zeins", + "zendo", + "zerda", + "zerks", + "zeros", + "zests", + "zetas", + "zexes", + "zezes", + "zhomo", + "zibet", + "ziffs", + "zigan", + "zilas", + "zilch", + "zilla", + "zills", + "zimbi", + "zimbs", + "zinco", + "zincs", + "zincy", + "zineb", + "zines", + "zings", + "zingy", + "zinke", + "zinky", + "zippo", + "zippy", + "ziram", + "zitis", + "zizel", + "zizit", + "zlote", + "zloty", + "zoaea", + "zobos", + "zobus", + "zocco", + "zoeae", + "zoeal", + "zoeas", + "zoism", + "zoist", + "zombi", + "zonae", + "zonda", + "zoned", + "zoner", + "zones", + "zonks", + "zooea", + "zooey", + "zooid", + "zooks", + "zooms", + "zoons", + "zooty", + "zoppa", + "zoppo", + "zoril", + "zoris", + "zorro", + "zouks", + "zowee", + "zowie", + "zulus", + "zupan", + "zupas", + "zuppa", + "zurfs", + "zuzim", + "zygal", + "zygon", + "zymes", + "zymic", +]); diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000..825b9e6 Binary files /dev/null and b/static/favicon.png differ diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..e308e65 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,20 @@ +import adapter from "@sveltejs/adapter-netlify"; +import { vitePreprocess } from "@sveltejs/kit/vite"; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: vitePreprocess(), + + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter({ + split: true, + }), + }, +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..794b95b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..281635f --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,13 @@ +import { sveltekit } from "@sveltejs/kit/vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [sveltekit()], + preview: { + port: 3000, + open: true, + }, + server: { + port: 3000, + }, +});