From e5306d363dcb73de0a7d872f2ab7294c0355cb13 Mon Sep 17 00:00:00 2001 From: Seikirin Date: Wed, 7 Aug 2024 13:09:34 +0100 Subject: [PATCH 01/13] Project initialized with create-next-app --- .eslintrc.json | 3 + .gitignore | 36 + README.md | 67 +- app/favicon.ico | Bin 0 -> 25931 bytes app/globals.css | 33 + app/layout.tsx | 22 + app/page.tsx | 113 + next.config.mjs | 4 + package-lock.json | 4884 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 26 + postcss.config.mjs | 8 + public/next.svg | 1 + public/vercel.svg | 1 + tailwind.config.ts | 20 + tsconfig.json | 26 + 15 files changed, 5200 insertions(+), 44 deletions(-) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 app/favicon.ico create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100644 next.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/next.svg create mode 100644 public/vercel.svg create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..bffb357a7 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..fd3dbb571 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/README.md b/README.md index 72d995242..c4033664f 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,36 @@ -# OpenDevEd-Wordle -## Requirements: -Your task is to create a web-based Wordle game using React that adheres to the following specifications: +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). -### User Interface (UI): +## Getting Started -Design a clean and intuitive UI for the game that includes: +First, run the development server: -- Input field for guessing words. -- Submit button to submit the guess. -- Display area for previous guesses. -= Indication of correct letters in correct positions (right letter, right position). -- Indication of correct letters in the wrong position. -- Display remaining attempts. -- End game state UI (upon winning or losing). +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` -### State Management: +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. -Implement a robust state management system to handle: +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. -- Target word selection (randomly generate a word at the start of the game). -- Storing user guesses and their results. -- Tracking remaining attempts. +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. -### User Interaction: +## Learn More -- Capture user input for word guesses. -- Validate input (alphabetic characters, word length, etc.). -- Handle the submission of guesses and update the game state accordingly. +To learn more about Next.js, take a look at the following resources: +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. -### Game Logic: +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! -- Compare the user's guessed word against the target word. -- Provide feedback to the user about the correctness of the guessed word. -- End the game when the correct word is guessed or when the attempts reach zero. +## Deploy on Vercel -## Code Quality: +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. -- Write clean, readable, and maintainable code. -- Implement best practices for React development. -- Ensure error handling for edge cases (invalid input, unexpected behavior). - -## Submission Guidelines: - -- Fork this [repository](https://github.com/OpenDevEd/OpenDevEd-wordle/)) and create a new branch named `wordle-[YOUR NAME]`. -- Provide clear instructions on how to run the application locally. -- Include a README file explaining your approach, decisions made, and any additional features implemented. -- Open a PR. - -## Evaluation Criteria: - -- UI/UX design and functionality. -- Code quality, structure, and maintainability. -- State management and logic implementation. -- Handling of edge cases and error scenarios. -- Bonus points for additional features or optimizations. +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 000000000..875c01e81 --- /dev/null +++ b/app/globals.css @@ -0,0 +1,33 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 000000000..3314e4780 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,22 @@ +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import "./globals.css"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + {children} + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 000000000..5705d4ea0 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,113 @@ +import Image from "next/image"; + +export default function Home() { + return ( +
+
+

+ Get started by editing  + app/page.tsx +

+ +
+ +
+ Next.js Logo +
+ + +
+ ); +} diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 000000000..4678774e6 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..90bde34f1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4884 @@ +{ + "name": "wordle-sickerine", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wordle-sickerine", + "version": "0.1.0", + "dependencies": { + "next": "14.2.5", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.5", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "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.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.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.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.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": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", + "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", + "dev": true, + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", + "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", + "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", + "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", + "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", + "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", + "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", + "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", + "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", + "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", + "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "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/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "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/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "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/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "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.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "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/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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/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/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "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/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "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/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "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.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "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", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "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-next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", + "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "14.2.5", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", + "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "dev": true, + "dependencies": { + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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/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/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.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "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.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "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.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", + "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "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/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "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/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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "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/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "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-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "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/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "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/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "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/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "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/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "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.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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/next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", + "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", + "dependencies": { + "@next/env": "14.2.5", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.5", + "@next/swc-darwin-x64": "14.2.5", + "@next/swc-linux-arm64-gnu": "14.2.5", + "@next/swc-linux-arm64-musl": "14.2.5", + "@next/swc-linux-x64-gnu": "14.2.5", + "@next/swc-linux-x64-musl": "14.2.5", + "@next/swc-win32-arm64-msvc": "14.2.5", + "@next/swc-win32-ia32-msvc": "14.2.5", + "@next/swc-win32-x64-msvc": "14.2.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "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.5" + }, + "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-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "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/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "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/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "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/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "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/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.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/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "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/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/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-ansi-cjs": { + "name": "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-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/tailwindcss": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", + "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "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/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "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/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": 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/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "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" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..2bf6c20d8 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "wordle-sickerine", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "react": "^18", + "react-dom": "^18", + "next": "14.2.5" + }, + "devDependencies": { + "typescript": "^5", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "eslint": "^8", + "eslint-config-next": "14.2.5" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 000000000..1a69fd2a4 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/public/next.svg b/public/next.svg new file mode 100644 index 000000000..5174b28c5 --- /dev/null +++ b/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg new file mode 100644 index 000000000..d2f842227 --- /dev/null +++ b/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 000000000..7e4bd91a0 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..e7ff90fd2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From 0f0b9e0d6c65dc7db916426f6d4246e642c06414 Mon Sep 17 00:00:00 2001 From: Seikirin Date: Wed, 7 Aug 2024 13:18:35 +0100 Subject: [PATCH 02/13] Defaults cleaned up and prettier-plugin-tailwindcss initialized --- .prettierrc | 5 +++ app/globals.css | 32 +------------ app/page.tsx | 110 +-------------------------------------------- package-lock.json | 91 +++++++++++++++++++++++++++++++++++++ package.json | 12 ++--- tailwind.config.ts | 5 --- 6 files changed, 105 insertions(+), 150 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..8100f3001 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "plugins": ["prettier-plugin-tailwindcss"], + "useTabs": true, + "tabWidth": 4 +} diff --git a/app/globals.css b/app/globals.css index 875c01e81..bd6213e1d 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,33 +1,3 @@ @tailwind base; @tailwind components; -@tailwind utilities; - -:root { - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 214, 219, 220; - --background-end-rgb: 255, 255, 255; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - } -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -@layer utilities { - .text-balance { - text-wrap: balance; - } -} +@tailwind utilities; \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index 5705d4ea0..17912084c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,113 +1,5 @@ import Image from "next/image"; export default function Home() { - return ( -
-
-

- Get started by editing  - app/page.tsx -

- -
- -
- Next.js Logo -
- - -
- ); + return
; } diff --git a/package-lock.json b/package-lock.json index 90bde34f1..9b3ad482e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,8 @@ "eslint": "^8", "eslint-config-next": "14.2.5", "postcss": "^8", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.5", "tailwindcss": "^3.4.1", "typescript": "^5" } @@ -3704,6 +3706,95 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.5.tgz", + "integrity": "sha512-axfeOArc/RiGHjOIy9HytehlC0ZLeMaqY09mm8YCkMzznKiDkwFzOpBvtuhuv3xG5qB73+Mj7OCe2j/L1ryfuQ==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig-melody": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", diff --git a/package.json b/package.json index 2bf6c20d8..d45457bd9 100644 --- a/package.json +++ b/package.json @@ -9,18 +9,20 @@ "lint": "next lint" }, "dependencies": { + "next": "14.2.5", "react": "^18", - "react-dom": "^18", - "next": "14.2.5" + "react-dom": "^18" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.5", "postcss": "^8", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.5", "tailwindcss": "^3.4.1", - "eslint": "^8", - "eslint-config-next": "14.2.5" + "typescript": "^5" } } diff --git a/tailwind.config.ts b/tailwind.config.ts index 7e4bd91a0..f44939eeb 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -8,11 +8,6 @@ const config: Config = { ], theme: { extend: { - backgroundImage: { - "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", - "gradient-conic": - "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", - }, }, }, plugins: [], From 98bb92129141dd26f169c75d470ca6abe8577022 Mon Sep 17 00:00:00 2001 From: Seikirin Date: Wed, 7 Aug 2024 21:37:29 +0100 Subject: [PATCH 03/13] Simple Wordle game with hints and sound effects --- app/favicon.ico | Bin 25931 -> 0 bytes app/layout.tsx | 22 ---- app/page.tsx | 5 - package-lock.json | 46 ++++++- package.json | 5 +- public/backspace.wav | Bin 0 -> 369502 bytes public/correct.wav | Bin 0 -> 56236 bytes public/deny.mp3 | Bin 0 -> 20897 bytes public/green.wav | Bin 0 -> 59180 bytes public/idea.wav | Bin 0 -> 82492 bytes public/invalid.mp3 | Bin 0 -> 10448 bytes public/lose.wav | Bin 0 -> 49772 bytes public/next.svg | 1 - public/typing.wav | Bin 0 -> 153542 bytes public/vercel.svg | 1 - public/victory.wav | Bin 0 -> 163856 bytes src/app/favicon.ico | Bin 0 -> 3280 bytes src/app/layout.tsx | 25 ++++ src/app/page.tsx | 81 ++++++++++++ src/components/CharacterBox.tsx | 36 ++++++ src/components/Grid.tsx | 207 +++++++++++++++++++++++++++++++ src/components/Hearts.tsx | 29 +++++ src/components/HintCharacter.tsx | 40 ++++++ src/components/HintsRow.tsx | 53 ++++++++ src/constants/game.ts | 2 + src/data/wordlist.json | 1 + src/hooks/game.ts | 111 +++++++++++++++++ src/providers/AudioProvider.tsx | 39 ++++++ {app => src/styles}/globals.css | 0 src/types/AudioContext.ts | 7 ++ src/types/CharacterBox.ts | 7 ++ src/types/Grid.ts | 9 ++ src/types/game.ts | 39 ++++++ src/utils/game.ts | 74 +++++++++++ tailwind.config.ts | 93 +++++++++++++- tsconfig.json | 2 +- 36 files changed, 900 insertions(+), 35 deletions(-) delete mode 100644 app/favicon.ico delete mode 100644 app/layout.tsx delete mode 100644 app/page.tsx create mode 100644 public/backspace.wav create mode 100644 public/correct.wav create mode 100644 public/deny.mp3 create mode 100644 public/green.wav create mode 100644 public/idea.wav create mode 100644 public/invalid.mp3 create mode 100644 public/lose.wav delete mode 100644 public/next.svg create mode 100644 public/typing.wav delete mode 100644 public/vercel.svg create mode 100644 public/victory.wav create mode 100644 src/app/favicon.ico create mode 100644 src/app/layout.tsx create mode 100644 src/app/page.tsx create mode 100644 src/components/CharacterBox.tsx create mode 100644 src/components/Grid.tsx create mode 100644 src/components/Hearts.tsx create mode 100644 src/components/HintCharacter.tsx create mode 100644 src/components/HintsRow.tsx create mode 100644 src/constants/game.ts create mode 100644 src/data/wordlist.json create mode 100644 src/hooks/game.ts create mode 100644 src/providers/AudioProvider.tsx rename {app => src/styles}/globals.css (100%) create mode 100644 src/types/AudioContext.ts create mode 100644 src/types/CharacterBox.ts create mode 100644 src/types/Grid.ts create mode 100644 src/types/game.ts create mode 100644 src/utils/game.ts diff --git a/app/favicon.ico b/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 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 LrJugUA?W`A8`#=m diff --git a/app/layout.tsx b/app/layout.tsx deleted file mode 100644 index 3314e4780..000000000 --- a/app/layout.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; -import "./globals.css"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", -}; - -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { - return ( - - {children} - - ); -} diff --git a/app/page.tsx b/app/page.tsx deleted file mode 100644 index 17912084c..000000000 --- a/app/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import Image from "next/image"; - -export default function Home() { - return
; -} diff --git a/package-lock.json b/package-lock.json index 9b3ad482e..908e71873 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,12 @@ "name": "wordle-sickerine", "version": "0.1.0", "dependencies": { + "framer-motion": "^11.3.22", + "lucide-react": "^0.424.0", "next": "14.2.5", "react": "^18", - "react-dom": "^18" + "react-dom": "^18", + "tailwind-merge": "^2.4.0" }, "devDependencies": { "@types/node": "^20", @@ -2084,6 +2087,30 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/framer-motion": { + "version": "11.3.22", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.3.22.tgz", + "integrity": "sha512-NS9TnPOJhkUrKKe7sl9zAMmQlzm70bwzJ6/gs/DkYP3kCqc0wO350CEqiEcBuVjhyqVNnDf33SkenzByi8x8Gg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3059,6 +3086,14 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, + "node_modules/lucide-react": { + "version": "0.424.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.424.0.tgz", + "integrity": "sha512-x2Nj2aytk1iOyHqt4hKenfVlySq0rYxNeEf8hE0o+Yh0iE36Rqz0rkngVdv2uQtjZ70LAE73eeplhhptYt9x4Q==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4478,6 +4513,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind-merge": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", + "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", diff --git a/package.json b/package.json index d45457bd9..e2becb7bd 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,12 @@ "lint": "next lint" }, "dependencies": { + "framer-motion": "^11.3.22", + "lucide-react": "^0.424.0", "next": "14.2.5", "react": "^18", - "react-dom": "^18" + "react-dom": "^18", + "tailwind-merge": "^2.4.0" }, "devDependencies": { "@types/node": "^20", diff --git a/public/backspace.wav b/public/backspace.wav new file mode 100644 index 0000000000000000000000000000000000000000..547f7aaabca991814c7ab5b8062e10a8d3f5e889 GIT binary patch literal 369502 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 F{U0$tTWJ6Q literal 0 HcmV?d00001 diff --git a/public/deny.mp3 b/public/deny.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d6dd8e2f796f12a024414fd8f0eb4b6254a9029a GIT binary patch literal 20897 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 Zb&}su_}}W>f93c74Tb+ob^piD{ZD-RQ#=3w literal 0 HcmV?d00001 diff --git a/public/green.wav b/public/green.wav new file mode 100644 index 0000000000000000000000000000000000000000..0e8c2a213a52b23df63aee0523ccc2eaeb3c02ec GIT binary patch literal 59180 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 literal 0 HcmV?d00001 diff --git a/public/idea.wav b/public/idea.wav new file mode 100644 index 0000000000000000000000000000000000000000..377347dd8ef5b5389c024080810f2ef3bae0effe GIT binary patch literal 82492 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

-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�g<;sv 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 literal 0 HcmV?d00001 diff --git a/public/invalid.mp3 b/public/invalid.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0106bfe9c92d4bf96b55ea98ba0e7e5904dd2e6e GIT binary patch literal 10448 zcmeHs_cvT$_y3)uk1mWpY7k{c3nDRUlp&(`jLzsKM4B0$AbLg%(fd0hLWCGKh+b2W z=p|8tL=fg9&-?lQ5#P0*z1F?!uKmL~d%yO%ul+jbkWap90spiAA@Dy0{)fPS5g?y@ zbpZhC*+^YpcLbQoXth}04S1Yg(hZvjXuCDnM-69KuptyF4T`^*E0c%J^~`{|%0KvZcYq-Y zN{JwSmEnmxBE&B5h1o32q^=)t!k?ZG z8Fok}ALgs!bXJZ_O1e}}@~^7;7F>0VxxKNmwOJ}6(vsX|6?##0q3Lus_Tr^3-_Pxg zpFiwUBjeskty{0t-~l`%r4XwyWLFOe24RJ0Q)%h&FK#@>cLTGa0cst}LJD;)HX`l^ zv@aW-z!WI$i?x&H;uTz6=IQj`bKN`kv+*oHBmdV<<;mntb?CLSGPhenU}^358x^Ex zj|Pa&sCv3I2fcW9Zn-U)tS&zpL1#EB^JHkEFoKO~G6L2BK{Le0-1pxFT_>Mc7z6}F zYXH<>l%W?V4QxCMOaWma6bq7&j-$^0#^`{HR#6Z^UQ&_7D>#fgyTZc}&HPxyjTZ&) z_7>A~619{keh0g;S87`Mzj79fkBg)PfdEj

-
-
+
+

The word was @@ -74,7 +67,7 @@ export default function GameContainer(props: GameContainerProps) { .

- Press any key to play again. + Press any key or tap to play again.

diff --git a/src/components/Grid.tsx b/src/components/Grid.tsx index 1a6501f81..f91ef7fe9 100644 --- a/src/components/Grid.tsx +++ b/src/components/Grid.tsx @@ -4,7 +4,7 @@ import wordles from "@/data/wordles.json"; import allowed_guesses from "@/data/allowed_guesses.json"; import { twMerge } from "tailwind-merge"; import { CornerDownLeft } from "lucide-react"; -import { MAX_ATTEMPTS, WORD_LENGTH } from "@/constants/game"; +import { alphabetRegex, MAX_ATTEMPTS, WORD_LENGTH } from "@/constants/game"; import { useAudio, useGridState } from "@/hooks/game"; import { processAttemptColors, @@ -15,24 +15,31 @@ import CharacterBox from "@/components/CharacterBox"; import Hearts from "./Hearts"; import { GridProps } from "@/types/Grid"; import HintsRow from "./HintsRow"; +import { InputFunction } from "@/types/game"; +import HistoryPage from "./HistoryPage"; +import HistoryToggle from "./HistoryToggle"; +import KeyboardContainer from "./KeyboardContainer"; export default function Grid({ showGrid, setAttempts, attempts, randomWord, + attemptColors, + setAttemptColors, setRandomWord, resetGame, setResetGame, heartsLeft, + savedHistory, + setSavedHistory, + setResults, }: GridProps) { const { scope, animate, - attemptColors, - setAttemptColors, - isKeyDown, - setIsKeyDown, + keysDown, + setKeysDown, currentString, setCurrentString, canPopOut, @@ -40,6 +47,8 @@ export default function Grid({ heartAnimate, cheats, setCheats, + showHistory, + setShowHistory, } = useGridState(); const { playSound } = useAudio(); @@ -57,12 +66,38 @@ export default function Grid({ if (newColorExists(attemptColors, currentColors, "green")) playSound("correct", 0.5); else playSound("deny"); - setAttempts((prev) => [...prev, currentString]); - setAttemptColors((prev) => [...prev, currentColors]); + const newAttempts = [...attempts, currentString]; + const newColors = [...attemptColors, currentColors]; + setAttempts(newAttempts); + setAttemptColors(newColors); + const condition = { + win: newColors[newColors.length - 1].every( + (color) => color === "green", + ), + lose: newAttempts.length === MAX_ATTEMPTS, + }; + if (condition.win || condition.lose) { + playSound(condition.win ? "victory" : "lose"); + setResults({ + gameState: condition.win ? "win" : "lose", + heartsLeft: condition.win ? heartsLeft : heartsLeft - 1, + randomWord, + }); + setSavedHistory([ + { + attempts: newAttempts, + colors: newColors, + word: randomWord, + date: new Date(), + }, + ...savedHistory, + ]); + } else { + heartAnimate("#heartList", { + x: [10, 0], + }); + } setCurrentString(""); - heartAnimate("#heartList", { - x: [10, 0], - }); } else { animate(`.row-${attempts.length}`, { x: [10, 0], @@ -70,56 +105,87 @@ export default function Grid({ playSound("invalid", 0.5); } }, [ - currentString, - attempts, - randomWord, animate, - setAttempts, - setAttemptColors, - setCurrentString, attemptColors, + attempts, + currentString, heartAnimate, + heartsLeft, playSound, + randomWord, + savedHistory, + setAttemptColors, + setAttempts, + setCurrentString, + setResults, + setSavedHistory, ]); - useEffect(() => { - const alphabetRegex = /^[a-zA-Z]$/; - - const resetGameUpdate = () => { - setAttempts([]); - setAttemptColors([]); - setCurrentString(""); - setRandomWord(generateRandomWord()); - setCheats([]); - }; + const resetGameUpdate = useCallback(() => { + setAttempts([]); + setAttemptColors([]); + setCurrentString(""); + setRandomWord(generateRandomWord()); + setCheats([]); + }, [ + setAttempts, + setAttemptColors, + setCurrentString, + setRandomWord, + setCheats, + ]); - const handleKeyDown = (e: KeyboardEvent) => { - if (alphabetRegex.test(e.key)) setIsKeyDown(true); - }; + const handleKeyDown = useCallback( + (e) => { + if (e.key == "Tab" && e instanceof KeyboardEvent) { + e.preventDefault(); + return; + } + if (showHistory) return; + setKeysDown((prev) => new Map(prev.set(e.key.toLowerCase(), true))); + }, + [setKeysDown, showHistory], + ); - const handleKeyUp = (e: KeyboardEvent) => { - setIsKeyDown(false); + const handleKeyUp = useCallback( + (e) => { + if (showHistory) return; + const key = e.key.toLowerCase(); + setKeysDown((prev) => { + prev.delete(key); + return new Map(prev); + }); if (!showGrid) resetGameUpdate(); else if ( - alphabetRegex.test(e.key) && + alphabetRegex.test(key) && currentString.length < WORD_LENGTH ) { - setCurrentString((prev) => prev + e.key.toLowerCase()); + setCurrentString((prev) => prev + key); playSound("typing"); - } else if (e.key === "Backspace") { + } else if (key === "backspace") { setCurrentString((prev) => prev.slice(0, -1)); playSound("backspace", 0.5, 0.05); - } else if (e.key === "Enter") { + } else if (key === "enter") { submitWord(); } - }; + }, + [ + currentString, + setCurrentString, + submitWord, + showGrid, + resetGameUpdate, + playSound, + showHistory, + setKeysDown, + ], + ); + useEffect(() => { if (randomWord === "") setRandomWord(generateRandomWord()); - if (!showGrid && !resetGame) - setResetGame(() => resetGameUpdate); - else if (showGrid && resetGame) - setResetGame(null); + if (!showGrid && !resetGame) setResetGame(() => resetGameUpdate); + else if (showGrid && resetGame) setResetGame(null); window.addEventListener("keydown", handleKeyDown); window.addEventListener("keyup", handleKeyUp); @@ -129,92 +195,115 @@ export default function Grid({ window.removeEventListener("keyup", handleKeyUp); }; }, [ - resetGame, - currentString, - submitWord, randomWord, setRandomWord, - setAttempts, - setAttemptColors, - setResetGame, - setCurrentString, - setIsKeyDown, - heartScope, - playSound, - setCheats, showGrid, + resetGame, + setResetGame, + resetGameUpdate, + handleKeyDown, + handleKeyUp, ]); return (
- -
- {Array(MAX_ATTEMPTS) - .fill(Array(WORD_LENGTH).fill(null)) - .map((row: string[], rowIndex) => { - const isCurrentWord = rowIndex === attempts.length; +
+ + +
+ {Array(MAX_ATTEMPTS) + .fill(Array(WORD_LENGTH).fill(null)) + .map((row: string[], rowIndex) => { + const isCurrentWord = rowIndex === attempts.length; - return ( -
+ return (
- {row.map((_, columnIndex) => ( - - ))}
- + {row.map((_, columnIndex) => ( + + ))} +
+ +
-
- ); - })} + ); + })} +
+
+ +
+
-
- +
+
); diff --git a/src/components/Hearts.tsx b/src/components/Hearts.tsx index 97720ba45..54a549a60 100644 --- a/src/components/Hearts.tsx +++ b/src/components/Hearts.tsx @@ -2,11 +2,20 @@ import { MAX_ATTEMPTS } from "@/constants/game"; import { Heart, HeartCrack } from "lucide-react"; import { twMerge } from "tailwind-merge"; -export default function Hearts({ heartsLeft }: { heartsLeft: number }) { +export default function Hearts({ + heartsLeft, + history, +}: { + heartsLeft: number; + history?: boolean; +}) { return (
{Array(MAX_ATTEMPTS) .fill(null) diff --git a/src/components/HintsRow.tsx b/src/components/HintsRow.tsx index 80a267d3d..a8bfd0186 100644 --- a/src/components/HintsRow.tsx +++ b/src/components/HintsRow.tsx @@ -30,7 +30,7 @@ export default function HintsRow({ }, [attempts, randomWord, cheats, setCheats, playSound]); return ( -
+
{Array(WORD_LENGTH) .fill(null) .map((_, index) => ( diff --git a/src/components/HistoryPage.tsx b/src/components/HistoryPage.tsx new file mode 100644 index 000000000..b4ae8a446 --- /dev/null +++ b/src/components/HistoryPage.tsx @@ -0,0 +1,72 @@ +import { HistoryEntry } from "@/types/game"; +import { Calendar, Clock } from "lucide-react"; +import MiniGrid from "./MiniGrid"; +import Hearts from "./Hearts"; +import { MAX_ATTEMPTS } from "@/constants/game"; +import HistoryToggle from "./HistoryToggle"; + +export default function HistoryPage({ + savedHistory, + setShowHistory, +}: { + savedHistory: HistoryEntry[]; + setShowHistory: React.Dispatch>; +}) { + return ( +
+ + {!savedHistory.length && ( +
+
No history yet.
+
+ )} + {savedHistory.map((entry: HistoryEntry, i) => ( +
+
+ {i !== savedHistory.length - 1 && ( +
+ )} +
+
+
+ +
+
Date
+
+ + {new Date( + entry.date, + ).toLocaleDateString()} + + + + {new Date(entry.date) + .toLocaleTimeString() + .replace(/:\d+ /, " ")} + +
+
+
+ + +
+ {entry.word} +
+
+
+ ))} +
+ ); +} diff --git a/src/components/HistoryToggle.tsx b/src/components/HistoryToggle.tsx new file mode 100644 index 000000000..8aabebbce --- /dev/null +++ b/src/components/HistoryToggle.tsx @@ -0,0 +1,25 @@ +import { useAudio } from "@/hooks/game"; +import { History, ArrowBigUp } from "lucide-react"; + +export default function HistoryToggle({ + showHistory, + setShowHistory, +}: { + showHistory: boolean; + setShowHistory: React.Dispatch>; +}) { + const { playSound } = useAudio(); + const Component = showHistory ? ArrowBigUp : History; + + return ( +
{ + playSound("deny", 1, 0.1); + setShowHistory(!showHistory); + }} + > + +
+ ); +} diff --git a/src/components/KeyboardContainer.tsx b/src/components/KeyboardContainer.tsx new file mode 100644 index 000000000..db84beb89 --- /dev/null +++ b/src/components/KeyboardContainer.tsx @@ -0,0 +1,61 @@ +import { Delete } from "lucide-react"; +import KeyboardKey from "./KeyboardKey"; +import { twMerge } from "tailwind-merge"; +import { InputFunction } from "@/types/game"; +import { KeyboardKeys } from "@/constants/game"; + +export default function KeyboardContainer({ + handleKeyDown, + handleKeyUp, + keysDown, + attempts, + randomWord, +}: { + handleKeyDown: InputFunction; + handleKeyUp: InputFunction; + keysDown: Map; + attempts: string[]; + randomWord: string; +}) { + return ( +
+ +
+ Backspace +
+
+ {KeyboardKeys.map((row, rowIndex) => ( +
+ {row.map((key, keyIndex) => ( + + {key} + + ))} +
+ ))} +
+ ); +} diff --git a/src/components/KeyboardKey.tsx b/src/components/KeyboardKey.tsx new file mode 100644 index 000000000..8dd1b713d --- /dev/null +++ b/src/components/KeyboardKey.tsx @@ -0,0 +1,57 @@ +import { InputFunction } from "@/types/game"; +import { HTMLAttributes } from "react"; +import { twMerge } from "tailwind-merge"; + +export default function KeyboardKey({ + keysDown, + keyboardKey, + downFunction, + upFunction, + children, + className, + attempts, + randomWord, + ...props +}: HTMLAttributes & { + keysDown: Map; + keyboardKey: string; + downFunction: InputFunction; + upFunction: InputFunction; + attempts: string[]; + randomWord: string; +}) { + const alreadyUsed = attempts.some((attempt) => + attempt.includes(keyboardKey), + ); + const alreadyUsedAndCorrectPlacement = + alreadyUsed && + attempts.some((attempt) => { + const index = randomWord.indexOf(keyboardKey); + return attempt[index] === keyboardKey; + }); + const alreadyUsedAndExists = + !alreadyUsedAndCorrectPlacement && + alreadyUsed && + randomWord.includes(keyboardKey); + + return ( +
downFunction({ key: keyboardKey })} + onMouseUp={() => upFunction({ key: keyboardKey })} + onMouseLeave={() => { + if (keysDown.has(keyboardKey)) upFunction({ key: keyboardKey }); + }} + className={twMerge( + "text-md flex h-12 flex-1 cursor-pointer select-none items-center justify-center rounded bg-card font-black uppercase text-text transition-all hover:bg-card-400 active:scale-95", + className, + keysDown.has(keyboardKey) && "scale-95 brightness-50", + alreadyUsed && "bg-card-200", + alreadyUsedAndExists && "bg-yellow-600", + alreadyUsedAndCorrectPlacement && "bg-green-600", + )} + {...props} + > + {children} +
+ ); +} diff --git a/src/components/MainContainer.tsx b/src/components/MainContainer.tsx new file mode 100644 index 000000000..8935a400c --- /dev/null +++ b/src/components/MainContainer.tsx @@ -0,0 +1,10 @@ +import AudioProvider from "@/providers/AudioProvider"; +import GameContainer from "./GameContainer"; + +export default function MainContainer({ presetWord }: { presetWord?: string }) { + return ( + + + + ); +} diff --git a/src/components/MiniGrid.tsx b/src/components/MiniGrid.tsx new file mode 100644 index 000000000..95b72c615 --- /dev/null +++ b/src/components/MiniGrid.tsx @@ -0,0 +1,41 @@ +import { MAX_ATTEMPTS, WORD_LENGTH } from "@/constants/game"; +import { twMerge } from "tailwind-merge"; + +export default function MiniGrid({ + attempts, + colors, + word, +}: { + attempts: string[]; + colors: string[][]; + word: string; +}) { + return ( +
+ {Array(MAX_ATTEMPTS) + .fill(Array(WORD_LENGTH).fill(null)) + .map((row: string[], rowIndex) => ( +
+ {row.map((_, columnIndex) => { + const letter = attempts[rowIndex]?.[columnIndex]; + const color = colors[rowIndex]?.[columnIndex]; + return ( +
+ {letter ?? ""} +
+ ); + })} +
+ ))} +
+ ); +} diff --git a/src/constants/game.ts b/src/constants/game.ts index 6e6ac7ad1..1d2e88892 100644 --- a/src/constants/game.ts +++ b/src/constants/game.ts @@ -9,3 +9,9 @@ export const SFX = { victory: "/victory.wav", lose: "/lose.wav", }; +export const KeyboardKeys = [ + ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"], + ["a", "s", "d", "f", "g", "h", "j", "k", "l"], + ["z", "x", "c", "v", "b", "n", "m"], +]; +export const alphabetRegex = /^[a-zA-Z]$/; diff --git a/src/hooks/game.ts b/src/hooks/game.ts index 57765576f..ed3a380c5 100644 --- a/src/hooks/game.ts +++ b/src/hooks/game.ts @@ -1,11 +1,16 @@ import { CharacterBoxProps } from "@/types/CharacterBox"; import { useState, useEffect, useMemo, useContext } from "react"; import { MAX_ATTEMPTS } from "@/constants/game"; -import { ActiveState, GameState, GridState, Results } from "@/types/game"; +import { + ActiveState, + GameState, + GridState, + HistoryEntry, + Results, +} from "@/types/game"; import { useAnimate } from "framer-motion"; import { AudioContextProvider } from "@/providers/AudioProvider"; import { AudioContextReturn } from "@/types/AudioContext"; -import { GameContainerProps } from "@/types/GameContainer"; export function useCharacterBox({ rowIndex, @@ -46,17 +51,19 @@ export function useCanPopOut() { return canPopOut; } -export function useGameState({ presetWord }: GameContainerProps): GameState { +export function useGameState(presetWord?: string): GameState { + const [savedHistory, setSavedHistory] = useState([]); const [attempts, setAttempts] = useState([]); + const [attemptColors, setAttemptColors] = useState([]); const [randomWord, setRandomWord] = useState(presetWord ?? ""); const [resetGame, setResetGame] = useState<(() => void) | null>(null); const [results, setResults] = useState(null); - const [gameState, showGrid] = useMemo<[ActiveState, boolean]>(() => { + const showGrid = useMemo(() => { let gameState: ActiveState = "playing"; if (randomWord === "") gameState = "loading"; else if (attempts.includes(randomWord)) gameState = "win"; else if (attempts.length === MAX_ATTEMPTS) gameState = "lose"; - return [gameState, gameState === "playing" || gameState === "loading"]; + return gameState === "playing" || gameState === "loading"; }, [randomWord, attempts]); const heartsLeft = useMemo( () => @@ -65,18 +72,31 @@ export function useGameState({ presetWord }: GameContainerProps): GameState { [attempts, randomWord], ); + useEffect(() => { + const history = localStorage.getItem("history"); + if (history) setSavedHistory(JSON.parse(history)); + }, []); + + useEffect(() => { + if (savedHistory.length > 0) + localStorage.setItem("history", JSON.stringify(savedHistory)); + }, [savedHistory]); + return { attempts, setAttempts, + attemptColors, + setAttemptColors, randomWord, setRandomWord, resetGame, setResetGame, - gameState, showGrid, heartsLeft, results, setResults, + savedHistory, + setSavedHistory, }; } @@ -84,9 +104,10 @@ export function useGridState(): GridState { const [scope, animate] = useAnimate(); const [heartScope, heartAnimate] = useAnimate(); const [attemptColors, setAttemptColors] = useState([]); - const [isKeyDown, setIsKeyDown] = useState(false); + const [keysDown, setKeysDown] = useState>(new Map()); const [currentString, setCurrentString] = useState(""); const [cheats, setCheats] = useState([]); + const [showHistory, setShowHistory] = useState(false); const canPopOut = useCanPopOut(); return { @@ -94,8 +115,8 @@ export function useGridState(): GridState { animate, attemptColors, setAttemptColors, - isKeyDown, - setIsKeyDown, + keysDown, + setKeysDown, currentString, setCurrentString, canPopOut, @@ -103,6 +124,8 @@ export function useGridState(): GridState { heartAnimate, cheats, setCheats, + showHistory, + setShowHistory, }; } diff --git a/src/styles/globals.css b/src/styles/globals.css index bd6213e1d..b5c61c956 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -1,3 +1,3 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; diff --git a/src/types/GameContainer.ts b/src/types/GameContainer.ts deleted file mode 100644 index 95fc85bbb..000000000 --- a/src/types/GameContainer.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type GameContainerProps = { - presetWord?: string; -} \ No newline at end of file diff --git a/src/types/Grid.ts b/src/types/Grid.ts index ed82add88..1cb7caabd 100644 --- a/src/types/Grid.ts +++ b/src/types/Grid.ts @@ -1,10 +1,17 @@ +import { HistoryEntry, Results } from "./game"; + export type GridProps = { showGrid: boolean; setAttempts: React.Dispatch>; attempts: string[]; + attemptColors: string[][]; + setAttemptColors: React.Dispatch>; randomWord: string; setRandomWord: React.Dispatch>; resetGame: (() => void) | null; setResetGame: React.Dispatch void) | null>>; heartsLeft: number; + savedHistory: HistoryEntry[]; + setSavedHistory: React.Dispatch>; + setResults: React.Dispatch>; }; diff --git a/src/types/game.ts b/src/types/game.ts index 9b625e637..1c9030b52 100644 --- a/src/types/game.ts +++ b/src/types/game.ts @@ -5,15 +5,18 @@ export type ActiveState = "playing" | "win" | "lose" | "loading"; export type GameState = { attempts: string[]; setAttempts: React.Dispatch>; + attemptColors: string[][]; + setAttemptColors: React.Dispatch>; randomWord: string; setRandomWord: React.Dispatch>; resetGame: (() => void) | null; setResetGame: React.Dispatch void) | null>>; - gameState: string; showGrid: boolean; heartsLeft: number; results: Results; setResults: React.Dispatch>; + savedHistory: HistoryEntry[]; + setSavedHistory: React.Dispatch>; }; export type GridState = { @@ -21,8 +24,8 @@ export type GridState = { animate: ReturnType[1]; attemptColors: string[][]; setAttemptColors: React.Dispatch>; - isKeyDown: boolean; - setIsKeyDown: React.Dispatch>; + keysDown: Map; + setKeysDown: React.Dispatch>>; currentString: string; setCurrentString: React.Dispatch>; canPopOut: boolean; @@ -30,10 +33,21 @@ export type GridState = { heartAnimate: ReturnType[1]; cheats: string[]; setCheats: React.Dispatch>; + showHistory: boolean; + setShowHistory: React.Dispatch>; }; +export type InputFunction = (e: KeyboardEvent | { key: string }) => void; + export type Results = { gameState: string; heartsLeft: number; randomWord: string; } | null; + +export type HistoryEntry = { + attempts: string[]; + colors: string[][]; + word: string; + date: Date; +}; From 1f4ac5bc8e1a2685eb993530095bb2e364d94c47 Mon Sep 17 00:00:00 2001 From: Sick <81483357+sickerine@users.noreply.github.com> Date: Mon, 12 Aug 2024 02:31:53 +0100 Subject: [PATCH 13/13] README.md update --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 76662fa2d..c8cec83a1 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,12 @@ The valid words dictionary is used to check the validity of the user's guess, wh * Intuitive user interface with pixel perfect spacing. * Smooth animations to elevate interactivity and feedback. +* Built to be completely mobile friendly. ### User Experience * A clear display of correctly positioned letters making it easier to focus on the task at hand. +* An on-screen keyboard not only enabling mobile play, but also clearly displaying used and unused characters. * Color coding for right letters in their correct positions, correct letters in wrong positions and incorrect letters. * The ability to start a new round without taking your hands off the keyboard. @@ -49,6 +51,7 @@ The valid words dictionary is used to check the validity of the user's guess, wh * A variety of sound effects for enhanced immersion. * The ability to request hints on a letter by letter basis. +* Each attempt is saved in localStorage and cleanly displayed, providing a simple but effective history system. ### Theming
20WK;v35A*y5YFDXaDFwd}6S+za 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 literal 0 HcmV?d00001 diff --git a/public/lose.wav b/public/lose.wav new file mode 100644 index 0000000000000000000000000000000000000000..d05e298c0fd2cfbea17860aee108bdcc40761033 GIT binary patch literal 49772 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

`$m_!I~^QdM)nW_wcWgu(25&JD#PfZZ!A< zEoeV=U0Es*)uY~c^@H&L=ji=+)koEk+OKu+#2jMF!EnV%aR0H?4o7J*;K6L|6g=`U zImJ{|V<9rA3~YpoT!X0@SkRYV#?9dPU%~uKQG*^z+pR7-;N36apHjt6u?I_Ci1MF; zN_YfBxPk3%#-3*r3v8f2>sEN|9=3gkufGKXWV6i_)(Rul;nTzCwwG{)wmvBR#|Tt}?2ElQ-nTP-h5eNqDYLJE9gC2>GI zY;-LCb_}*V9agbSUkJNc!|NvcG1+#zf~5~IhUXxHW@PKnz=3rAuKrHHPtNoSal%gK zo9wfSZC4U0*a#A@_lBuVc1IN>_>Cb{<9LEF5nzm=2XKBGJm(5g{(h|f0r;2?Bs|Py zBVnSL2q)UkwK@nQu4S98C@^cpH$+yE@T_l$p1i5%@fIbh=#$!2>NXB)mx$TA^E~HB zSbZ#LpO$SQl;LEPzbESaL>%g^oa&Lx zlm>|K7%ku|wtfs%;3>9!1HIqol9y<&6#Gym^j>a5DHx4)ug5AH;`hg5+YQi~8~#5l z74i#N91b9O^^lKXuX(ZbM=;pJRw7=vdsR$a&NqMxGKzhCb5$*So{qZ-42X)@hMy0A$M0n`SN`WH(P7Nr(icq=T-SY zfs&{LH9+KZ76lz?lI3gUE{t&qaNWY~OHHv3_n0*1`S z?-s?%9P%EyZBKN7GRz;~&GvZl+ra`m*KT9NRuEzqbuwd_wlQ6VaUW(IAs-W0WD_61 zw2Gp}`E%@7c;Xyl=MR=YId=P~A>=7CEGIrbjHqQWIk9e7^eoV79-cP|O>QCj+#LM) zJ`gSttIPlkOQNJb!7}ryTv=3ofjxGh1}6g!e-s}ib%d5n$JfV!8!T@cu`%_oYwUhmOM>MA|u=ri;qDQYzrfp zPL$9KJ6}s2z|dR7{KtqCZfj4m*{9fSDZGB5s7=&gf!IF_bvl4nJe2%%W7=~M(F=A^ zjy4{J9meuH5F2fcg)S4Tng7Jct%d{FCzfb~m+Q*6G1R#AWZ!n^hT~uZ@oqgair*;< z<7m&miRfQbu$ubJaeN++P3`7be-VG!Y+*bYupb32T?FaXvFk3_VGI28L_B{tn0X5_ zlr3T9cCUu-i3*w#MR@4v@XMEB<>iUHE8?p|;10f2(>CK6C7245+boD3dl8X)fDK{r zcw4i-P5$!{Ig#q_2qO?bUy}U%bIxQ7Hryo(Mc3s6Ec}`H$6c)c;Lr|4DGmaMZb;w7NEKuGj{inV2U4R2e@V=6hZcDq8`;M` z8^D7BaD$<6{c@<^2{7h)9B&JIEkGNe4U&w4PxpXn$C9ZIl{N9g1yB{LQhDr+rqCIt zT@GJdO}>VoUj`=*z#Epq+Pk6Hbs!#J3sYE*Z$FAA_9xRkl=@Lb0iB4}ZB4HenqC1S zgFa{qH5tQlyETR_c3LOl0;gdShsa@iQ;`#h_a6nPZwW$Fr~W1{znTyHD91U~bE}lq zh+FK6=rY7D)!{kOAV@F%&sK1*H#jnvs%e`EZ9wB}Pjqw?@1Mq%d3~y;N4d1gF%3LXmUSrmwv@&$8nD;aF4#??v!V}9r15dJJ4ej&hsh!x zrERT7bAOEYJ&jMEkL~|K9nV$l+7EuIi)>=hcgj?TyZX!6=ItYY~iWBC%aGpo#DL-VBP=rc*D{B*zXCbQv~h#6`Haq>XbJ} z{Xk4oh#HhE@)LQ`tlrYT1K96{a-u#8T6hjRWPp}|uHlWEZ6DFeuVkZD`thF0ITYYH z8SIybNcr>spYJC=D`pQ~-*c=0j{KT4^V9BdhF@zg>?#kjkcs6OWJz_bN^n(k$&wW0 uUp>W_+7&XH=-$2@SMaO$xdw2=OwPIho;Q>KQH<{%uxAneyS?6 \ No newline at end of file diff --git a/public/typing.wav b/public/typing.wav new file mode 100644 index 0000000000000000000000000000000000000000..850f65f0982416e8de420dcc663f4e198ebabf8c GIT binary patch literal 153542 zcmd>FXIm6aw5-`B2L%NLB`PWgL@=V5Krv@AE9Q*ZSIjv_%nFJ*Vn7sB5CjzrD2f45 z0Rf4MlH+dI9sCLRx!>;6%hTI4+cVvJru&?#IwSgfdPa^>U`(&keP;PAw>1JF$$wZW zzh`Pd33E)F>AQTqLO$^S{57IauVH;g{O>2hrLBvzV_O$Tm-cO49i3eq+c}R3`}D6n zd9MFozviu2IDf$Z=?u)6x_oNZsDDN)NEKO4R*>anDOpJV{a55l0hvo?lUd|XGUH$Q zOeT^E39f`H&096{K8|FR_q3O`iByk$c!c zF8bHGe8S#;joV0Ha{s@J_9xeq$I0pcx{~{pdp=CABX9ic?asd|$~Pl_Jo0b64@kKj zCGYEEGw|7JN>L#zL<-h?a>bR~tLIoXnw+f7Ip((~V$AT`KAWSQV!!F)kK z!N`A=1i>)D1A^ZLGX=K@1`FO0%ocnlxL>ebFja8Qzef24xjjU1ui!^PJJz1xM6j`- zx0)|h{HkK5ib}z5f)bhY@Ar!OXDX3o5^4Rfyc8TG_(RQEYOYqXpoT4L=uyoc)x257 z#474m^Jo>*tEg4Yz17sNVT_95Y8DD!0>(-3P@qJCrb_HrB0vduCDti0O@S{Gj!JL= zzXU%ek~Pp<3$a>gqK)1Y`Nzlc8zxxJ7N3VE}LC?<;;Si&Qv zd|AfU6=P>{5O#dRFmc z1;

z5RW(?=HxC2#gO;<=vZt3Bsjvk)c(j)Y8ZJFg^QF04|p)10`q)BFYRPCxvf<@RiV<3 z(ylO^mzP_VuJHyu#nwIAETz2B(d4e* z&@61))4Hn}sp=*xZB3|OTtB~Jt*q+b4-;R$+?;JsF)#OK*%RIG?310Yz*3G=!+18Rf zsNVU{W5hv#X+!PzrrU%YdmM%WYb9_QIVtmTc2q>)Os#*&Gi&B6+RC?2iD3u z1uKi&jy{;lBC$I(2?c$s)0&5DXg7SAA@AA1D`~?D)(E$x^`?@t3Mo}NM0RuPX+fh9 z!Mea|z-UQZBI}R~JO$upM>xdrorfm|A7Um4i;&xcNq(01kmrVja=awaFRzdVoOZ_3al08q*J4-0!WF+u+#_!;CjTtU9#1_XYgo~t$xxGZK)Z?@l@LFJi zb0k`9j1Z^T^vt1-1&nIPd+HDODCRM5ld#ISG&LEXQE;ETt#3oFY2?OUy(b>*;~D*+ z&$huuea8$L+I!Hz-Mv2c8ZtmrpdUIp@o0}mVoQQIaEMB?9e`hyar|#9$C^!LeKk+M z;T2s!q&9Qj4r^HTEu&>(HPQIEwJG>r(+h1jea57_w!$WXr(tIi5R3|uMdRa$TnVX) z-v|g8yMrfC#U_WRQoBf>tGTYrH_oKO zwAqUSo4r56|3af6y}XBm8t1i0qi-%bA5y@1g2nLOke6{D)0pg0l)lma&A>TCGfK!Y z?c=_-pPn+Iw>9}~zmLLhq4#ORiUHT5bMrACi}buL zhE6b5p*3wjh^4vMbGKG*T2XPPVbiZkC8NF_{tziCc$@qC?E8+@Eg!{=JHMT3`SxW? z8@{N6ne*#VIIk@q+c(g_`-oi?TSH2X(P7^3$0MF&E`(-<`#RTv6M`or=i%2~yu)Spm^zlj?~8iKz^IFB8U zABbJKS%9U&}7NAhpU`r>1E%4Jo|m1xVC)y2X^Jn=NtYmdh)C+ z|3&iOb8mjv_WiPQ;Tb(s;IFw_2fVvY;cQJl)Z|z1vXD?#ba~ zo5Ite9pK5g9}K5K_7M*P4;fX!YjPFz5$a&r>iO+WGeR7EWt*c!Hp$DC`GaMRw*t3n z^u7<(^T7^{F(|bxhB8{8#Q)>a@QeME1euZV;%$g_2}7vs3Nlm8-N`+Abl*FmwQJ`- zTeI@=Q@D&cJGuksJ+hv$1F@Ia1B#A28fX!=8gi&Vluht$ihIGRWGY0~uY^IYpKur4 z3#qjM53K>Zo+bc#aBFdYghonn>`kUQZ32~+8iVkQ_>dQ*@vu$kyQr(=I^-+fqcB1g z1AWeC!q%{ip;%lb_zZa*@)JJ|H;}V}wJCWXe|*vn#%wW}-j4Z?`VXio(qpbu7JfLRv~M{M3}%e-3?V1w-whkl-~G*eGRAQ?YBVmUP-zhXJ|hzc4_`nK||^^vPmFE3dxkP51k)G;e6l$>Lh49`w-+2iwM(E zwD5@lA5jD$;j=LXlw!tml7u&&naPugI&m^Z9;T4lnPZ|mL|j%^$!l7N&tdTNPU5 zdx*&QWgtiRdJ{jul#~rLEA@hOCE1&N0y8LnVG!W{G0ebG6cwSYR+h=F?lx(lsiFzh znSXybG}L!&nAL=?AKi#)THk!St%vfpW~6PUYZy=s@57A)Y6Zv9yIAMY3rQ1zJp3*E z1nL*|8UFg%H{uDYX|dgt){8d?yU`4S0l?z;W3X>2?-7xdx2S2UYG6j%6%-_$jXIp( z6Uay#L%NjJgEOdotmJX7KVfcqLHyv@zk(ZLo^XIz6aQ5NX*VpUu}c>rGyf<>o#X(< zu)jrWv1@|801gzy?gVDh^T<+xin>u`W(2x6fY4!LgL7#{680WXK)D6>fQac3!iGVkFp zr1r!dmm-0YJQ2K}H54LXRX|3v%OWG_7~e1qSNqI^Y;4~)wRTO#!tzzc=%3p^-~D<1 z!=s9vAW@S8gUU{Y7PRdO+w}l2)z}rYLGu?jxrqb5`L{X@uUirB)WU<0 zQ8r-y>T$Sy;}M{jU)<7cq^jxs98eT4M{l9MnT zYs-h?jD0@<|Mfz`^7B7M6d4ELZOM~io0E2+6sawQ^*Q$lq^w7{G4ZznI$eeshF%Rn zg6ahQ4|y7*M;5?f(4L5yUNj`%wI7V4(GV#@4P8r7Mp_vAd;-EO8v*{qu*I)5KJ^TB zrAKou%L&KbeK?EkXPAKV7IM4itAp=r(?9bgO~qiD?-M#7k&mB(?1C|Y>w!YA1D)f2 zg`Xe1hHLge#5kSZP=K)uN71~lti#s79?(P%2xzGHCnKS2{cki`4 z-f=Cx{F_>4!rL^n$X9`6S{GacxfgX3=^D8^(SWw&!r;M3Rrnf01er}VVxCZT;7hP8 zpkH9qTxsA1+6xeMdl>ysd6E(|Qdu0QjrrB>WkxeC+_lg;Q6{G>v8luKl$Nf2lT|%5 z!ad!3(Cc$w;_`E^uc(8+_;m`T{RH)O}#U8!8j$d*WMXM zvcH4(HjzM=^wq9+nkGYw>avEfO;yX3TQnr4RP$7ZYroqxqqVy3Y3qc#PVGbLYK<8U zf2~U!cIp?^pHvZ>uE=&ZPHG+4R;@DYrvie^aK-|B0comExpyegE^Suc_Ot(n={yKZ;;w04hAW-TYrch3?` z^KOi*21=t-wQS4@??-4aX9+wU^bj>DZmbnIjWrVb3KI&g3Y`w6*WwYpfW#wW zMJdRb*~x5PQ|u#VFFcwQA7vKKgC4}|;N_GI@@4iwE{WZXe1WnKbDP`tu!_{{k!MavTqm5j3tk%HvV8W>Hbbu{%ks8{@A#|omc1g zZ)grhwzOsAWmdURieH&IAc5P7(GBRx?XxtuU+0{>=G2ryptppiJw?ujy7{(ZV%zHYzs+2kSq1`Ww5sb+%oBJkMu1 z6~e=fB$ZQ!P+B+>iGTPNXgdFNu$@00Y)Se~EbDk62HE3zdZa7AKHcy^NigMs;69woTlW5dT>esC8NcIMIW_q59J%e=5z8A*#=32BBtfF`h0UwEuoH~ z#s9k}>sc`+dVc$(8u0Hw-Rgfw&D|QN*e|#4SKV*!FIm)BCw<$pSPdvIx|BvnWVRI( zEOfjMUU9v5^>AHM4fO2Nup&r@9sN1nnWRBuNObrTGT=Q!;kg>|3VjiNz4{%EZx6F8 z9Vclr69~7^=)=6xdC4Ojiy3C5i=Iu^GfpylvTiXav;Jc9Sf?=&uANaCH(Zp{0hb-q zsYAEe&NH)acMc}%I`8Ck?fjE)H8+=fJZlkCkUD~~GN}`jmk=gZ2))RuoHEQSS|h%c zOs2iXnYm%m8%mkK7iu=J2AL0nBPKv+k-kI62yVgGbEC6yYAei)iiG8X*O4Wl3b27V z4u)V>z<9A;p?yS}@KMHIPZ?>Q`4rKnF_T~DI*b15KPGS1VR-`i9Gtf?Jv@~!jXl6eo;=~21vkv)$Wg)_nrbTbhTlFnF#|00mw~YJ}AL5K5|!= z7kVH&7TDdY3Kc4np}#d$#A5X`NQ=rET-%xvdD`*~x!)up<_GB1ld#JSCMt#gHmIbm zv-cy7cDe`wP?lUmGrr*!h zV3*Tr8#0F{m!%&UG7|;dQ?ZLV8N$1?`y4KDFzF-a4n~F90^ftJBS2vw0U5X!*B9U< zo`hVCuK}Z2D+14`={{;KD!eag7_=s{09KH(0(M(qhjyf;gk(sTqermXJQoDASrOeF zPa++xIQMzOR?Ru>NXcmRDaljS^wtsPL^SAgYB@17I=fjSY zHY58mpA!hI38Wm_0mNh46kt6y-!}sH$U{Ul`K}>2pof^=;5_uc;A7Y_uLru;*#tiY zWFu}O>fu6i5|YbfAqH}*f>q?1-naM?AcxEa?}+J(W@H3#dpoN!=A1ofeD)(KGj#@P zzu*m?l(?BBOc_A>llBC0EBPP#5WN)n47Lzb7@Pv??V*C!JKu&1eF?q|&TX#KrW?*) znqmi1EB05JCPiNRd{A?=0n;D#6{-q6jyA>)A-nq3q+6(;%vi=F21!&x9-gorUrO5& zX@@idTkSSn8QWzJaRVjW=sgNP3#9d zl77q$xj|w3B}f zG}1m@QwU!)Hy6D4D0@~Kag8Wn?B%x30p@9+LMP}egMcwDTy1C#J#g;CgpeNyv?wP> zM6bl|puGdF2zy=So;Tjf9-4;&Jn{ZRKeL0d9}O=+CoDO(kJg^XZTc^|eU5TNojcRH z8<_4N6$zON0^Ot5vsi5typyRIp5+bWC15`GWMl}w2Nacm&**8JTF_ zA8hk;BiW$6QL`W#^Ck8NY)BjpmMNHoEvHTey+^Exz|jWyE$BK#67DhRAINMM>p@0E z-BLr&cZN*!`MRR@%OTC#_s-_x@9>(@pOY$%Ke^x5_|YWKtf0utWEIxMX1XuVt+vy> zUz~j`%Y(UAJYo}W1lqzgz?L#&$m7If%nN?1e=hMg5DU5z5yQF#w&U?pl67(59rY+U zhokb|!28|1;0F<Ol2!8Flg_80d37#mKIP(e;e znao(uyAD!Op*C2wo!A9F&=P=&4C9G&Oh56jyi*VbW^{O&qzBZmyg)c_LlV=%Z}@G* zUvU!|EM`{*h4Bd|VA3Jw)I+3cxZIJ-&FbWMFh ze^1>D7_3GBDfY|Oa%+P1r|FLCrR}xrMQ|GijuFKjfcoQSLm$S=33s`4RFKjPX+SPO z3&3vlFq|5JW=!)>hBMtI;JJ3C@2E1yx<#uuW!si&gXUxE!&aMau@xnmZ@(uQ=KpJ{ z2u47!FkVteVt`&vcux{Cu7D2EvK%{!uL85EJ#b#~4f-4gGNz3-jDG=jh_eV=h!dea zk#jHy_&w%H;1B6PAB`D_qU6-Tb=*9=gmKdm!&>jeu%7!42o;X!vAM=&^xNuXm^F<$ z#Da!6(ocOYy2f3O`VOB#*@CZv&&F)=pG9Yf_Tv1QfovK*Ce1-wllOu0tNWao*sev? zjybC+&<^kE#)J?qJB^ERroRGT6fFp+(Imk_*f+yy&!cv{d4O`WDy40u(IZ`G=+Q#2 zA5s6S`e4JD#&?a2TfyxYG!p$T+hElln^)=6vXnC=w^UN4Re#4`ss9zZX8A)gnog1> z+P5g31087bOt)QdzO#w~Gd$(t=5Q-I4L%XC4(8$Cc&>8>x_6TgxJRSzc_@_M?pcgc z_QTX`RufrmEWx}n9mk&cry*m=Z*emd(>T>BKPiZ~BUnp9EE5)s6sC!u#eM4(o6PM; zONk#Rj<3Mn6HX(E1a0`ati|XPjO_3y+7LuG>$J6p!Kf@&P{c^rA`Sgeih} z@mC=zB`Fr1rcHbxydDP;Bqgy@tFv?Sy62o2P}F%^{-vxlBNiqNAJUc}=-!Vvsl#V( zafd4If;1ngf7(m@p+pRNIx`!&gfI^O0{;#&2)Pe@82K`Kvr!kS4@E+E9ScIQquqn? zx-$r|=Un6_ctmJ@)Xb6wE7Jb)ol>^ib|@vbFDi57oQ{l`tUHFiXKo>~EOr>aeNw24 zCM`76GB+GDUP8UG-9im9bO#{%b@mUsg7y-5UBe{h&E`98CtEL6Ka&+zPG}4Krq-1G z!PVTVz1?u8)*%0Gejqw&{}M=-C$U0~+uoGe{E0{K;u2-)0P5!o> zU|%CIwp^39IJ&hB@)rKfa7oJ70wZdt_)1%7p=SmvHrv$>vpFH4BJ*KzCv{b**!CE< z1KbBb6Gb4zQ$d_oLIL>%h)>+*KSrJ9=|_GW+Q)f-=*Sxe?#lWZ`OY}v&Bg4oWE0r- z2>qIU2JNt`lq~?H)L}qZTu$I4bzeY79~oB0z9247CiABy^iLzFR;2nxUt<5nyyERl zIwI&KUY>F~2I#geW<^ghqpaIyde`jl$Su6}fv)rt@ILy!$XM>%K!xCyzlb`~@eXyu z(+SmRzZ5!R=@q)_!oZx`EI7KY6?8?i*gn3AXv}Plu^p*W?unJ&aj-u!cMc7{xsSA1dyKN#m7*Uea@5Zqhf{MoI!`6@L(Hp9ljw&Tj-gi&+w=B}YU<*w#jHx4L00YZ?Ye=C4eivN04anNzyWSI@t?! z#vc?G=Z%lD<`eh46>$^52&g=alWmLy-ydc*vT-AA9?68glGS=l4+`0y~NK@c$9(smqY_Xc_1l+*!yM*j7*$RF7^& zrNCMUG}vwC7(@9I1(--$>~ivI2UuGgOLZ*`hfGXGhA&{ufykU;vN+I@yUaF)@xw$Wjj_&- zwxtH(&s$GZX4rT%mem_gZ(b*z)`cJ&jN7CBVvU<>UJ*Fy@JCkIA9{HPnSQ1*)O1Wc zyfVSGuLkDW(EynGH0`rCHoQ0XsBF+oEni`|QHFQUsT>;GA`@W-YgXdgwI7&f%>-_J zdr$6u#lM8<`sc}y9OY?0!UFiC+#o_{HS>|cZy1c!_ z?m5-)zbPxBg!n?>V2T>xDe7X59$UwKZF!q)qk3Mb#IKD*Ij2X=#m%0cY6(1 zWsmTR#Ru$q@=bj+EUeoKyJ0>B`=zf1IkX}FkamM{ZY9v1TQRU|QkA!AcMDWDMAygI zVovuCc8>~;_l^tzo;SfK$T{FE#HDB@nM}FDepP~$f0V@vzTB;Bkx$dFmtT?V8guJ!wv4Q3Y=3yt5l=i zS@N%rchdRJHLY}Do!sx;E>+oOQoDJU&JZ=fD11W#B`6c*Dd9VWOZR=Ohsx6eodSPE28)@gwR3EXj>-nn=T(yVlcxk?o#L?k3CpsS`nVF z+zefyAVIyx0<6zpMkz$>=iH{CV~&%H=^Jt9nMH)loTCgWbEC+~At$6UvIQn0kNFIj z5;dgu4L^m>_TnQb7upB)Px0OKW!hic7wd27{uuJ*t%l`_Mn}l_KFWBR@95{2JJKEZ ztn-Y$tXdP>k8)`OQ{g7iLh4hfkvcQHg0v)b5%J5D7@FfUMn3yrpznLz=~nl!m>hRL z=Zeir<60-I)0gxg0FPl zMosf~LJjd{L9CvEuqMxQti*#Rpg?b^Xe5CofIY!%2@}W{y(<~x01-bIWfcDw)GdnVtaGV?jYXNr?dk>vS7ZJNKifQ9wQSp-no=zo# z={=DNf4Urr)@!jTLvthX)3Os{F&%M2WtNNmC+!+_N&Iv?ld(T!LaW?{@M-&6H_tlI z%eF4{JX5?ipKcbbr?i}sfFvl1P1#3{Gw-qO_7sQwp}$bG?^LkXMeuUG?ao`C55S(# zCU^;$g{<*g;CY@Y!7{@Nn_gC6P`6fThBoN+_nOule>bFPYb&QJZd7b&qn6K;0srJW zLE}2dvzC5ghO_}DXglmzw>Ye$l*g^d%||^FS1WQnWDq@?a*W-E86r9hH!u#u&r*}9 zb!-HqMhIiZB%NXd@sG%}#jSXzXdNES<6<9j3JEm+ckGiG1bhW^4;YM^8`|g#Mf9el zh+ircezn=jZ1Fs#!#$~#7HcINq(*ZKrDtPZ?TD1u`l}fW0ab<;JTzG!KqZh|i{pEn z5`^zSy?7S(bqtZPRf_%pOvq<~h7X zwkk@uT#J07?ai2`o0lZC{+Gcs_sCdcNK3n^GYTH5w4C)i39nwqWFRzRe1`g6xL$h9 zTHG>1dr~r^ZMOWML}YGIzP2UF-`XS+z{_vk=Tp{x37wa`!Ok})&02Cnv*TA<&&PFQy zRiUTOj-kiKxX2mnNK`N1EX)GfQ!I^~j*($O(DRUHR0E7j=ztL7x)A=5@w`SxX~IJK z=ni$n!zosHUlAKQGcgCfDkm59sOJ#e(%w;TWY-bUc{#C>!-+~aSuFJO5~;pV34SL= z=y9*3=GoJt{t-dwgLbjwh3>pOnpo*)gxp!`7+5`!w^Y7TXDO{ zdrd#hm!;>Lm#LnpHnbSqdsM~gSJxhL7dMaf>RLwwm6BOLOM}1>Tbt}zRVN7LHTH$$ zDFwQ)6$x4=tA^NARJhedL>Ky#(K+rJVL;a-{7vx#Tp)#n-YEAY z7T8u&f#5D?7|Ue!!B3+H;cCW5)H-e=xjhESpBgtiWmDYhv~I$h)GvHO{B4$$4`S_# zOJHQi@5goE%|xp37eY{Ai@mF9oV8LFu(qlmdXg>Efe9Y0Z&Sbstn@zsy1T{$e|_oD znb7S~mI$3PhKGyYC7v0Vk^DrYNiuRuMP61zB8Y#ogN$`N>mk*hKAyzmW07%GJ9IkX zK~RhA>&_!C^*m(WwQ(pfG;$4B~XDIoVYd_XFd z0I*->_VqE=yI1P2I#%fxSR2$u%0be&=Ff6xHCW^Rr_j%?$61fIR9SnqRNF>1uuR`d zziLarJ+r+mQ+VFioDRNi_rOOO!-(?eTx6>GKgdZ93VcF`MOM4MBWFa8VWvSOqbS<(M_!(w}=QcFkk{4WVj|*42 z?u2hS;y?#XtZ-XdWJ6F9?A9=fF25(#O0B8}D~`2CI~%8@_;n-hr_jE$}# zgY8#@JM6o;3BLXU6r_8?s>sX4HV-_0uJZ!>rnQt%W50qLVm}Wlv7UpgtusLxhDT`pA7#yoD9Km{em5ck9uM9aSrh&X`2j(r&EWe4D{LX% zf=Ojapm^r5U_W}5H=a`C{mN{MAVni1GZGg0*C+SzN#a26>w>NBrLi}GBe4qun-V{} zJE!UNlZ90(I>n?^!@jny_K%j@fk%oY@OIg8@Y|*X-uf!J!BZQSZ*LwT-`w~?b5wfF z_(`2*{-V~K{n~u}W))0Tr5Z4|vM_3rMk5?>c6Ri^EC+-m6Nf;CFPJA2NT{wj+<@y=@ zczZ}Ic-u)e{4u04f=iIz{1v_*yhpZyv`)I;)Qfs2f1q6-H#)dKu0Jd__BW_ma1&s~ zo(_)ZeuSy{b4g8cMAj*hjGGYmngHUU8c9n^eb?rp z|IAH;ek_$P`QA}cQTA8&p<$LoAQyRG>A!>)Sw2P%nPWml)}x?J_T7-DmS%*(UO_Ur zHxXuflCVErE^L{djX7hxj2`b;hAnU$#}~Li5th1h@cZo_NbR;sjP;J4TraRZu@RG% zev7#}?J}oJT7(HoJH+^zDdHc`J(T>j%e9WL`(V01=!@*Ls{4aJ!H$c2c1=IldvL~w zftxZr4%nJz?&V5v>efHCtuZ4pPH0_>qnhe((?R@WQ6Fx``eui{FKv7>16X8T; zQrHTA=3j%vrVwct>PPTcZ9vViE?&Dm`l zPOENvi|tkG!4IfhMk%k1x>6e&>8~1k(tiGXMocaBpuc@Pio}#0COoW&8m?QbIWJUd z-g|u^Gs8HT#xRd2b+R+@@4Z^$h0tKEH?$EvJ~$^F4eomHc=KF;eS=)xLVl|gHq(3q zDK&hD1~fOK>537P=eR8M*5)Zo& zS&7*Lu0?MHXQ8$u@T4jnGA4kV7^_C#=j}ywWgLUVQ%sPpv?b6DOaV$1^PO~C6d`RC z-yjZ+;gaNxF2rWqM2d}mibA1B@EgcO2L#yyF{O^gJ@ErWKa3%UbUw`BRD<0CWEdb>k=0IWQJ?NDt z5m9P%}CSgQWuOHdUA0Sz5U*B$nb(YJYu3{2l<>(J02 z?{>&*zXTEwyn%cS-T}7<<&^M>Oy#mVt8<}WPf0mBm(KH_=O&Ayo!J1lM=pz`M7?N{g@Bn6toKb7?}mR zg=T_LI1`u}brPRKih?5{GWTXglsbi2>^TLW3Y^8A^|DD~mzT8FiJ=f}^GHtnP+Gcw z1e**!#!Vnm_$wJ0u8=Z=`4Rh#`2`kaw8I}T1`x~X9>xv&8lH|hjCY;Uh0dW>l7>*< zk>pVV`6mX8_LL!{4P#c4?JO(tHFYQP8EFOaAt9OE1v!KwfZoO|3;Uwtj*)J&aguqa zs=^SfoNW)Nk9!!3G~k}JyMIedo)c2Xx3$!BEh5QN%T5J3z}2mQ9aWoPB*hc>BzZA> zSvwn%(r!bl+lQfV$%kNmw|zi*8=rQ zX)Ez!?rcJi@G50?!Wh=Jq|2<_BpGdX;&|eJaqEx|5`Mz6Q;HEISjb)nO9n_Xb(w~411%dfFYVk z2A<};<%U{j_^mms!J4UhwwGX`z*^jH!f)?Hdag^zTy9IEh77j}Q;i_<7JDzoNmo91 zq4#)9k!KFq=-R`H^;felg#Kf~p%TsyRDdr+eG$%qC&wO!ePv~$IrO!}dCY1|2?vc> z%^43z(R`7E=zc(ZsJCyKyV z?0t|%P8vMwJw^CA-Jk^eV$f1D7m`mN0_{gCLnyH$5&4h{QNrLd&r@%?>zAv=)8PFT zm<6l`jrS=bV|+uxP0nLJxV58ylzn}4)j5U{dmoXu1EWYQfd0hWKvak19t2CWO@g(# zexc?CMv|vTcChH+db$WSmNpUmkud~%fO!Ie;O-ze1zV_7#kVMng;j(M)*!+~(nb=Q zM8`LgJ?LTr4RbV_W4s0YjouTMyF=|WtUFq^+6!B6J7>ttU49MEEz;h!64VH@MJ}@g zGKUM$bOc(hT|**w*FaW)=Z^!(?t$*Gi|L>TW35+0PRnrb4AUmdG1Vsh1Ib{cv5{$8 z)8O|WlNbX!<>{bPdp|T(Gcu4Z?+WynMnYE*Io(6dZfLA~(9XXW2cv8t-6zUw>Hp+bcD^^W|8s`L9`i0XtkvfsN6e?g*eg z;B>xl53(~H-CZwTeAj6&()k}S!8tOZvo!h&^v7)4OPjd*V%Y z!9h@WUr3@i6A}o4ARVE-5PtMNOh?jo?0%{SU&h!-TtqVyT*O=Cy`=xhDU|KRGKLa+ zlD!@Jf({RvNoTxQ2=kq}WR|Omx+Ks)=9|~76f;^l#llXyo7&n!>3E!8OPI2%mNvpVhNsYX&3+a_dspdS zSG8obKex>oTp^tqJk)Y8$Zfn8I@w$l+#=ft{i6MVFSPVvq&s(UFFK!de%Rm8kuEGH z-v5PSj+|j0fxYF|zqoqh6@W&xMy*bgaZpe@9mP|hho9CJg+=;p{=T|mPrLT1_qhI)|E#6JH^C!xbA1?7 zjH_NDww{spH>I@PHC}IG8$P#O*3>ozHTiYjRS#a{A41!Zip zSWR!tS(XXLJ&xhVE&due9Ml2c2Qq;whCSjAg&*ejL>L(X)IIuY+<8_CX`kRaO%ZpB zAxUtuEeSquMf@X9$N0N3(?q9)2l+e2QjSmTq)rj+!|h|8MBSyYMD(SVA`j48(24XB z*q;;wrXLB3Jc!){PDT$3Z^!qHkf?Lu{pcs6?_nx_GnqkvP?qDmlJ+4-kv(82y=P41*#(YFwf_U*wR0?rT%!$jg>Pynw54Zzd}#jv-Y-{EX$9gu711&&z9 zf%=)hL%WzNp(;afkWRw_QZx~d!L%NbyL^zd0TiY*l!BWS?t=y*hoQYe??auz9H1I{ z$WMf*f@^~Ff*ajeT^4Jc>5u7wW{$?9Oq0vx)b@qa`c`+dyk1qqtv~aJ)U>c{j;#LQ zZ7sBZhi!ISmA68%1t6=22gfQ4z$=syj77JF8RH_x$|9P$AS#j|BBsQhqxKi8==t%( zS?7}%^OPAB;l|8;@$8HNi8oWR;!R1b1!t0r1;{;4Ti8hPBHCcif7C;?xeP9y$GgE^BmB;-6;e3wd3UG| z%3btK+-}eIvrAvSsF(O;YpPhHQ(XrJHqD`#`Hgb=ywU);n)%5v~)_Z!AgsBBItCP*-f1h|7Gn zWI^N@WjFLDxe7)g_k)e6OovoZdP07ZR>79x*1>xr=E4PF2lQR&0BB#hCY%8o9O(o; z8(A7o3ib*c-H9Nva|NQneTF~;%IUs{fS(Fy#_dN55@G1u33LQ9z7n=4sSZ6oqm^2j z*^^(AxjU{P<8z`QWk>Su_(w^r#j?a73H6EnlHMoRiKwY+PDT8FMkzm!d5Y^{_T#*z zx3I5L-?KJi57I7$R^b0QZ@^-#Z$TyI6R;M z4fuGJz^C(fBE5w)QYWFOGydRav1bzEIh*h?94+=0zXx_;TrVsm;WJtpHyJ)Rwk}f2 zc?>*cc5s=Q6RbNpS4;xBOP7hIiTD}Xoqic9W@I6|Qw)%U*qTr^A}g>K+BJ|5&JBJD#RuNGX8Y*+ z9nLP&duCQ+Ps69Wk^1a9k>O?C7~`$ltA^(lWW)7;90R*H(R{M?hdWPwA+p*~g|r!J zam!3K*odVw_O5FtX=~8JIt{)Mw;g_@0}}J5lN~#x^JVm?j$KiQI&{WU(^F{0X$t1P z^oi`rsT(=R6K?a0MfEXH`8@s$&hyw&tVKcx9Un7_w1`!UR8U_)UXmIi3rHVe4WuSi zI<*$JgI0v=Ns%K5kzPhurGehN#7|y2jR#C%z7I@e4iAwSX97KFDc%m`<+lB}%Z53q zdHRls-+BWi){qn`Fud@bitZFP==H`J{d2ued(E&}yFXg@-qfD0S=#zQ^|-A@sZ^F} zZH6>!7s~*T!Ez}0#3G2CG)6+djD4b(7$rF0{|DC)oXI#E9>pbw&+|rxma*f*=NMW@ z59SK=ca{&E#R;L$vU(tJw71X*Q3J`v5@7G(U6K7DC{%L<3V#y>Lu{TMk*5wdD9tTH z>;Y17k0UpT64*bY1R2DJ5mo3Ga60y9Fps!D1gFs;AF0L2zr;?_4(D3*d87#b3eqK_ z5BBhF^=@!+os*p|;|qI=N@DrbzTR-CyIjDZVqDPHX zQ(5!e#A%x8>>;K3-^;s)eyF-fE~sOI3zT91Yx&R6QxyvO&N2qY0pz$2kO;mrCI`78oVXYAvDI3 z<0{rK)MK=ll=C!rjZX8^Akz)76qu@a+1P% zo>>rwrxw!B2Z{^^wg-j;7W#z1V$XWt9e0Aa$^rLmuo~T7qtA6v$8y$b^|oEQ2J39? zCEE?p0UU!pi4tXF>l^NcNsE4E|k@y^Z2iT2I#-j;SG)cO_s-m{3* z0bEQCMjhP)$Wv%G%0Om>aDtPH^YBV=zd1)qS_{RGZo=DwBGf#mB!V{%19oed`}=B^1V*dpM+7Pl7^_?XS*`dC-X=R0)=H)Xw#xqo znc4-g1YJCSpLPW4jbtoKr2L=eQu|KLIQehoD&=eWIAyH- zx;)(OYY()qliyZ+R$JAxOwCb-xJ|v+T%`#cJ8LJHZ)pcRIvKFO_9#s#!}||08PKCS zzK^JSS1J6iqW~^*>(LcqA<2XAF|Xra@iVArV}CQi!jqidv4#Ay?ZkXZ;+EkvwQQtWeY6p$S?1rttx#6dQQS+V8J`IMoWW(C^AjAP}4C20_88pQF!S}+j(Ah&pa*UJJI)Ajk@y127OsO_5 zFv0i4|1M|;-iAH~qUJ1rAO9g>Z1lvK68Q`64JSsK0&C${kPl$PPz#`kG1RE#aSFsl z_yFlojtd*9H2)Na(obQ;g#}TcdyQq=yFy=J68)gb21yw=#17~AEKS_&XhtY2fPP5OlQb@kKtKo>teR*eqHsl|I(P^Rg|0>Yfc``7gg--nM4EASbQQsiDI|VJl|&8c z$mogke-xc%cocWr#m8rMch)^lf(5tW5AN>nu0;zJin|moQVOBPQ=AqHE(MBfAcT0b zS@#{6ci#{DdFR?|cILj%|D4|$1^>Vu6qWQj#vTqwB==jtv#hUgR8b%QgrfI>ekISt z!^?WcZkO$(Qc8x<%L+mBrnpIaP1*Ti))5Ucueg%i&+`e@2$t?csFu*-$@S zG`dcEgJyId&ZfU1dDO{bv7(I5MSDbV0aqg$>Cf1CaTH~fwbUapi~a`T)GXK?*@aA_ zLNG3*V^OKOQWXAB+~QuqRv|l{8|_N{i>##DC>+c@Wp_SEtm9i@XDA)|A_!sW{xR`8 z_PAnN>@n%#G}<=uGu;K?fBI@bvLPRwV0wf2%|r0ttRLdk)gH)7+iak&?UU%YoDyCc zqe3gg3BIX*BD09R9C-r6-V$MCm6Ll~Rh>WY>MXqS@)8(ift?`>AO<61f!8H1aL$2; zxXxkQ{ofSxqaU=l>51m2tjccW4=23juGq8q3$~TgMRQAt);Zu?aSGT-kgBDcoMp7#GqMnLb`2ET>d`i_jkv5=CC^I;7TJ<#%s8EIkIxt3)-YW*abZB3;awq$vhWsy{BoFyI5$9s#l z3#4LAiQH2A3HnDHh5Q4C^iPP-~IHgD_lF~M2oSY%S1rTA;99GG7C#B=W3 zFV26yopeIqCwUwt)%>@eSYSx_st@66d)o=WcxwxD{ZRq*kCie#ALK<&wETeg(%XbY&C$3w&*vJM0!< z0aQ~l5?`umL{8I!mixMo>9BcdgKfQhiC6_UXgh53JUw<%DYWn*NuzqtT_bQw@5@pQ`_>=16~<)FknLmJ;JP?HtW4 za<%50>XG&!xk~L-AH}PagMiv`XHs==BfUwNTJ<^Is0 zWx4)vT(NoZy}ReZ*GKNgpYK&OaApi5Xi{DIzo4%Kp;`ieZR4be>4M8vy0l^(etnFF3y--UkG zRG_%}n)0SHS-n!VRIyky75+(|0y&M#;mf7~^27uXjNznmzTv(SG_O@0GfldA}3TR(w9Wy_;m44#u9Cf(sgqBsk40Wn%Og;B>XNgcF;U&Ej zh>3&YOY#`hDs55B7X0dNqDvEs^R15x>yd`k8u(;jEIifI5$@>h0&lDw4vcX`xG7c9 z=&%YR_@d~z|3$&Z!0qCSa0BPzI9sm;cZTZAH(+hzed-+0i~5AVpqr>F*|z$qIL!JJ zG%6v84orlItmO6zU)pZ<%JkdDywtAt$B9MB@2y9xy))0Px!(G^&RN?p^&i`|H?Cv< zn03IC*dnI8*=(><+YrU5%x&0~8h|1*eVyuHwW*rDX@9HzNok5F)^6~9-EDaXxe$1# zc7qOWHZ((@2M;xLg>D;8OYilfxK(pPey+MM>r^lJD+EqIMZA$uG8ar`2L<+qt_8iG z;-J~x#doFZVAYz^Ipv;jtKvkUH^s|8{a(^6Z*N7j{2b@P?@69fg-UPNg1+8e-vHmU z?^k^Fil>Iwl&+=ID=%_i-Fvycfi~RE;3|G!C|6F2vzCi!C)P=*g>?CUa+Xw2z6Z>d zn<5+K=NKw0l%_hmM<@LyZ_lE|JH^gb>Gvt4YbK(@VQ_Lg!f(GVNa2+)x)R&zZ-YIMfm5O)# zBg9G3{(`y~=YXS(mw^|?bg+lMuUx5Y z&6Of`s8f(OIs(2LUV|2d-y(-24oM#_jji;w^KC5q$u;}C+O5rR<39W4l6&*lQuncf zpPX4mZQ|)uk7HBeepidKY){9k*8WOQwP;!BSMCaZO6n=h20w{)p!4GIV0N6Zb`M-A z_W_4+XQb89A>7|Vi0%_u9P1uf5nB~JOl=MJrki+f(`5ND=IZxeOq1`wv+K*O;$t@j zy$Ov~&8NTUo^nID{~r`PINYjJHL^WPfVG8d;DsBz7_I%T-Fo$akE z-RLJA8V}Y=y#ZON&IG=adHhv;eEb=%iMLNh=siNiNRBu%XqB&rj{q-YRZu&oF0zen z4c}xNLEqScat?#=`7sSWJ8Ta34b<~J_D5XxgKwSFLyg@Ff>GCMPYuV4iu|(S#jlE~ zqIZSY%jy)bs+w1x>C27pa*w>f#ij&y(T;F24^lOOOEiYwWBRCaxqW(rT;F1W7u(Ju zzb1A>gQ=%*q*_pQI=O-Ng>8fOU-N0rQ{#MczHWumL!MOx#`# zsX~Pn;FGWn>Y4?=3 ztJPC4$vCeWTq{xgV;!G%RGo$TwzVee-=z1`6{YUd22-Bsa#AUyp<3K+Ty3U3HKl`n zo@JYPJ4xy{A=}i?;aV;au-(lAG0#zW zghxdHo)^k>z7LAV@ji)(u}@f2rY-uMs*SD*A4XsL|3pT4dw~bs1BF@c2W+wTHh0r! z7aT4N-=bnL?Jj;2@fUd`b4v$Pxm7GXHdr9WqDz2Kq(0C)S|m(mQ~3;FwD=j$296>Y z_zOM&fi%~Vc+)M?*xmrBpA-~2C%hN0nO4Uqr9wGEzLPhS@vB$Wle?&P0Hc%+pu3`x z9KbL0PZ6HEB5$Be`Li)z5Tk>jDa;ZgQCdb00?(_S$@dhb2&(V$xrPAmF>es|So=yl zZ4aU2_9H|O+W2Y|EbBw!8W2iNe`i7I}9 z2IOYw-cwz*)xs;tfTsoVqUsV>;jFD}?K`i%9{SO+CW`86#Cnl?s8h-T+$!ZXIa{Sb zYiepMx9E-9J0_j!wK-zmtuNSwI2;W(qCYUs{ zq{H#fQCN3ao~FAbYqf{vo!S!;r>!rZCQl06v5WiyX#w{nTFTb)x(;3YcYns+< z|55*M(n?d$j9Zr4bxrmKjmr~UP5(_;m9@@xp~WzZrqyaoPAiW^*W!)2s?luY?K(kS zTFrdzl#C0SM%9*+_T-<)ffk7zs0LJ*kc;?hsR6Q_?F@bnJ(fz`OZYdg+sru661t76 zeROF>s{cmG8t3Yw$CbN_W>!>|n9JW(=*vGk3CBG5M9+55m*6u0rP$EWb9PEt&o2+Q z=RbQQ!uG1L7_QhM{ZiQ%cv00FO04ogOvMslRwW^F{sB zT$POLwZq8-4XUlCd86;4Z)(QP+wE1hw3G=+{nPX*wbSM#w@qE1 zP}1JDG2ZaCJ+PX37=!p@%rmJEw;HM|)W!_5L-`B5TlW?pY<4Ptw(lj|BrPE)Cl4q4 zrIwK1w5IBYY17oB-vsX^UQ}kd-{SuIn%`KiZ)bHNeBO#q9s*O z@v8Eo(ubujs~(hW^xI0u#zvH1U@tf-g>LRzpu)QmwfHc_lHhNu$FbY$r#!FQ2!f{e zsLC`PKWq3GZ?E@Y4>dnwR@G^2AJ&*q!G9<(KnuuPai{$2&Hx=(DW|2S1t>Z1T z-}K9%vAUy(UZcV0s}7uzi;_gHy((j}1sFtz$6ds-zsp;+-cu`*L zSy)lWo$p%ic@cyIw`n0_kghPNVVNCDq_a-)SEiQ!BvWA=!wKf&;(1#dur<*Dd`x~P z)<|6{gi}J|twbE?YKh2a^arHcYK7E`Af)AJe<=@Dg1d1Irod7ZvNRbVNo|ATr*6^| zSAjq{Uh?}ZdkBY}!^J*cjZomd!{FW_vEyDAfU=b!4+QO0PxQmUi&};3)M>^6>6Wo@LG{&WGiH zlzWOYOZpb1m)6N|U)k`R+x@jLD|oUrH@v!HXS9F3b#6#ScYaT~N1jD zRm*URwkTF?&gBvk8_VaD7K8swXbl#cx&Z&FKg-jx%hFh&l`vJLS&uk?Jt|*dQzewG z$K0efVS>Kte@Fe~??HP*tJszdD8cess2y?=ZHjLrG8A*kkIMJjcIxN)4*EjF3KMVo zW-hnBu^zL}PTZQXE!B}=PhXI5xtcN|H?_U}&*ay(U5T{4Q9?pu)UJ-V9KB7>NxGV< zPk5BJ$yhgStMW+lE?|s(B8!>!#HMOzM5 zW@eIS0N>kdk_HAtGC{ck57!bpDYcAuvY$Z9MHH*gmLoSJO`(KX7_Oy%A`t?g0%}9)e2{H#Aio24vATsa{kTQp59vpM#w6 zM<7YQ<{Jzib@c(amDiQQqM3qN(3B$!XK~@;vGJ3h)1t3(he%fK<+H2O*O?zY`^ElDclZleiWdtLNkpEgw}bU8&5-$a4e`Z#Lm}%q{2!8nTN6{|a`+oR5_EEx z!FY2bd_ck=Se_v2#AWPZ)=y*fX0{uR%gZjTell^+#iiElKlM~~}`h@b#}CsZ-uX(VgBd(L3(O@!qLlshJhW z=#k~4==}0J3}60}u)6#!G`OsU7*}?Xd{8-4^VYRQcgg*?p@SpOs4g03SoHfdQ%B+c!`py1oD3@q013Q#Iurf^hL;c!%$+kd7G+L!VB_P@_cejN@vxS>rG_0WhH2|H3d2(b&`*!mJ5p1Gu(d(r`Z&Vz_dYOC5t?^d5; z8*85kLo{BgFL_96Moy6Ssn5%EwD*CV`f^~rp)NQM9^PflZTCE8o@+Z7sdVrIOE+-+3R9>DUrR&gyq2MoytR?K`B||B zh0f@b(reMh6?>?*RnJ+;StTgkBjvr`-C$ne75p`vjkKl)Awl*9vQ@5+O~rGGv+7^S zQ`&ruTccC|r}>{^r7jQu(a0<VIf05us9pad+8bY#vq%9)XR5 z4&c>b2T=qkDeuE?;`3*cW*gB<*G|>iSYNHRp4RTP7wVLWNA;TIe@yz6p$VSkth5O! zGt#%F9#4Io+QEJ(X^L)~#f6X1IU!ip2ReqvQ{BK{Xu1F(Jmmwlp=MGe&qZ-%)xT1+ zs@(wU0+8vRgZOs;Yoc3d6j2ZyiXZSZC?8LQ=L9-Jw(vWtC~}Oi75jnBjgdtN8-|vuMn&V{eIP2we*V{aA%DDgYSBpl!t&dJ7p~IKlt8uUjOg=NArH{M!p~TZ;;Ot>y$Nfk zpQ>`3_Niyv256q!u4*eyeqEuuK<7tK>IC47_9!q%y%cUv=Hgw|U6tdt1BuHz6j`Eu z2R0!4Lj4pYku0JL|4xi0N2rqYw=})X4fHdtO5+9V0<&y+W1Vi{ZJ(|A_J{V*NkbC` z$1PQJGpwn3>BrMU)vnf9nl_^bm^`CecUvTpH~nLNV>qjes-I~l<7YM1;V_v59K}EL zv*lFEO#Kir`M0@}+&3#x_ucYBciW0D?tu=oJJT7bF}Ty+?flO?|Aa>Q*F_5hE-Eqj zjOBuP;_+}HXpL1Mhnea4I{q%PpSR!b1 zOXUIm3)NIzhQ_Ha(h%Avnwsh~^?o9($OT&<+qqtH?Z^$`gSQoT+m%PJbw8)Ocw59Z zr2{Nq(S;dO*pABkG9sFur;H5$@*%vT;GbxpvexugR~4NR+(0*s{l@HI+VaPEjrfzC zCBB7c3WJEf`~p(LkJnD&j_9^>4|Tr?HtouI()j})fL^oXgqchanx(o>KgA}nzeSG- zJz{0T18Om&r`Lu)P&2%5k@{pS#LJcCcdI0)J z6GHN}laV6^JtCW4LbzE6v4#w&m+m95Uh`F4LOze{)Ldu?*4x`1zFPHBG*!H#N-NyK zPcEIm!Z+Jj?!WFm;q!Z1d&hWo`D(hhhu=E>X16-`08f2CBA$>9LnF5p-@;ooJ0iDq zO=7?3YtaYvKX49hrIfCn0+nbvc)k86(%JMB4VyaQh~X5jR{w#u!3ZqA6=R*5x>$P5 zjO$}Z@o}*#)D}sFHNLMviH z#W-nBya1jC=7NinQ=kqT4xLAy!%v}HbO6){TLN8!2Y?mwH_0OG5IQh6erBwYof7+< zUBkTKQiKftz1W7WE+$hjw>e^^u7?lBtdR)QFLFy96uk>Jqc%dnQ+Gg|>JKGRA?Qsk z71;bAjW^MtONtCCm04wTIq$OhX;^r3Yay3wpcKN+6DVXYIuG)ttru*cxRn0H$>ht*8A&}=>ZFxe^F*`s*p^Hsn*D+Ex~AUeWKC~% za!=r%re^etE=px8(a#e~vX|TcyEy6D#HxVPDf!nJx zp&8^hpdr~+E>c?MT%t_89jCPZLwML!rIs})TQTi%8+|PPyWHb?#TLZggkOal1}20Y z@w%$<-hcd(x73&8EB4OwF7`}v)%Lt~ocC_8oE>mh{t~(BoW|7it`k1`Qi1>HmpTL2 zl+%M_HS^

3)Hg`ct8w4Sz&y8mnR_O#j6cmOu=)tfzMA=g@ih0j5%H$S$Fx%(c*1 zrgpp+%NE(ejfnmw+oEOAx6l{3zwaY5-AN(l$^!U7#S3_-^BDTV_ZA-!UQe{6-ry(M zQcU6*^pUg}O@MA;Bal4BGW49f7QS8|P{j#Sraw)k3GK{c(pSro_)dILzc68la)tdJ z*2(-7J*4Y|m8%zFh2%rTN;Zw_f9>LW{z+jc)Q8Uk;P_J&5uVGCoDJ-N@_;kQKk`^~ zm*hvM%lonY;5AH%{DgkT?t#A&GsG)+7ojdTNqUK9fv=H6P#P2g!g3?=A9+7JORl8* ziyk)4&XEst>yQQfdjb{+^(X$VZZr4V2r|WHI=aT%Dl#Y`7Oj;si#d?il})a;g&vf~ z#fGPJi#<%V##n0>wZ*WD8K?GgGJ%TAkmGU%@C2enE0)XlRvZe)ls`GUD4!QCBffr_ zhOPP#f}L+Zg4bWa0_MKi2t0ecPHyn_j4b2x59(o4T}Evr561z9;Dn< z@rr%o%HTZy>fHWF^?1^J6u(b?DjY$#3ZUX|ZVWky1r3Y1m$tE@Ic1|fDs3L{OX^o3 zm{K-R*bmewIbH$ja z9;!N_65$;^>*ieSKkwca{ut-L zUGWbWehBuJJfT@)B(#IC6&x$%`3az&{~$Eh+X$NDRscD!T2fm#B}U@2)ko(laB%qp zXl~(Yi2T+Os#S0VBuYL3106NM2cGHBXnzH~+20Lq;6H+D0usD4vIs;3Y z)m!Ux5|sL`x~-aD@s_Fpypb3icOTS8y@(eEU?ors9M1Qbm(o{+Yta#$F*<|o7VE@z zkE=6N>HVCG?ZvGWRs3ll7C-hqWezhs&iFP@2VZx;ePFd zd?UTyz$wqk@Nw^eSX=)wdP2a!8bU$tWfYd?va^6;!gJsku`$?0#^DywJQT$oc;`4x z{gHAW_F1_W(kk0X$A~(j1Ahv3RkR?Et4hdItY5{l=fFOye}udh=)FOX~&QfA#^SGx0XTCLhGQrR+u<`5>Z{fSfzcA7E zR`EIUB)KE8iLRDC$#~f0G!$q)YD<-;NJzz~dd8{E&DEgJu6(42&}#-zo@6+|rRW#4 zkF|gCu=b8TTDt-))-?i;8#3WL#=7_p(@E7A^E92^sxqFiwlH+F_17)6AJE>if6}$K z9W~}!ezuIXOte}oYLnM=kIdKqjf^I9rDUwW@C5uO1mwxmc?pv<#Lm(x-p3Wwmtt$f zso~@PrJ-!!s!*BlL};Z?2#xpl3s3i6iM;hSjtvRCk9G@fi1dy=3OT9Tfpc`CkEWA- zd2F4)OJQ~Rq}-7j2K8jqkPNOdvW@8sKc`lLJLvyO54dC83TYQ(hi=kM(0$Y!tWL~; zTcbtzzQ{`Dy-2D0PV~NR0F_}pO^-Dx*l)%XUT@qleKw@agAJqQBJCGoyYd-SfXqh% z;AQkYsKO&4M;rovSMC=ys2v_2s^-gi&TmqlJ5!qAt}doKTk$O` zYcN>(&Dg7or?De0H68Sgrl*Hg@i~;ED%kH7F1M!#!`<2C*gl~RF;Oli&HyWwFM%I5 zgTTGUj_^n8XzaZ`MEqr&smL|mAhu}F;yUFB^f1;PD#T97M~DgHQsn^tGZ|)+)M56T z;!*tFQOVT+a=0OKi0=sINrxZ=d=D=I?_x@*opL3dM@Enh>dE+2RW(&6zEC|6uCHzk zWs|4iI_e?V8}(CssK$X^)viUx>Lh?tcN7OGm+?OkBZMOSrE~{h0Ny6n!;KY<(FYic zWkNaV{P=sOko_B?nNNU|`zTq(0YV+=Zu|=N@{fQM!dUPSe;Yi;JcRE@y5aYI)0CyI zR%Cs*i@fDqq0S7W+UZfJHWFT-DG637e+rF9zeT;$axR_Q0#wl1$aJa+);~@({}jqc z+WY&ULtX#i3mvbOwVZ9p6`nn+i1)0jr9Y;g8p8CWqf3o#Voyyd)zj3F$=CJae5zqQ z99QKAkR9dIS_ZV~XTmkK3CLUGZ=|(UhAaywBez}aq3f0Xz%`X?!7Yvs&~V32D6jl9 zs432szUK4XxV%nu@6Vqir}HL<2j`EDcnf}v-Y%XTeO-Aj`rY@Og5yfcQ4tkPK(+*c z3}Aq2!D`fl3d%7=uD-kCsP&*CEAfkhwx7i3o0>pvG_AzdN*iCQn9MnpF}8^8%K_Tf z{5VZJzL6@0+pQ>NHz^Szrpl8is4;k@_6qVyzXE%297UvAo)Wuk>lHZ(KavX)QnmXn z?X>j_Z`8ati(I1xR7-WJs*yf3PSn{*dT~zq75q-fVn6(<@Dcq*xQO)RqjBe|h#qH# zp?jz(I4?3)Y#I8*<_G)6$(Yrd|6<4J8*~f$787GKxi(@3{}EcjU&B}Nuar$VSlykr zYF9@~Zh0AG+ZdVr_ZTKHk4FZ%?CWaZ5IP|6Q)HR316vQ2_yMi_WuEQY^`CZg@Z?# zOz;pat&_M@4{$pydhh;0RxaaXkBmv0;4<7VdQp{(+A++ zOnu;G3wHSVF(*pI3uld%xy3AHxVtl6j zBX-yrjLG`EST_w3b135JK6G8=DA+7AOv;Va5p>ibE}y+dFBN*m7=A@`0OyD;;zINR zK8OC39~Jd*zQB8KlJ^{c*j*@;yJ|~&oLA&;6@SSO3LgpAKaFEoyspP|fAIsm;J=;x zv*!zi;mbGwXb~K zx=hNk>3~V@Vt_hPaaeAyd`VlRwrn-w2y>s_7o8UUF_0GB;F%w74JSnJc*t}f1U>jkU^in zLu^QnDt`oO;yFv*WRs9iCvkUZUYKoJ|x$FzPBa;T- z;yM98OP3^0J|kWidr6yER^CC?1Lx4?;2%Omh=NAId$F7N&-ih5Z9<_Rq53yF9*+6~9KN7j=cU6;G6Amo?yjt&DptsyeVH*8ujZr!5l+ z)ud{12O5_Ch~_){UN?~KY3#~> zH-+R>%QED%Z5*~F>1VWY>V2qowV~kuGVZ~XYdj^o)XI(*5WFQwV!-imJf>n=)SOhz@WkfkUev%esokU`0tk1TL=FCZwK4XGM-w~e znM$R)PIK!W7lB?59k#&vkl;OIh}Xfo*aqrPq#ZvBO_6TkUx3ZZa%3xMQ^v?F?M2mQ z!!Tl|u>;c7PzJWwP6z)X2ZC+X^?+Y>E5!50r`%;z7CX{ZgUvLK=kDp7^BeWgxz@%{ zY$r=c_M)wXTW=c)WLsJhIi}^BawDy+FfAnCnRBrvrYfjJ{{!4rcLlqpRVglM_v4S_ z<9p4|{wjJ_)g#Va zag0A-j`GPBb%bh_0|D0Y0^RKjD)0H$Xc8ltnyJiSrU~6Cf=16F4iP1J*}Mr7p42lASpuO3VPU5mQ?_!d936 zj4J^Suq)6ERYAS+tLR%|p|YXkjOISxQkQ|*H6qeNu>oS?yHXt>lOHNxX6o}V>Fw-s z<_`5QCx-fp&pox|%kh81m9mxK$?_Y}2*=rY`^QbBowpPA+;7CkhW_p>bAl&vZp*%+YlaZaG?PM z7(dKef-ffB_%_sv8{{E~jz13GU^V~~X(O2|BHQ^<_8O_xM{Ru`}Jp$+S*x&iA+TXD5{WF`2VmSs10j~W}%nRgXno= zFFpYJLpcKMp*{eeRVSl|RcDD2#DC;tq>Hu$e4xgG_uQ7T zbk>7d=VYOd`!ikWI!>*3YMFfJ5N@M;g6Q=mLWg}>_{pG0sg0&+GO4wCFSXP3oPKQW z$DU1?$9GD6BK>A}LHDc^(0P_0kt*XdaHnRtbPt~@WP^n8K#1@s*=78txFY-)bAr<| zxtxkh5ZXi%q%$D^7!h)VKLk%B%K{O_rvR^a1xoCj{JOLuzU9?l`tqtz@ZU;fyiDR! zcQZTSUTm%FWlZw|yA7JidEEpGR4-!|W8ayj@>9AMKZUB#?TFpr-bDZ7Cq-+De??bH zasP|Vgtmit@E-Iq*brP7ekOhnrwh#@y@gNF9>QyCsNiN2#2@+7VwH4Im;e{BdvSo~)@6^^ke7X`~}IgZw+HCPzo(kcpTjeg>dbr3!0_5poaA3?*RI;YsnFjg?3j z9^)RS2*1hvf5Jnl>;ueD#cNE}3CKuobFj18B7G<3#3Sula(gHjVu1cc88BL11T5B! zlKZJg@I%yts4bd|$Q@0ca9wpyxIj4|dY>>-HHkv%q_Q(@&@N-98G7*Zj7E8lAsc+F zYX=?C4S)t4?m_L$5xBPfCaO%{g||x0Qv8;DRPn-c0bit^hFri7fvL!$cuKvQq=RZp z{UyIduvt>a=ve-HD24ekyfXGR5)5C8GzpCf{}6f;bcJpQM+8eE2Yj=cm!88M?(NB> z_~(b`1SfcJhdx(*3wNl9(`n0Krl_=ru%+yf{9l;|7+!W0XjZx!kc!6uFG~)~%E}MY z6ZZ)@BftX}Lw@;rL=y6-SKK(RoE3#1*alK(c9E#z-to`)VM3We%dG_tS;YUR;Dpy? z6JVCQ8C0nL2h!^`$Uf^G>|06`MgQu{RmNJ|HT`RC)_17E87^1LGgM2NY}lDtV#u{~ zafM}>sjuk=(;RIz(;j8SkW5V1tsww)14RpEF`lYuh3XU-e3)newZx~v&9JuE87v2P z#4}nnF+k!KKQpN6L~Mm>UaY6;3N>D}gCWVSYzxxLwpZSzH=&bah}N zcths7>X_J>MB(Ym>R9)kMXdvW z4=;;5y(nN-corD{$h$-T@~M$#+zMJHJmYz3tGpXT;Cb-h$YLaf)WQ5HL%@n*sy6Bu z>O$=*{eI1G(_Y1K(|P!&k(TBd7V>*^sq7GKHKwh$j0$L$L|>7k!ySpkq56;<{w@rp zm&fTO`{RV1$9xy5fnbvMaDenPvtRl|zmZlle~SV$onOw3W;W7HEGK5AhJ|V7VE_{w z#OVnw`~eX3Hie$L^T40n@e@_&cB0TRTKB|}Y+2`;VlDQ4Hltz5xHI})Z;PGMaM52? zYAQ`xo%yQxhvSGgVm5Y8{2u}dQ{V!w39RPz@E9QlzA3eXMuPK!qcANu!2;kEMHZ?g z&*5Ip9&EW$23p(pu+^ztk(7jol?CIHYK3& z4di*`HROzbg>OgyMXy8|tSNOK-^^HvUECyMlrWQMCLSRy!Z4*J{zjj}O1f4;qA?fh zZS1NXVfd!a*B9w$7=F{4j8^RdL!LIGOEs?1ik9gbhjlmk(9}dZPg8?%Vy)3)a3hci zF6F<2L+NSYt>_HkUZfwugl%9b_!%1FABiHq+BoHHjbHQ5zzE+;%BLA@iLz$7GftNwRR}>!O4pWs?&)D&f9-P(jfw4K3QMW5|Vz6U2 zUFi70)^pOF&a;?X??1;h5B8;=1s_Mch26n3(QUr}sKKsG=0(L-dP(W!XvdQL(7Dn- zLYFGB$U0B=*vHU4=HFP1C#b$sXX+R@fyJ-~(kJCYv{IKz{%!50tC`$JcPMoUc`wew zosu*JdXg|zu9@&kTxn8nvvm_~w=@dlL{d~u zRK({)>;iud9vztrLB0jxb=PpC|1-Z%7Me3hY!gjeDh&q=)!8u?`@{ZE*7zK;A2|4S|wE?`-lQW+`?>N8xj0W6%W34R?%Y!3DvU z@HziCxH1reCdMMbO(`5t%Y6baYn#Kj^cMWJey-}1VWFm{xrc6pt%jj6;izd;LR)Kp z%W2yet=_guvE95DE!XRiS?a}b29W^`h5wV2fJeeN@e^0cHxUl8KDj5A3lEQsz{W*> z#IDBvL+Ue8cmV$^k|#~T-T}W8h2UD^4txo2j&>I8NHbaoZl|hCBbaOa8;)X@h@)ah zrG3E=iN^s2YS(o?DnD;3i&&6l9CoSM@{I zu9+)&)svw8njNT4zYwQPFNtk-K$V)DqrMn--9EPdr*Emx(eEWe{aw{~{ZjR0!+gym zqbBZBj-V$^eWb(2CQK_m5j(2g5XshMg>wxrL*tBd!kZ2I!$Win!+vs5WT|pk^s8c8 zB&6sX9HhMG%}`3N`@}$J4&Kw5g9h*=K6OQy$?3~J~2A~o0lDwe+WGKwUdhdy4Jk6ASYQYX`J4q>RpE5ep9`|yQ*f3 zz>L~Ih1X|(qawBc=6|cfNgGn<%Te1_(PWy+{jIw}*)%y32RSReK>awpO_LU%-xI^< zw27gZ?o!yK-%8cjZsEJBe+Sj%E4+!Sp?bI~MXw<582hP~S@z%$>>#*4=@-_V;tNNT z|MXuiQdzF8c9&Jsk~q)b3D%+V<-HS__$|9jaKW z)(~}7Ux;r+w&DN=DaW9zl~dxK>21*<+5}z)-;|HS3q%JpT-b`*`Lk$!?l#(=U5Fl} zS@dc&LL3Q2$gM%Qrf=w|`bwxwaVdBPUE*H=-}B}ni0=`Ras2oRE#oiI|_TsaTF zr%FZNsVKM$xeD>AH)B6)@8aLJm$19qB$QS^Mm{OVp$O_ln}F9*i@XZ$EpNlxgCB`s zAWfWYDQdI9p~hXnX;Zm8!DxZLYsX?YRKF<*#X;qGMOcwWmJ#{t_)e#a5kBN4K3Dc3 zU4<6lIlh^AR{YMi0M5il10~T`V(sW8779(FPkNiv)m?{~9#!wSK2_KGRF|0_?zzOB z@y_Q@d7FwOJ&WW$?(rb)Z4SK(fe;(p2R39#$jo*{hH>o)BF^W_jVD8kkpAR0q6INb z)f#!C{w2;S7!RMpd&=veF=mV&QF12_OZ!HrxE0JC z-bK|AW=8UaL4iq9pSWXlvgZ+c*PBBe4Lm0nhqLj`k;X(-xJ)@QTuknXq>!7a5(48^ zA%6*3zzFe?pcne{iJXT&&L#*W`90hq@f1TyC+T@Y2D6Gj!X<>QQk&p@;NQ?BaC1}v z4xkPIf5rshbz~vbHKIaV#BReHb{p`Iutqo{_2;U|-MHN{80Vo*;|=I=ZWpna8lub& zepSBqq^lI3v&sX$U5ej=ECGbS#QS0!k_|%R)N?~x)#dO~d~tLux+6v-)u>5m5BdRS zU~xQ?2hmcocHAYi3y44_P=^FyFS3KUf{h|yDE?FX)w48<4gYG3&13Z&t&-u3HPbTQ z>ao|g7A35;y|Zmh1TA+`yvDX^TH{ZtxAj+&2+cEFd&OgO9dx4U0C>r8Oj@VO6D|{{ z`LT$PEr8C_e?gmKy`V_s09ZfL4yX|sDt3z;XZ_(r^uVx-ejf_3xxpdg(SR(k2(FPG zq5q@k9K-C$x+q+ytn1rMI+@tEGjYeZZFAyeVjCT2V%xTDqtm)B`>XHQ{nt-FU42iT zz4lt~x}=Yfy3}=%{&IupRH*~kTskfIrMz~Ap}o}0&SyRk)DYtXOZcL}^09iMevzzT zR(Mw+9Bvrc7%mlj5Gos96O4~-3T)v^*bb8cfe>FVIpxjBp{Ok=ng&(c+mkUh14g{pzG;% z#7uf3HJbWOm7xMu7F~^g>-{f zd;D;AVZvMbc0wLvQ2Z>opnst`(zD$t=vr;fb>@AIpMWTq7eIgCr0g%l#GlJ2ooNI660Q zHryxlB9s#~LaD;But$6v{lFdIk4CbEs^ODDoyam_VXU>dllv%pV{;86oMOkR^AZPw zL85T<9-bz2#OfDp3&LhGw~EA*eA$A_Y!2EuM9lap9~85y`Yuv9aPnO zz$)WeW1e%(Hdi|uTjS^n&`|sY07wUT4;Th!!-cHFXlvse-pm+7zA%eW2cX$hefSJh z61nNF3!jdgV_iwOp^r}}slo9H+6~`Ey{RW^esuPLy0RgwCDqRAhB=`VpeSf>^#gg0 zy1=9D1e??<@L4Sd3F#~R9OEZh>CwCvAIcAE2h)%mfz`;H z?EBEStaC=Q?3?|XHN4QCMw9GqjU^mfok9AO)#?a4K~QenNkRt2uH&E_?g<)YU`xyI;zW-HGBc&s=V> zw@9>|??||UziFtme@IaF1wyNR{+Qui&7bkS6;`!v|SaYE_qVQ+H5Ge{QO+m^-w`~u`aO@M*8UAIhFfyz*%4F!d_yv@; zoyps|6+~LJ5Ya5O2-}s}ABTRPrv`rg%KrOpvSZ#aCsQ~RCtv4uC6)v)Q8~c_j^5#* z+s}3L?37+PU#o|h!dfP^PhLh{<;T%%^a1M(XE;}c?>oyzAF@-ULF#SzH{K;Q2zwGL zg%6BYCzgtP@rymm(G- zAF%WEYqYHEJj%Ol4zg--E)ae9z_>gRH>`(c|V7-)=ovd5#ZGwSNTcf?@0Z4D7yPenn4*d&num(cFDx`;v zywWmlS}aldH=Iiv9cm|h4$}Pmz!c7t6X1SlAK;e;MsQ8TSj38c2`u1K0!O4)q1^h8 zC;{U(SGcRt(>Y0K>9NlT&o2INcSy)|w7!H{Yj_+tja-g<##Xwh*?>s4 zCSb*&W;hDwQNzG5$2I65PXTC$Hvl-#DeQ%}22~;cCjB6BGZjrFiBkzO3dJozAx}QM zx??>RrddZOHNo+aY(Wfq|TgLqDE^X~}E;akIWA(c98|4K#MApf=Nsrhc`x&7CbpT3S#1z$_) zt*5qp!_CQM-KDi8*JvxraTNhf1TRhJqiQfI^hC!ps-LSk`Ng%7c;zfZHf6_#Ie1yVFH{jZsUF`#S;XB_bZ(-uN$|^~rDD<~d5?Ts zeyTlIo}1(KS?;63~?yCjnC~!jMjD>2!3bU1ol#!gF0R+k{jI^D-T!VSHe5^Y((J>AVKa7cq+EE zYU^Kh6;#(>;z9Eml^1zTrQuh|QRHshA-RrfL^_#l@)kRRzUbJ=tZ`hWt2t&7$qpxS zf_-78uyypA%y%uGE~ZZrvc0X&{J4!@nW3$MI3Cj z6?YjMq<@S(>MiZIF-RE<^^{#Ou0+5BH3Uu4cSB{({$PdK6t+)T_@UknwANo+0ezM6 zpSeM61?|+9LDS9K<`4Lb_5~x9iuhHr0yb1gMQaFaY?pp5yp7P1H2AaBV!=;;5D$`L z##!YO^YI8VK8Q-2TXkL73j7xkvv(nwLlX0}q-8f+{! zFMz+zljsR^6IR4Jgyy%_z>UqC&^A5E?5uXsyUQ)rF%n@n>2>E0h#wRr3-qKk&;L(PqPIw))vM@u2i(FQmNwtn1%^?etwni+T!UF-L~ot1%M)z|_TCvE#53 zOaQ$|{Kf#9P2_+_lw>)NVqm%JouV|Ij8`~M7#&~|I z5b=fEN=%K`A^SvTlK)2XQ*EO(Gbg%&Jr*g=gd?koAKYv7x^xU}qIAZeNFgF#EJhX( z8A6f9VTrbCNt?^ClGY5et(lv>YG5vp)yjPz`s7*(NS7CmIS0dxYb5M&X2U0$*~s72 zPoxpi2y2f$!@D5u@IgRACt0h}uwDx5t#}Bp*qvU@k8%v-bGz~jO$kf%o zQx0t@b4s1(yrZsiy-=?@9xHq4@lrhbmoOav#SKP%Ty-!iMwr<#`zFavQ;u?r&r5vwyBuA7DV|lHPu?@`X1AOVj^IwBI#QF7) z{!|I~o#39h(;`J(?L$4CeFD0(ZgzF|oJ`2=&19Ue>>cc?&`?Jrhq-qPQLiGN_m7cp z_y?+Ay_rT|S5ssjdyn{sagcvAILgue&9c;Br8;H<-=Ssv4Ra{}-2BLYwEBn(p!TvC zx~1^OE-ghXXYN$ept@>5c&FAJsiK9D#gZG(6HBH)2G%%6W=?Y!{nOVGO0U7ZNncBh zN-u?!NIwD z^Yk1@Ro?5u)8k0^F7@Kg-7fip(HU;m=99<|8!^UqRmW86-Gy^MG3xbP!{gy zIK|_EfB87Dc8HjG)rU3lY_L+w9!QeR26B5V*5J_i)mGplY%XFabvHh5??#Ap0e=7SY zeg*SBK84l&4O}7bGv5Nw+Jr~$4~eVXgA(q#iu-#z`nvnlKOFsu365vTTSpEgvZbL4 zbUUakQQxYI&ol<&v-I5fD=ma#+6JV9dI`QI?|>@{6beOF5$|j_>(z{!uJak+-M;LX z?pcBHE`RW_qefs0TRx|sqe#v~S5ok}`*viLE$Yo?Fr^tbTkCEW(Z^}YdIP1M-bDmP zt!Q4eY2b~?Wc_0t`BOselHN?(_ItA!|ErIj|Hm1v?f3Sk_+yee=ueKG5*Vw$jf^%^ z_!9Qbp*TV-g|LmvXMC8V;6>Ci_%Q7@-a=bUY*Ee-tE4kFoqQ@*m^*-S(KUz|T?*5Fu2 zD<#s@Y8H-|`9tT7^uTQGabTxXDA-iF9jKsm&bcF1&*u1*IoXjfq5lG|*x%VV_(|Dm zq9-s#dK(-pi=k?2=`dkr+5J#3R|*uAXM$PAH|Qf6V!5zFCPj`lTG8)yi>{(iW(sI4 z*fUCuJuH7>n#fnEEAk}*RR`i7wR2c;UBhUjFz&H_qu=3$$ZujE@`WYPI_{ll7tdh) ztvg7ba#f~Xt_Rd}*FI8o>%@HbTe7qB2Mw5+>?Hh#%|L9-KvoU1gS87=0bN2_Z~`3& zlCeSX2uwyqGy{uAdXVj`?R2`@ky#|2r$-3=>9L%jnHkB;W(LyPt=XN}W!cpzEhi00 z4z)IVM{p%0`c@hn3(J$ap;~isoiSCV%`N6C;}_Uqyg-+kb?tqDpX_bZK~91V_zchr z%Lgq-=Go~ZpLW1}rJU3ADb=;DQk=S(cc`7Cg|$wR!g__+NWHdz>CNTU8lr8{d+M7k zNdE+n*NUJ&?LFoO{iChu^aGQP{IH^D!n@UHa0{`n&1ahegisJ#9VFr7fgfnwz;$9z z;0swNxR&f4x=U7%7NQCZdC0f&ApDoU0qYEp#X6BJw#!iu^?Lgtyni-)J+2105LX(y z5g&$1Cgnp)bykZ*bEzGOM8!ewm75R|c>_+V zZv2AU8mp&h$QOGf!NlyGY`B2BER-fW!!3n6;o7l=;l<&Euo3JY3I@IhD+CUO0)Y{c zyP;mu7Lnr7;<3@uGD1?Ufczf@Lm+z4-gSHE{#|+1?s)U7Y#j32IJU12pU{3=nr4 zOLc5FYB?TgV;!wjfo-ZDq?_y4@iEpkcnQchw}Zd*JJ2R&I;09bco6B2t;=yzy)(Yk zq2F8S&FLgHF|!X&<)k9D11@knPy+fdm~K6@zl-y@GFET7hhgeP)vC}D@hm9KuLOMT zD)c;d5z5Oo0T*LEq1Vxg1{9mE*t=Z*F@H7sLC6=ID~{#6iuZ*DVlCl~EX67qvm%|r zldu!{5$O&e;}$`Cq?oza{tlGYn;94N+4@91uU1pJ3t!7!z0m?h>EPY zr-Jox2t5tDVtL_mSR%3){ek$fs@OcD1R*gu$cmn9dmrDJDVMmN-JbZBEuAohITKfl z+7j1~=o!BoW8(>Aysr$j)OFIR%@owS;EGJbE97U^C8e#|NXw(IHS(z!ZFlJr{I*n+ z-X$B%e_CS)X`-&eW|lk2*zY~AZS{3kqu#dadUs2`tz)(6qA!?NZ7uaUOlg0cMdg0# zWg)NpgFh_2=1a)w+z{nU#H}3<;QG&Od+rWY)i#FbYL}vgjn=V2(6UHp+>OV%D}P>nV4)$AbV*&$tqGZ-H@x~ zs1?m}7KlntG5XliBDRQW5Pd@p3tyt*LK$>8c!xa@qMS_Rj$>QwFndVMVmP%hyVt1U zkd0YRQ{V1drfaTR#x3VHvpU-Wx=HPT=8;RSO!A@Wpi`_bR9Ps8xC*A@2(ks=h0Gwf zpaZE2_$lTxQIXZi4EhF@N`0ly+D@^T*hFG8avUoMJ|Ml!`EWILp{*MH!a4=E;`{#u z(LU+hL5U2H**3G5-YX-YF(o}}t^JjX4EqJ)$r+D{>cP|G-k3%{7MoFP)uL3Y`IFcM z9%0jwAqb1i1OikSILwalZ}l-eOwI<+r4rCUd4gfd>($1}J|$HiuW`a;ljVDX3H&7F zKPesAuO}l6TpezQ4*_xH7N|a15R$1BYl>s2zQ;`~i@fi|bniXkt>-_!uDd!XIp5fS z$4`+qEE#P?FOHQY-t&WyMN&1WtNO<%V%V%AtDP1PMb)j=O7))g#ip($DnDUNS&V#8 zULj4i%4j=dI+|fs!wMpuh#`1!`Z76;Ey7fE7IhVN$GoVwvOmsu+E?Fq-<#@N={e~8 z?k?$H>!JO9yve>f9;eq(N@|dl^z{=OMS3?3dxb%?5J>V=g@E?=e}@DHX~A! zbnunX{L*1t72IyMvu_a>xjcF-GF(dt-&Ajfekq~QeC0@Jow_&lLGK!FYsE)CfbEf6 z$gOBin-IGny)7`r5t(2%=*^sOpkL0h=s^}D6!ImRh0eA4iViysyPPepyV%q6GG;d4 zfnlQG=ndhs)YmXU_K8lyZGI-^5COJ9456RJWNe}mz#3Tp;D6!wuvJV19q+7%?Q$yE zaaO`A)Ao}gt6*_NKI|9P1B)WRFdV$ao0AQy>U};@Stt~gGo)*xqJHP*89O3-%r+s;m>Jxz_X^e4PlZqF%_DBZ8R>4!vinsJ zhCiFrBN4N3?2VBqWZO@xgL+Z+sxRb<+Gpjf{#s|vH&DpzhVHfU6E&cMR6)Q~|A9{Q z3@C$XZa%WNy7{~XjjR5-raSJ2HN!U$I^?+vop&L?>jYrFBNuqeo&vY%Qiz{yiY>=d zh+#;65{DDX13<+OfOgnks5^4Y+zUd61GKevL!)8S{DUPMN#sPmELp(F!8PMIcG2+Q zUv-?=q_-kE885J0RtmyHUMK*n=`h?v=AgP_CF`&-(psY63CNVDzA(q)rge>h} zrm8iPnFqh7iebx%AJ}P3#X6wxh`aDKIu#nl)H8VdKj0X(Of6u$VpgCB)n&*i^%#<+ zn#eNy4*OLfiDp@&(OpP?q#QmL<_QlHrjDUJvj9Kkm_tA=hN$BHitqP4C#v{JiuSjs zYx@B6&hvl40%^^*I^5DBo#RCD-W@)6`CVMr(Enjh&Y`Wp78 zcARZ&pv+fGCSzbJu@>2c18jx;JD)=S!AC=t$OGD4s*$*fE+4DG{0NVt(?SGs-0oCg z7rq9?MY4?*ksnIm=rD18tRDZG$79n4CA(UHHvaiiKkZqrD<`qSZotG$Hsa@-dhh8W(vHxEvcAVEI3xn!=S> zGchVq(g(Sdd{^{)99xdP>+CKFVcpwv zYS$1C^Z}HvG4xlh12fB5$99BB_7c$PT)@fHhB#WZc9Dmm%IF$+o!JR}DKl6ZK}K8f zJCRhrA0T+cy2g#Q4skB4B(Io#1;{EXN#;>SGyCbBHN$)jo?9E?XZEJNF}xO{(JfXB z?4Vf_Ut*&8468eG7fOOwf_#=A^n&JC7@Tg<2&eyn3mS#sd**n!4VZ`KK@Jm7ku&rw z^c-6cZ|(Sj$Jl&CNyjJRu5&Q?zZmIP4+Ej0`Mrg;F{`v__AieT}=V(1e>jo=pf?*QBj{njnco8x|u|LgBdIZ zTa64xzrarT1lVtFu+AA#qmRDF2y07?N1ABMN9H59Vz#HBKLa=5N5ko{<*+;AMWzLpA{&C0kd_ewp2wAk z_6udrrQ!sAuXsZHM;vQsM_L)(<#au$w$iT{jr5j~N4H>?J{|{pA^L&(m*csT=5lH6 zJzI^*c2|9t8v*A$^K36jE2O?XKV`;OM+(Km$R^)y*mA`o{T%@5!CnSMSs%2U*=Zs4 zVyFb!7c?UZ0SPYwJ;zsBcZtuIO63AenM^p1K85~8rre<=K1!%jgOUsbS?t@6uQ}srxU>d z=>=#m{s0AdH>e-Wv_jF>X60Cp@hqClj7G*=BO+fdGWyY+94l}B$2Bzf@|bx~NH%AS z<*kmA8!Dzmt%`c4`NFDeBq5yk4jZhUCJJe9h#Fc1-=-xHyn2qzlIPKRrH;%G;UkUm z)hR8C*?RnFtY54N)`I(iahw}3&-ccnoDYriy%AOVjto*eU{BS{_Rm^Nb<#k+6w7Ko7}RWIgJc) z-bJRlvymU3W!N8YfAW{_FZ#Ft3Ozmk1d}`QC@UvSa7ghP&X@6r-H!PFo*TYHZq{4a z)z%YYMHfpG&UttpwlzGRV$FWoS*0S(3XP!`kx@oQ&{PrvKcunQ9!bu;E@GK;#ZrHc z*-bJ<`RKRrv3)k@^3Cr&u_swCqh)Od$NA8)$jWfn@PNq7Q1$4OVDZ@Lz~`7F5RTD- z>#_L2Si8r3uCOm~Na~*RRj!=HDSu}k(#*`?dP+_yV`!+0StWK6yyQ#bhlFJMns|XF zV$Xf3fv`*Ye98ciM>xu7}{>cf>ExCHQYUFmilXHJ@Ey~rvH8|IP*TY<2-JNoc z@Xkn@<*$+OJdXF*j?3k3=b!Jo@4N2I>;35L+g95$OU-Awi>?or#JRB(x zPePUh6I1{np)a5jGzcySdEl$y0{DoY03l57v|k*`2!3LpXdCUA(} zj1^=G<5y?}-$m^vV5%p%p883ZrW4sKR88j%a-XX|vB@z+z}sT7#RAYv4-+1f~%sO)qg& zTZP?IYQO{Ku=z+DVZ4{d=_TY7>K-{=-lk+r-PNEdDNdo5a+UKa9r+vbb|FXVDc+W9 zi0fsaV939?(efE?jI@<6AmU<2eu_9d){Flf9TaK69S($r`q`@`EAxnSIkSk|DQmg% zceY=PWna~qoQdYQyk!i?3)FA>U`ZC$5!&v~W z>a7Uavw1^^W*8qa~hbjwMDKhln;tH@uJ865VXZ!9NTZs$#x3uUH>U85(Al1y!u~ z&@-DASXF;!m9f>%nQDFArG8d!D;JciN*^t^JWF3DuGQNKjrE`WBJCVMK!y0L%CDGT ztr5GgHj0haN^v<_Z{eplSbnVK(gtfEwK{e`*ej*I?A8WIJ@hjYFmfxpL23V5X?i{o z(SN{i?U_48t%`~^+qsm|8TD$-@scJ(%!ZcWJ}`#BK>~FWjHBiuOR0BQE80nD^jf?i zQxl8QK_rP;i#%j@p<9?|SV{Ud_MTjdUMACkOpP(NF*e7Ft)Xpq{4}>amcsKL|03m_ zRpI8Y(jbpJ0P4H*qcdDJhziabbVtW2_C4FsafIpX*hW=!wkCeM9M}_25ya!;L5}w{ zRMfNIyyx7i*LGy7ogCNXy3TRpFGne1FmsxJNR;Mn)&_SND#l$gAH@vgO|+I_h7V~y zLj9DJ!E)lv;Evd(z{`k|y*FAQD~-F5ah4zSr#O%PY0v#g-^tbg{epl0bD4PkSCafT zeVE)gGhKpnHcCYTqvS(5bJQw1J@h?+ulm|>SQDZ()yG_A<&K@?KP|0Q8>kZukFgoL zVGaY+pb^juWTe%axM|j+>X}dI(q_!D&wT0mWhBY8==%~67{?O6m~6rx z>rZ?)D#gC^a{NzRBez{mIwpwuugQV!~O*k>I2oCyXQ06Fw4$5|)xx z<7ZHx{5Q$<{uj90A3@7_pTT+EQK*`8FLZ}_3U*KvkW=J3^aYWO{lqHav*AJZ{s3aS z$c&@6aN2Q@U(YV)S5VWr!dNJ}5m3?L(5T2Et46rK{eGCMbhJB8Mn?aMt>zptp5Mb& z7LtV0LU$oeV1#bsFCLa|2ruouIwtGOC_>ACb{8Oj{HYU~t=_Nh_>2fl-tUR&`+Un9;?SjoSx}?!y zh`JHEsidLTlmmnMY@C!AS#JA$zGAL~ z=7C*c3{uf{JTFA{W3>?-bD|K@5l^8oQl`ffQF<>vpYjlAiSfiA>>{3n=E5@2f_yj#u#dzI7BL$$TJSzoUC?H-Co zdNHZB)877h3z?7AHf9H{ zgz>jtR4cA~mD<{G`Ih=gtDyFT4#^eJSK@bkfDj<-^3UlB+-3G(uDSC!|H*knEa8lk z`>}0Rgq~q~Ndjp>Boaf38gxtI8H3`P>_nui^PW}7y<98qT`iyYwUfjClWNDfXGWaA zt>yL}G*QogdOZ)P20Z7q^4|Ame{XBJo-d5H@~7eV{C9~ozmFQ?+e+{CoMoT53%gpo zzqtt4DrYsvZ%1ARb?vgV%8Rh_?s_oed~BVi?;9|FT`LRCQ$@9y%8T=q5!?nDi_o$= zxK;AzJQaUtH53YFt>&&|m58kmEQ*|r6bKLCYlZ^i@4!j9S$nIF#==Dhb z=+bbB=&q0%IUIZ$*%G`N{Stb}KaDJqvty6c=E5HBu)I&-t(UiZ%DO?dU<)aa%q9Oq zPBFugcWha-mfiJ~-&qrtU1N~i-WBi&9|E`cegQt$40t|014+OQBo3L69t08eB~%Gb zvk998?L_Dry(ieOZUDWM8-P%Y0k8hmYHsE={Lnzf3xZ->;1C5UTPOvI!a?htP}5p0 zls19*uRclop;l7^%2R!^QqEkjtg))AwB3q@!^M=H$S29b2Fg0oSvyO1v{K0wnW+06dyJKi@n&;J zKht2|8H1>i#(4aWF%EfW)`#{&9SjjJtJ`y8T1R-cx)Pe9jxYAlb^#qjV+CQjXe(4;l_t*$Bu;x zMRJ9^hEgNzf@CZZ{J@O}9~HeZOPwopvL?%e;bH1bbexXk9jsgUF?a)h6}yEkCezU| z%s_Ooqab?Du>hIsSOTARJOzcEXF(4~bGQlp6sc?Hl?EV<=tA&nM?QG1D<9I`-5P!E zevQucB%@d<1b( zyN;#l5hTOlz$^2Tg+iUpT_9>C!*z^-fYC*$gvLW-)ZNf3MY29BGc1?h+?r+fFjK5W zy3>rQ+w?c~bb~2Blr(vcl3OmK{v)}x{bGAWIP&opKkqpW1J9k_3-MmFi4>`Zlk^1b$*tY^F+cUogf7;a3o zK_GlJauU6ZoPdv`i=mzPQ}Y!y)A;Ui8bS98W18oOxz&9hN_Q25$GZ+7i7p%;YEL-# z*zU}1dWoYyS;AF?sOFwRoVJs4-5e+JvdkV-qHckWWJ9wgL1;MsM*e}?J20e^(ikbK z*0()2BJxJ5gn5*<#24iwbzc8vD=BRplfi9ADs204;eGU5I2ZW=sfsni?tn^o0rNQ4 zSW7^wDAnL`QX_~IciCRE6UHv?jn2hJYZPbN4Uk=h9bEBP6<&$d7aBzG3l(A(pUPe5 zD)aqgSNRL!M4@h=fhc8lmy2b!RGVg2&<_4Nq#jIPqnt_qN7S|+}(cfBYr)Sn9Z{ZPmOPiHg9a}_aV>a0ZPjS>EhdYbWK6gW= zh4(t$!at9i9XFR8A3uUDk}!-Km(Y}sB^08sB#x$X64#TP5>64azZ#M0fygzk4OGZk zhMwlyNlkU-rv^J;lbsy<$eZj@as%6&Om*xb2-h`ypt}P`yN@6-XMUuZvnr~vqp=-y zw%v)C3t5iz0%ai8s$zV#ifc~TRO(?1@kU{H=Tr+46N_Osxx?DF9& zIrr=iw}RZP?5g65%t^}4%-j0+oR&~0JHa|YI*QWzdQ3BK;rZ;H3u>R_2D$-lMbtzN zQgN_Br-7IB4)7QK1T3dsf#)O*x3N#JV}ynlz&u1Lz>|{ko?fJXW@{Tq9D}S>HW%1O zIlyMTsFjGM>Up6gwWGOKd8Ut6CDpElvGaU&q-;wQ+CXuFXqtSoY1fdOw{7N9A+JJ>Fbc`Kg z*z^Kx3|~kXIAK+ z0Vvtr2o==p*zbt0`foW=F{R=XEp8KQ#(IgNpkHj2Q&ZfZb6(6B@=BuJEz~;PP^lKQ z8_;vQ81J&fW@gTNOAA$oigJ6PDpDDcuCgG`JZF`F{um~BrSCuo=`CyrypO7)y`|o( zUr16*#~W(5@WYx!Zqx@dl-=er5^^%1k%QzSB80(=?&6us;sP$Yi!d)eeDrh#?XnD z)^cJi)R(vc6(L^OpY=czaROjiJbV-o$aJ$3x=F8z_P5=`WsI+IdBcM9YUkmtQh9h7 zzYA=N*(C26XBk{~YnLdPu+r4bR6gkS6_-{;zNFNYiz#VJMdggTRk^B8RWUWFU6x6Oa(7(<+MDNj_Oo(oT2-mr6?LCkxi}H z_1-9M?d|Lqqj27>5x)gqA<&KS?K6Y5T7wO#N}i! z=^yN;)EikZe+I*qEmn?FUC*!9mS?I9`G3@TvAxQM*gx`Gj*$#5QE10~ihYcYi`3@Y z2b1}xu{A1^9K4P93(!vq1xMt}v!Lf0`ql$Dj(XTmbUyupW6E8HVq^ zw!ptu5Bg?X6}^j)G47GX7*}hmmFow2)3t_t;;KMBa896Xmk9Zmagr^W=6DHq5W+dG zLsMOKEZE)OJnfoioOMz97`LuW@)Va>cwbA8y^OlUQ_peu0ms zXQ31`5tL&iMla_*wVgXha=1$hFC33!r)V|ugIE-1iQ%DAXygZDhFBDOwVG5Zw;7h?TYKa~<{7wjy^#*vsD%S4D$T-{?yDaqPNWf%7TTV~dn& z(H82!=t3=t|5q=d2xWw0J{Vqz+OWIwgOV#nE;PLn2A&Xsn`nO!qWkdm4kO;S@1_R39W|?z$V!m!eiS%c~y7AljJ2( zAHE=9qcA)t^by<%tb&f^d^Rs+cQQJ(99U_(9;JB{B&#iPc3(&S7^d*^yd8xnfbaEvAk&>|XOf7Ubdj=G6KDVyA%31f_ z%dF;}i_msY3;2nrH1e;PKv=&BPmYTskKzjB@BCG%w!U;`o97vO$u*2E>wIE6M>FVh z_JeX`L#P*E6S>4%kKZz0AtiMJhP8U|7?rhqjds{M^A>j2r!C=7QqeSZI4GlUgQ^)B zAgGr|I%yr?cS>n1x6;I(flA6r@(s~%zdg1KXXQM6CG}p6(N0D0sGlOUl;p@`c}7@J zs)v8-Rw&Er6!L>%LB-k-xM%1&{q*ZOhxPY44UIB^O#OS{Uu}O7RpgK;oQr01ql5#t zzpTHIYRr(g+wEf`kY?H)Y>K*+7^M2Bp88_C3ABc3jLu=cVWsJ#=tr^+yqk=JW|1?j zSHvD@5K#|~;$@KQSRKR$5+gCJukA-3hpO~ae1(&s&UsSlYW_>q_4wZ8sl@g~MiN21 zPwq;5Om0SuNy^3&6N(^x{Y@>^(?cun?yW3ya>@>Noz{nLYh;o4%%|if>y*uFduOMj zixRW3t$1_NZX2LfTZ_MlZlb#)v*~ZpLu#d2iCSZ8&6m|Ccxhz~E`HbgZ>7d+>rkmil|X(C<%ArE`{D=@2|?-HMC?zqrS65vjeM z0@;UQW^p_>Sc8|h8wQKhWAFiX0r6&c6QqdeBdG6L308Q1fcD-$V5;vAnCNc_QsR=J zKmHq5ec%5Ro-lmV?SnhJ*Fw)+d92#5`=-~)SVh=wR&lzFRhO!0HlnZU%h*J1s#8?9 zxG1f%yQz84-5NacjDu5s8rb3A43&;Wl5e@Q7qL-v2QAk@7J7v`5FIXA2SG0=S z9zCZwCCb@N?yB{fvA`GRAfi!gu}{Qd0wt2E>cm*;7crMa$%VLpT}M~J<r~I+i?jkneq$PO-#krZSpA5>&p`8K2R%UBy<${4;qHtfM&t}K{5c)DtM(e09g;A=p8s7-Gcg&;n**55*rKp<4-{f zSpvCEH^PqCtowzo-{f7VO7hGZ!a*hDNANB7d*mGQ2>yc90R7PyRy|umU4$Ig${;QU zLi0&au*u>FytR~qk5d%eZ!r-4%V>t4HmYOA&7(MH9>ga@Y3LI$6PyD>&Aw1EeViFm z`|GrNNu43zRc46UvQua(E#a#RxRAy56D#qk+*9nTyjLPhHDkTobNfG^9TE4 z%P`R<&~>H=o!ys0yxj>IMo}?qc%C>UwJ4gD(gVCmO(k1H130&$1r@>#SdZ`~cEiwE zdY6%@Yz+~mvvic!5a#w@L7)7Er9u8j(pJAJ7Yc5cdPh}|Rz?+;>O?&hwcu*>!j~6* z(^`{xYOK>jschDi7aC)wxn@B6&2A^Hb4JKD+!5*+_p+YoR`gfL{d@;$d$m75*QJw3 ziiyfXsg}A!nWx@UvucjqPfHPUYlqlERpBmxTkND<2uznguzF$!_CYvDI>B1_7@O?X zp;K@+GL=sCLUf7a;Y-}tUBdZdSTYUZ#0KXHbl)@L#+gT=2fJm2Nq9*=fgSxog2t z{07#d2Zb+eBFZB47c)q@R8=i2#rn2O)dRcay1_(wO)y3}9h?o<1&h%4fj)STzayUJ z+e2>aEm=VS$et@t=`~c0TxTEfZ*&`N&5CpX$8vNJjgy{<2~s~XmoyJ87G0r{*hd(L z{(>LjDKL+{WB=eiw1Vs6Y4-2l6KlSE)V}L1aC6zOy|soPKM9}oHiZv)86zL@n#fr; z!N`a%n9Ia}t)}R>)d)T_D}&L-ZuU65hAs{j#uG!s>|)`C5jWH&EiLt6O5x=Esksw# zhWaPOM!qN1Hzp)`#>tdzW{yyjbujX;Thx9-t78G(V*KwE?sI?DR4L3mQ4eWbl-<6Y zT6`dzzh_kSz}RT+$%>xrn-qQCcPVOPU`Oy#)UZI#7$G3V>D%ug zul?@NuRhn?DqGa{$~rkt*(x?xqR?0+QTWJvyf-O(q@D6`sf^q}EUj!qSu__l*IP@MX*lRz6*Ub&^xjB^efo{dfc;{xyKD$!l80*R}zxgX6 zU_49qM;4^L4s8of34u_2cu3kK<63CF^|$fUUSYp;kGmVmZ{9-i(rJP$>zBC3!r~!2 zlUT&LFF?Dl@YVpRW_T?ckk$%y4pE^S?*KdK%?EYCcUl^~p|O$#$|)sbJH3_gBsdGj zrY|Fc%-6&TSq4dInVU$zWhy8(%izI{>2fkDHa9L8y~i0J7+@{b8b@kMI%gN$N&W|1 zP2~BkUo+scUmanlgeUAm!Ye4EaJ}_wa6~=ls;1lZ6--QKazciQ3QB!FJ zUsE_eP!GiizoALNX6RmExG*V@QAqZ86)yQ2pk}^h;!|ImIN!Gz_2UY}d+i&aejMS9 zhm}HA{Q(@L?_gPUo&wQNd9tq*PyKzM-?$#A>+{6Y{JeHTT`f=NUp+b zFV)QDowgpj>#ULPW3!gC-8^rX=I_HbcZxe2Z*{idBum35jpBSRa@eg9n&|yZn?@Fe zX0ff|KY(mp0SRU_oM}r!J!dYTuG|)Lx-+F9t}VT%z0pHZA7l~+k|1BXYjUb!cU09; z#PQZFajP*-jE{5`J8?=r0K1;8aQndgHJ!_qj76Fwh`ue}LqqjwtI$8~5YT8QkYw~0jWu@RD%WTZ|zJ=epOG3xp z+o@%|uF2(apTwo)c49;NK4lA85zfS!W9Qr!R(e;kmpGg3Rn7%YFF@=FE{WRFj64H0 zN3`Kxp^BJCh?a|@kMcutnzE2*-Lk6L{EyYW!PV;g=&Gs_GgYk<+fHj5(^PL1{Yh^U z)mDEUc&sk=Tgu6eb-~*UHb; zDasY~th!Pit!3jo$KQ%yJ*foLrJPjzL~6+ADaYm3;DA)0PT;!jDbUs{NGrOQ*Vpdl z#G2cUTal+}1&qNdQP!N~r%v_c6mLt?4V;+Rf^uJ&OV(N7|Jf$QlojeX_O}gQ(NbGK%NeqQEC1nbgOES{z#P;FT#Q!3vlZ=Rw zyfM-@wS8n^=zI8}!NMudAI1r~!y-Z%P5|5DKG*-^1KW+Xf3yh>#x@trWXP$$%XC5? znstG1diLVJT{-6H?{d7=Tj!|5`yjdmGGt5e@5r`9-;uq&63Tu~9Gg8PJj>b(4$q80 znT#=Pe)>`LOY9|5Il2|;;O|JOat!1Y?+W{2EwM4E$Iloyr2pJ;a$D<_k{X$+tqV`k z?}eiDTA@zrl2DRVBhnasF)G2_rp6P(qnK^{#xh#(XiNJIDdVicJDm)8fpY|_+{Lus z{z{A3bLdv9Eh%XgApOlg+$%o_l!`PFVECzUFzpyTnfjG2OKnMyaL4wgRIY@lJ)mBw z9B39%;9z45{9$$#7TE`cq3$_h9IlSukP;}sror5BKK+jRcq8RQ&Nii(8`F2PhedT1;e~-5iEzr&f$Lgt3 z+4Z~8)77idtK~@4a;aVLl4SeN$a6G7*{771+Q?_1Ef%JV81Y)5qTWC7ihG*nad*%Y zoS~oJ98Efe*W>qT$zJKuXm42ff_ETNlhiflQQ2_Fnn(~=Fxt5#t!K_$=MQ&|H`4nX zf8)8nj<`9lNygzYIgdY+isT9TOomcO1FRxh#wy}!;F&iT48rGF5~nou1G~us;TztM zo_JN!cee}T*=lK(U0vH?t_XaI?2Nt}ZWOyA{4DlZcv9?yuod$vJTvB?F^jjU>ESPIQU3Ee?-_8ZwtZG3?Y<@uK&?dg6Yuk6O8hdqI8wu`bq?V`ed>#Nk*9IV9{ z$9;cC&iOw@gg`f=e<0Qj28Www;JzURrbSx#vxO6UOG0CO|L4&xh*)~O@j~BZ?$@4} zOO)sxP$_J>0?wD=~0X!PLHi6c8h&2 zI59`T@R%NSQS=&IE~=Z?C!o8feZ%Z4YH{ne+`#-(5{)SFWq7bKF&u!y!mnAb@L2jR zRFpgll_ZBlnOUPybD>b^lJq82UM(5h$t98kI=RP!4u3Wj?r_oE_#%`3TZd;s8qP0sz0cE(*P3*~8VD zKhlUNZ6mChofCBTmas1LFxv^@z&^MMjE8jruVw-tL31F%h1`WBiwU%`GL;O}f8vGQ zm1P8;Bj;UPZk@ zLjx1V`@Z&^3wlNs)b08yd8u!-oYPlWR&^%!(*EU)1`(ano(OUJC={o^7q@D^q;BeB zsf=%ZQlR< z0)W(+Ku9eD@1zV8wA6B_MA};6_fR5G!dKaWaCtB)vIQ=TTogJ+b_yRORUtF-v5saK z#~FUFab&3Da!1|FNb5*WV^r!7qkmFq>svw%dt5@S^Ch95TQ=#ecQqM%LsOYMC{*2D z89CtAwKC()?ogVOa(^(_uFr}2#QsV?sTwDucF@(>aStUMDYk=)AxuykxwFbRivi@6O-w8Sfen(0Fk=Z6cQD zw~_!bgr8u7@DhxGomovVfXruCye#YwcQpO(B$Iv4M^estN^04o39xFDL*{9ciFagW zc2ntluRMsNK)4K^^Ls}g;Wzmj$f#{)hkQ-ws6ap5B^d8M3O;id2Xi|G0-5chzAhHi zR-1X%wnj*-5}64)M~-^OjjdKg>vW`|T_LPGS3=9&cA*@2LRu00Ewz(3F0HNCH(V8O zGry8!ZZ0sL))tZhL-mAC(pmIKelML@^QaTKD)+|MO`Q|yDDRE>hW5mafyL9EVZ+lG zWP>tHXMbm?36jz$ff4DJ!yYktg)_lsg6@w+Y1({gmO4sptGw2TG>5l+o=}SjN7av< zbeD%9A8`x$+gp@|)>QePv0i!`IVol}9-&(1c44_S4!AJKDQegE)>y^xHtR0_Zgn85t?~4Yxe}B&e+hB?OqtFoA_?XQ>47z!lL}f( zPhCl>!t%9;UBP zdas{Itf?POc&t`R$gdPj_(O_HSc?uPqyamrBF&vv1uqW2cTYw-y8DcmZZ>P0cZ^f< zTe{EOkhjw9PSV_gv@pI;SI{H$5Hx8?aS{6@&S2M&$npsvDF%$@2hG_A76)dszlA}p zs3bGKPf$rcMq8^**)H`x=NJwJU$tl$=PL|*2Sncf6A;vxMdIz)9!j3{xwT{IXKRfz zRMg@!ZdNm7I-~5!cwQcy@skvvF_Y9LBM@_Cs3D9_7tcz@Y{#vGGdPjtjyXgh#aU{% zBgOUc;ceQZw1BFoO_VqA%wUah9aO-W3~!pFK*0XYQtUeHyR(63v|f@XIMrKA9@v#= z#286FhOc{en&7reO|oM-qt}<*$$6Mm&-p!hlD#iE(aMqB+%A~Z!0{(K?mr0^$jrpu zpia_W!A&$!;Y3j?oX}i;^Ygp17@IpL-JhV za7saVm(#IcMuw81_8V`v_u6er2YN5SXHp4CFu!yi6;{qm9k>$LO~0K3t~cv{E` zD40r4uza{T?c=q=>)boeO{WQW@D(uLTk+x1rWNXCtPLeZvWAXCW~D9W?xNa8m(*l) zcWO0zYT6llPpF5JKhndUZj|>XnlHW9R&U(To{bMV>+o>*7cS;Hc%ZWxueYCi^=#%K zr#bJXWf8}_8eW8}gzw|)p^n5KYDjurgUF zbjFHU#VaCJa#u>ko+q{A6zsfaULJ6Hrv76t)n-^*w0+h9O|yEb>&?NkYsPXuza$iJ znu3x}K{mpELG#-OX-PXBjpNC!Do(0b$Nh)9SYF|-cqV;>hcg%J;2@_;v|{Pe4z5oA zL{p^|QZ<>+JfynH5HX@OLxQ$kXsbVi?R;-QYu{nkL9b5BYJ;(+u6F;E-`U@#64plP zw(+-=7a_7!ri0-p?e`M1b= zWlJQ#dMe9<2nMYI!UKb-97UId&Po zg41AMv=zqlTYWZpDJR|Rq(n)FYpa``_A0e*DbLL9@^|Bbbj$cG^)QRdU(B#n+iEUt zvf7FXRxZ@Yt|wG>+6sTUWzaa!L|JeWx{ZgR!sL_i7w#jRagk8KJ_$D%>mcCG@V&zi zAPT>L|AlP0B-B`_7Anj$$7RK#+;hUq2a#%daGYbq>73#1Bael=+;=t&c7gv00L`80Q2G6LT&FlI_}=$p3+<5Q>PdIE{GZ27wD=}Kpf*t5F0u}#U{>Hal2Dh zI^g!@^Y*XeOYQ+k2S;#v-D4pZT^FXJ+Nio%QsjHGlv9mYzG;266Z&htfnL}Dm#PJB z$^8SSv^2O=IuiX;gz09Y+v&#&(=(Xx-}C{vJN6}uME#;m{T=8zwLg6<`IsWUV6nmn zFpPB-c5p3&IJu>*)*&g)SSr;seu;5LK+I`2MmemPLY#eGcwc6vD9?LN+YE5_AK*S%)!^U9h_crV8%_mnZ$wT)?R zR&%)f$@tg3Xbko?8wK$eV=wMx%4EH@orLXU^oaW}`-BnLPfs(#rm_q04^}~}#?H$l z_%n8boaU+5;lWq9X!IYrZ*(jk8CA>69qi@a^&fCj^!!d=b)NH5s^mRI-N;m79!rA` z&&V_tp9ycJIVeRwAcmD1aw)Br`d)vfZ}e9VtO`^QP7mY^KJ-5iJo42EbkLXhPOBk>lf*nuQF))2B9Er~d3*eDskJy9May&HZ%SX@i~fL3 z)OxUy`Yu}3H;2G|k5cO_fq#DV$F zX^`X$1Z&(_aMw!@rf~X8PxhH@fZM_On;W}Cc`v{}pIw%O` z;7CD%jf7j^6a2(#LO)#zzI!7;w7V7jvUdS$j{^DJQlNuZpXUuJXpTQ}=U;wdxOW%s zbcaL1Z3O>whQnNLA)%!=7&Rgd#I7s_Wrc@@EkX`>0ZnGVi}`33sRVg0=f|V8)9zru z=EMgxT79GH8cl+OBC3BOPZS8oX=Ro1SuSo)k*AnfrK{#MuH7af$37|Sa_hiuSOE^1 z#yT+W5CKWN_kM}+MLZ++l8f;Ep-kEWrIbEe8KM_gwrc5=ylP`*rF=)A#SLu0Zj8xb>Ar5c`qh>e+_w#)FRWO40lhy$@rMavqUk~?b zkMU^zk#}0p>HX4{yJwUpZVzdU%S{39UueGPM+x3gVKKf6=aB|*5N!iv**$oLZ5F10 zZ%Btbqmor8El8XiJEB^)Bs~Llj6c&6S`=i@P z{iB6mWaqq;=JbwKlL#_!k zy%ZsfYYCt1MyRvB2R*f`qkVkxuegM;-l1?J&K!O~@`vh? z@o7KZ8EGA?Mxn0ZapB`Bk0LJ;8=3=tEwQHl=wNU7{@!l&J;_1ecX_|Q4I%5kU!?7S zwq)-TGO*k!X*5H49qVST27h}+;b*oCzC}fayvk0YjJ8|Q^dsCm*#_0|1F?26yO=)e z3|bgmit+}6;v@Zr_+IJE6BHLD-b*cggXQJQ!W?-wX9$fK{M-#XLMttF*R!GCdJ*0~ z(M{^5S#nA3nc75i^i^8Lz*cQoR3UA3On0?Py0x5YIZ6@JKU3 zJrwzrawe2Nd0|?`#3^ZKe|=Bu@M~P?-me1TH3=!<>4`awdP%R%y-Bgox}-B+x1>^Z zYEm2%l8>^h$zRyDlwF`?S|ap?KMPZgC^W=gC=Bu{!cue(e`CJWo(QmV@+Fo}I}958 z%fUKP_hHr;Pbd)6U3?mKO)3%eWWJ6nn*WOu@f}nYe;ehRuZ!a2&NoLJthCWOD37%s z%2B1nWQ-YQCnb8$}qhs6px}{sH-;C|3m57N`OGUNfES2*r@UK&2 zd|~;S)>tg6?t{hT+H4fcN1B2s-g+W>kG*G3LC*Wg;{9$7b=z8t?Pz-%pQUayM!7l7 zrEaWM(eoARAypRc-G*+0q~=F5tAapiN4a?P6}8QvZ=8sCR?i2zp90rV9U zNqaM)-1uWIf6xs)pYu3}050l3*$hJDcQVp;#s8LwvK^X2QI zbYh9rD}t0v;H|_L;CSLQ-aEwwyo%s!+6<66at&1Ad9S=S0J>WU zWX7AoF8U5UfaAafu_$XT4JB8_I=qdkFs>_>$GfGq-cMzYn@i8;^yWm$@xILFBmI&= zwS49cZL)boFJ7Ym>#~04YUk((L3f`W3IFKfOw9f_n_K;b+I^ z_AJ!gSt>SnkMahZ>+(9D2jG4(^|bv?ZD) zkw-db6c@6ks5rSO=-w8% z-Z5BL=Qwe=(mBgr;goPs+O?fecE}#%oOKR46}(kW8FIl{$|vIl7Q~IjnslSQ3KY>U z2ywn#V#GgMoEO+5ruchFi+!17;43A6^;M9RKnGMjFcU_6|0gnSVWv_LRFhwWypjZS zNXg)d^a^y7&w-XQ1tsK0QUODPeJ7xSV7p{tM^{)9i+Vra6T;5it@ zib6zIgWc{SHo*DH-=?XwoRda-I;%iVXO+;x-iWGOgVA5+a3QmG54^S0vCA%ZIO9Vk zjIUv??tA^&5GM!7ZT|~W%uaB(@fMzm@bqltCFfw*7Mq7Bhy%k(;)cj%DaKqS{cg<= zAJ~tDTAUuX&T9w1;^{D+<`k;JqQYe4l0*~83wo5Uqa|58 zx|jxND{_Xb1c%6J?*uvP)g>44Ry=}E!q*wa8^Bqz7iOa!5bv~>8nBhhXwXjk0jlZi zK@WWpXsQ!%h5G>0`+Eqj0@;O2{t2+6ei39>+H)U+4?O1Q*3KX^JHSrU6gr8%BPxsK zxwtF%5xj%fp%tW-)RGx;3rN*?;WpQREMF1vvp=2mDUeZa6Pzl~2vm|ozSYuBy{5QD zt147e<2fga?S?ko9v9FzmhL z`%n@oO8+5aXaU-c?xrWmGdhXHQ<-+7A88vph@GS|)7VX-u#NZw&4>@uH(oh*+Uo%^ z*RrPI9?A{eREs7>^;hJGmWicPMQ~pJz_!ZUd1u8ql1G_OMo6Q$Bcm=qn?<6Y9V-jVW3Od9?62&)jlf3^;kWI=prG>!9CJ8Jli#cS zT#YOas=x)HCuqXTfwH7L={rd)7Sk}kOG5;wSBg6uv^ zcx}H)SY_2ql&#T8wXJR`Q>+SU87wnY)huen8;7kY##K%uxJt3v8@;n?sN3zI{vUR) z=&SapnECd;nBz8!9^r(d$GVeac6$e79^psPhsltrjgGT>ZCvn}W(RL;fvAq!;^1QSc;KaS)_-3)(0 z)muEvRYDGPRrnpXy|&bKEquhu?VY!4IQ8u}RtLPvrQbQ`!%R>N|{6;|QbXuJ0p>f-(j z7uZ*5fAfu(7KwLmMuymfjOW&EqnGv87;pA7lOq=_ExgP*lh)ANpJw8Fp#-`k@&xoU z3k&Zo5iM};BhgzUrg%OnnmFPddR`pP7KvwBDX|&Y$2kiFQ5JLs%@F?<`$tfu9_Ta;Bisdm6k6!thP!C)VOB2O7aHNULMLMfisNpL zsZL)Bc_ZXMaUNwD{U}!ex1^1*Gxt_CM)Bf%;ek9&c&)yHNWTp3YZk4l4kK5jC)g6! za!0dI?QwZ?PU#d-RVs5XOBMNFPE%BT1Ef~|6R4Lz0>k+di%XeuFEsKhwxJO0{PuT zY#WZ^bBH{=U1g{c3%jF&{OJeMH*`=gBbHK=5LLGd(^U=5mOrxl=o`%e>(V)N7+2mY zt>n&R|Jd0s<_X64K&0Bef3fNkVCfN(cRC|-O)v2Ydbo*#MyyL#=-i^Ru zw?xzfr$h8I=UU88r*OK6Bd34hR82qHnVoK;vofZc^E7zX_W94)4YgiQKY6J8A8!F# z1v8VuY#VRls0A)Ls*u;dj}om;QXhM~T+k`2lyFZgXT42oE8^EX(VD(iY`t$7XywZd zPw5q49{meguWbglIuoqmb9Gg#2gBNDSVuntPikYqd36GPtF*+Oltu1Od5cp|9^ed@ zBxjsB#;Sp~L_}d$T1{wjZ&u@^4B$=T4E7)?C+nD!o$X3J#Oj2m0nHHL9=i!Ffd@f9 zYr?(yBD{ufgIe+!@KSxla{Cc`7-f>zF%tP4T@p767Wbfkse4|(?atHZdsrWUEBXY| zU7t+as%z;xX%x7HmU10$pEwx}l;4Uo6e^`x&&!k5(h5~KE5B)_)ZJOQ?Ykfowt*wj7GIDJ)6KfJWFyOL}L#`fgX}Pv;DGpFWN}w0B3cIXjI!P95`} zz1iqwXN~Cg$xwGYYpAPJBb3kW7|!qBFihu}9pjGmM!L_5>NN(hytYD9ycwl=oyEG| zJMpZ$RQk=mB=2`RsX3grS_eB`8*crsUNJNCmf_myvvCScFdMV=)<`zeo(~E+0vyD5 z_fa?x`$>P&Ua&XYhKhnl((kak{6V1d6|OdQ5G!hnrPF#n1^P#*P5r~vZ@z2F58ptg ziGR3qz<*RJ85pY04vf_P44lx$1(v8O{>JhxUjn+Sw-$Qn6Clt9SYB%l%J3V_J^2Gp z7H_(x&@#KZFvg4(0>)K%IwC>I@PnqtMt0GFfSN-9a=L>s&(IIV`@lK!FYh7B1d>@P zmJzO?&G~sSO72Bpa+>Q4<-XTf&g2#rU)powEW07+0<@vK+!ORKZ#4Vtb!7@amA1tj za9z^fdqRh}%|K;08us#IZz6+1!Y{FQ@2bU-#Ktp95sKI^J z_mu)*sCt#4>yNZYL!xN5$*vK@_V^6Em z6Y{0`(22As=(q49PJcKfKC=?hJm;RU+C2qJdi8+mrqEt)EqdI2MM~nWWHVVt6k3y< z;0jJzlEow57&kwsy?M6lEq6ZQQC?mWM{N9&zQ@a10Y2*|qzN0$0^mOABTRy$q{}ct znJO&M7NCdvND=v?rRIT*Qc`f3*eCivIvjlzWsH7^Xw)P0D|$N082gv-S8OWyGo}T* z9R&2c{uc9|9{d%(#p%&~k`rB}&xF0~E}RTZ))gKie+tLEJYpVir8JZ8R)^?OxiR=h zt^r5L1%=A;G?YWe;!f$Cv`j1@XF)5Z*RYYe5l%xjg!kyYuuPmS>=w7c-KaR23is04 zJnhiL1N5c+h&;85ki}L(T-`eEUNBekb*6yXDLg51I5jDpHw8u-q%@55N}Uo}nsz;M zG_=)_Bhl6$#zi}))tYk|+Il>_=yAEmYfa;DM&MyTYDzlD#YlRMH*)$8d2@W0TUlS~ z-cV|J4W!@5J+y$`LEGReaVxqlj+eS2L*4~Ws0pN+uMGYXNRQ7%6jLK znuTMEfn70=0gKKc^o?qRN(H8%QND&kC;bZ8pp6HGwN>!0S_=(PXNgah0pdRSccFmv zJBt?kk-=y;IVJREr(p;T1iRr4dKCV^)nHFA7Z~6s(!ZS{G{5r~jo8=e0XqZBYaeC{ ztd$_m48a!W4fMjOE*&@4N{@{8QgL&!w97mtUot1F70tRjj%4vw3#ZplrHxhUq~#Hf zv}BMqe3Dj+OeOn_G~Cj9!ad}z@HhLkThTdW*KvnfZ@s0~X!6CzG|ipN38VLTHns#R z0Et)%RaY!Aqt-#TI7eoeo-9A{O_Nsy#>-2iuFHwh#g&RNGnI4EOO%^YgXC+$Qz&s~uo2EAeFO;630B4@g7JA^S;H;fWFB(H=U7j;WkpSHunMQXQgV}WREog4Z zsFU4VN^};=b?`s(D|$rE0uRekoDWe|S}fjIItz#OTdZF|CA)b}u2tZJrSay}|5Igl zh<%MKXta@v<{0J0PR1-$-S`jwFuJqNRvGfz>5Y@UBz%zMrI_wu^I2xjT&ySj!-}E* z7(=UBddbhuO8IGZsTK)}GC3{8lY{U&9S3Ky>98WRKqfkeMUi{h;`HTz$!2pf-D0ez zv&?SXANi6*J4N^j_A#z)v?N8sMd|gBK{G`@v;3yc2cQpNCg(M5>WF-%^^LzXC(%aw z6%B&7k-%vZt@yv*=&F#1@4@4x9sE?@70g#I(Mz&RDv1rK397Td=~y7p!Eh~i=={xH z5VgT>w2@sG3(`lDMsCVk$SUP9?_3xHi>g({jA{!xqTJ=vh`!o?YFS?f?T3G^3WFDw zkAdmRWB+#Lg)gKG^>tOR`Z}w>{F{{*f#!12z&i1z{z@pSHh>xAYb;udqs66mWTRwx z-KDT|7nzn0Gg}#HIV&e#Z0+DTrD)vT*?=p#6n}L6edSGAHdnI7IP>NF_G0wdn#938qU#HVgUy;3EyY+67Z65_q^;c;klI2%d`uMr9v3}&?2!CUqbu$_0|?sl4i z2~KGc;@{hN(J&i%17Ff)c$BS$pJ`{(&OB zIk#__ZG$z=B3Op=2NLmEp%JZz6gEga!um=TU@N&M_vl>{uPM`{!s=mZx(emTYK-zj zJ)?G08|ZnJclu;$g|-%rl$%3C*vapyRWSD*x;N-w_I9FKAG|m-&7NwuHFldvLlvzx zY3=N}Y4e=Hq1P^o+{aUlGDMtNV+MBv^YPr>N3}*-JCiIG}X&rmL_bm)tDEbJI(I7Iri**;RoY#ym?u*j$k$!ezUa*vy$KKXpW{vzx&;#07p11@}F4R{7pI3w(E-YW~&E+`t5< zVQ`?+HBj5xtM_&qC~usTVrzF7`r)oXetZC}A^A{q)*HS7hv-*W7{3&b@m{3P?o;Wp zTSbY%2h`o9nf{u7@TD+cU@i;?x+5=`D*lMV(xm9t^2z8Ha#HjWIep9?J+Mn{%sSUn3m0?5YJREO76?$7hoNN;0 z8pDMHh6Y|4x5x!^KYnOcA&cw)Q=C+A(s>0>^9lS&ZzWjBlL(`{onW$e1+MkZ2=Baq z(S3ZD--g#q9oQY&V%^j~K^^S?@M*t;cIrYfKxqVL%C&{geD9CuGsRVa50dZ*Gb`ika{p6I&~l_M}J>UHpVaB1|VKuqjSfB)G2zK+quw3+^P zN=Nmiv|PL|e&D{LI8dH9yH63*$X@ZAH&vYP#EP@6IXt7~Lp81K!aTdD(81jyq{nZC z+N8NKp7w?vz@K2K5XZ8L$z-Cm08f_vI7P0HdnvVW7d6?Np*{5~==Z!ReVKPe9qx6P z|L`b^=l3k;&4oj8ez+DF=X^$;&h^@OJv`YdfY(|XNRqjngw15q+8RjXtt;GfYS1fA zFLuwfSUDcA7;CGej+oci3{-WsQv-NspK zCfKRw2z#S_(hjZiRd!W)%C&_b zY!2PWhLfH=7gK@tcXP6`c5@bQB(naITOdC25_(2WRMdViI&N3_7J$0qmkk9%i^HgI4G1^}p4fdrIO8TmTe7+2Ho1Ou;*V?&{<-v}~Pv_@oS+~8H-`n97 z;)>Nr{N2e)N^qyyQzw@AoyTOneS?0pbFfCPL$`QoG@7qdao$+EpHtf2xO?ae?+d-j z*>qKi$`PQ-raorLbM7B`DWBmUX}oX^O-3D|PyCavMiK87eDBm{adtW~#gcKz{O)Zvm*Eq} zOEM<%f?f+Rr#HicNY_Xg9BUvv(724}8_nn>;}Xkgyal%+sgOkmqmjlK>7p@SIcA(w zcNk5ytHyn8zv1((Fyz2FqhZu=-lV%FQY8ACppif-v4p109UU!dgQXCz(mo32TD#m-Alz=vCtS%uPP+sHMlCY1&C~ zl*W4v^lwr(y}vB!i{#N-fBB|5U#h5%MVa_&)S9;>&R46r%hi7N9`(JIK|5m=)4E%A zc$2s%moa_(cJc{5yq3a0 zd|%#3whMlC?En5);i>pV7_KZA5;=W7mo^EOP@jOD$~3Os1KL+9OOj-bY?cWAgmRO| z@CO;iaiSILWmX z3}_EnVeK6qt{o@2wY+$Na@b8lEgi%H_I2LhS>7&cRkA*reXY~x4QsdQT2D=2Pq5Og zoOT;~0ncnL<4o4UUMz8OXR6R?jM4XCHybWw0ky^Fpo)A0&QoRxSCqNJ3?&JUP)b2T z?F2Gu6WLR3FWsy?Cf(KQB#(Rq4@2j??68Nonq|jadBv5;5KO%~xSabMf3`}{5#|B* z&@2XL+uH@h-H!^=;bI>+PP&7x$|t0}>JO!c)>z-FmGD>A0)a*9YJaMd&DTuXsU^tw z)E{z3b+0@`v7`}_AWaiKpz-XPu!d*b29bJjHf;hJTgD!7WuiZKlG(H|8%Yd00neuq zZ!SITJ)`~jdw9f+Wt;f3G{sJ4ORSA7gY}ihT7Og5TtOF`DP)CNg6y|u;{8q+ZyR=< zLg1#oM7Urj3NcneVXoN|hWInijB6ll3a}xc4j$v`NN@g()+M#wdMw%g6XtY2p<3<_ zX{qa`p_pXBSXS@D)8~v0{KdM;fbv@^J6bV7Nqx6*>sI zK;Qtl6n+6R{1^TSt|810N`={hqpbzA4G>@8vUDdL&Q~Cp1Lcd4q zsZX(A&Q3=1yTv+`m1ROXSZ<*{wOJ8Da38$YP4MnHJH7615AV6Bd9%oM_Y`-1Jzyo> zm9UwwSuK4a)hAw=uRJsvl~4)rE%p?-w*lq#^f)ES6qEIZ4m z?k8y_I-B@tW3FtBBoSPmDV)e?y+Q z8XlJoR!sd#a%v5|J6chDn%>J0eV4;ad_%%b{9nUy{utwp@2EN4m(w2M8{tgwE%d^A z7rK-urOqo~1i$JL=FHV7Ai%1eb@)48L7utU-R({#i*q!MKkW@h z3p>etWwml*to$A}HhCX-yK}$DOnfymi|jFqu%jmDU|A*6G`onH&+$uFohI@Q*HYej zP>&|Je9Oo+{{&Jvu!%Q}SEnERjJ6F-WPb%qvNln1^kz_`zXcAHt9m&yS7}AIhy`e( z@E`pQU(gNUC4EYZun@k=(!2>^A?^!v(Rso(_6HgO2Z%(NA3^aR@z3yG(f9k-sabr56i-_rpHQ>O#gu3%om2p&a5lmSSd-2N@%RTDjB~Qm z+y|41N>rffsE=gg``$d>_4OZ{?^J-R>}rB#{VV)o9u?vuy@cZ7&#-tn7YsxSfjFZv zJ8V{@8 zpg(&z!I~A&O#!q1fKFV!6DXwb!Ek965Y=K_M2{LI@SJ6-k7&YA?qR8VK?IUP(Qxw zo^xNg-*)uSMfyz5(!c3dd>?&L zEl}U7^_70As9aPQDQo2S%5||8XRI?{fMuQ{E)O)gJXxFfCe?r!6Y zJ2^7iYZ~c|n;9iYthI%Fw{<$gjpt{k`RoXp4HPf~R^ad4ZPWu*5hc+QDvCbXSIh$5 ziIkO)1YnA*tgUS}`?` z)W!hIy@}bo>T)7r#+nlbLFW*3o=msqTk!eEne#p94l|aln;3gKOeM@Cda7FVP#O ziaOUNFOo~bGHif6xE>pe-}20NgqpkI&0QUSCf0r-Y=f#_s9^w zL#?su>IK#<{em?ykt7T13Yv(dCV~vn<7p+WX?mTUL54bO1er0d)mUCaXR%_<9P2X> z3-i!4b_nZfe_=Q5<~*}!DDUJM!0UM8**ZIxzOjap7T_y8%-5L{Yy{-55VRXNL?_L1 z6HrWlli{+m>>w(O72>zEO|A@%Q#Aso)!2lw>R7@&**wroTnQ8r&4T+yDD0YBIZs6c zCxcw#T$e#7J22@=qvOtKa^9i90Bps=oaDfXFUqPoh51Wotu@+xWS?^Tc*enbTiq>h zb#l*BEGFR`@{cL1ka@4}L!XkyJO!=J0P{l6M7wnk@>1`h*?Or3tvfub3oEK*tbL_e#eOl)UWgFQzS zP&ZXxe?N85msoA^%$1MfIc^Voyg2*-6k}e|8ZUJ6qx8YoDmvkvJ0rew@OIqigi~>I z6Z*$JO;{h>E)WxwEU-FeZTzMfUtCCRhuDPJXR$ToQ^wCqXp^uhP%`i#_&LzoE$HNs zqeNmoQjam2a0N6Lyn($)0Tc`8zS-J-&rZ(TDlkj))5*y&IWT4()xdPAF z)qsx+Cp&K^{rrVW&oAlqe6yKkfrrgLM{;RJ5@PD>``SyFp`964)`M!92dJB8kc)~o7>?Zan zE4#g%x3Y_{I<_V`tysJRQoW9#!k`dYY7WbL`mn&dj%cndxGSEz8Rb-QQ?ych#13-^ zJmyn{mnIUcf&bl^UU8Dq5NA4V92~>C1@iFv2}yXP_;2)l+$H=luCnPC-$4~hm?=Ld zOp)yZv62KEs0z+h_0x@0f8-LK4$ikc_>TEb7NNB41NzCnqIWzIOp>eN5q5uk%I=CM z+w0Ib>#fdheUfYWO!%a2F`Eq*J~~q_#zuBW>0}+9z6Z8I z%gJG0oxEqiaB@Bq_p;&Rky-)SNo<;?76P}o-MkU-PGK- zj-xVmG2(c7(^me5ta0c=b~Q95Zv(o-o!+~=o0ZP0NMC^Ruo_Qp4ziiDG3(^~q1_Wk z(=)LR>8pQT>5zZfX!@8bQwe`|Ye`qCJLew_f6p zJQlU()6iaa91;~aqG+<)jKO7uHyG0q{roo@wTRh`y2gG${o?+jV)0=Z zLt@d;Knt?jDNmT>B#~yMh53S?n!|V=x{u%B)T9D^fNQdc=p#_2j|Nj){~XK!UV$+039;DUSVe`-(Pk*>rCaDo$-971D~TigtruhVBX)7B~r<0gsw)o zxq&}x7j-hn%{J5kTuWh)pL9t280e4LKDB|Rg?!i@sv`C8*ftr#)$Cg`9raMdp)(MiPUyxPSGrHFk%2N8~ z)6Bk#bfdR4ec??TNH-aH z9%nhXWW4)B&6T;#HT@7F{F>Au5$rT6&5w{2yeBEf(vsWsGv386;1pJWT-crmd!_+q zv-Mt|V;#*WG8Bc7IXDqnOgQNSZk@aIH_E{7ntiOZF3Gp6h5V*^&Ht){e3dH9HE1Kg zOTo^m3_P`|&ZAK!ewf@~#aVM^@$qaZPr_?h$N3&$!6fyjw-fm;T1kBy_#n?5wuRrM zGl+ocW?FJj)`kp>@hDyJoJp6E+Jwe!*3Dx!>W%-t=q>-SNfndCl#cCSiUXzmLtu@D zJZwleZlpSy9Wn~{7q7`@CyW*d!prQ8a zN~Wy!jJ>r!vA%XCRv);_8@&n#eBE)7T&eePrsB-&n!Vy#mPviRF8E80*L* z*c$eLKA|P)Pf`$EiOp#vv=`jbV^~dkaL}K_aTKuX?ogaEL?1+ zx#UW4+cd&|)iktLk47K$Iz&xvG~OIE0TW@Kz`GbQC($1?pS;0`SQ#?hstNjzR^))) zl&rT45Z5kFEN??H$|rFHe-b?1chnU2l+)i?8PF$N zzyk*JNtO>KW7SYf1_UHF(KKa29l~GhtGt(~Y&|qbAp38Oy;bM;{8Ztdg{rydtm+7E z@~`%Dn4lQ5hm|#tNG_ccCsHfTMA=90kx5l1HB~HB%iU}0k~>K~5Cv5QRb4IB=hP!p zM`QdE=DDv;BjO;7W+54wp@(&b~Lyx=r z6J>M{Cpzcc487t^2tjUr|9;ow6XLL^l)7$TQdg|^DkX0L+d$9*;}oF1Sc~oh->g0C zcT(u>=!iOlus(}6nsLCb%8L4eCMb(l8XdOQpd3~LY5|-(#nO>{JUzM1FJnJ=|17=_ zE7E{;M1I;=9iUg;Vyw8+p7jfMVo`y$>{dbn9+eQs0}1D?#eu$d>);*xS8%zV)A?)l zcmA`|yCZlLQICC-Uq}VW5xS_~m=1cJF0ZnwbK<&q2wih-NF?+?&e#I^J9tIj33}Bz z(0UFI&Q+D5)0-X4W)eA*QA=kcp6Xo2H=GkViHk@jcL`bLCZ)r~G}=Tyqz_~*8l}pS zl;#+|f?i-q86$-CCY5iSDqX0hGRP1 zGYoO>Yn;Zroc!^eCha^s$Z-1@X=yE?Z&?FAnFg#AY8lj@nfNM-~D*l+ip``q=4gHjs?4Ohz6}J5u4XRE zrBjgksyzLzzC%w~gzbcD;~vm59+Hn_4*N;oTPg;;mY6~|x~`q*t^ zzPgQYc@azYic6HqLad9-!BeTdRzsa&$Cx3WNLZ5c zz-9MFo{-yRFLg`K){E5@vsDj9p{N0(WP-`cYU^)2yQ*w=lyyCC1(0RMa$hF76Kc`W zkkMkOe~EbGO(%!iKjb0SSm%S3mLKLEey{RDj#h8>z#YclI(@C7&RF}AQ_FMSt?U8K zy4?=kBt6V5s};^_*`Qmy$4bGRG?{h5y2AhR$$T(d!_!kxkdY$xOuQPhO4r-TaZgY| zhS*)vFRQ+(ZLid4K!bDKZf5e^_0U|a1}?fmIx3urSJJZ8zPl-@2D| zSBv8hG+9#DDY- zjC<-4vC_^Q*Tn7=x5hdZ_nSA5&&FFN5Vjq*$-h8NT*O_EI*J%nQntWHWgeUfo|0{< zEF@%|F>Up7(^$VSG3qH~JU-XAWD-?NW)KHNq_ahw0Ded=r;iAAhq$w0pWDxkaMn4i zoMpi$&euSB_eS8HYk_Mrcd)2P3Y_87fzu*U;E^nq&_p+npJUp`RYfte+fnbhytrh1 zNm2ydATI*Zw5@xTwt%~)9PoCJl7}Q3*umGVTV$CBv}V4Bw1Gb{J>#EEs6QzQ@irm- zt<7{dZO+5+VQZ!7Wj8XF>>=iyHPmddqReIZc^a2s#|bIo*&2Gp?it#{9u~6CP7IvE9^RUsHoy$52RzCqo_c(*{hUs++LAEt zqFb;>c|n?*d8CuxN0O+g#4AUT5h5cvgnY&?!{El>EIR1auyZ~TTxre+Y*ZpJ1`P_l zK<9&x(Qr2$T^B>mD_IK|^!Mdook{F8PjIliD|jC0B{|e(xTWp{wxT(~Z)CocitlizS$DvMb5RDYK`M`(O&7M4 zn7@`V5!Pdt7q$V8Fy+D8YeVt_#UPOix`WSuOI z_sD}lknDw?$+zG;GrF|`Etwjn2Er7Mo8c0+l92t8O?8*d z6rV?~@HDuZb;qo?+QQcz6Am-nk-R=C2s!VK=`Nsg?oyqptuoV7vLERozv6QOkxlM- zQrKBfX9g;>@38MZ9XFJxjcd;j#|kzoHiF%beMz0Tn)H6cFcKg9gTA?^bQ#d5ERvht z0&=lyTY-h>Y4EZs?XJ_)#5^?zD#TW*hpMPcg7fdE{tw)V z>98NwBo`qUY%ea$?vd*35iP{RSqt_byU9|r?z}F$!tb*Oye8kkYr(GN2w2cPY1t-{ta9XeHh3B9@Z8i zeS=;7OM;=kslke#A;E|IMer`!;mn2aaitvOPH~sHy`Amu-(X7dC^%GRa)#)YP6PDa z*@mh6o@8~qu=cLv3)}+scK56u>t^)K7tcHe4F84{;!8I1=Jg42S_G!1K zJzEU2UdggNk$y~v>GkBZDoO(K3K<28oiTDft1I*JX<`#!=Z0C9yTlsn*f1B}VY6UC z&*H#;p8A1+-6v4N?hq_z<#9Xnj&dQJqleHjC>5zf=AoDLlm5seRVDsf&f%`C1{&Z5 z>%C;QM|QGeAZ@von~u$JL1QY$l3k)6X(G!*N16{vj3MN!Ou#7>Ok-4DGD^)Q5#agi zr39I%&XPBzhA0i3@HvIHbU?sgKJ4bBHs+^vG@i-X`WZ-y&^ ze({bON>;(maGOq{*{l!rrR~yro>z31XEybM(l~=%kWx#-T(}9DLp$P@qyfr|+nI63 zW9F)GXKzn+Ergma!A9ny-B?ctgz^Z!{!mpV!*TYW)1B`3y?qO{fgouWx|PB8OQZhv}9gnLg|Ib?zY7 z7ZMJtyYZ>jg!oQ!P5eJ`IX=6LkG~{aBves96Go`3fs5*Fu$pcMzKG_|9FxtNh1xmQ za2mHfP9(OXS0V`a%ybhFJxmkP+bnk*8tMl1I#9rubxx{l!KP|da49g&`s;(iL8iUa z3k`5P}MDe}dZVzaq-|^SI0x7cA+i9^7S>34Y@9gKPQhU=5x$ zxQWr=dTN4=$vQV5t^jxLXcaIEfd~4^q%!UBef5cqmIc^05z5Pm{#>|C`5QOLuDSEs zayJ|6;GU-2+_vFm)s?8-6&Ga%}1`e>+xgp9aU4gAm#gziPQ57DaFs}e{6y7$R_GGtd0)ji&PA+E4lTzv* z(YwxelHaXGM!U!GOZOMrBwX`YRyR2`_zKK0v(KD2FU%K6_Ty+C>`;&6TPPQ;1X_+| zxD4dnccRHCxGG?ty%^pYh8>{q1kEK?*R+!9z^jy9CBU@vRxp{`6xgp`BvjVV5<2ST zfg(C8SOwhwp(e3A9ck$B^2oikoyr0XgqO65=?)Bpe`Jg~LOPo- zSTzrVdFT{A!t<41_T1uWy=i%@Cj~3!i6QaUDm;v5K(FW}U5Z?X`W-`po>vypKivAN zlzU0mao5Yc?kyQ6VxX)4D=o2K78XV2P;o>o5zFE4g=CBvqDn$7Pz?A2_e882AfA{y zqAUs%#qe3T2C3r~r={JSbbz~%ZiLV5K1^bBf}`}5cn`d%wNl9J;)1&EJl9Wvp)oc1 z3T1XG;5_aKoJtUKTwEh5<#sw&c46IA1WROo&_cKf{Yu6|PFxDoo?OA_fpPmu`=DRl zXEsB%Sq;)~w~Ab5zdKBC1!}-=;BP$)b^(IJaZ}$FCJeUG*F2F+!j>8SU3M1IcXhb{X$OyEJfU+J(%qs)dZVKKR~Qe?4Biqut4x2KlSyz_D_Wr@*CH zj800t>YceP((5GPN1E;SkkTn3VP7h5IdS5tdkplk-^5L|PHxftRVp)IoisOO5_}dE z)>OQtdtE?Bxs~Zfu^V@j+s#0ETzwVMqQ8iDc8giTjdE4sp}LSTTfc>VqDOou9UcEp z`2)EjC#a2_1029aZV@@aohcKE%`&m{sDA2;x~ZSR>9Za-9gWd26bGMAcl;7xfJCuM zUZHf!9 zJ0_lfRgpA>tWA-KprPV4Ju7b0?(!CWAvs&Bq8KrwxQ+W-8EIYnHA@NX{nMUPu$ky? zz4y%K-8_u{wDW=weg%KaiPeOqu?*P;p0ybE4pm@bXbs(M3e$-u7OH^tBobwYEUgW= z3{1P8f-bKrJfCanaGZ<%LI+tT^Z*#913;UymB#7*WSLowDxulnsEn2i(FM^MRThuT zYj+v&GJXN1axz-%?1pM01{75F^hmd{Trd8)_2mKgKS^M3?6_UUNH-i*5i>!X2kE5l zeD{mE>GV={oS9k$E1H@x^~&qEL>UCe*TiOEv%JO=WDi_ORX~Nn>)p(3lSN=6&<1^Q zZIIj>JzHOmbm{>aX)SD#O6$>zn+Z`yP^;o|9xSOuWjlUUV3ck^i8DG{S5l#q~DaUp2*5)Jc3(wId2>9jNA7G1-3EfbQaR+?_=hu1h zKD7|-QN2+O-42DBSW^SVfdgxoDn=^Ft&q+hB#qoow1c|~Zs&2-4=F#LMSe(TXiDz@ z@#vR$Njl4_q^#NnTVNl!juxY-&~uL#Z7`&8lN)YL+FA%2CWkSuHnLb%2A-CR)R^X^ zJbsUdK}S4@f-;xAGOyVcU6s#Q?RjU}h(qQLlkN}t+g(b^fV=&axCAQyBap|i4?Z)f zM z?}K!^WmS}+_CrzAw&ex;h@9fNpt5=Y>Svx5u%m2%ms)Fq*}RnAr0-~Lavzir z+kv<@mTEPDCRR)7Z#joXsxkD2?n-B(`ZO_V2mGF~;B-4mSJKq1Fq;6$dso;tzLCA; z8Q~sXMJKWrG$Y&`oAK}e_eQNW)D$&IbYZg_zMoUjS=Z48R9iDuHbMF260}9!ge0_^ zIH_BJ`kZ2{bMP1gr5QUGYyqmD+Vp!c7a1MwfExzSp@iTM)6jjYuZqs3SR$@}WL?2Vd2SE#AbbDqF|WOCe2jzTfwE#w9C zH4Ri{n1(ijJl4VRwZH`QCNo*zGv)O-laN_oNq7#) zg?CIY=Pe3#LrH&7t2}Z~v#BDdRYPvKbE)&5%sSpPORx0g)FnJ4)EyhE)oK9g4k^l=%t}-m^+ku#N66ob#s~3VB5(#)f~4V>$vL=@vssB)F>3*cAZ~zf zxI1giqv&V2kD9P|K#%N2i_#3N6wHW1@F$iDU54351K8{(VNh+c9=Z}MpmVc#Dlwe) zindlOfc5r(xKKsxmM>rmbRQ3LZ8FzcLpnH3Ky!1I?shY=pQ1fWteUVDDu(`rsnK8k z1J8yz`(L~q?IA1CQ!*PZB6(3>QpYU8FV%9?Q8qT)MX1)|n*1OmfcD(Xy`?TVYt&Px zk810Vf(^_un5RBe>(wHa+W6HdbV6Ro-=!Dmpx@{lRSx#)`JiL{Lzk)rR7*h$D46=H zX4nrqycKA_$w7W) zOyf*9*3EopA*K`mr4zV;Jh3q*+-`t&+X-j}=+jOL%wb*BR4}7-3bO)ugyqy>wOkET9rPjg~%pd_7d zGN7DLIjsdAs6$nD^sA)gUU~lWWL;Vx-T#N?z=)_ zd`U^PuRlKK`-aN-%Aro)dS-;DzTRq&Q|awwYO9q(CGgcM2fwEKvW5t;%lI3l%Ei*U zFb_XWV@X4ngZyBl@GAZRrGfe9SANd?#}|Un;*%Uk$BH)Ogqs;xbWfRkP9vzX)2L-m zW?9pzBZ@nZ+&zwT3%X6k6t|l=2fyxwx}upoO9&^qyzHb^H=X7>y;~UeX#)*&yP0`T zFB1&jFr$M}Xi9J}&g#6xan2UJ*8Pqg_lHRW*#)6uq%I~Z>g^)4&MN1tX|kEjppe+F zs<|n2UU!oo;chem_c9tTQb3f?N=nscwnQi8d(e08rz`9{yt{XowZ^x={^u*^>EyfU zY3S|hZRg43`)2R-t+K26URyUkr}#gs6&nH>WRdJR{z_}$rnD;_4(G^Fe3)#8YM~|S zO?#nnGy-*^{eVRnj$*($5z3C5{+}i%9P}}43aIX0`021(`fBwNAw?7O3&nJ^+|qO zuLDhN5grNItL1Pc8v|Uvj<`D84$pBeBS&fiOpYnLN8#?^$L~; zPS9-T18kZq({6eeOqPyfDf^@9a=$(%&O>MU&dnrxIXA?NU>|T~oR>=jT%Acsqeuc* zaq&&n!i0)?7wi--LI>B?$zc9EbM-OzlG*~hynnKQJfIf=+oCpLo689wP6E~G9XB;3 z?6kw$jmCXNDN;r@B6*dBnyVS!X-=T_xHCFVilDPJ7wW|Np#1D0s!K_Ii~6LbwSko%xNI33Cf1o26v8QMf|ppN_uj<$NzigsPT$ogh=;Wa$nSut-MZR34J zi@|QThSx{ido7ar|A|;LOh)^ywyg6yFPxYo*fO)1c1BSoKdy@_k`(AE?F>_ZE}$7X zVM^KA&>(vSI%uCoUxA)XJYP(xXQ@f%8E$UahfD}iP(m#);=H8E0B3w38mB%J0Ttr} z9fK^>8{A(xH8QP~qhlm9du3`?68MHbfrsmrKwI5~!gOzwTyNAXRY!ePw$}5+06o!d ztA9CMUxP~jqBBKbbRuCVkQCW2Bmx3mW|F9hEL9FvtK(366M{#gN_Zk(15SY~CM7UC zuT$6cg7!FyJ`YYL=Y#q2zn~w<-~#hKcpv6@Wzab%13K!CF)8ISINvJ+AGMsG3^hq6 zln2}z6?A{7pevycdM*5!`|Db$wwj5L!<2otTtSw}uOvYhqhr+v8mr>iO}Mv;p>?nW zKW6o#8LV}@B0p>|W~IF$EUj-D9qtqeQ|zoPSV=* zjcm8u&>S{!JggFIH~4~fSo^F#Rz8n{1mOcb1$YK~d498@b|1FQ611_^n^v|Skq^8K zdB;Wo_Z_BvxHh_qQlO?VpK6F;`GPD|-1wo7%78kl0qC`Shc?L1K)V`@PReJdi?qyM z5mfiw1jy>lAeTaiHp98;K5!bl72L_rMz=>Wk*FAm5pnw@&H;mrG>P8DuS0Po#BUmtAU%C>W%D_ zz7O5(Xu1G3rO|MMWu`zhW?4W37Kz~YgtsXZ!n88Hiw$8aS`^j9#%zY0uc+RP9?Qgd zjL3>(+%RC$XT{BAdLVJuz<1S7d>AzIzkrn%hcl5ytQ+>)BhdlRPSebr8Q9P#^k(2x zX9j2H96P_igkS`GCh zQRpSEjaLJOx+%Vc-=SN09r}#>A_I|A8qYA>a846IS&at`GdavPb4J_9Yx1L=rWPV7 z8l5*KNPd%_tS}G0_rmk$`$a&D)6))b!Vya zj!KyasX$W(y$Z?dNWm@chZ@7 zck`P?pb0Dtzo!c^q=1ppWC@*s6WBb|!Fq3w*mKP!&t}kbBt|jzEVS3w=&Icpe}Zkn zRl6N22;PR*d=AaWRzWI2PO9-LvI0KYw74;@g2GV)Gu8BgG|Btm@qQ2Kn&WgvRLCqs zm&`m=ALT&*^W2=p*L7mrS&v}@^=kf4R|m~j4=V$zV8xmIR!vjds;5(1mDF5*Se{@n zBxZTl0NPQ#A+OY8vPdr`RZMHxL_EavaA&-qc=33;8YN|^QE#@`tYF#AbGB3`=C>e2 zLdfZ~w=74p%jP&2+}FK55+rc&rbx``SFJ!(?4Mod7L+yr#X>4*0RS7010j57sOp(M_Jz04f|>1wm(deu`# zX(7{rR=baR3nZ%Z>M>Lz{mdp60c5HBzL)Q61=o9ZSdfPLN z?zRil^;QVo#f#E|tO;F3o6sesCVhoV&=NQnCR{tIUFG98bpU>*S|Gpd}nh8>v{jO+BJXb#_`rFC*FXI+6^?QCe*!L3IlI zbZJEOW_?KYQu$ProF$ojCz`@v1AuPT#Tn&}4`y`J1;0C`gIV31!GA8?SF#v*m$%Ek zDqIIuOOzgTMy;Uhi__&G9e64Kf|@}Ebe#1e_1PvM>GUJZX?ju>6wvcgavBe=rSa-G zt0b%PiQ*h@Cx%<&MSc4|=xUoxjlgd`2onnU4i|+TVH@) zWs_-Vx}vsbFc4`slP-D`1@mIr6EGvI*T2}gQD$s7-& zg*-m(ucGmS%H=F81F&LaC`F~E~pQn1&X3csv4+&7wBa`8Jet~sY$A-I-!=y zQu?HLpx?QjO-Z+ddFyo17n~qC@g9o>P62Vm0UCshL>Ce5PL~bbO)A>isUJIAO=q_k z3K3_}Z1D^@1b@+1`3AL9YhbEf7Wfx?Oh=Q5c9qhC8Kii=vtz67w)nk2l zEtV1Xv(MRj(t`ED%Rwo6ocx1KhEE0_3P_MkjMBj=x(}+42l_6|rFNNT@`jlt^Pp3* zJu0PIp=D|#I;2{{WHNxIYC-~fGV!6wKkQ|hm_AtrWNb`)f zHqH5SJ&A|uDg3nR4xWuqY_GD|HK5{LQ=`ai^$yojiEy~ehhC~FW|sEDeR>5pjK_2t zbXuQ8A9N|8NzcH?&2b8gCR79ZkH08}`b5&Iw6+M^tl|BKv3$J(u>@%jsA>h~E4kNys#$k)RG* z2-VIN(~)LJ-{EI5m)t>X2*+`x11?2B;7Hn*Bw{y!NmmGz+r8*ZHkV#vr|CZSn9gLY zX)`0m`=7rzDXP^3loW)q$J7! zu45m`Xi}3naCUr^pGaz1oOTo)sc@IVuHqxDC+aicwX-AQEK4C5v&pgsOr;{}6_txL z1p-(;&|7p?3~iPRO+C0VJTgR`5(!-RqB_M5!fZG z;HD{Q+KBUJi)@REYX^-1a$h;rAJ0Nzcr6fS)}tq8DJpFWqPw~a)H{bYH!byWQwE;4 zZtz(>gdVt&X$I7>mY^3j@^){Ly?im8zIBNqh=9@n zKST!J`d;W4?2`AJ-zJaAg|be#gs5zOfH$m5v3-^Hxlz#diYN8*Y#`-dR4{JaN z-xGE%{ZTWt1Z9DIly4>-dTrjrcX-I$2W~_k{8R4(|NaIXp`!3rP>9u*jR}_H2$E5x zsk}hm!&hImA2Q+p!sIf7e%1SFBQuPi172J>`a5#}&u-1GvbL-) z4`;AR0v~r1c8VuuXZbaHi7%j=cx76UZz8RL1r$b;;OjsT*n|}1V>HxIx4?P*Q+<%H z74*w`g?g*ofHpH$e?%i74L3Vl1MkIj*v~Zqa#%|I0QUZ?@KLB#3uwrMg6ZZx_c_dD z(&B}IB4|wlO#Bk6nlcH)Os#}X=5@jfb0IL_ixJ>JDQE^O%gohzVTN4X zbVe^h-&`0JyPZ{cI8|z+nzA_hEdH4#;OeU&Zkn60S8DG*Mo$xte9=?FB z|7Y|MCxsNC?YJw6CVdHG*U2;30yKmD<0w$p_u>|z0JG!SY78j} zik}Y}_GsX7d1c~&TDX;_GVjPZ@V?Ae$AQ*+%j6elbQ#!ZQQ#Dv3#^do0##&|KruNu z&{RGPw3nHKeP#LJdf6xVM?MIKt4(lHIBqL74%liN)eqSQPT8Q&pl6wCI>9_skb+%}Tqc(#MZZK?Hv$7rf4U0BWycEu8&4iuaZ~D-h!MEBT`>x01dFoy4 zS?r7V5PwUr-@n6q+qciV$=A%g(|6YshHYI@-3bjj!b+wNL*!F`~%yI0i#ce2VY@~F$=Buw}IlP%R_kyo!0yYx6vO0*E+rk=QL zhKq^lmgobgiI=>R9myhf9eS7M;Np*k1jfni34Y3^k&UbpeM`^6Hf$eFOUl#9_##P- zBjG+8Mk34zQdCzW+0{kdL$=3x;VWD|z#HT&@=T_uDO49aSFMIg-DA4ZAeeAhV(r0q z;H5`c7P_1LBK_E9;==FUf)=AQNg28uGkO;tAqJdf{mm7e&E&#Q^fEL^|4#|dK*RUJ zw9rRPalP4`RKHAX6^`bpzNnH`<_oysD?*Ks-`rDQ^lo)k9|w>8Z^)i4rpJSZygz&u zGyU`reHpr*qGlbOXP0$al)=GKsES9hM<$A5vcR( zq6)MvnhO8!GO%tkvht7`Rt}wF|4e?EpY7qTbz19>>S&eFBdt3?748onl47973I(m+ zar}!{AQSmDP?67~FX#@o5C)Q^u?5+ubL^^Ss(nDGu^|P?YOS8}b@Ci@L_r!UM#9;Z z9t{+Q%s4Sy?-C_-TA5s*k@4yPoWZ|!8eI>q(OvOU6OSpbNg~N{(u#Jb8)*s#BqCN0 zw7cPK85O{=txsmp&fE`w zu-4+;)^I!%^zuW&{Z-bw1U#@HzQPRtP7mM~v^ebIUVz$a3o1;yqQy8A-9}4HA(YHK zG!OJ?sDDqJaMRChg&How6oqQ!J-E*9s=VN=*a2*oaOf`nkVu`B&eWgDSA7%S%-8U{ zr2?fuH`v}^qY+R$?V%CiWIV;Pf;Mp+>&xG>4?HI?W_@M3tyJt1{|1RP7jb*$pye>{ zjV50qFOVC^Do~AJdmXP|$a%mG8VafEd*P>?Q*;9|Q3VwV=T}Yltg7nH)(hRMrl3fR z6U)*hy>dum-JWjO8-RHKlqNHZHZT_FSxKbILH??Bq^3>@b!urkMHi#X zb#D3tx{2CQ0gW}u=q&hC&M}qf6O)ZbqK%{!^g_Sk#+*xrBL}*K3UrBCK*3iA>EUVl zA^n3N)@!ZJx|BUaN7w^&O?#w%X*JUAETiK2Wp$TtQ1|%^^^o^a&v|n7lt;+pe6JYB zU01O=ZavT%&Zo89WVD!jm!x+Ol2G?Jq3%jzyO~M2+XAP6Jd8Auh}Q(B73=j;eb%Ib zXMdRLjMvKiWWBgaF1Yn*Hun}?;pAe!gH?dx(*W}H`m<4x$nZW8&K?CZs{$U?v%+S7 zWq0;djc45SW}VS$_8!;ZRcKzTK8v?Lv;H>XQT8cz!S2ko9mf2gOzgFtnN77nQDN1k zVOBqqjbFhElsC~p&ijtH;I?=#J`NSrY1l5Vgel^3&?vox?d53rBtSceo6C}Ln^iP} zNp9!TD3uCR<^n(iOM6-!!z~`$cbrD4RFz1cB|qpZXsOS&5pCX zZE!yKC~n~f@kBQP?{^o%1n3)@3JKbuL04TI9N3#c?buTFFtv0IcyF?s#weq)a2C*5 z)HSd1AybJ^w2-_4<>o-sixf4XpsGHBQ=3V+j+u@7nGZNO@QJtSQKT$PQ1XK^el~n@ za|^sFxo9|4$3AnNUeJi$hAnbMvx`17J7^);6?Q~5fIv`!<;CylRy>A|A(iPt$nt!_ z>d-;FBv4t?(-J&D>hq1{5HCrR0{JbqRTb~yr_edp8V#rDe|3^6iPM|n;4}TtEYg#q zBK@QOSEsfI{a95AIg#R`x&@BP|1ryl0vR-3^uopEK9WN&p-E(7R$i86>t%kHQDL@K zy#fZ@LmCBNaryz&ESG_2))B~K8%S%D1ULzgpguc>2cyY&AIgs3qUER{Y;`u^v&Ktm znL03o>qa)J3GnV*Cj~`Ldfe$tuLP&l{=xBd8l(q?I+~nxo{=zjFB$GOBe}$PoJCH< zDO4tG>+|T1o`9ynt>i4cm~WWOQ<#^jf%zp zWHr1^_JC7-5G1f~(-TEEeIC4ujilF{kW&nYtjx|TB|4!BA&;Jcy6NorgVf)B*Ke1WY=gp%1JlJ_dZNu53QZ%@RO&la%(Qao`G%AumaCP)AZa z9PNe8O+L~PNF4uEDg0dJz-Qr{9tawwQtCYF5BrPkIx|WQuJ3nn!dF4l(SHcuYBUIb z9ucTEnuHF)ZaW!Xg+3t%6+?w_q)84n{3X=f^hbW^sWiH0j^aLsK*rl^+)^(Fz1A4q zR4u|<9)kDn5`6!Apd-(KYp7SIw3-ex%#A8S-Ib17Bu42lml!uV-LwyWH*)e;9w5WqK%gMMqoGC^dv<B8O;G((&8-Ufu*6qz}P(=(drQpBM0of3*b#BO# zcff_002NeCbQ0!-7|5piO$y*ty;sG|0htqsthr21QOnG5q0WU}v+E>B)m>nFxWG;l z9iT&K2OUCXQ%dDCOjkAMVE;GLEHZ`BHFFVtF{SV$U|z2`0UTi#5O65awWdEiVyg0c z23bGN2#cXeDRXyqHp=jA5Av+{mf;aJ6gWPsw!KN?$sEReUc$J9m6FoXftc`nE4j-SEqmr~vEMN`N5 z?|r^UYMQTyX8W}6;bd{@@b84`z7s4pd}-|*Ut6=0uI5o+VQ;6eyW7;aiVfRI1Dl*SdQ|Uv?OW>3(i2<`ic; zCruYP)mM6tO{<^U{=Ca)oS8gCy_xnkXf%=++rcTpcJi!Ku z!`>Wrkks*g_agginzjD*#`8ZlrGuWacXu5-!JXXH!MWUTL6O`CL9YW-gH8vW zpvSo1C1d_NvfI)b7wCt2_7pySjnyo0RriQ8s!&7~6_r_(hvDV)rtn94Wq4-i2Ci5c zBc|%%5i#}ih)B9oAeX)y_&~2Y6T1xmMMu!yKJaRp`lf_;)YNe^pvqfeI|SOxfWUCo zI+qra;0yNNIxD2_Oko#dNq6nO@#B( zjD&wq>YS3*`jm>Q7wEpKlM@au+$mlChb4W`GnpRrSk?ypCl!N!$S{9qwa`~lopbW3 z>pD4J!Rg7->C`6UQ;$(KAMjpF5MEr%&1)+CJ+f7%%63(ip6^TcYHhWxd=IVPUtD(j z*U+c`j(h+f3g5!EMnQ5X~!8whqUomYu);lbb zy-2c&9ex{eWWVRmGQZrTJS$o46}LCl*$O&niDf9f<}9}jYNP;oW2a8_La!cK-C0wU^i}Ke!9cHLOUe$eSvB*LKFxVM&n%<6QrRxG zdySH4rVJjrh2*FgAH|Z$7DGH|!_^eK0PRBpGgcVBnVZ+ATBdfU6sLVLvtwSAoq_N`87({b%npxjfEly1Uw zGt(61WInJvy|MCxOtsWB){X5LC$1dzJ(ovt_s4@$JGFyj`9gyi`t}6h@Er_3;u{=X z+xI(YrBfj2m@e-RRXKerC6%+w)X@vQ-RhVdRh4$zv)TF%({FX{XVkw{-R>raciVgF z&89PW%^PczfS{`~sj|pu^@lD~3O2aLwXZq9yWwma;{FoCUWkWA%u+Mnw4uw@*~9{= z^){bOZ?CwW>)x=j-R10qsH(yO`_$`zQCrcfP7Qof69W^_K3_+N|Hlqa+PDq}ON_I8(C zw{h7iIoUR5XJaFs+tzoo*@C{5_M0!Bo#0Pkv!aXn5H#2J3BF=S1%I+hf>X=Tpq6qG zjc9y-Z~TOYNO|8vwoC7l!_I5zf@Y(LGg~!rBI&)(X#EZ!v!hNTe5*4%0Ug&lqhsN^ zk=9wNqcP=mOLtY<&~=U1`E5qsf&Eh}y-sSGTZ_rF>Z(&$J|D`yw_3p z^QP!&biOyCk>Bf;C*$OIVw)Sf8@X{e^#EOC$<1fVXiL~9rj%J|`g-fkZpHIt6$wF_8Qr;)X41uEA4@Z1vXJc zSvxxXxTz7|&P)&QV*C+L%!!C@_6FUl=-wi-!D5tJ$89QD%i4Ob6oJkB4JS0kcN~QI zRvq%;9_8D{H7M+4&^w$q_^aKOxz1dv>r|40&UtvWkv5rwvmz7Y8DS5q z`sPy6*G!W8>&j<;0-4Mmc^GuaoWx&!P|z^1cF<2RQqVio!~e!!^vz~kXRB;-Do8Bm z-Uey3SL|c%pl(~G?%{zx9$i!^J4wpm;5E)JqY~;QNhLPj%A2;9T(MK=mHwk#@cSoN zp~v`nZn3;)+sr9p$~y&cA4usQ(;p(1>)YY&b+PaW_47|JeD;&6*I|F8N!VGoXpWWd zztc(Cu+=v9pWJL0H0EGLQu{VApX*;i8hJnEH0LtDsitstq!WKn-kI3!ovfvD*y5_N z{U|x?aNgl#^Z^Ojc{{;elH6uJn+i_qQ17Qx-wX0b^B($tx_hY|6cY4t1jU)9EIBPVgrjR6Ab zWZL0Hp2e26Tg(vq#yf%&QziKwc*ulZZk0FCMHLUs~oT+q)aej){AAsyoi6@iw9?i!B$K z&pcp9qS@VR^4 zE9jkI@AtoKKk zGab+th0{5ItQ2+XEJ><;Dzz@bd`uaob#C=S#a4%zQ<|&}@~Q5b`kW259bjEGx zms^AmQY=u;0ejbtYPWb5!Kp{tdNvVm?Jrw7#amAmy3qIB>*l}gWe)1?Z40XGT?*>r zjp7_zoW0xo$CyjLBc_1wf!XW)Fxi}!}Y)FoPI!8 zy_0^YkL%RTtV}>rc))3=M>ylqh5XWOneD%*$~Z;U82wDHz|;)qK6iqj>ZzW?e>OKq z)E%@#y}hrhHP7KV{9qP%8}v9YJ`P3=oI&1jXBRV5zr6`gEHlFKnH|n6{Q7QldK`1i zsfy;Xg=wTSnL9jJ2h|x~%e_Ja8jnZw>;GuYd2 zYJ0I^I`7yFOo*lSYN1HFCE zA_n-_FYBus5yRI%;=FSwVzSdZFpbI8l}Gj@RUDu4|L~PUx?Kxcw z9xVhl*&fwJ70}nEJM7vxU4s9c63_1FC~L#5qj#bhD`DwOFVC_ zbavOtk-%js6-cDw2iOT6Xra;srto^H{DDOJU4+uniIqbFYg86@rt*6eP`7PR@o>KA z&Ya^BGeZU02C9zD%eiI~uFa{Y)5-hSZa@ipM2$q_=Gypbw2Wq&&5+k-aniHX1K(|e zoLuG>xuXZscD3)ZH^X*8C1a(ah1*q70K_MI~I{FVOB&{6GPl4`y__ztYVvt_a> ztedOII;J|VcEB)prdJV9ZcBZlLuHc)pPOy4nFZPHbbyh*Y9_H8m6(u#I8nxo_p-75 zRK0y~mxeb_e z%OQo`^6;aL@qs8w&n?1!@lM%3bY?%%o2c}10ZPD6V0m!+ZOQ)!$Z zsGjc2ZqDos{Z-oGaheO9ltlMeO{kkc;GogjnWC0EYt(FKIqK{YYJk&U^`!$fkU8$DwbsJ==+K#5Py=+F{Gcd(Q zlSy`fgo3lqp`Z+sx#$uyk^|4c$J8)#chx<)F1|CTmu0!=Bl8S&iABM-ZKf;%p zyb&YtmfXx<)DLC_4DCR?(ModKwP|MVnmlGFRYZGKzAvdY{>44|tV(2qb%_0>zL>=- zU@C$4gVh$aoWW8FP4HHQMh#|Tnku2Psj=*TeM!G7DT=b_x~_Vr!qrhVTW?U|da)|% z3}OO2o0^4N(MCEzSHP9OoFT0WRw3_QXrAnbkyzZ3I!<^N+xbqpV z?jsfG2J}r$bpbjg&tSussdseto63Ck)6P=6?F_Y(e&c7}cQxF9w=tRPpbl-T7TWvt z#Ea=|W|nSmw3Eq9bnbf3QBc3;POWhsx|yAUbg`ql57o{4Q|meI~Cn zKxK9&s7Q2|_UcrsvfjwODj>PJM$_aH&(bBk$Ud?$>^D1t4w}z2liA)#DdJ5Rzqd}_ zq1AeiCO^!bzzp3f6~nu)>Uh`4??-R|n5(wKCY<&bsGr^km7jM$$#m4O(PbyF7qriw z)tAxJPi2a=hWYD-FbI^KO*bNsHD^}8k@+eeO%a)Hrctw|um`AG-y1qowhT}CIr>ip zB#g=;gPfG^@(tcBEx4%>GYpf|Sx{muXQ*oL)KI5UA|>}tlAb=1lfItTfxk=S?`w>& zjX8;P8v6=OTWWs4?}4r3Op;+bG5e*as?_SPx-1cDHrc)b2rIIrC&C|7GpJ@y;pLu$ z$?i^a+isU7@YYl9A6`Zlv1j)P@%c7Y#UpB;moO-isdY+A4cn8tW4cU3caheNK}nKM zmV3KxKX&>h^{B@hpZjf(y6^}8=beMMxZVz)^5a{ac7C?^p_sa zP?_XRmPXD3T%YI5IUP#>buqubN)G7-l9*Z45l&j!;XJV0aHn4E{9*cYIy#w#<}J_c zC%wx&K^eTAj{8iQx1l<@v;xBx*A>K5ePou}PAB#nQT-xa+6~O4bwdvxpKk3!dkjyH+|rJ6DHL<^S+Xu(kex6W!vFYdiV&*+sq>vfS4lo#jSJ;XBTB z*iK37OhF0TNn+@V(pDL}L`K`oT7g1{$VxxfzJ_`qQ1 z^&9#cxygNd-Q!LquZPpgOW}O;R_c*>?HDtaE>0@m$u+wBJLQxdzyWWYurCUQ`2snp zmdiV}0fe%dJJg@eWHF_LbI8_mR-+C-W-B`P$x5efHfNU2=`^?boigmfu4r>JIb7T6 zgMU;ba%p_aj0|^i8+&1DGf#2RYvZfObV+3I1%CJ+eBtgZpZ50oe!Hb9H#a$aVyC3{ z87^xDvoQba!&DmiZ9)}lV~XXeEGD~Aoi#(P7{yGLv)(CL?>!^3?3aFCa~$+UR(b2_ z30FgV_XX6t-0a4sbEQ`eZ|hp71DP;4bD`(m3h2-J!H~_gKKHK8KooG_L{(LPQXO>;(0)^0P*2gnh&20EY-h4+N2HnIyp(}Xd8vVd zDHqo(4|C7WaWh!sd?%M2`M*m;F5e)ps;?6rtkzx@UkCEbFzTO8-emCoaHl-lw(+K_ zbDXa47hJjG+haN>E<%-HtQy(3s)1dg+E9H?Bg5{u$K`@;ET_@rUSeM3m%RrASJa%6 zxm1>a+&5Ijjr5JcPIkb))juQN>cbIB(Te2MStD+!WD(s|)d-(j8L?gR1)9k}?hAX% zt!>+S&&?@jX^gkkX!fPca>Rs5joEhm!k>13q9K8=vISmYmmYw{R{Wbqo%hr+w64an*Giuv(GtW zuA&5c&*VaM-x+wpdXn9DjIB@sY3?{GF;hn0^aeSvXUcKCOs-LZt6EcFzyQ>|cI^YOZ3RQ}03h6bbAoWB>{Pm;hlqNa(t}hDmi~6g1sB_pIx|VIF zJE8npfL`?xI`@1iftJfaRPYXctpR+O5%m2XjK9yGM5%d3O++&_2*p=zTT$iW`WLn1 zRV}+k)kM=%87x+Tr=_O7r@B**EVc!?C+qbGl+%apLmcx?u;FRAu4N+B6&Q$)^jhpoqE1JlgA%WcPzE{ww;=9 zm#dfdl}f-l&&k|xTQcBjX`>6O{Q9u+Yc|WONxG+6sk^8>)PQ$%HXRkzS;sMYh*QR? z?M!f9>61=FeZ{%1wm9vm1Y+XawngsgGO|FwLA5=P4oW@d0`k%O$&9n#-`+(^d&xw# zy~$xkOj4T^el5&9WUo^#o%K@533Lc+y_~#a${#PI3^Vn)&NaBsf0z>LXlvT5CO-Jl zv4xp5ss>Nf%p}9PD!WZ&g6wZPcVE08UI@`L2fkx9%t5A`mb##)^42h*qJK8~h_ zh-HS^)zl9mIGWbA!FQ2g2R7yF^?93ANONOfMxRgYwPHKuCtD>R} z`xgXR6@EFA(_QV;1Jq<*o!O|8Sa1Kkt5bc0sq2m!C9zojz}9sZ*=bHaW|IEy;PlKK z9d7dIf2f;V*c;q~8!8Xe%BA^vrKOL`DiPw7CGrL26lN*htb6XR6e89j83A z{a`j3kE$d#TJC(djyJ@*?sI&Y<=RgOV8+f_LE3|4c^t z%GX-9A*}W|RAi@QqJ%NQ9YYObBUEZC#x*!n$8?r}m1ar@XSTGWW7Zz^cY7yDnmW5| z2`W>|$zP+#5CJyOEnLl6?T!~tAse6~nT$U2vLry=9}h*#XY|m^(4Y4<^)2r5)W8*N zZd=|Kv<;b^>2If?MlWRE+EgZuv^Rz2w<#*qxo%8@NC|XqrI`>aEP09GPwiwr%TtLA zL%0b}d>EbBrgX~6nN8?7>*H!0W*QUwTbi_{v$^Yyg!2hCx4h|eew)w(if^`l1r*W!kL3~?adg+U10P(G)&d1$dW0&z1RZ@!u_jvUNt<-s`%T-RR zrpg_ejPK?iNhi^%(E7kmUQ>B(0s4*mseWqE3wY`6YfkgQGGRx_LVe8oO-6D)07>MbxlLv zfUO3t&1==#oK;P!Tbr3SY9NY${q&>5%x7_7q#jV`?l+NSFa5ME z8RZIH$BS&|eUB?}8hZ6TY(Y6;GfE^$&b9tydr*mQmFPCQI%XQFVd&>lng;5aR~Tht zNtM~_tRmdmyf&#cc#za!0-~pPTTS!6qjbrs6PuCDxg68C&3mpxZ17nYXFK?8JyU5* z*>5_AQ`8ji^SmJGSk$hD`Lb|Rf(m@0grl(w0TUFlC(unrH>b$!_v|P41N~+{vz{4b zj$03|Z?x2Kx1kRHAluwzDu-8Jt*85V4ae2d-eUdPy-YV?zrGb1gHLo-y(N%9uLyW> zRDRu#USXfWLA4=J7v(u#Xzq0B=w*_U=9bN1w=f~J+oprNiv%BY2rXS%=bl~SWX5fN zw)}RUN&#O$y87avv}uT^%|5DrPsMW*=o>J6+x2y|iCBAH{}zn~vOK;96P-q~3~V*a zsVqzR{*+Tq9y{seg_D}^8{;=Vg^G3#ZaAYw`2Cxy*($@(eNkzcq)o^KR#NG&BG7rP zB|~<$k5ot0$J6Km-3K}6lwPRz@^jKZlEsEHgX)@OY}z?(U&5YNr&oH+b!>U|M&1qd zH{I(98#)c{Z2^6ut=>n8i7pY2L+C{{tvT}oY#QSVN z!h6v;bjU+wmw99#;is0^PP3!!C_0&K_zBg}Jyx)LR5iSHo8cYXAJ$;L4MlA|(#atC zo!)XsuaLgX+9uZj$qw}sBvcUhl!+>iTu_TpUS?s2;TA||yYawN!TP1if`e}bEjF8u zLX0m=2Y9x%@*D*F1c$U4a1G_{bRugn$-o(kXGMbT1(JwuX@+33U z3?ERaUhqQgLVWKgc+ttR>*YFL9vZf_n#rdRn4U!7Y5KTbt8>T!dN{}RKH07vHIcpL zRrFhl1xoPi8&=SHoKbOX8~TZkQg*C-Hb3ljRIwXPV;gG9*u`)c+i?YZO?Ix#seHnB zW0(<72+kZ2!_9slCPM3({<;mW56xjma+;^;FycFR{%(r%te%LYPCM@mo(vOpGPoV> zJ%%5i4BJwIZB2h9o41DjZAB%&*=H|M8|OonFb$op$I~}d`l5DOX-eTou}S?fR%PN$ z)&m`OwWq1a_R@Dfhx^c5Hm&?n!Cb>2IPN<{=0%c8^+Q28SZ2V#?^G|y%t7>Ef|XDW zy+l`d21LMaXnt=^c~8tcO>H-biN{QI$l^)_Ro)NViW+5zjJ5luG}i}*G|pWQ^#sj# zM>(dRzz)V&{Z(`}UcQi|VBRRIi+p6`%SO&)UFpH!(1yNoaY+yAxrd+5Xj9%6HGfPo zv(5C!_wj%!W2~ubI@rzT6FgNFX%1RA`uAx1>GUCzsePbiz<{FI%kX1m|boYz!lYiUNY-`0mo@X*WRZvpv5bvMz zY;Lu;%^I{8*Q}vtz2>FBO|y*rMaCWu2r0~7Nok%+bYsv*1uH6NHP<+JPNribZ4lfk z(cZc$vbP>d5zQQa) zWVE}!&(W(wCbvCx?M5z2YzL-sfmNC&~M&?8Mk;Byd!KZ_fc)vG>fUcA9?LfRnwh%aHVNL{CH{`Q+eLB z7dctwRCXpA{vpzSVus_IU92|XTQI_Yl6qk6RGio+@bz0wbR5Tun^UHxQ%G{0B^w0(nKX!$@nZA^?jzc66@c(r9P+E z>OuN~&Z6&7m4C!PFQBKZC%PYQEzIlcHk{Lfs=bawCpD%jt7EGeI*IzGs;M1n3*LJP z^>b;h2QqE&8|*cZn47}JfvNbe{<NuULd)@>Icx5G$NeSPk z=zyHJ-SMRw4(47$pYc8_n|NUPLiP{42R3=5VejcfySME`H=WdBYgO(4tG(OHTeq&{ zz-zS%ebGVQ7~;-NbV4XU%6rS7O6Dygoi@T}&3)>LJ5NtFim-dFWV zLe)h{q;@em(vGJ$fn?{N<`EpCWfRYFTJ?;n?|94s_eC4|iiv_Es;zWj!eRow>(l5) zV(X{&U%l9lMTxUj--C(W%G}LF(}dkm33M6WQETGUBvVv{njp1+iSt#aw;Vu^26`sK zjj>OuSfYY5D&oyKk@$KM7xnM_`!V=@EwdJ#?K_*7DfA?0g7VtisKl?>J@ybin|byY zDxs$~F6V7C`xJ7Rt!S=;)lRPvY<4LX$J9`*%q*hgb9Kr@#u+k=j?Z*;el#L&ZCSky zF5#VhPbIzvf43schM$&;R4q@fA4YaJHOzRT{RkY_XY&)*6N!#7^Zm?@poTaJGAp7o z!Hms^Z%m4lnd0Wp)!o6+c9&ll+v^5Q)FT8{2ueqp={@^W0R`{wiM{Fq56jU z$CzA-`F?cg$y6K3s*0$3>WgZodcYsw(_4kQkjag3d(9baw>xOBoINI?)6MJx*_EXd zc|n!i9Ur6fu$7*jgwN@AZ>9O{UlgDq-6^_&eIS4k61jW@;dEw7_8+h(dIoszZq7=57~fbD<`+L!2dCHb^8G2!FAY(b83K{&fl9# zy#bdvY`F^X^nBu3dSwTg|Iqerr6Qe5S8I+?O(1zMZoAD%IUDIuEf-9(0m(;lpwCH|vOSBWwyg1SVk|>W>vTf!yOh zqC8gPiJ#x(9a`85&P%m~4bvx`5qhR`Qs;4esL2vIQ}sQa5l!QE^;qS_tMi8ZV0vg8 zC+_cgJI&MH%5Ens+_cecO0H{bTt*h4#JfknOQS|{9bejRXp3udQj?N-?nyw#@LgWX zsYDX0r}PeX@=SIF(d4kR!9GpcRT&Tbv(FZ?^;aKpIPSI)864tv4TNIMnadbjP znrEgHnXta$Zo+qcgas&LeVn@YoXhig<{l#wT{Bs!6N|z%v_QKu8%4)?PQ*j9>OQVR z5BppS*qf4{chJ~gLT!9cmN6Up11GYsvO*q`E#i_ZGpp;8hng)HQx|xcNHKJ*`9Yp( zsMw;Y1@@OTqfSj``$&L(7R)T_%RP9W->^$;LNH!mW~lB+LH?e;(nzg?&pLui{2uCC z<~7Jm^HFfOCsU^a6`0x^W1Mt)n>jHROg1UFO-74TXdIsQo#wS(r?oAaeToh9^h{Nj1L$RDDmF0V@|#38r$bPIX~1G~he?^iT;XhX z6{z*GTp|J-F!(tT-By@hYOmR^p289SHtF;?Q;wg~1RUQL26u>#YCG~Z2|sl{>LtIr zVFts9{ISPPdpa_A*=SzZ%rI~0ek}Liz#AsO6}J|=;Y@hL=Qg>iEVImYSk*Rg17B1I zX$TLqS|=iM4#S=1hWf3e=w~{S-l@N+4!C7x)-8zCsa24+AdRHap6jb@_U zA_vkFONf}g z@dGNsWTwIKWiS3hL)k!76(^C%N;wDF)7_5qmlQvyPj-yDObxix*2P_<43%mcHHO~l zbl8$voR4u}?JicqY#oH*+-M%-(6icHFg?v{bP#`Fo-7)s=*$$PX67tA3bUFh6j$Qm zqrfP|sNJhm$)=H8;Pnd93*~V^So^4a;%BBCdt3XVdh4dvF%vP@)S@?O}V#;lLj zGjXV*F2bO0vJo)SXC=Q5V!G>YK(YtIDFniTxLtG#y6upG1BWZO$-@@({=Obn+3$sZjiA z%9-1oaO}|VIP|<0_zcW}^FB_E_)|?ZDfMFZqO7EoupCGGP*ayExJY^%%UsJwTMVut ztLcf#pd<79ZJ5ohfp0|yTbY@Tw#<%o`WI@@* zZsTrhGrZzhI^#XyN-Nl0R7+Vb0a18iqM+;rnh{lXWYhO3#E+B@+KULr-+no`iK^ zKE?io3(rFaY9PN%Cwax6@DVQy@(G$!|8*lrPq209cr2#cyeCI&R#X8S)LENT@3%|9 z)emqVd8`ZCy|8mrwZi8l1U*M$+mjiBQ93mlD=B>ezfDO@-LGO&85id7X$v2M-yuAA zNtl}$+?~5HB6H9umnKhtV?Xm&Q(BEPgHs)f{(wzZbesrY-MKuCacrnu`M>S-iar~S<7|?n@2BVDnCCA4SP-0 z6!TN&lY39nSO12_C?VOYF8zf=_7dHQzFseB2Jg_rdy2js_CTFsj$yHGMIXAZDy@sD96B;J;SsU83G5=r!Kb3V-(pwD z08V#G`;qH-nAo_D`Kxm_GMnpsCNbEB4lRy2ufa1d$quiHl)YuR2z#lz!SifU=}^IB zRm13HWWzP~uS3C1`g#R$9J&UAY(gjPJ6CKsQF5ypj7~Tuwcu5rlldkTB>$RgR|221 z^)jA)8^=sbIvHcZ{{7Td*nz0*-^nI7rLwH1YuXE*u9Ex#AO6Gi;CFb~4Md}Qf(M`M z1g%}DpJw*Kdk9&99{>xVQ{LIb-(O-H(@8ki`;x}^$joW7_ z0aw|BZpk+Es^MhOB2$j!&(koCB7X+V^jQ41s>Hod0sU)G|8P zo9K`p1W(+dI@jQq%pm@3C^^|u#I@*U8&GFtp+f(Ku5%X=Z;Ux3{pf}dMT<3z{V+Y* z_1?)`q)W0%&Bp&=ix~^{>*jqD!s`E^v7NJaf5H4=*OJyvF5ER!;DYBYt2@hFd5?Ym0@&N zcX@;HCirc-f+k*?n5G%?v`3gQ50-OYdHINZzRd-Y?a%Fa@Lp6~YRqh>OM+rGD7N>5OjRsGc0`yW3_o5Xxu6c(~c@bO< zSE74~1P9nymB6XsvpookJqp{iSH;ms)k6IgZE28>(8={y+M1Jk#kzZ zt}zwqBj&N^Oc5K&_O_+ak90(tGs(u0<<#OQ`6o7&(MV4DGfB*6yU!h2P2L#+v(Uj* zpktOEe&!1i-spPnIN?}mlmM_qG^nm7{tX;sN$S4$=vi@roJ)f+9y zaeJA$Z}0;;hx@QnWk8opVC(~G2rNTkCRFK8=xccDO@@W9K&_Dx7wVc+3d>Qzykw>f zjSlDV0A7osOmWVmPTdQ#dW8Zivf3mW)EX&|OF##;l?s8(LXCMBEc=YFr>Gt#Qi)gL z6^-+Dn!l-w+(KivoW0rAgp~3NV_O(RRGL>MFi}g}6unJUYQ*cP`PQ22Fh0A{Kkfjz9kEroJIgtzzv<^x0naa# z{&F9s%~yDMk586fy;Dt4F7#pcq>Y+MWZ429-A9yJ%J&^LE;l-zT1mDH;Y#$C%^;uV z^rkdQ;l;#|nncVzywd!|K*aKW=9wKyhqHy*&6E3*d;VTl&{Oac5of^}BqmySr%S#- z8p(dt7gyyB+Mud1{vXYJHl%fN-QIb?|}*5Bp;~ZGdZWE6pEm%)E3|M5I)st>X9yd>awUd zgW=&$@C?kOZW%$Asms?O?(Sha-V0HHOyLdmg=ivI8;=} z=OmFWsNTUtALj{NhV$t(bXg0{M%iOV%Q-ODZKi(Ta87@lE9_i|fo1~z20e&q)cGlG z4b_m@iTTv@`)yhN-pqWTgjzqfYHxG!Yw1;8D#ZHW?>h8otK%k9%~Bn67K*@LXG8&4 zz{cTJmIPA_LIp4%P4r}&f_UFUI@>cKEr-r0lj1f7*d{%_<{YpLS@^86!6|QeayH63 zxWOT)0~%5})ZjU*!M(46o~Jlp+;@x5mx7LaGriP?g6NOH&>m$HeHk7y zJ#|$2%#|bx3f9Z?pU0EcTKxajl~~yf4z3!wrG%7K#UvRB?IT^Hy_}sTGM`T{&7PB~ zu!GBa#!kQ>U$D){%Xv|fIG~MJAc!|~IH{OHVUeh+EEEkw)X6RQ(frtCTzSdNGB_A_X zDS7uHbTVEMy*3cDoAO*ILUGN8LC)o75KU9N2A85OoVUIIe=4F8%`<>{it?@-(;pnm zr`Z8Ux@D89k7!f>fF&)P5VSm?9^A#r=n3wO3lq5+bz2pFw`;>u|K+o{din`#xFF9I!2AJsgrWSOXOEmKw~>p zHl}~Gsaw?EyOpR3>ah$WgN~tNG!jJKoM$;Ltk7dV;TqoMY(B?SSz~(PYg|nVo2-)8 zM1ec`&Wyk_Jo0YaqbLi$@ZSa5Dlwk8x}T@vKVs>7?sZgfemWervT%h_P=Q#F+5mXz z4LJQZSL8igwBDgf_=?sh1pN1RroEk1LUTHS=k5xeZ9KXywWU7KZ6%n^4B)4@#C$)D z;BPsBf7f(s!s=3z+OjjV$fHzhI}!imY3eqp^#SNLKz}bIII%hm=}?;xhXSqB;wm(j zPVrUvz6Vq~$GLJ_xQENRk`rYw@1Q4Fx&U{I4WB&W#i$nEQtg~F-C^dJQ2AT|gGYd} zQp-QoQzc>DhBGyBl&3KaEq+!>XzR%{(_W66&a#fWdL-3sSyNA3uchqqddp~UAPSoP zyhg}aD(eH@b-Inu@g==Y51%d(eVVB-L$E*azU9ECwU{)h%|?nM%x1*_-3T0$(1nVw zhJdHmaA$AQrT>E7>K$0<1nkKqI{gh*2ln06k-V^1dDVYZoExa9X4~WF{ocTAX$^}6 zf6t?t1YPA7hrrh+xZ;|n|$Td1E< zmEp{=75!0vnC*t_5UT`FQ<1aZ6jp8k8I%pR#KR)eiCU@(Tv0Nz*LOPRcbSj4W5&=$ z=*B5%3=XYATqw@dQiRi3mMqwc|DGwk;7X^!uJ<4t*5vG_7_S;LOI@2+V z=Dm_H?h5(Gt3$6fL`IN@cY3|8#^tg(K7ZTjkVJxin{IQEjZvHtowLJ%&PTZv26tav zXJqoL3{DiyrGxG%)pb`Ct(~cA`r@wKlPaf~Y@_mFo|fyH9gaB{K7N(xlXT?T4u;Jd zf%>r9XAfxlRV0%1Dcq~4s2y7UP0;rkL7ZOnJj#d(;8 zbHw6y8AvroZ z_4hZp`o}Q0uj~@8%wF}2N#VO_NY?V?47F=jQ)<9c^hisSbz6~17f_eKAshP;1}0lCYv^FX{s%S*r<>h zE;~0*RV(U>4fyx|G;?{PhH$>RkVV>9HlNuWWZ4Yroo!Bi&>u}gciwdk-eoFvj2_h{ zkk2Aw={VwJcj9$TIH%O`ZNE%&p1J}!sTTxGG=^)M1|xr!=Qx@=i01e#RnK#n;<#|+ zrEC|l!c^k@Q8W%8)j?+8f>2+Sp)zbkebJZNYy{81WN^$hIL#^OLdUVqU<5t2!MuY$ z{M3fj2AS#JIw(V2Ch1e4@2xJGhz(4}%5u6(*LVkS%@VpztBHPl;85>@NtK!eYS~Vv zzYB8t$tTrB!T|iked_$BXeFA_2hWcVJ}p@w8`rQjd9^0@pa$8x9IRp?TTO~ki{Q5g z0{#Rm@*SM>6BWoSbV=vQ<2yMA8^~5`IgKmPxv#?O7x!0K8=UWLJd^+JU_Kp38GMK>h~_{P`Kw%uETP))5oc4--ErQs|IK!+S^Rb$)@5b z#Zze{wrb2N9ZIib8rUrq1Qg0MIiGy6gj^8H9MUN2tu~;I>eK;+sSq-Q4N`Kx{;C}d zQMWXgne>E)!cF!-RoKS<=1OOR*KMe>!hGc-&K6=0F&7H|WX$YFrS|`BLe(YH3^pZ! z+F>rDD;+1Xc|x*tcC&MLsGP|(b-+~u%e~bMf{z>vmpukne>^_c3vD}U?NQW-yUDrl z4ayJe<0t0^i8LdB4X2m7T8{BFrcxikcrny8bVie4?i;GLDi#Wp3lc_j3dYUAr(ZGU zJ_$`lBD!FUOjVWC6jBGhWX$u0%R%qHX!HWLVK6rHtVZS2cd=2}GvH_PNYmSJKxmQa z0>qUNoeZzS;?wcI3Hn?H`W#{Vfj`^e*-{NfZ%%6LD0ocMNi~m9l0Pvyak*$sE?>dx zJ+GWRNdwSQpX6y`V2HWvvi(Yj@-mToBWn3c)Eixha#grWxxt&6IS(1+ zGOX`46X5fnM-eauY}}Sy+=3X;o@%BINR1Q9Y3jo>yNA;f#`Vq0d{1S1gDvTm_UCMl zQ|p)s*u(RC8YRay`;?037krG;9^6c9c&sGM@5LteMv^u#+4WG4RAri_Af4IhbeFz;`w1}E-CUDsUhvA|>3 zskxVep?liFDB!<(1?_OJJRUoBY+XkTm5rdMT~%~tr6V7tv0=Nahy z|EP2g&i58N)2s9w55rKc;OtK4#LPqWx6P&oONXORdJ0qU3KZw^PZXY|kM;#W`3~y0 zJ7nb>yn_pNJ+r9y`HB+=dG`{G*DbF4TPia{w84KD^xPKCZktMucSLf@qvJ4J5>ti{ zM|*Has%bW>{#Ev=SZI>s;tr7*gr0;elZ;c69`*unM7Zs?^s0)}jVeXW*~3mC^2`G5 zkK=xKB}&#Hi|6OOr{@Z#B9o_qK~KvoAKK>D{2i-dWgc-_A~7jc5H7xh()2LH@f`_5 zj}wo(o7mQ)rp$}3DFk1Q>o7J;Wr67_i|K#vF(4B21Agl|4=3hy)nFJ5k=l^H*EI4*A zCubq&wlAlsK5FLD6}01|FT zhUyEavxqx&1JN!?;>AiBB#%x zT71V=?cwKlezzkiH>{hLu$M=a?_5Y&(wog z2jY51D*Mjh$Hs74IrvOJsO9&8R)*1WYe?>|PA;lRjZlko(1adGSN>#g^b`HnXL=_i4-d%zVpC*O1=`b?)+bAa4_1OD7?liu17>|A7-A*t z`g&$uR#E4!CdVF!Q?Ou~L{{BL zCS4+}xh4g;HZfrxzS0waZHiHUQI%7x;^@J(%g4JYLDZ{Cb@DIov^-ZW8x>1p6fjBQ zL^D%Ks(-^oXh>|DBk2jIF6 zsP)8>jsK4?8Ts!gFsZBH6ne>4o1g6YiW+J(Cq5UrQ^UH1!92&HCe3Acn96JfYEGy3 zuUh^;(3D7jG(0;E(buHsDx~Ff#DkfN$)|};tr81$T1;w`Xk2R_IPoj&>ucO3-hc?+ zQyDyFn(!n~`eHg-U8qYlgUKJ7oAgJX;brg%4*d(b|Er8bIX1_{KxLH_HtDY#JO|Z9 z4zg@kK2-*?L_E;+FW84$^aFRJjF=+|Wa_|r{oomX#S;sf19Md)&L(GG{u`CoJ)+Vz z(8WdgsFNU${p^w0NIacs7piXdu&RlBK?N$ce>vgZ;6f+!dqVj$v+2xCupw}*?|DuS z5_@JyKkiX47|RY|(e_Nfb>ifAqGG@kk?gw)hHW%G)F#BRT;x1(lVy)Boh6MM;ZOQa zci{GqqTx9NS8|Rke~*sF8~PjH&{R0!=nV8-s?oP-3N~%dnQY9bYAWSGe~Hkegweyi z3rD@3NI(}CWHM3;GeMJpXVIZTi3E3$g~-|5o&~?GhAW!Rxf;&1)en!kaqwh&?0InC zCGy{GGSVA4#MOKbL-HFfm`_Dx8o-d5-Z8s^7YX|4@8FDG+}ZB%Ke;$hVfHE*e<`z~ z&B?rJs2l>+F}KMj%ZYnkKui_sk!2yi$Ar7}@wE9l<&mf{f_O#c3g(2@XhkfVf_`HQ zaq1*}hEqiR17xH9)an<=KCj@Gef;iJ@LYMx6uIFTa}!I-P!qL=3!DY-b&Y!vnR}Ij z{25(=-8d)LIa>!f56d}ivxz24K%D#O99*QPKF?J=L(P4G_;QQ?_Xr;I9yRD~Fw{d% z(%)z2At!kUc)K-M-qOcjVqee+_V_$O%115v)I_H0jYmb20g}NWaE?iqtMGU?(B0g$MfDk*Td!qyYA_D&HNmC@VJC{?efF;{K#$`YY~*ZWPD`#| zDR5O%*p2se*$?595lS8(!6_K}|C+EeRcI5n3w~`qdWG3^se4mG+;kh2{A2L;V=&WY?&uCSVax-!v7enR-;*fU%SMH{{RxhI zMqPXdW$rbw$vIBdQB>k`wI59hgs)e?%AM^POWUShVliCJm z0#?W{wG_<0Pzs@okIdKiJR3K7UJeoY>E6N}e*uOO!A6A)L)u2Pie zvLrvNI8S9pvat)^Jiw{x&Xvi|QximY^fQtA8A`vK=($dss!WErL0B?p$&HbY-GdZQ?^?uG-&|-U8ORF7N+elxB6w#SM9N2AaG~4mt+Mb{?eh6jT-&Y`|tk z?!ao0%uw)WD}JQ`Oi6p5jj{B|{@31}Kxb8*{Q}PbBtQrd<~alr1w#@NrWm3U5JgcD z>i|w62^u5>Aqa?7)YhR^)LQFQwOY06r=n74L`B81Xe%m?APUMLATosjxxam00#fU@ zykC3Qz3VQ?+MIb0&+vbSz0Y~s2cE&Zq<5ZPJOGbwaQ%Gm?~juI>V`%eWIz|le%|5> zw-;LNH(p#f%3Q-xZ{!w=M+R7d)z_R|K9m_~RsJ9{cr5HbTju=&tzJP^FSB-Rnwi## zbfSvJU*rwR%e-4TTe%f--EYj#q4H;XlK?Ztv?v(9@etl9n`(Q!*eVn5HsDcyA&>ov zbzHa6RNpL=kCdh2Ep(Tq=!d^n)Y8b`u>sGa<~KZ(4Ayy!?CZ5G_G75}f(YqV9{ZE= zN1AUrQRH`~Jk)7%pYc^6H19i0t3&ugJNQNOqBxz$JL(Q!%*-*UU`!A?)tvYwl1 z+fp{bnAyM6VByh`Q;#+zy@<6QgO6*ttga zqO}h%!9pu8`Q0BH>l;S=6ffg3TzC}j%+bn2=FsMtL43rFz#Qu;AM(D>eKMx^v25Zk z^W*Q(M(gs7?Me4PPCK75BmWHlWUhK265~JOo!D1+6>Io9ZS`LqCzIsMl5pxq-tb># z1D9BZx`i*32uU}?$q%h)dyf6RE$+{*l(W6vdHJ7+lW%AHD#e*H6V?QkS}k%Mx&1}$ zHM_?0J||h7H^XnfUg(Qpmsll!n^^P>c(>JTb9*||-)z~@)^3MP-Z*?4Z+^Ve471;? zv+69@{6n+&VX~A*%Bzg@O|xQJe-6)QJX(&$lQYS|S-2L^>N+}hFL`_n50TUFheX-A;g28@SQ|$V5=3T=#gZM#Mkaa4LYW?9rHA#+ zy~UroYB^XO^$RV|AWb)t@;mh4TH`*KCXIqG1JSXYTvvO2=z_in$YS=5dq-O<@n|h1 zU4=4Vh;ZKHSN#=bF6X~_uTR810V*8J^7N)FP1(!(q_`DI$vVp(KS=uKlfoAu)swu} zN6~aH?VJydU$V&4zfukb8b4zl@`G{`*F);*(D*DkP=0`~yp^chUiSESYb!1?OL0&9LNUjC=1IQxU8N*%5%;#fzzWj%v#j8rOiwQM_Xpng zBjod4{jZJdBU7;6D!^BF9qdaCh2B6JV5MA^cO!e5+w0E%Op9*}v3o=A(|Gt-`VQLz zG6m1FqYJD=cvYtN4IcGt(ah_o#`;?A4Wz}4o?P8*ncv^mUL^nXE82Lm^$Ig(D<*pj z=Ul6uE)mJxWxdB+{PL~lciX|(0cLGS^XxD5UejIjzb|?(>toh)g^ zvkI~kKcTr9*j_e!Yo%^KtG8oPC6J-DcizhQCwH3>7K;lq@A3UetO!@h#Tr zS{C>;Ht=AzE#a9$T7 z|5~n5q`*gzUM+V;e9Ki*6=wJ!~$)->DAMU$^v~HNovROATH$< z-y<%6o`3nKOxBy;XnR3S{2;IE8Z#`DyaRfoci4yXZjThN94Bjil3dSd-pt7?-tl~* z5xl>n==AY??X$`GHROA)m}Q}!y+y}gXDQ~B{W*~TPkM8`Ji!&(yqISC*1LMH;xSz% zHoC#utG}>lPm94`gvc+;%f4;CD&%L^C>yLBsHNe})zUSxd2gF3ctXDPR`XrIhTYR3 ze3%g}wla96xN#`Y=O|nrWA36%Y%+m$y}&)!iVAM$Z#)1Sp38 zN9C)?!}Vg2>)5?(NWt~)x=DuS7J7IyguaF@&fqbfLRSyPz5etx*V~JEa(V@5H%!lt zg*d0+xD_U9OyV`{z^^sdYkg?@vN!wYvULy2O3sC+&&i{`h$^q~uiv!}@k>!f4g1=~ zcln2iOHPs#9Es!kw7fHJHiXo>_}|s?r|Z4tyTmHtXS~0ApQ!t8DDtojz>6~S%Xl4$ zq$UF`4%PZ;N)?aul4w3+gR!qtzJT`YjHU_6?+@M1uy+B=dKHPBO@pt}&+Fxe?qxTg z7S}8!ORw#Po%K<|#kv4dz{iY&u=H2i>{{t_vg6Xg#sGM;f_3+raBuUurla-*`J^?=9Akxda7 zU+W!~CvBICdN#{5en*!44!2mN()9^^nu+wPf)_C!C4#M=0dKB=GPgmNxiI)uSp2@D z<$RURe2X+0jzO|#m2~7Le0UUv7KpKeUc8B~Z{z0&`uhn_^ApE1lB`raqdSnL9xN&= zHuC8-Y8DL(8atbu`D&t!<6~s*R@U@ZJa|xiv4DoYkEd(-gzbfZ>i$`xw2S=kg+)|`qmo^%S9SX%{MKV z7g!AmxAIgQX}z;?6|&lA!mdhMJ{8ViJ#ZFvpdNMHD6zOaV14{xf6oL75@(wN7+9Y@x|^%Zh% zpOdRf_x!(e>P!RK~n{kEIQ_|$i07s^vU3k~KO@9U!Fk09Ps z{?f-{`cEO@a@Jxc-)RlB+sNi@!H@0k-Y)vsAaYo0J}_i&o;Is9N1gYf)NRTYs5=X< zeuJKOc;;!c^AY6TDW}tc?uAt{WBg6__e-*HnQX{)tj!Al0VuIqSQ0?`uw6a_D~#4H}2*K%t4oh zR%R|2+w3s@HmH{kOAp7dQTtMNQKH&Ll1_0!n1i&>m&N%noD{CV%>z0a>$ z&%a2OXYQk%LaQz^@AD_yr>r*$Z|N-Y<*{WD^iwl1i`dcmQ1FqsX7p|qyY&i7dB0k( zH?CRGY!W%DH2ZWO47fl}_foB1N&2lQfD52k^cIQ1U zzDzS7CKJCC^UidxlunOe-TSJ!ol(cp&UGYknYP|01uxOmXSM$@9^M9Je%)e^k6_L+JEbD{VD`498X4yjpRh}{xE)dp0hnfqX)peEcRd^%^bo~ zjAWBfC0FCw;>eNe85%{Zqu9-3=R`xbL z`!5*(6e)O%C$fT9vY92?MVlJZfEF?t9rdug|NZK_QLXj#%Q$u;$*6)&r=jc7yt6`* z-q zX#N8{nLE(u8s7T(G8iQ+%SiGv6pah~A69GkfD&df$W%6t_k?XdqWzX|ISBl5#Kl+)P?#i)Ai1&P!eYi#b;9dp+->M;%;GrN_0T@>{vWuV9S1Bo==uo3)-!)Mpve#Tx_g z`e@}eEuTf}&!G(yAVVbtt1yyN$<~pPJe`P_r}NB;S&h?Kh!gey2%PT6uJoWkooQp5 zKE%`9Ep%~%zqP#UjVwTYUTp`XK8S}f0Nsn!d91p};7timmD25#aPSa5lI$nXWiC(X zPSSEInLJ(p@=>Fc7@+}QGkkAotMA)wXJ@zZwKvnlYL>V@3~4TYYKuy3@Fxv_lHpH{ zJmO|H-WQ)mgCCITwe+(Qn(xPd?u`<;XjR~eVJPqmd?<(u51}XeK*xvB>2&_W!`=yxlCppWw?KV#C|<;kj*$CErQ50%3_j((QVf{V0xJ9<2BmT7@j z7qMO+>d~hx*~eOb7bY&`4L(6S$juPI#RNl zzp_Sr^bN1*Yo6!F_TD5%^HB0pGWB1c@cX#RG3@) zWx=*=%Khv!wv&1A$35>E8MiMBG-jp*$bdiaT4_KSR-htT;>HtQC=y%lEMiJA}M z?-R;GHv2QOyA8!t;bjNyr}F~RSalJ z;=PgfCz0w@lG~P#upho>k**vTqOURMvp=5%&qwC!j#I#W3tO(wcF z#hsH$?nF;kK(}*ID|qdf;=!+IepqvU1&Un>H!sJ>S#)nQ{)L%*X|!l z*YDNs8?3m~8KN|T3G1Q8Vm)5KkC{gwpMe%n;r!#I{t0;boM`hcNbrSdECJoRquem) zIR@&LLi|#c4{^@v#&tUFKEv^8H1b5_Iodr%Fttz=T!6BLxN$Hp41kCO*tCIc(m?zP zrJuWV@T;f0I=QO}?#1EaHk8{$Z@!cD+la>NY1>z}Uy_`!$=PO>A(7{w0)Lyb#EsP) zhs)oP+>c@YJM7$Rc=#M1J}f>D{@AUo&MlE`$l>L8KxG*x)?}V&<}E(fC#=XSa=no! zw2|bkmRnlR&tFE$SIWkIH_`yEHl@WK=tWnw?M_b)LhF8T^bj%a zU{+`_iWafDMZA(CJuG574rgy<9!X_K-cw5w*qC3G$Z}M(&fme_HHu%D5a*l^@hXgd zG%AE|^Y%jTu+C_Q=;bS#y%>hR1Wz8Pu@A%2x$;a4>@SAwpNnGF(a9}nw}YP^$Hv8L zFRXZqBZIYMcqd8O?!Im6siyHeMB;IZ zzWEhBx_!TL6ROUJx>vG=SF(4%CAZf=^_$TCFJ=Xvf){V`g_lMvX&$B%&(gm|YWRxe zB(Uy5=Q8zq5Gfm`-@%I^)^DkrD*sLU4PBl1-ynA)xFRd|E`wLX~qU) z-o*|zpn*w75RXHf-M3m7$bv1?!I z#VTcko^2Mj)tC=X;MXLxwoUl*Y0$I12s^{JC;vT*{`Y043Tg1+wDDMXoZzX^B=>Yu za4J*^vmB$1dlXq64qFD(h64DSr{607ml}QXHxV!4sL9b?f3@u!qF;Hw+{U_@u-3o+9a>AispYrci(c) z3yvRyiFc#nt>|5< z3z92%81HHQ6@7Th)kkUG9JGE^RPq%44WoY-(ypYPHAdMSA|4142Pwyp#gl2>sc3yF zx}L;BjbxRMV3G1!rrsi?t}Ip?av8MJ8w%tzk1ls7=WR%5Bc+yfY{cmmIQX%Vd~772 zL!=c(^R>+4O1)Ug8(6^u{1P56WBL7l5a~G67%KRh)Ajh5eCg?Mast^r9jb-w$iXrp z-OxP+&A0GBm(j*WvOx>z^|QwO47xnSHa$+(!(I20$$Qc4o@kpI9p6J<@6@~7qqy}@ z`$N<^)IEp0UPLYrBbWSUJ$+M;eX)jg^ny}hJ$ZLXkzveT{Dsva-qmn?5XyK5jt(E~ z+)2u5tjcH>W)z(r!7d!mG93)l!f%te7LnFhHW=#?w!#<2BhNUjF1}qaZXuJ_^F~>p z2l4i4e13(*yk!*spiN6~b2+-MC&SecuomqS)L);>H-L)Cc$LD&H-`jmaH11_cZJTK zQLqDf>L_2E&Y$dJooWZAot2C2_?R8YT{=qd2gQ4ll^k|_pq729ozJ$22EB_DACUef z(0&O``Va>{M5`}o&}Q^WMw!--pi>l?E@O=XBEL_f-?M!$I?h1R;DdLd1;KX-2+|4v zJJX2$=+J@Ah4o9`_SK8^dhsnTY~jCFN7>DzjQ0pAQ)G09ki0{1qR^ahKB^Bu-+nj| zR_^DM%fV3La2`M?;VS?|e4Rqq`$Nnu)~7q(wMD7Mo)4?0HfeFK-hO2)E6{8;KWIJs zx)Jt$hYQ>3Z=AlwyQ`LM-Vx0J{f#Ux6ahWY?|$0KiYH}9p5pyK>+C%F-{+ip!I_uI z>1%NG?=1bNq;?f#-Q>9%K0v_chV(I&^=pNe=@A7)@jUY!ls z#Q|y?z#iwb-34@Z0AA&?v+m^rTNagIZMQ<9YNJa)!4y4A zL$ekr+?tHG*G?x=(n;GL^r4+zwZgX+w5O?Uijr*K8ew)MUFqz}F2>kJEdg1&(wuJS z(_PO(COp`Seo$n9-t^V0K1!w@9-z0udpnTi96&0&@+#UGSwp(K6VKN1_LrmmVs`y? z2(o~OFi)@N@wVpS<$PRv&h~lNLO$#@X!;Mee9mY278b>mr$(%J8u@BtKje5jpm#c2 zb~l2a{_mmpU1>!}V`{D4=El(opX=dsf<7f0XR^Oky=tyBGyZ1y*nIakCGt?}<4drw z+fZ=}I}!2%enAgqQ^;(PnN+@86ZbaMoBDc^fWBeG+fgc(NocFjEj`g%X{9t#L!xs# zdEwPKwpGNs6*sHdjT%y39m!-p^lL!clX1Nfnl?h)6clL6GPaNTAPmcot1X3 zw?Ow6Y7bFYCsgXHR~dTORo|@6MxWN?(Mm5Rd?lb8>h0&;fv)GEM80txX2gSCFLd5Y z0u*gaO2hi5w(e`Gu2fgTh?|j)=6ab*3YtKtrV&mqM6DN%cfKCZ*NX+D-ufwm=`f4q%!=;U$--J_}@G|Ugc5a7la#TYic}zfW-&{Ak{ndYf zx--?CXO#KcI#e0#{9&#if>(u6NwBTwdNNE&fg{a4*TnN-jwl(w8j$KlTuW3_=y8zW zK)Dp$X+rW+-P4ThH;Z^0_}VktPgO?~GSC>;!*>JYjV*XbTcF_<$XN|FYkAkT&~leq zj%qP?jV$vn(NH|=T%UDL;mI^(FH`U}iDe42H1W7oLu0M8~r+kR2pP}OCk@eXh-?GSQE^6nYRj#q+;D2vp=w(Db$wV(B>S@FWDcO3TNBRb$ z=pa-%)RjZs5w?doKE#L*jm~#>y(=%t*r=>0 zO=}#lu)mB2|Ag2C`FOMdcDza+-^S@Bda?}HS1PORhe&h-RNBgZ?bPcy9?LGWx`R(p!vckDW60a2 zkk?iy)&`~8Djncu_FVMe&M7TchD$g;FWgVtI|(^4vKrQlG*sC;7knX-)LFT?{XV^3v^M5;wxI-z6|lCs zdz(iHn#9%wv}#Ji($KdR{cVlDEzmigmRa!eOme6WnQtJ3*(z z%=!+chHUO&b85(HHHq6y;x>}FjU;Z9veo_$dvW}S1ih%IXZ7{Wsz`kJ3LjR&#TD9E ziS|Jg!U~O*D79Kyr_H*aS39op%uXfPfQIPNRDWA2Z6eyFMKtQ{I33NpIM-R}=(wZf zjwsc^|Lt9A8~FplF9=s#E6tTA_8O`y$@K(x?;u}+M;mOvfl8~$ov%ltKz9@fK3RMF z;SJ{|&Nnog2JWe^Bp6`=y4Rve@O8FB$7+8udTfiR66h0)(7$ti6AEs!-QwIfPlPMm z`HH*jhs;rs>LfgAL|U4Vp62Koe6k=(ZCnph6t-=n9)G82q1Ws5eyww>-M88^YiYe6!T7x3tUGkmEuJ4s_u12YjO0a@EaIPkL@;m>37yWIF_5yE% z3$ z!=+$*0}pF<_aaD4t@cCl%~w79F6vp09_}=*UG5FoG8) z(q6LmgPbO5IZ3aR$wrX8unqFp*xB&w>j4qN*c!VplvL+ZZJXGp*v6zPJRjaCX|Ve* z$$qjD{L8u$?y0XNxF<%J1p9I74pa|ir*YKm9?Mqa*{sC;>Ueq=bZ`f`+#Vt8H+Z}T zhu7fXDkaR$uC@){{RY=IDnWm@;&qUPAfZ7^6VW0`X=J~#)`DNu2<1Wv)^cwNxqz*- zWvlx`sYbtmIW@{orPlR0;}4c2UP+ATkz%|lMjeY8LuNbZajb+Z4fas7ktZ4}A?Db- z4Uus`kFZTpSG*_Ul$c}&=?t7qbX>O$QWK7Yg^iUU$+2SNZ1}e;Dt>B;%m?lL=f7|+ zTnSno+lKuRg9f^VZC%+O?FWydt_1lCavdu{)u4K;;-b=T_lL*HWksH4W-D`y-x z;^fCn;uIV*eNu7BIb~JpW6RDepExLE{j<+!q?eZt$~dX-i0l!QiptI|KjQq!WuwkN z=7f^-&nX#LnsG>Bqk`%A(<>%blvNd{Pp_CTaZ3L5K^euRm1E2D?T6D@8R^k2Rp$)K zI4oR9KY7G)=|z>3%hLPy?w47T-LHRo|AD=8`u6Xi*Z-jOKG`{av$Auuan^H2ld{R|;<;3(*Z}Hg5sa1nAGD1Up{_P%D z#iSu4_B1tdO7Ccty-O-9vJfCEr+0SNkQoz;E6Phol$Dkn_P?&O^VDo_Z!t zojf6;acN0b*@UtRk4!QAoUA>hMY#er88RaOgvlgoO2oH4V~qHHvc@7z_}QW_YU{}4Kj?HI<{m&`J{i33P(;nc52oC4JyP$WM4(8 z>qo?z@9S0IK>i4DTUuOIJS0eB0Mg9t0hxXJpODipzwf~OyaBzkbMto#=f3yuWofLQ z%F^<2Gk#Jnd+*%0ju9jBkDNHAs(4~a*^xsEb*^`Ld1-!LZgy$E?0$VR#}#MiW)A3| z*DrHyPT!Ku;(-Hl2bPs&=jM&=8x3*a$A3`ukjj#&0e5y+U8?HR?3~=vfqnaC=JqQa zkeN3&FE4XIasTYhzGF+W`}Z5yr=+a!fV!%`_xKO0K6Y|B<5xW4d-sIi|L->OFRJ-L zQ%96fsj8ejV_yh}KyXyqx%-~|pQ2-A0rHDWf`KcXQhZ)nX+hRL=k|7LFQmq9DE}e* zej1H`@c56nG41TKiT|CT#;S_$`teGpRF12fRy?`vu(L=+Va&xiY-(wFWYmj_B9EeX zcKQJ)l}{|KoHpgaItuLj+>h5^a(3~=v&u>fvw}Ah)T^$7x(omO=zkX5_hHw+&BC9i zf&bsK@PEd-7(@3}$~r9hp%NFAmgJACoLo^{Rai_6E3>9&PAfjIAZzdG-2xM<_Ioa9 zr1P<}99+J2)*k2j2XL@QUH_9i|18P>$-4K{^>ZV8Nbys4ekRvXq0*jvekRu*Qv8&i rpUL%8sI=#vpUJg{6hCF>XL9`%D($)Fzav+pz3I8KiE?t&B;WoQc)B=< literal 0 HcmV?d00001 diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5bcb0296e396d6cc6a153723933e7c076d97837a GIT binary patch literal 3280 zcmcguXH-+m7Cu0v7cU4XUA&KobP0y0Aj$725@Uh$t;0QbJdH zCm%AXuy>{3A^JdmLGv7CR=B&N(2gU}?iP@HQk30Qm2jT|93S`eS9% z^{KS2G#3Ri2=RN#rLO3#6iTZgpGIBOqlAJx$r$c@jDEo}C7zW=spQvI93<7S)wTry)87MUv2TZ^D&rG1aWOm$j@ zZSj5mwC24vqrZzrOkpEnOwg7*i$d4JrMMH?D##ruSR+4_?ENi75FVjO#bM)RVG%2Z z3MZ@I<(>tDZr~wt^X>C8J|d4$+zGNQ*}+u(P+eKm z;8xQFmp|V=DpDeNpdeO`w&Wec2o{)5me}&aK=*0&-nDzW7O4RjI%gQ=uJPD7gE;#j zqwBL(dHw`v>JTB}TU%IH1?YhbIEhg&9Ey_c(mk^$ zf}TW{^!cvWkg>}-)LF0cDamBfShR_Dx4Rs3zgDd=JGT5hLysZf**ddrrfwD7HAK0F zMa;z-5b2ElpZ%VuYsIt0V51hHl+||n7Lzry(N?uw*46Q!TK#0J3|z8 z8Q~cvF-0RKJ{S2v86m6S*GO`-2F_q6&opI5Kq<_e5tfoJU<<6hR!%p46_2pJE95I_280*ZT#`>izvKh1! zZ4FZ&!-jiG?N_83KPNM{=2P|h6BWS#3aK)*sW|Oy=!J?J!=X0dWV-ANbFf!sE&h?R zB;ks}2zGp|n$BeQj7K2hYCGC)DB7ewLEbO8$9Lp`jJa0=p$uIlq%iw?06N0kYJ&6L zc)*T9vlbQFrYR_V`Majqwdb_ldPjfK7*1SK*{K0Hw({|&jQXC1@lO8wc6v`r$Pa^d zz@gE7W*Iy-9*RFwBQBYuF=CeFqW81A#QF# z3?xT!CfMEAW_P>8%Vs^3DkSKG@=lpSeTJ0+)en$b+Lb-zn|_x1fGW3|FKb0SjkOIJ z6-zt-IsKy2d>x0Km=yQ2+p8F$XpLe^7EPBW{)r zyWu}h_*3xz{JB5y<=;GpuoyNumiOGOc(4PIs6PY$ICiY#{wczLPr$!~&+;r#9iJm1 zb$!NL^9)o55RVf-NG%^Lfu4X(Cakc!Q+A`6rG&j}qq<|j(G)-%&U|)(wZTg#Lvs%i zbsnP{Ddf${a>BPaX?!C5QRgA89+*IeJM};a=s^$vK$#pC?R=N79O}w5QHo~?FMmBe z<4qaX4bZ2g%$gal&F-Gf`?Di<{=#rk)UD8O_$XY@ja7tCxn3tJ9Jx5;#O5gu=lezK$g8ZDxF<_NI<`m!+fw$d z+Q@5+zpSDR-3lXLiIt|WP7^^$>lA?|N+GgQT^h3;v=$J>l_cONVdUC;XV>W9elC`a>*ii_9oPTaiJg4Qi5{-FAX zpvx%UZTiN0URykv_qqX1%5m?Np=XYU z8@6PXJ1B3m+b7IP*=QdhNYSYHQquKBd4!G);D(8a@vt2Q&ht+NV#F>c?}mCAGk=`A%l?xk?eq()?CKY2MoPk*tjg}$GhCgt>F#834) z;rOmYMa8p~4hMf1U)qkb*J*t!m4m2E_x9V>Z7#B|F4yx{3-;+rml>v-W{H)*L{c}U zMx^hipdD$>3*%iQT?HWmF)sV>NY-j_JHpN`0>|8aDD?b;-E_0A;3!Q|FgMqO!OdWZiuEj1R6Y>A%x zk$$3}$KEQDD8pZv@ovw&U?i7evE>djQNK0{CoaTY?tY&)FoXE+8o!osN8%#U=|{st zD5gKq=>n2*O(@1ho;z!~BunX2lErUBFKeA^%kK}!85obsMvBP@_V!EK-ZxtJ4n1bs z_BC%!>JIJd>NP4XLYZ2n_F#g_y4%`9aq~r*yLQ9}ym1qsa=#W0Wvll+8YfDD=M3!h zq0^!X;&He8@i8J*B@228bJv~-U+dedz4z?5>r#@RYwkaV9zJoH6V0TOS{Eu`$vR6e h|JU37CEV*_43MU{zeKJN3I) { + return ( + + + {children} + + + ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 000000000..7a12be974 --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,81 @@ +"use client"; +import { twMerge } from "tailwind-merge"; +import { useAudio, useGameState } from "@/hooks/game"; +import Grid from "@/components/Grid"; +import Hearts from "@/components/Hearts"; +import { useEffect } from "react"; + +export default function Home() { + const { + attempts, + setAttempts, + randomWord, + setRandomWord, + resetGame, + setResetGame, + gameState, + showGrid, + heartsLeft, + results, + setResults, + } = useGameState(); + const { playSound } = useAudio(); + + useEffect(() => { + if (gameState === "win" || gameState === "lose") { + playSound(gameState === "win" ? "/victory.wav" : "/lose.wav"); + setResults({ + gameState: gameState, + heartsLeft, + randomWord, + }); + } + }, [gameState, heartsLeft, randomWord, playSound, setResults]); + + return ( +

+
+
+ +
+
+

+ {results?.gameState === "win" + ? "You win!" + : "You lose!"} +

+ +
+
+
+

+ The word was + + {results?.randomWord} + + . +

+

+ Click anywhere to play again. +

+
+
+
+
+
+ ); +} diff --git a/src/components/CharacterBox.tsx b/src/components/CharacterBox.tsx new file mode 100644 index 000000000..bc8d1197e --- /dev/null +++ b/src/components/CharacterBox.tsx @@ -0,0 +1,36 @@ +"use client"; +import { useMemo } from "react"; +import { twMerge } from "tailwind-merge"; +import { useCharacterBox } from "@/hooks/game"; +import type { CharacterBoxProps } from "@/types/CharacterBox"; + +export default function CharacterBox({ + isKeyDown, + attemptColors, + ...props +}: CharacterBoxProps & { isKeyDown: boolean; attemptColors: string[][] }) { + const { rowIndex, columnIndex } = props; + const { isCurrentWord, isCurrentCharacter, character, attemptExists } = + useCharacterBox(props); + const attemptColor = useMemo(() => { + if (attemptExists) return attemptColors[rowIndex][columnIndex]; + return ""; + }, [attemptColors, rowIndex, columnIndex, attemptExists]); + + return ( +
+ {character.length > 0 && ( +
{character}
+ )} +
+ ); +} diff --git a/src/components/Grid.tsx b/src/components/Grid.tsx new file mode 100644 index 000000000..6bb5f17f8 --- /dev/null +++ b/src/components/Grid.tsx @@ -0,0 +1,207 @@ +"use client"; +import { useCallback, useEffect } from "react"; +import wordlist from "@/data/wordlist.json"; +import { twMerge } from "tailwind-merge"; +import { CornerDownLeft } from "lucide-react"; +import { MAX_ATTEMPTS, WORD_LENGTH } from "@/constants/game"; +import { useAudio, useGridState } from "@/hooks/game"; +import { + processAttemptColors, + generateRandomWord, + newColorExists, +} from "@/utils/game"; +import CharacterBox from "@/components/CharacterBox"; +import Hearts from "./Hearts"; +import { GridProps } from "@/types/Grid"; +import HintsRow from "./HintsRow"; + +export default function Grid({ + showGrid, + setAttempts, + attempts, + randomWord, + setRandomWord, + setResetGame, + heartsLeft, +}: GridProps) { + const { + scope, + animate, + attemptColors, + setAttemptColors, + isKeyDown, + setIsKeyDown, + currentString, + setCurrentString, + canPopOut, + heartScope, + heartAnimate, + cheats, + setCheats, + } = useGridState(); + + const { playSound } = useAudio(); + + const submitWord = useCallback(() => { + if (currentString.length !== WORD_LENGTH) return; + const wordExists = wordlist.includes(currentString); + if (wordExists) { + const currentColors = processAttemptColors( + currentString, + randomWord, + ); + if (newColorExists(attemptColors, currentColors, "green")) + playSound("/correct.wav", 0.5); + else playSound("/deny.mp3"); + setAttempts((prev) => [...prev, currentString]); + setAttemptColors((prev) => [...prev, currentColors]); + setCurrentString(""); + heartAnimate("#heartList", { + x: [10, 0], + }); + } else { + animate(`.row-${attempts.length}`, { + x: [10, 0], + }); + playSound("/invalid.mp3", 0.5); + } + }, [ + currentString, + attempts, + randomWord, + animate, + setAttempts, + setAttemptColors, + setCurrentString, + attemptColors, + heartAnimate, + playSound, + ]); + + useEffect(() => { + const alphabetRegex = /^[a-zA-Z]$/; + + const handleKeyDown = (e: KeyboardEvent) => { + if (alphabetRegex.test(e.key)) setIsKeyDown(true); + }; + + const handleKeyUp = (e: KeyboardEvent) => { + setIsKeyDown(false); + if ( + alphabetRegex.test(e.key) && + currentString.length < WORD_LENGTH + ) { + setCurrentString((prev) => prev + e.key.toLowerCase()); + playSound("/typing.wav"); + } else if (e.key === "Backspace") { + setCurrentString((prev) => prev.slice(0, -1)); + playSound("/backspace.wav", 0.5, 0.05); + } else if (e.key === "Enter") { + submitWord(); + } + }; + + if (randomWord === "") setRandomWord(generateRandomWord()); + + setResetGame(() => () => { + setAttempts([]); + setAttemptColors([]); + setCurrentString(""); + setRandomWord(generateRandomWord()); + setCheats([]); + }); + + window.addEventListener("keydown", handleKeyDown); + window.addEventListener("keyup", handleKeyUp); + + return () => { + window.removeEventListener("keydown", handleKeyDown); + window.removeEventListener("keyup", handleKeyUp); + }; + }, [ + currentString, + submitWord, + randomWord, + setRandomWord, + setAttempts, + setAttemptColors, + setResetGame, + setCurrentString, + setIsKeyDown, + heartScope, + playSound, + setCheats, + ]); + + return ( +
+ +
+ {Array(MAX_ATTEMPTS) + .fill(Array(WORD_LENGTH).fill(null)) + .map((row: string[], rowIndex) => { + const isCurrentWord = rowIndex === attempts.length; + + return ( +
+
+ {row.map((_, columnIndex) => ( + + ))} +
+ +
+
+
+ ); + })} +
+
+ +
+
+ ); +} diff --git a/src/components/Hearts.tsx b/src/components/Hearts.tsx new file mode 100644 index 000000000..a2f89fbdb --- /dev/null +++ b/src/components/Hearts.tsx @@ -0,0 +1,29 @@ +import { MAX_ATTEMPTS } from "@/constants/game"; +import { Heart, HeartCrack } from "lucide-react"; +import { twMerge } from "tailwind-merge"; + +export default function Hearts({ heartsLeft }: { heartsLeft: number }) { + return ( +
+ {Array(MAX_ATTEMPTS) + .fill(null) + .map((_, index) => { + const active = heartsLeft > index; + const Component = active ? Heart : HeartCrack; + return ( + + ); + })} +
+ ); +} diff --git a/src/components/HintCharacter.tsx b/src/components/HintCharacter.tsx new file mode 100644 index 000000000..4bd15ab25 --- /dev/null +++ b/src/components/HintCharacter.tsx @@ -0,0 +1,40 @@ +import { twMerge } from "tailwind-merge"; + +export default function HintCharacter({ + index, + randomWord, + attempts, + cheats, +}: { + index: number; + randomWord: string; + attempts: string[]; + cheats: string[]; +}) { + const character = randomWord[index]; + const attemptFoundCharacter = attempts.find( + (attempt) => attempt[index] === character, + ); + const cheatExists = cheats[index] === character; + + return ( +
+ {attemptFoundCharacter || cheatExists ? ( +
+ {character} +
+ ) : ( +
+ )} +
+
+ ); +} diff --git a/src/components/HintsRow.tsx b/src/components/HintsRow.tsx new file mode 100644 index 000000000..e62945dab --- /dev/null +++ b/src/components/HintsRow.tsx @@ -0,0 +1,53 @@ +"use client"; +import { WORD_LENGTH } from "@/constants/game"; +import { useAudio } from "@/hooks/game"; +import { newCheat } from "@/utils/game"; +import { useCallback } from "react"; +import HintCharacter from "./HintCharacter"; +import { Lightbulb } from "lucide-react"; + +export default function HintsRow({ + randomWord, + attempts, + cheats, + setCheats, +}: { + randomWord: string; + attempts: string[]; + cheats: string[]; + setCheats: React.Dispatch>; +}) { + const { playSound } = useAudio(); + + const addCheat = useCallback(() => { + const newArray = newCheat(attempts, randomWord, cheats); + if (newArray === cheats) { + playSound("/deny.mp3"); + return; + } + playSound("/correct.wav", 0.5); + setCheats(newArray); + }, [attempts, randomWord, cheats, setCheats, playSound]); + + return ( +
+ {Array(WORD_LENGTH) + .fill(null) + .map((_, index) => ( + + ))} +
+ +
+
+ ); +} diff --git a/src/constants/game.ts b/src/constants/game.ts new file mode 100644 index 000000000..f036c4901 --- /dev/null +++ b/src/constants/game.ts @@ -0,0 +1,2 @@ +export const MAX_ATTEMPTS = 6; +export const WORD_LENGTH = 5; diff --git a/src/data/wordlist.json b/src/data/wordlist.json new file mode 100644 index 000000000..ba917ab95 --- /dev/null +++ b/src/data/wordlist.json @@ -0,0 +1 @@ +["aargh","abaca","aback","abaft","abase","abash","abate","abbey","abbes","abbot","abeam","abele","abets","abhor","abide","abysm","abyss","abler","abode","abort","about","above","abuna","abura","abuse","abuts","abuzz","acara","acari","acerb","achar","ached","aches","acids","acing","acini","ackee","acmes","acorn","acres","acrid","acted","actin","actor","acute","adage","adapt","addax","added","adder","addle","adept","adieu","adios","adyta","adits","adman","admen","admin","admit","admix","adobe","adobo","adopt","adore","adorn","adret","adult","adust","adzes","aegis","aeons","aerie","aetat","afara","affix","afire","afoot","afore","afoul","afrit","afros","after","again","agama","agape","agate","agave","agent","aggro","agile","aging","agios","agism","agist","agley","aglet","aglow","agmas","agony","agora","agree","agues","ahead","ayahs","aided","aides","ailed","aimed","aioli","aired","airer","aisle","aitch","ajuga","akees","akela","alack","alarm","alate","albas","album","alcid","alder","aldol","alecs","aleph","alert","algae","algal","alias","alibi","alien","align","alike","aline","alive","alkyd","alkyl","allay","alley","allyl","allod","alloy","allot","allow","aloes","aloft","aloha","alone","along","aloof","aloud","alpha","altar","alter","altos","alula","alums","alway","amahs","amass","amaze","amber","ambit","amble","ambos","ambry","ameba","amend","amens","ament","amice","amici","amide","amigo","amine","amino","amirs","amiss","amity","amnia","amole","among","amour","ample","amply","ampul","amrit","amuse","ancon","anele","anent","angel","anger","angle","anglo","angry","angst","anima","anime","anion","anise","ankhs","ankle","ankus","annal","annas","annex","annoy","annul","anoas","anode","anole","anomy","anted","antes","antic","antis","antra","antsy","anvil","aorta","apace","apart","apery","aphid","aphis","apian","aping","apish","apnea","appal","apple","apply","apres","apron","apses","apsis","apter","aptly","arbor","arced","archy","ardor","areas","areca","arena","arent","arete","argan","argil","argol","argon","argot","argue","argus","arhat","arias","ariel","arils","arise","armed","armor","aroid","aroma","arose","arrah","array","arras","arris","arrow","arses","arsis","arson","artel","artic","artsy","arums","arvos","asana","ascii","ascon","ascot","ascus","ashen","ashes","ashet","aside","asked","askew","aspen","aspic","assai","assay","asses","asset","aster","astir","aswim","ataxy","atilt","atlas","atman","atoll","atomy","atoms","atone","atria","attar","attic","audio","audit","auger","aught","augur","aunty","aunts","aurae","aural","aurar","auras","aurei","auric","autos","auxin","avail","avant","avast","avens","avers","avert","avgas","avian","avoid","avows","aways","await","awake","award","aware","awash","awful","awing","awoke","axels","axial","axils","axing","axiom","axion","axles","axman","axmen","axons","azans","azide","azine","azoic","azure","baaed","babas","babby","babel","babes","babul","babus","baccy","backy","backs","bacon","baddy","badge","badly","bafta","bagel","baggy","bayed","baile","bails","bayou","bairn","baits","baize","bajra","baked","baker","bakes","baldy","baled","baler","bales","balky","balks","bally","balls","balmy","balms","balsa","balti","balun","balut","banal","banco","bandh","bandy","bands","banes","bangs","bania","banjo","banks","banns","barbs","bardy","bardo","bards","bared","barer","bares","barfy","barfs","barge","barks","barmy","barns","baron","barre","barry","basal","based","baser","bases","basic","basil","basin","basis","basks","bassi","basso","baste","batch","bated","bates","bathe","baths","batik","baton","batty","batts","bauds","baulk","bawdy","bawds","bawls","bazoo","beach","beady","beads","beaky","beaks","beamy","beams","beano","beans","beard","bears","beast","beats","beaus","beaut","beaux","bebop","becks","bedad","bedel","bedew","bedim","beech","beedi","beefy","beefs","beeps","beery","beers","beets","befit","befog","begad","began","begat","beget","begin","begob","begot","begum","begun","beige","being","belay","belch","belie","belle","belly","bells","below","belts","bemas","bemba","bench","bendy","bends","benne","benny","bents","beret","bergs","beryl","berms","berry","berth","beset","besom","bests","betas","betel","beths","bevel","bevvy","bezel","bhang","bhava","bialy","bibbs","bible","biddy","bided","bides","bidet","biers","biffy","biffs","bifid","bigha","bight","bigly","bigot","bijou","biked","biker","bikes","bikie","bylaw","bilby","bilbo","bilge","bilks","billy","bills","bimah","bimas","bimbo","bindi","binds","bines","binge","bingo","bints","biome","biota","biped","bipod","birch","birds","byres","birls","birrs","birth","bison","byssi","bitch","biter","bites","bytes","bitty","bitts","bivvy","byway","blabs","black","blade","blahs","blain","blame","blanc","bland","blank","blare","blase","blast","blats","blaze","bleak","blear","bleat","blebs","bleed","bleep","blend","blent","bless","blest","blimp","blind","blini","bliny","blink","blips","bliss","blitz","bloat","blobs","block","blocs","bloke","blond","blood","bloom","bloop","blots","blowy","blown","blows","blued","bluey","bluer","blues","bluet","bluff","blunt","blurb","blurs","blurt","blush","board","boars","boart","boast","boats","bobby","bobol","bocce","bocci","boche","bocks","boded","bodes","bodge","bodhi","boffo","boffs","bogan","bogey","boggy","bogie","bogle","bogus","bohea","boyar","boils","boing","boyos","bolar","bolas","boldo","boles","bolls","bolos","bolts","bolus","bombe","bombs","bonce","bonds","boned","boner","bones","bongo","bongs","bonks","bonne","bonny","bonus","bonze","booby","boobs","booed","books","boomy","booms","boong","boons","boors","boost","booth","booty","boots","booze","boozy","boras","borax","bored","borer","bores","boric","borne","boron","bosey","bosky","bosom","boson","bossy","bosun","botch","botel","bothy","bough","boule","boult","bound","bourn","bouts","bovid","bowed","bowel","bower","bowie","bowls","boxed","boxer","boxes","boxty","bozos","brace","brack","bract","brads","braes","brags","braid","brail","brain","brays","brake","brand","brant","brash","brass","brats","brave","bravo","brawl","brawn","braxy","braze","bread","break","bream","breed","brens","breve","brews","briar","bribe","brick","bride","brief","brier","brigs","brill","brims","brine","bring","briny","brink","brise","brisk","brits","broad","broch","brock","broil","broke","brome","bromo","bronc","brood","brook","broom","brose","broth","brown","brows","bruin","bruit","brume","brunt","brush","brute","bubal","bubba","buchu","bucko","bucks","buddy","budge","buffo","buffs","buggy","bugle","buyer","build","built","bulbs","bulge","bulgy","bulky","bulks","bulla","bully","bulls","bumph","bumpy","bumps","bunce","bunch","bunco","bunds","bundt","bundu","bungs","bunya","bunko","bunks","bunny","bunts","buoys","burbs","buret","burgh","burgs","burin","burka","burke","burly","burls","burns","burnt","buroo","burps","burro","burrs","bursa","burse","burst","busby","bused","buses","bushy","busks","busty","busts","butch","buteo","butyl","butle","butte","butty","butts","butut","buxom","buzzy","bwana","cabal","cabby","caber","cabin","cable","cacao","cache","cacks","cacti","caddy","cadet","cadge","cadis","cadre","caeca","cafes","caged","cagey","cages","cahow","cairn","cajun","caked","cakes","calif","calix","calyx","calks","calla","calls","calms","calve","camas","camel","cameo","cames","camis","campy","campo","camps","canal","candy","caned","canes","canid","canna","canny","canoe","canon","canst","canto","cants","caped","caper","capes","capon","capos","capot","carat","carbo","cards","cared","carer","cares","caret","carex","cargo","carks","carls","carny","carob","carol","carom","carpi","carps","carry","carrs","carse","carte","carts","carve","casas","cased","cases","casks","caste","casts","catch","cater","cates","catty","caulk","cauls","cause","caved","caves","cavil","cawed","cease","cebid","cecum","cedar","ceded","cedes","cedis","ceiba","ceils","celeb","cella","cello","cells","celom","celts","cense","cento","cents","ceorl","cerci","ceres","ceros","cesti","chack","chads","chafe","chaff","chain","chair","chalk","champ","chams","chant","chaos","chape","chaps","chard","chary","charm","charr","chars","chart","chase","chasm","chats","chawl","chaws","cheap","cheat","check","cheek","cheep","cheer","chefs","chela","chert","chess","chest","chevy","chewy","chews","chias","chica","chick","chide","chief","child","chile","chyle","chili","chill","chimb","chime","chyme","chimp","china","chine","ching","chink","chino","chins","chips","chirm","chiro","chirp","chirr","chiru","chits","chive","chivy","chock","choil","choir","choke","choky","choko","choli","cholo","chomp","chook","choom","chops","chord","chore","chose","chowk","chows","chron","chubb","chubs","chuck","chufa","chuff","chugs","chump","chums","chunk","churl","churn","churr","chute","cyano","cycad","cycle","cyclo","cider","cyder","cigar","cilia","cymae","cymas","cymes","cinch","cynic","circa","circs","cirri","cisco","cissy","cists","cysts","cited","cites","civet","civic","civil","civvy","clack","clade","clads","claim","clays","clamp","clams","clang","clank","clans","claps","clary","clart","clash","clasp","class","clast","clave","claws","clean","clear","cleat","clefs","cleft","clepe","clept","clerk","clews","click","cliff","climb","clime","cline","cling","clink","clint","clips","cloak","clock","clods","clogs","cloys","clomb","clomp","clone","clonk","clops","close","cloth","clots","cloud","clout","clove","clown","clubs","cluck","clued","clues","clump","clung","clunk","coach","coals","coast","coati","coats","cobby","cobia","coble","cobra","cocas","cocci","cocky","cocks","cocoa","cocos","codas","codec","coded","coder","codes","codex","codon","coeds","cogon","cohen","cohos","coyer","coifs","coign","coyly","coils","coins","coypu","coirs","coked","cokes","colas","colds","coley","coles","colic","colon","color","colts","colza","comae","comas","combe","combo","combs","comer","comes","comet","comfy","comic","comma","commo","compo","comps","conch","condo","coned","coney","cones","conga","conge","conic","conks","conns","const","conus","cooch","cooed","cooee","cooks","cools","coomb","coons","coops","coopt","coots","copal","coped","coper","copes","copra","copse","coral","cords","cored","cores","corgi","corky","corks","corms","corny","corns","cornu","corps","corse","coses","coset","cosmo","costa","costs","cotch","cotes","cotta","couch","cough","could","count","coupe","coups","court","couth","coved","covey","coven","cover","coves","covet","covid","covin","cowed","cower","cowls","cowry","coxae","coxed","coxes","cozen","crabs","crack","craft","crags","crake","cramp","crams","crane","crank","crape","craps","crash","crass","crate","crave","crawl","craws","craze","crazy","creak","cream","credo","creed","creek","creel","creep","creme","crepe","crept","cresc","cress","crest","crews","cribo","cribs","crick","cried","crier","cries","crime","crimp","crips","crypt","crisp","croak","croci","crock","croft","crone","crony","cronk","crook","croon","crops","crore","cross","croup","crowd","crown","crows","croze","cruck","crude","cruds","cruel","cruet","crumb","crump","crunk","cruor","crura","cruse","crush","crust","cubby","cubeb","cubed","cubes","cubic","cubit","cuddy","cueca","cuffs","cuish","cukes","culch","culex","cully","culls","culms","culpa","cults","cumin","cunny","cunts","cupel","cuppa","cuppy","curbs","curds","cured","cures","curie","curio","curly","curls","curry","curse","curst","curve","curvy","cusec","cushy","cusks","cusps","cutch","cutey","cuter","cutie","cutin","cutis","cutty","cutup","cuvee","czars","dacha","dadas","daddy","dados","daffy","daffs","dagga","daggy","dagos","daily","dairy","daisy","dales","dally","damar","dames","damns","damps","dance","danda","dandy","dangs","danio","dared","dares","darky","darks","darns","darts","dated","dater","dates","datum","daube","daubs","daunt","daven","davit","dawns","dazed","dazes","deals","dealt","deans","dears","death","debag","debar","debby","debye","debit","debts","debug","debus","debut","decad","decay","decal","decan","decyl","decks","decoy","decor","decry","deedy","deeds","deems","deeps","defat","defer","degas","deify","deign","deink","deism","deity","deked","dekes","dekko","delay","deled","deles","delft","delis","dells","delph","delta","delve","demes","demit","demob","demon","demos","demur","denar","denes","denim","denis","dense","dents","depot","depth","derby","derma","desex","desks","deter","deuce","devas","devil","devon","dewan","dewar","dewax","dewed","dexes","dhikr","dhobi","dhole","dhoni","dhoti","dhows","dyads","dials","diary","diazo","diced","dicey","dices","dicky","dicks","dicot","dicta","dicty","diddy","didos","didst","diene","dyers","diets","dight","digit","dying","diked","dyked","dikes","dykes","dildo","dilly","dills","dimer","dimes","dimly","dimps","dinar","dined","diner","dines","dynes","dingy","dingo","dings","dinky","dinks","dinos","dints","diode","diols","dippy","dipso","direr","dirge","dirks","dirty","disco","discs","dishy","disks","ditch","ditty","ditto","divan","divas","dived","diver","dives","divot","divvy","diwan","dixie","dizzy","djinn","dobby","dobra","docks","dodge","dodgy","dodos","doers","doest","doeth","doffs","doges","doggy","doggo","dogie","dogma","doyen","doily","doing","dojos","dolce","doled","doles","dolly","dolls","dolor","dolts","domal","domed","domes","donee","donga","dongs","donna","donor","donut","dooms","doors","doozy","doped","dopey","dopes","dormy","dorms","dorps","dorsa","doted","dotes","dotty","doubt","douce","dough","douse","doves","dowdy","dowel","dower","downy","downs","dowry","dowse","dozed","dozen","dozer","dozes","draff","draft","drags","drail","drain","drays","drake","drama","drams","drank","drape","drawl","drawn","draws","dread","dream","drear","dreck","dreed","drees","dregs","dress","dryad","dryas","dried","drier","dryer","dries","drift","drily","dryly","drill","drink","drips","drive","droll","drome","drone","droob","drool","droop","drops","dross","drove","drown","drubs","drugs","druid","drums","drunk","drupe","druse","drusy","duads","duals","ducal","ducat","duces","duchy","ducky","ducks","ducts","dudes","duels","duets","duffs","dukes","dulia","dully","dulls","dulse","dumas","dumbs","dumka","dumky","dummy","dumpy","dumps","dunce","dunes","dungs","dunny","dunno","dunts","duomo","duped","duper","dupes","duple","duppy","durns","duroc","durra","durry","durst","durum","durzi","dusky","dusks","dusty","dusts","dutch","duvet","duxes","dwale","dwarf","dwell","dwelt","eager","eagle","eagre","early","earls","earns","earth","eased","easel","eases","eaten","eater","eaves","ebbed","ebony","eclat","edema","edged","edges","edict","edify","edits","educe","eerie","egads","egest","eggar","egged","egger","egret","eider","eidos","eight","eying","eyras","eyres","eyrie","eyrir","eject","ejido","eking","eland","elate","elbow","elder","elect","elegy","elemi","elfin","elide","elite","elope","elude","elute","elvan","elver","elves","email","embay","embed","ember","embus","emcee","emend","emery","emirs","emits","emmer","emmet","emote","empty","enact","ended","endow","endue","enema","enemy","enjoy","ennui","enrol","ensue","enter","entry","enure","envoi","envoy","eosin","epact","epees","ephah","ephod","ephor","epics","epoch","epode","epoxy","equal","eques","equid","equip","erase","erect","ergot","erica","ernes","erode","erred","error","eruct","erupt","esker","essay","esses","ester","estop","ether","ethic","ethyl","ethos","etyma","ettle","etude","etuis","euros","evade","evens","event","evert","evict","evils","evite","evoke","ewers","exact","exalt","exams","excel","exeat","execs","exert","exile","exine","exist","exits","expel","expos","extol","extra","exude","exult","exurb","fable","faced","facer","faces","facet","facia","facts","faddy","faded","fader","fades","fadge","fados","faery","faggy","fagot","fails","faint","fairy","fairs","faith","faked","faker","fakes","fakir","falls","false","famed","fanal","fancy","fanes","fango","fangs","fanny","faqir","farad","farce","farcy","fards","fared","fares","farls","farms","farse","farts","fasts","fatal","fated","fates","fatso","fatty","fatwa","faugh","fault","fauna","fauns","favor","fawns","faxed","faxes","fazed","fazes","fears","feast","feats","fecal","feces","fecks","feeds","feels","feign","feint","felid","fella","felly","fells","felon","felts","femme","femur","fence","fends","feral","feria","fermi","ferns","ferry","fesse","festa","fetal","fetch","feted","fetes","fetid","fetor","fetus","feuds","feued","fever","fiats","fiber","fibre","fibro","fiche","fichu","ficus","fidos","fiefs","field","fiend","fiery","fifed","fifes","fifth","fifty","figgy","fight","fykes","filch","filed","files","filet","filly","fills","filmy","films","filth","final","finca","finch","finds","fined","finer","fines","finis","finks","finny","fiord","fired","fires","firms","first","firth","fiscs","fishy","fists","fitch","fytte","fiver","fives","fixed","fixer","fixes","fizzy","fjord","flack","flags","flail","flair","flays","flake","flaky","flame","flams","flank","flans","flare","flash","flask","flats","flaws","fleas","fleck","fleer","flees","fleet","flesh","flews","flexo","flyby","flick","flics","flied","flier","flyer","flies","fling","flint","flips","flirt","flits","float","flock","flocs","floes","flogs","flood","floor","flops","flora","flory","floss","flour","flout","flown","flows","flubs","fluey","flues","fluff","fluid","fluke","fluky","flume","flump","flung","flunk","flush","flute","fluty","foals","foamy","foams","focal","focus","foehn","fogey","foggy","fogle","fogou","fohns","foyer","foils","foist","folds","folia","folio","folky","folks","folly","fondu","fonts","foody","foods","fools","footy","foots","foray","forby","forbs","force","fordo","fords","forex","forge","forgo","forks","forme","forms","forte","forth","forty","forts","forum","fossa","fosse","fouls","found","fount","fours","fovea","fowls","foxed","foxes","foxie","frack","frags","fraid","frail","frays","frame","franc","frank","fraps","frass","frats","fraud","freak","freed","freer","frees","freon","fresh","frets","friar","fried","frier","fryer","fries","frigs","frill","frisk","frith","frits","fritz","frizz","frock","froes","frogs","frond","frons","front","frore","frosh","frost","froth","frown","frows","froze","frugs","fruit","frump","fubsy","fucks","fucus","fudge","fuels","fugal","fuggy","fugue","fujis","fully","fulls","fumed","fumes","fumet","fundi","funds","fungi","fungo","funky","funks","funny","furan","furls","furor","furry","furze","fused","fusee","fuses","fusil","fussy","fusty","fuzed","fuzee","fuzes","fuzzy","gabby","gable","gadge","gadid","gaffe","gaffs","gaged","gages","gayal","gayer","gaily","gains","gaits","galah","galas","galea","gales","galls","galop","galvo","gamba","gamed","gamey","gamer","games","gamin","gamma","gammy","gamps","gamut","ganch","ganef","gangs","ganja","gaols","gaped","gaper","gapes","garbo","garbs","garth","gases","gasps","gassy","gated","gates","gatha","gator","gaudy","gauds","gauge","gault","gaunt","gaurs","gauss","gauze","gauzy","gavel","gawky","gawks","gazed","gazes","gears","gecko","geeks","geese","geist","gelds","gelid","gelly","gemma","genae","genes","genet","genic","genie","genii","genip","genoa","genre","gents","genua","genus","geode","geoid","germy","germs","gesso","getup","geums","ghats","ghazi","ghees","ghyll","ghost","ghoul","giant","gibed","gybed","gibes","gybes","gibus","giddy","gifts","gigot","gigue","gilds","gilet","gills","gilts","gimme","gimps","ginks","ginzo","gippo","gyppo","gipsy","gypsy","gyral","girds","gyred","gyres","girly","girls","girns","gyron","giros","gyros","girth","girts","gyrus","gismo","gists","given","giver","gives","gyves","gizmo","glade","glads","glair","gland","glans","glare","glass","glaze","gleam","glean","glebe","glees","gleet","gleys","glens","glide","glims","glint","glyph","gloat","globe","globs","glogg","gloms","gloom","glops","glory","gloss","glost","glove","glows","gloze","glued","gluey","glues","glume","gluon","gluts","gnarl","gnash","gnats","gnaws","gnome","goads","goals","goaty","goats","gobby","gobos","godet","godly","goers","gofer","gogga","goyim","going","golds","golem","golfs","golly","gomer","gonad","goner","gongs","gonif","gonzo","goody","goods","gooey","goofy","goofs","gooks","goons","goops","goose","goosy","gopak","goral","gored","gores","gorse","goths","gouda","gouge","goura","gourd","gouty","gouts","gowan","gowks","gowns","grabs","grace","grade","grads","graft","grail","grain","grays","gramp","grams","grana","grand","grant","grape","graph","grasp","grass","grate","grave","gravy","graze","great","grebe","grebo","greed","greek","green","greet","greys","grids","grief","griff","grift","grigs","grike","grill","grime","grimy","grind","grins","griot","gripe","grips","grist","grits","groan","groat","grogs","groin","groom","grope","gross","grosz","grots","group","grout","grove","growl","grown","grows","grubs","gruel","gruff","grume","grump","grunt","guano","guans","guard","guars","guava","guess","guest","guffs","guide","guido","guyed","guild","guile","guilt","guyot","guiro","guise","gular","gulch","gules","gulfs","gully","gulls","gulps","gumbo","gumma","gummy","gundi","gunge","gunky","gunny","guppy","gurry","gurus","gushy","gussy","gusty","gusto","gusts","gutsy","gutty","haars","habit","hacek","hacky","hacks","hadal","haded","hades","hadji","hadst","hafiz","hafts","haiks","haiku","hails","hairy","hairs","hajis","hajji","hakes","hakim","halal","haled","haler","hales","hallo","halls","halma","halos","halts","halva","halve","hamel","hames","hammy","hamza","handy","hands","hangs","hanky","hanks","hanse","hants","haole","haoma","haply","happy","haram","hardy","hards","hared","harem","hares","harks","harms","harpy","harps","harry","harsh","harts","hasps","haste","hasty","hatch","hated","hater","hates","hatti","haugh","haulm","hauls","haunt","haven","haver","haves","havoc","hawks","hawse","hazed","hazel","hazer","hazes","heady","heads","heald","heals","heaps","heard","hears","heart","heath","heats","heave","heavy","heder","hedge","heeds","heels","hefty","hefts","heiau","heigh","heirs","heist","helio","helix","helly","hello","helms","helot","helps","helve","hemal","hence","henge","henna","henry","herby","herbs","herds","herls","herms","heron","hertz","hests","heugh","hevea","hewed","hewer","hexad","hexed","hexes","hexyl","hicks","hides","hydra","hydro","hyena","highs","hight","hying","hijra","hiked","hiker","hikes","hilar","hylic","hilly","hills","hilsa","hilts","hilum","hilus","hymen","hymns","hinds","hinge","hinny","hints","hyoid","hyped","hyper","hypes","hypha","hypos","hippy","hippo","hyrax","hired","hires","hyson","hitch","hithe","hived","hives","hoagy","hoard","hoary","hobby","hobos","hocks","hocus","hodge","hogan","hoggs","hoick","hoist","hoked","hokey","hokes","hokku","hokum","holds","holed","holes","holla","holly","holms","holts","homed","homey","homer","homes","homos","honed","honey","hones","honky","honks","honor","hooch","hoody","hoods","hooey","hoofs","hooky","hooks","hoops","hoots","hopak","hoped","hopes","horah","horal","horas","horde","horny","horns","horse","horsy","horst","hosed","hosel","hoses","hosta","hosts","hotch","hotel","hotly","hough","hound","houri","hours","house","hovel","hover","howdy","howes","howff","howls","hubby","hucks","huffy","huffs","huger","hulas","hulks","hullo","hulls","human","humic","humid","humor","humph","humpy","humps","humus","hunch","hundi","hunky","hunks","hunts","hurls","hurry","hurst","hurty","hurts","husky","husks","hussy","hutch","hutia","huzza","yabby","yacht","yacks","yahoo","yajna","yakka","iambi","iambs","yanks","yapok","yappy","yarak","yards","yarns","yawed","yawls","yawny","yawns","yawps","ichor","icier","icing","ickle","icons","ictus","ideal","ideas","ident","idyll","idyls","idiom","idiot","idled","idler","idles","idols","yeans","yearn","years","yeast","yecch","yeggs","yells","yelps","yenta","yerba","yerks","yeses","yetis","igloo","yield","yikes","yipes","ikons","ileum","ileus","iliac","ilium","iller","image","imago","imams","imbed","imbue","imide","imine","imped","impel","impis","imply","inane","inapt","incas","incog","incur","incus","index","indri","indue","inept","inert","infer","infix","infra","ingle","ingot","inion","injun","inked","inkle","inlay","inlet","inner","input","inset","intel","inter","intro","inure","inurn","invar","yobbo","yocks","yodel","yoghs","yogis","yoked","yokel","yokes","yolks","ionic","yonis","iotas","young","yourn","yours","youse","youth","yowls","irade","irate","irked","iroko","irony","irons","isles","islet","issei","issue","istle","itchy","items","yucca","yucky","yucks","yugas","yulan","yummy","yurts","ivied","ivies","ivory","ixias","ixtle","izard","izzat","jabot","jacal","jacky","jacks","jaded","jades","jaggy","jails","jalap","jambs","jammy","janes","japan","japed","japes","jarls","jaspe","jatha","jatos","jaunt","jawan","jawed","jazzy","jeans","jebel","jeeps","jeers","jefes","jehad","jelly","jello","jells","jemmy","jenny","jerky","jerks","jerry","jests","jetes","jetty","jewel","jheel","jibed","jibes","jiffy","jiffs","jiggy","jihad","jills","jilts","jimmy","jingo","jinks","jinni","jinns","jirga","jisms","jived","jives","jocks","joeys","johns","joyed","joins","joint","joist","joked","jokey","joker","jokes","jolly","jolts","jones","jorum","jotas","joual","jougs","jouks","joule","joust","jowar","jowls","jubes","judas","judge","jugal","jugum","juice","juicy","jujus","juked","jukes","julep","jumbo","jumpy","jumps","junco","junky","junks","junta","junto","jural","jurat","juror","jutes","kabob","kadis","kafir","kagus","kayak","kayos","kakas","kakis","kalis","kalpa","kames","kanat","kanga","kanji","kanzu","kaons","kapai","kapok","kappa","kaput","karat","karez","karma","karri","karst","karts","kasha","kauri","kavas","kazoo","kebab","kecks","kedge","keech","keeks","keels","keens","keeps","keeve","kefir","keyed","kelps","kelts","kemps","kempt","kenaf","kendo","kente","kepis","kerbs","kerfs","kerne","kerns","ketch","kevel","khadi","khaki","khans","khats","khula","kiaat","kiang","kyats","kibes","kibla","kicky","kicks","kiddy","kiddo","kiers","kikes","kikoi","kylie","kilim","kylix","kills","kilns","kyloe","kilos","kilts","kinds","kings","kinin","kinky","kinks","kiosk","kyrie","kirks","kissy","kists","kytes","kiths","kitty","kivas","kiwis","klick","klieg","klong","kloof","klutz","knack","knaps","knars","knave","knead","kneed","kneel","knees","knell","knelt","knife","knish","knits","knobs","knock","knoll","knops","knots","knout","known","knows","knurl","knurs","koala","koans","kodak","koels","kofta","kohen","koine","kolas","kolos","kombu","kongo","kooky","kooks","kopek","kopje","korai","korma","kotos","kraal","kraft","krait","krans","kraut","krill","krona","krone","kroon","kudos","kudus","kudzu","kugel","kukri","kulak","kulan","kumis","kurta","kurus","kvass","kwela","label","labia","labor","labra","laced","laces","lacks","laded","laden","lades","ladle","lagan","lager","lahar","laics","layer","laird","lairy","lairs","laity","layup","laker","lakes","laksa","lamas","lambs","lamed","lamer","lames","lamia","lamps","lanai","lance","lands","lanes","lanky","lapel","lapis","lappa","lapse","larch","lards","large","largo","larks","larva","lased","laser","lases","lasso","lasts","latch","later","latex","lathe","lathi","laths","latke","lauds","laugh","lavas","laved","laver","laves","lawks","lawns","laxer","lazar","lazed","lazes","leach","leads","leafy","leafs","leaky","leaks","leans","leant","leaps","leapt","learn","lease","leash","least","leave","ledge","leech","leeks","leery","leers","leets","lefty","lefts","legal","leggy","legit","lehrs","leman","lemma","lemon","lemur","lends","lenis","lenos","lento","leone","leper","lepta","letch","letup","levee","level","lever","levin","lewis","lexis","liana","liane","liard","liars","lyase","libel","libra","lycee","licit","licks","lidar","lidos","liege","liens","lifer","lifts","liger","light","lying","liked","liken","likes","lilac","lilts","limba","limbi","limbo","limbs","limed","limey","limen","limes","limit","limns","limos","lymph","limps","linac","lynch","lined","linen","liner","lines","linga","lingo","lings","linky","links","linns","linos","lions","lipid","lippy","lyres","lyric","lysed","lyses","lysin","lysis","lisle","lisps","lists","litas","liter","lithe","litho","lytic","litre","lived","liven","liver","livid","llama","llano","loach","loads","loafs","loamy","loans","loath","lobar","lobby","lobes","lobos","local","lochs","locks","locos","locum","locus","loden","lodes","lodge","loess","lofty","lofts","logan","loges","logia","logic","login","logos","loyal","loins","lolly","lolls","loner","longa","longe","longs","looey","loofa","looie","looky","looks","looms","loony","loons","loopy","loops","loose","loots","loped","lopes","loppy","lordy","lords","lores","loris","lorry","losel","loser","loses","lossy","lotas","lotic","lotto","lotus","lough","louis","loupe","loups","lours","louse","lousy","louts","lovat","loved","lovey","lover","loves","lowed","lower","lowes","lowly","luaus","lubes","lubra","lucid","lucky","lucks","lucre","luffa","luffs","luger","luges","lulls","lulus","lumen","lumme","lumpy","lumps","lunar","lunch","lunes","lunge","lungi","lungs","lunks","lupin","lupus","lurch","lured","lures","lurid","lurks","lusty","lusts","luted","lutes","maars","macaw","maced","macer","maces","macho","macks","macle","macro","madam","madly","mafia","mafic","mages","magic","magma","magus","mahal","mahoe","mahua","mahwa","maybe","maids","mails","maims","mains","mayor","mayst","maize","major","makar","maker","makes","makos","malar","maleo","males","malik","malls","malms","malty","malts","mamas","mamba","mambo","mamey","mamma","mammy","manes","manga","mange","mangy","mango","mania","manic","manky","manly","manna","manny","manor","manse","manta","manul","manus","maple","marae","maras","march","marcs","mardy","mares","marga","marge","maria","marks","marls","marry","marsh","marts","marvy","maser","masks","mason","massa","massy","masts","matai","match","mated","matey","mater","mates","maths","matin","matte","matzo","mauby","mauls","maund","mauri","mauve","maven","mavis","maxim","maxis","mazed","mazer","mazes","mbira","meads","mealy","meals","meany","means","meant","meaty","meats","mebos","mecon","medal","media","medic","meeds","meets","melas","melba","melds","melee","melic","melon","melts","memos","mends","menus","meows","merch","merci","mercy","meres","merge","merit","merle","merls","merry","mesas","mesic","mesne","meson","messy","metal","metas","meted","meter","metes","metho","meths","metic","metis","metol","metre","metro","mewed","mewls","mezzo","myall","miaow","miasm","miaul","micks","micro","middy","midge","midis","midst","miens","miffy","miffs","might","miked","mikes","mylar","milch","miler","miles","milia","milky","milko","milks","mills","milts","mimed","mimeo","mimes","mimic","mimsy","mynah","mynas","mince","minds","mined","miner","mines","minge","mingy","minim","minis","minks","minor","mints","minus","myope","mired","mires","mirex","mirid","mirky","myrrh","mirth","mirvs","miser","mysid","missy","misty","mists","mitch","miter","mites","myths","mitre","mitts","mixed","mixer","mixes","mixup","mizen","moans","moats","mocha","moche","mocks","modal","model","modem","modes","moggy","mogul","mohel","moils","moire","moist","mojos","mokes","molal","molar","molas","moldy","molds","moles","molly","molls","molts","momma","mommy","monad","monal","mondo","money","mongo","monic","monks","monos","monte","month","mooch","moody","moods","mooed","moola","moong","moony","moons","moors","moose","moots","moped","mopes","moray","moral","moran","morel","mores","morns","moron","morph","morse","morts","mosey","mossy","motel","motes","motet","mothy","moths","motif","motor","motte","motto","moues","mould","moult","mound","mount","mourn","mouse","mousy","mouth","moved","mover","moves","movie","mowed","mower","moxie","mozos","mucid","mucin","mucky","mucks","mucro","mucus","muddy","mudra","muffs","mufti","muggy","mulch","mulct","muley","mules","mulga","mulla","mulls","multi","mummy","mumps","mumsy","munch","munge","mungo","munia","muons","mural","mured","mures","murex","murid","murky","murre","mused","muses","mushy","music","musky","musks","musth","musty","musts","mutch","muted","mutes","mutts","muzzy","nabob","nacho","nacre","nadir","naevi","naiad","naifs","nails","naira","naive","naked","naker","namaz","named","names","nanas","nance","nancy","nanny","napes","napoo","nappa","nappe","nappy","narco","narcs","nards","nares","naris","narky","narks","nasal","nasty","natal","natch","nates","natty","naval","navel","naves","navvy","nawab","nazis","neaps","nears","neath","neats","nebby","necks","necro","neddy","needy","needs","neems","neeps","negro","negus","neigh","nelly","nenes","neons","neper","nerds","nerve","nervy","nests","netty","netts","neume","neums","never","nevus","newel","newer","newly","newsy","newts","nexus","ngaio","ngoma","ngwee","nyala","nicer","niche","nicks","nides","nidus","niece","nifty","night","nylon","nimbi","nymph","nines","ninja","ninny","ninon","ninth","nipas","nippy","nisei","niter","nitid","nitre","nitro","nival","nixed","nixer","nixes","nixie","nizam","noble","nobly","nocks","nodal","noddy","nodes","nodus","noels","nohow","noyau","noils","noise","noisy","nomad","nomen","nomes","nonce","nonda","nones","nonet","nonyl","nooky","nooks","noons","noose","nopal","noria","norms","north","nosed","nosey","noses","notch","noted","notes","notum","nouns","novae","novas","novel","noway","nowed","nowel","nubby","nudes","nudge","nudie","nukes","nulls","numbs","numen","nurse","nutsy","nutty","oaken","oakum","oared","oases","oasis","oasts","oaten","oater","oaths","obeah","obeys","obeli","obese","obits","oboes","obols","occur","ocean","ocher","ochre","ocker","ocrea","octad","octal","octet","octyl","oculi","odder","oddly","odeon","odeum","odium","odors","odour","ofays","offal","offed","offer","often","ogams","ogees","ogham","ogive","ogled","ogles","ogres","oidia","oiled","oiler","oinks","okays","okapi","okrug","olden","older","oldie","oleum","olios","olive","ollie","ology","omasa","ombre","omega","omens","omers","omits","oncer","onion","onset","ontic","oohed","oomph","ootid","oozed","oozes","opahs","opals","opens","opera","opine","oping","opium","opsin","opted","optic","orach","oracy","orals","orang","orate","orbit","orcas","orcin","order","oread","organ","oribi","oriel","orles","orlop","ormer","orpin","orris","ortho","oscar","osier","osmic","ostia","other","otter","ottos","ought","ounce","ousel","ousts","outdo","outed","outer","outgo","outre","ouzel","ouzos","ovals","ovary","ovate","ovens","overs","overt","ovine","ovoid","ovolo","ovule","owing","owlet","owned","owner","oxbow","oxeye","oxide","oxlip","oxter","ozone","pacas","paced","pacer","paces","pacha","packs","pacts","paddy","padre","paean","paeon","pagan","paged","pager","pages","payed","payee","payer","pails","pains","paint","pairs","paisa","paise","palea","paled","paler","pales","pally","palls","pallu","palmy","palms","palpi","palps","palsy","panda","panel","panes","panga","pangs","panic","panne","pansy","panty","panto","pants","papal","papas","papaw","paper","pappi","pappy","paras","parch","pards","pared","paren","pares","parge","parka","parky","parks","parol","parry","parse","party","parts","parve","paseo","pasha","passe","pasta","paste","pasty","pasts","patch","paten","pater","pates","pathy","paths","patio","patsy","patty","pause","pavan","paved","paver","paves","pawed","pawky","pawls","pawns","peace","peach","peaky","peaks","peals","pearl","pears","peart","pease","peats","peavy","pecan","pecks","pedal","pedes","peeks","peels","peens","peeps","peery","peers","peeve","peggy","pekan","pekes","pekoe","pelta","pelts","penal","pence","penes","pengo","penis","penna","penni","penny","peony","peons","pepos","peppy","perch","peril","peris","perky","perks","perms","perry","perse","pesky","pesos","pests","petal","peter","petit","petro","petty","pewee","pewit","phage","phare","phial","phyla","phlox","phone","phony","phono","phons","photo","phots","piano","picas","picky","picks","picot","piece","piers","pieta","piety","piezo","piggy","pigmy","pygmy","pikas","piked","pikey","piker","pikes","pilaf","pilau","pilea","piled","pilei","piles","pills","pylon","pilot","pimps","pinas","pinch","pined","piney","pines","pingo","pings","pinky","pinko","pinks","pinna","pinny","pinon","pinot","pinta","pinto","pints","pinup","pions","pious","pipal","piped","piper","pipes","pipet","pipit","pique","pyres","pyrex","pirog","pisco","pisky","piste","pitas","pitch","pithy","piths","piton","pitta","pivot","pixel","pyxes","pixie","pyxis","pizza","place","plage","playa","plaid","plain","plays","plait","plane","plank","plans","plant","plash","plasm","plate","platy","plats","plaza","plead","pleas","pleat","plebe","plebs","plica","plied","plies","plink","plods","ploys","plonk","plops","plots","plows","pluck","plugs","plumb","plume","plumy","plump","plums","plunk","plush","poach","pocky","pocks","poddy","podge","podgy","podia","poems","poesy","poets","pogey","poilu","poind","point","poise","poked","pokey","poker","pokes","pokie","polar","poled","poley","poler","poles","polio","polyp","polis","polys","polje","polka","polls","pombe","pomes","pommy","pomps","ponce","ponds","ponga","pongo","pooch","poohs","pooka","pools","poons","poops","poori","poove","popes","poppa","poppy","popsy","porch","pored","pores","porgy","porky","porks","porno","porta","ports","posed","posey","poser","poses","posho","posit","posse","posts","potch","potoo","potty","potto","pouch","poufs","poult","pound","pours","pouty","pouts","powan","power","poxes","pozzy","praam","prahu","prays","prams","prana","prang","prank","prase","prate","prats","praus","prawn","preen","preys","preps","press","prexy","price","pricy","prick","pride","pried","pries","prigs","prill","prime","primo","primp","prims","prink","print","prion","prior","prise","prism","privy","prize","proas","probe","prods","proem","profs","progs","prole","promo","proms","prone","prong","proof","props","prose","prosy","proto","proud","prove","prowl","prows","proxy","prude","prune","psalm","pseud","pshaw","psych","psoas","pubes","pubic","pubis","pucka","pucks","pudge","pudgy","puffy","puffs","puggy","puked","pukes","pukka","puled","pules","pulik","pulka","pulli","pulls","pulpy","pulps","pulse","pumas","pumps","punas","punch","punga","punky","punks","punny","punty","punts","pupae","pupil","puppy","purdy","puree","purer","purge","puris","purls","purrs","purse","pursy","purty","pushy","pussy","putti","putty","putto","putts","qanat","qibla","quack","quads","quaff","quags","quail","quays","quake","quale","qualm","quant","quare","quark","quart","quash","quasi","quean","queen","queer","quell","query","quern","quest","queue","quick","quids","quiet","quiff","quill","quilt","quins","quint","quips","quipu","quire","quirk","quirt","quite","quits","quoin","quoit","quota","quote","quoth","qursh","rabbi","rabid","raced","racer","races","racks","racon","radar","radii","radio","radix","radon","rafts","ragas","raged","rager","rages","raggy","raids","rayed","rails","rainy","rains","rayon","raise","rajah","rajas","raked","rakes","rales","rally","ralph","rambo","ramie","rammy","ramps","ramus","ranch","randy","rands","ranee","range","rangy","ranis","ranks","rants","raper","raphe","rapid","rarer","rased","rases","raspy","rasps","rated","ratel","rates","rathe","ratio","ratty","raved","ravel","raven","raver","raves","ravin","rawer","razed","razes","razoo","razor","reach","react","ready","reads","realm","reals","reams","reaps","rearm","rears","reave","rebab","rebar","rebbe","rebec","rebel","rebid","rebus","rebut","recap","recce","recks","recon","recta","recti","recto","recur","recut","redan","redds","redes","redid","redos","redox","redux","reedy","reeds","reefs","reeks","reels","reeve","refer","reffo","refit","refix","regal","reify","reign","reins","reive","rejig","rekey","relay","relax","relet","relic","relit","reman","remap","remex","remit","remix","renal","rends","renew","renga","renin","rents","repay","repel","reply","repot","repro","reran","rerun","resat","reset","resin","resit","rests","retch","retia","retie","retry","retro","reuse","revel","revet","revue","rexes","rheas","rheme","rheum","rhyme","rhino","rhyta","rhomb","rhumb","rials","ribby","riced","ricer","rices","ricin","ricks","rider","rides","ridge","riels","riffs","rifle","rifts","right","rigid","rigor","riyal","riled","riley","riles","rille","rills","rimed","rimes","rinds","rings","rinks","rinse","riots","ryots","ripen","riper","risen","riser","rises","rishi","risky","risks","rites","ritzy","rival","rived","riven","river","rives","rivet","roach","roads","roams","roans","roars","roast","robed","robes","robin","robot","rocky","rocks","rodeo","roger","rogue","royal","roily","roils","roles","rolls","roman","romps","ronde","rondo","ronin","roods","roofs","rooks","roomy","rooms","roost","roots","roped","ropey","roper","ropes","roque","rorty","rosed","roses","rosin","rotas","rotor","rouge","rough","round","roups","rouse","roust","route","routs","roved","rover","roves","rowan","rowdy","rowed","rowel","rowen","rower","rubes","ruble","ruche","rucks","ruddy","ruder","ruffe","ruffs","rugby","ruing","ruins","ruled","ruler","rules","rumba","rumen","rummy","rumor","rumps","runes","rungs","runny","runts","rupee","rural","ruses","rusks","rusty","rusts","rutin","saber","sable","sabot","sabra","sabre","sabzi","sacks","sacra","sadhu","sadly","safer","safes","sagas","sages","saggy","sagos","sahib","saiga","sails","saint","saith","saker","sakes","sakis","salad","salal","salat","salep","sales","sally","salmi","salon","salps","salsa","salty","salts","salve","salvo","saman","samba","sambo","sandy","sands","saner","sanga","sapid","sappy","saran","sards","saree","sarge","sarin","saris","sarky","sarks","sarod","saros","sasin","sassy","satai","sated","satin","satyr","satis","sauce","saucy","sauna","saury","saute","saved","saver","saves","savin","savoy","savor","savvy","sawed","saxes","scabs","scads","scags","scald","scale","scaly","scalp","scamp","scams","scans","scant","scape","scare","scarf","scary","scarp","scars","scart","scats","scaup","scaur","scena","scend","scene","scent","schmo","schwa","scion","scoff","scold","scone","scoop","scoot","scopa","scope","score","scorn","scots","scour","scout","scowl","scows","scrab","scrag","scram","scran","scrap","scree","screw","scrim","scrip","scrod","scrub","scrum","scuba","scudi","scudo","scuds","scuff","scull","sculp","scums","scurf","scuta","scute","scuts","seals","seamy","seams","sears","seats","sebum","secco","sects","sedan","seder","sedge","sedum","seedy","seeds","seeks","seels","seems","seeps","seers","segos","segue","seine","seise","seize","selah","selfs","sells","selva","semee","semen","semes","semis","sends","senex","senna","senor","sense","sents","sepal","sepia","sepoy","septa","septs","serac","serai","seres","serfs","serge","serif","serin","serow","serum","serve","servo","setae","seton","setup","seven","sever","sewed","sewen","sewer","sewin","sexed","sexes","sexts","shack","shade","shady","shads","shaft","shags","shahs","shays","shaka","shake","shaky","shako","shale","shall","shalt","shama","shame","shams","shank","shant","shape","shard","share","shark","sharp","shave","shawl","shawm","shaws","sheaf","shear","sheds","sheen","sheep","sheer","sheet","sheik","shelf","shell","sheng","sherd","sheva","shews","shied","shyer","shies","shift","shyly","shill","shims","shine","shiny","shins","ships","shire","shirk","shirr","shirt","shits","shiva","shive","shivs","shlep","shoal","shoat","shock","shoes","shoyu","shoji","shojo","shone","shook","shoos","shoot","shops","shore","shorn","short","shote","shots","shout","shove","showy","shown","shows","shred","shrew","shrub","shrug","shuck","shuls","shuns","shunt","shush","shuts","sibyl","sices","syces","sicks","sided","sides","sidhe","sidle","siege","sieve","sighs","sight","sigil","sigla","sigma","signs","sikes","silex","silky","silks","silly","sills","silos","sylph","silts","simps","simul","since","synch","syncs","sines","sinew","singe","sings","sinks","synod","sinus","sipes","sired","siree","siren","sires","sirup","syrup","sisal","sissy","sitar","sitch","sited","sites","situs","sixer","sixes","sixte","sixth","sixty","sizar","sized","sizes","skags","skald","skate","skean","skeet","skegs","skein","skell","skelp","skene","skeps","skews","skids","skied","skyey","skier","skies","skiff","skill","skimp","skims","skink","skins","skint","skips","skirl","skirr","skirt","skite","skits","skive","skoal","skuas","skulk","skull","skunk","slabs","slack","slade","slags","slain","slays","slake","slams","slang","slant","slaps","slash","slate","slats","slave","sleds","sleek","sleep","sleet","sleys","slept","slews","slice","slick","slide","slyer","slily","slyly","slime","slimy","slims","sling","slink","slype","slips","slits","slobs","sloes","slogs","sloka","sloop","sloot","slope","slops","slosh","sloth","slots","slows","slubs","slued","slues","slugs","sluit","slump","slums","slung","slunk","slurp","slurs","slush","sluts","smack","small","smalt","smarm","smart","smash","smaze","smear","smell","smelt","smews","smile","smirk","smite","smith","smock","smogs","smoke","smoky","smoko","smolt","smore","smote","smush","smuts","snack","snafu","snags","snail","snake","snaky","snaps","snare","snark","snarl","snash","sneak","sneck","sneds","sneer","snell","snibs","snick","snide","sniff","snigs","snipe","snips","snits","snobs","snoek","snood","snook","snool","snoop","snoot","snore","snort","snots","snout","snowy","snows","snubs","snuck","snuff","snugs","soaks","soapy","soaps","soars","sober","socko","socks","socle","sodas","sodic","sofar","sofas","softa","softy","soggy","soils","sokes","solan","solar","soldi","soldo","soled","soles","solid","solos","solus","solve","somas","sonar","sonde","sones","songs","sonic","sonny","sonsy","sooth","sooty","soots","sophy","sopor","soppy","soras","sorbs","sords","sorel","sorer","sores","sorry","sorts","sorus","sotol","sough","souls","sound","soupy","soups","sours","souse","south","sowed","space","spacy","spade","spaed","spaes","spahi","spays","spake","spall","spang","spank","spans","spare","spark","spars","spasm","spate","spats","spawn","speak","spear","speck","specs","spect","speed","spelk","spell","spelt","spend","spent","sperm","spews","spica","spice","spicy","spics","spied","spiel","spies","spiff","spike","spiky","spile","spill","spilt","spine","spins","spire","spiro","spirt","spite","spits","spitz","spivs","splay","splat","split","spoil","spoke","spoof","spook","spool","spoon","spoor","spore","sport","spots","spout","sprag","spray","sprat","spree","sprig","sprit","sprue","spuds","spued","spues","spume","spunk","spurn","spurs","spurt","squab","squad","squat","squaw","squib","squid","squit","squiz","stabs","stack","staff","stage","stagy","stags","staid","stain","stair","stays","stake","stale","stalk","stall","stamp","stand","stank","staph","stare","stark","stars","start","stash","state","stats","stave","stead","steak","steal","steam","steed","steel","steen","steep","steer","stein","stela","stele","stems","steno","stent","steps","stere","stern","stets","stews","stick","stied","sties","styes","stiff","stilb","stile","style","styli","still","stylo","stilt","sting","stink","stint","stipe","stirk","stirs","stoas","stoat","stobs","stock","stoep","stogy","stoic","stoke","stole","stoma","stomp","stone","stony","stonk","stood","stook","stool","stoop","stope","stops","store","story","stork","storm","stoup","stour","stout","stove","stows","stray","strap","straw","strep","strew","stria","strip","strop","strow","strum","strut","stubs","stuck","study","studs","stuff","stump","stums","stung","stunk","stuns","stunt","stupa","stupe","suave","sucks","sucre","sudra","suede","sugan","sugar","suing","suint","suite","suits","sulci","sulfa","sulky","sulks","sully","sumac","summa","sumos","sumph","sumps","sunny","sunup","super","supra","surah","sural","suras","surds","surer","surfs","surge","surly","surra","sushi","sutra","sutta","swabs","swage","swags","swain","sways","swale","swami","swamp","swank","swans","swaps","sward","sware","swarf","swarm","swart","swash","swath","swats","swear","sweat","swede","sweep","sweet","swell","swept","swift","swigs","swill","swims","swine","swing","swipe","swirl","swish","swiss","swive","swizz","swobs","swoon","swoop","swops","sword","swore","sworn","swots","swung","tabby","tabes","tabla","table","taboo","tabor","tabus","tache","tachi","tachs","tacit","tacky","tacks","tacos","taels","taffy","tafia","tahrs","taiga","tails","taint","tayra","tajes","taken","taker","takes","takin","talas","talcs","tales","talky","talks","tally","talon","taluk","talus","tamed","tamer","tames","tammy","tamps","tanga","tangi","tangy","tango","tangs","tania","tanka","tanks","tansy","tanto","tapas","taped","taper","tapes","tapir","tapis","tappa","tardy","tares","targe","tarns","taros","tarot","tarps","tarry","tarse","tarsi","tarts","tasks","taste","tasty","tater","tatie","tatty","taunt","taupe","tawed","tawny","tawse","taxed","taxes","taxis","taxon","tazza","teach","teaks","teals","teams","teary","tears","tease","teats","techy","tecta","teddy","teems","teeny","teens","teeth","tekke","teles","telex","telic","telly","tells","teloi","telos","tempi","tempo","temps","tempt","tench","tends","tenet","tenia","tenno","tenon","tenor","tense","tenth","tents","tepal","tepee","tepid","terai","terce","teres","terga","terms","terne","terns","terra","terry","terse","tesla","testa","testy","tests","tetra","texts","thana","thane","thank","thaws","theca","theft","thegn","theme","there","therm","these","theta","thews","thick","thief","thigh","thill","thyme","thymi","thine","thing","think","thins","thiol","third","thole","thong","thorn","thorp","those","three","threw","thrip","throb","throe","throw","thrum","thuds","thugs","thuya","thuja","thumb","thump","tiara","tibia","ticks","tidal","tided","tides","tiers","tiffs","tiger","tigon","tigre","tying","tikes","tykes","tikis","tikka","tilak","tilde","tiled","tiler","tiles","tills","tilth","tilts","timed","timer","times","timid","tinea","tines","tinge","tings","tinny","tints","typed","types","tipis","typos","tippy","tipsy","tired","tires","tyres","tiros","tyros","titan","titer","tithe","titis","title","titre","titty","tizzy","toady","toads","toast","today","toddy","toffy","toffs","tofts","togas","toyed","toile","toils","toyon","tokay","toked","token","tokes","tolls","tombs","tomes","tommy","tonal","tondi","tondo","toned","toner","tones","tonga","tongs","tonic","tonne","tonus","tools","toons","tooth","toots","topaz","toped","topee","topes","tophi","topic","topis","topoi","topos","toque","torch","torcs","tores","toric","torii","torse","torsi","torsk","torso","torta","torte","torts","torus","total","toted","totem","totes","totty","tough","tours","touts","towel","tower","towny","towns","toxic","toxin","trace","track","tract","trade","tragi","trail","train","trays","trait","tramp","trams","trank","trans","traps","trash","trass","trawl","tread","treat","treed","treen","trees","treys","treks","trend","tress","trews","triac","triad","trial","tribe","trice","trick","tried","trier","tries","trigs","trike","trill","trims","trine","trios","tripe","trips","tryst","trite","trogs","troll","tromp","trona","tronc","troop","trope","troth","trots","trout","trove","trows","truce","truck","trued","truer","trues","truly","trull","trump","trunk","truss","trust","truth","tsars","tsuba","tsubo","tubal","tubas","tubby","tubed","tuber","tubes","tucks","tufts","tules","tulip","tulle","tulsi","tumid","tummy","tumor","tumps","tunas","tuned","tuner","tunes","tunic","tunny","tupik","tuple","tuque","turbo","turds","turfy","turfs","turns","turps","tushy","tusky","tusks","tutee","tutor","tutti","tutus","tuxes","twain","twang","twats","tweak","tweed","tween","tweet","twerp","twice","twyer","twigs","twill","twine","twiny","twink","twins","twirk","twirl","twirp","twist","twite","twits","twixt","tzars","udder","ugali","uhlan","ukase","ulama","ulcer","ulema","ulnae","ulnas","ultra","umbel","umber","umbos","umbra","umiak","umped","unapt","unary","unarm","unbar","unbox","uncap","uncle","uncut","under","undid","undue","unfed","unfit","unhip","unify","union","unite","unity","units","unlay","unlet","unlit","unman","unmet","unpeg","unpin","unrig","unrip","unsay","unsee","unset","unsex","untie","until","unwed","unzip","updos","upend","upped","upper","upset","uraei","urate","urban","ureid","urged","urger","urges","urial","urine","usage","users","usher","using","usual","usury","usurp","uteri","utile","utter","uveas","uvula","vacua","vagal","vague","vails","vairy","vajra","vakil","vales","valet","valid","valor","valse","value","valve","vamps","vanes","vangs","vapid","vapor","varec","varix","varna","varus","varve","vases","vasts","vatic","vault","vaunt","veena","veeps","veery","veers","vegan","vegas","veils","veins","velar","velds","veldt","velum","venal","vends","venom","vents","venue","verbs","verge","verse","verso","verst","verts","vertu","verve","vesta","vests","vetch","vexed","vexes","vials","viand","vibes","vicar","vices","vicus","video","views","vigas","vigil","vigor","vying","viler","villa","villi","vills","vinas","vinca","vines","vinyl","viola","viols","viper","viral","vireo","virga","virtu","virus","visas","vises","visit","visor","vista","vital","vitta","vivas","vivat","vivid","vixen","vizor","vocal","vodka","vodun","vogue","voice","voids","voila","voile","volar","voles","volet","volte","volts","volva","vomer","vomit","voted","voter","votes","vouch","vowed","vowel","vroom","vrouw","vulva","wacke","wacky","wacks","waddy","waded","wader","wades","wadis","wafer","wafts","waged","wager","wages","wagon","wahoo","waifs","wails","wains","waist","waits","waive","wakas","waked","waken","wakes","waler","wales","walks","wally","walls","waltz","wands","waned","wanes","wanky","wants","wards","wared","wares","warks","warms","warns","warps","warts","washy","waspy","wasps","waste","watch","water","watts","wauls","waved","waver","waves","waxed","waxen","waxes","wazir","weals","weary","wears","weave","weber","wedge","weedy","weeds","weeks","weeny","weens","weepy","weeps","weest","wefts","weigh","weird","weirs","wekas","welch","welds","welly","wells","welsh","welts","wench","wends","wersh","whack","whale","whams","whang","whaps","whare","wharf","whaup","wheal","wheat","wheel","wheen","whelk","whelm","whelp","where","whets","which","whiff","whigs","while","whims","whine","whiny","whins","whips","whirl","whirr","whirs","whisk","whist","white","whity","whits","whizz","whole","whomp","whoop","whops","whore","whorl","whose","whoso","whump","wicks","widen","wider","wides","widow","width","wield","wifie","wiggy","wight","wilco","wilds","wiled","wiles","wilga","willy","wills","wilts","wince","winch","windy","winds","wynds","wined","wines","wings","winks","wynns","winos","winze","wiped","wiper","wipes","wired","wires","wirra","wised","wiser","wises","wispy","wisps","witan","witch","withe","withy","witty","wived","wives","wizen","wodge","woken","wolds","wolfs","woman","wombs","women","wonga","wonky","wonts","woody","woods","wooed","woofs","wooly","wools","woosh","woozy","wordy","words","works","world","wormy","worms","worry","worse","worst","worth","worts","would","wound","woven","wowed","wrack","wraps","wrapt","wrath","wreak","wreck","wrens","wrest","wrier","wryer","wryly","wring","wrist","write","writs","wrong","wrote","wroth","wrung","wurst","xebec","xenon","xeric","xerox","xylem","xysti","xoana","zayin","zaire","zakat","zamia","zaxes","zazen","zebec","zebra","zebus","zeros","zests","zetas","ziffs","zilch","zinco","zincs","zineb","zings","zippy","zloty","zokor","zonal","zoned","zones","zooid","zooms","zoris","zorro","zowie"] \ No newline at end of file diff --git a/src/hooks/game.ts b/src/hooks/game.ts new file mode 100644 index 000000000..497232c55 --- /dev/null +++ b/src/hooks/game.ts @@ -0,0 +1,111 @@ +import { CharacterBoxProps } from "@/types/CharacterBox"; +import { useState, useEffect, useMemo, useContext } from "react"; +import { MAX_ATTEMPTS } from "@/constants/game"; +import { ActiveState, GameState, GridState, Results } from "@/types/game"; +import { useAnimate } from "framer-motion"; +import { AudioContextProvider } from "@/providers/AudioProvider"; +import { AudioContextReturn } from "@/types/AudioContext"; + +export function useCharacterBox({ + rowIndex, + columnIndex, + attempts, + currentString, +}: CharacterBoxProps) { + const isCurrentWord = rowIndex === attempts.length; + const isCurrentCharacter = + isCurrentWord && columnIndex === currentString.length; + const attemptExists = attempts.length > rowIndex; + let character = ""; + + if (isCurrentWord) character = currentString[columnIndex] || ""; + else if (attemptExists) character = attempts[rowIndex][columnIndex] || ""; + + return { + isCurrentWord, + isCurrentCharacter, + attemptExists, + character, + }; +} + +export function useCanPopOut() { + const [canPopOut, setCanPopOut] = useState(false); + + useEffect(() => { + let tim = setTimeout(() => { + setCanPopOut(true); + }, 500); + + return () => { + clearTimeout(tim); + }; + }, []); + + return canPopOut; +} + +export function useGameState(): GameState { + const [attempts, setAttempts] = useState([]); + const [randomWord, setRandomWord] = useState(""); + const [resetGame, setResetGame] = useState(() => () => {}); + const [results, setResults] = useState(null); + const [gameState, showGrid] = useMemo<[ActiveState, boolean]>(() => { + let gameState: ActiveState = "playing"; + if (randomWord === "") gameState = "loading"; + else if (attempts.includes(randomWord)) gameState = "win"; + else if (attempts.length === MAX_ATTEMPTS) gameState = "lose"; + return [gameState, gameState === "playing" || gameState === "loading"]; + }, [randomWord, attempts]); + const heartsLeft = useMemo( + () => + MAX_ATTEMPTS - + attempts.filter((word) => word !== randomWord).length, + [attempts, randomWord], + ); + console.log(heartsLeft); + + return { + attempts, + setAttempts, + randomWord, + setRandomWord, + resetGame, + setResetGame, + gameState, + showGrid, + heartsLeft, + results, + setResults, + }; +} + +export function useGridState(): GridState { + const [scope, animate] = useAnimate(); + const [heartScope, heartAnimate] = useAnimate(); + const [attemptColors, setAttemptColors] = useState([]); + const [isKeyDown, setIsKeyDown] = useState(false); + const [currentString, setCurrentString] = useState(""); + const [cheats, setCheats] = useState([]); + const canPopOut = useCanPopOut(); + + return { + scope, + animate, + attemptColors, + setAttemptColors, + isKeyDown, + setIsKeyDown, + currentString, + setCurrentString, + canPopOut, + heartScope, + heartAnimate, + cheats, + setCheats, + }; +} + +export function useAudio() { + return useContext(AudioContextProvider) as AudioContextReturn; +} diff --git a/src/providers/AudioProvider.tsx b/src/providers/AudioProvider.tsx new file mode 100644 index 000000000..ccda9d90a --- /dev/null +++ b/src/providers/AudioProvider.tsx @@ -0,0 +1,39 @@ +"use client"; +import { createContext, useRef } from "react"; + +export const AudioContextProvider = createContext({}); + +export default function AudioProvider({ + children, +}: { + children: React.ReactNode; +}) { + const containerRef = useRef(null); + + const playSound = ( + sound: string | null, + volume: number = 1, + skipAhead: number = 0, + ) => { + if (!containerRef.current) return; + if (!sound) return; + + const audio = new Audio(); + audio.volume = volume; + audio.currentTime = skipAhead; + audio.src = sound; + audio.load(); + audio.play(); + }; + + return ( + +
+ {children} +
+ ); +} diff --git a/app/globals.css b/src/styles/globals.css similarity index 100% rename from app/globals.css rename to src/styles/globals.css diff --git a/src/types/AudioContext.ts b/src/types/AudioContext.ts new file mode 100644 index 000000000..835799763 --- /dev/null +++ b/src/types/AudioContext.ts @@ -0,0 +1,7 @@ +export type AudioContextReturn = { + playSound: ( + sound: string | null, + volume?: number, + skipAhead?: number, + ) => void; +}; diff --git a/src/types/CharacterBox.ts b/src/types/CharacterBox.ts new file mode 100644 index 000000000..585932780 --- /dev/null +++ b/src/types/CharacterBox.ts @@ -0,0 +1,7 @@ +export type CharacterBoxProps = { + rowIndex: number; + columnIndex: number; + attempts: string[]; + currentString: string; + randomWord: string; +}; diff --git a/src/types/Grid.ts b/src/types/Grid.ts new file mode 100644 index 000000000..17923a19b --- /dev/null +++ b/src/types/Grid.ts @@ -0,0 +1,9 @@ +export type GridProps = { + showGrid: boolean; + setAttempts: React.Dispatch>; + attempts: string[]; + randomWord: string; + setRandomWord: React.Dispatch>; + setResetGame: React.Dispatch void>>; + heartsLeft: number; +}; diff --git a/src/types/game.ts b/src/types/game.ts new file mode 100644 index 000000000..408474bb7 --- /dev/null +++ b/src/types/game.ts @@ -0,0 +1,39 @@ +import { AnimationScope, useAnimate } from "framer-motion"; + +export type ActiveState = "playing" | "win" | "lose" | "loading"; + +export type GameState = { + attempts: string[]; + setAttempts: React.Dispatch>; + randomWord: string; + setRandomWord: React.Dispatch>; + resetGame: () => void; + setResetGame: React.Dispatch void>>; + gameState: string; + showGrid: boolean; + heartsLeft: number; + results: Results; + setResults: React.Dispatch>; +}; + +export type GridState = { + scope: AnimationScope; + animate: ReturnType[1]; + attemptColors: string[][]; + setAttemptColors: React.Dispatch>; + isKeyDown: boolean; + setIsKeyDown: React.Dispatch>; + currentString: string; + setCurrentString: React.Dispatch>; + canPopOut: boolean; + heartScope: AnimationScope; + heartAnimate: ReturnType[1]; + cheats: string[]; + setCheats: React.Dispatch>; +}; + +export type Results = { + gameState: string; + heartsLeft: number; + randomWord: string; +} | null; diff --git a/src/utils/game.ts b/src/utils/game.ts new file mode 100644 index 000000000..b13f5be6d --- /dev/null +++ b/src/utils/game.ts @@ -0,0 +1,74 @@ +import wordlist from "@/data/wordlist.json"; +import { WORD_LENGTH } from "@/constants/game"; + +export function generateRandomWord() { + return wordlist[Math.floor(Math.random() * wordlist.length)]; +} + +export function processAttemptColors( + currentString: string, + randomWord: string, +): string[] { + let colors: string[] = []; + let unmatchedCharacters: string[] = randomWord.split(""); + + const markCharacter = (color: string, index: number) => { + colors[index] = color; + unmatchedCharacters.splice( + unmatchedCharacters.indexOf(currentString[index]), + 1, + ); + }; + + for (let i = 0; i < WORD_LENGTH; i++) { + if (currentString[i] !== randomWord[i]) continue; + markCharacter("green", i); + } + + for (let i = 0; i < WORD_LENGTH; i++) { + if ( + unmatchedCharacters.includes(currentString[i]) && + colors[i] != "green" + ) + markCharacter("yellow", i); + else colors[i] = colors[i] || "gray"; + } + + return colors; +} + +export function newCheat( + attempts: string[], + randomWord: string, + cheats: string[], +) { + const characters = randomWord.split(""); + const missedCharacters = characters.map((character, index) => { + if (attempts.some((attempt) => attempt[index] === character)) + return null; + return character; + }); + const missedCharacter = missedCharacters.findIndex( + (character) => character !== null && !cheats.includes(character), + ); + if (missedCharacter === -1) return cheats; + const newArray = [...cheats]; + newArray[missedCharacter] = characters[missedCharacter]; + return newArray; +} + +export function newColorExists( + attemptColors: string[][], + currentColors: string[], + color: string, +) { + return currentColors + .filter((color, index) => { + const isGreen = color === color; + const isPreviousGreen = attemptColors.some( + (attemptColors) => attemptColors[index] === color, + ); + return isGreen && !isPreviousGreen; + }) + .includes(color); +} diff --git a/tailwind.config.ts b/tailwind.config.ts index f44939eeb..4effccc13 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,13 +1,100 @@ import type { Config } from "tailwindcss"; const config: Config = { + darkMode: "class", content: [ - "./pages/**/*.{js,ts,jsx,tsx,mdx}", - "./components/**/*.{js,ts,jsx,tsx,mdx}", - "./app/**/*.{js,ts,jsx,tsx,mdx}", + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", ], theme: { extend: { + colors: { + background: { + DEFAULT: "#4b3b47", + 100: "#0f0c0e", + 200: "#1e171c", + 300: "#2d232a", + 400: "#3b2f38", + 500: "#4b3b47", + 600: "#755c6e", + 700: "#9b8095", + 800: "#bdaab8", + 900: "#ded5dc", + }, + card: { + DEFAULT: "#6a6262", + 100: "#151414", + 200: "#2a2727", + 300: "#403b3b", + 400: "#554e4e", + 500: "#6a6262", + 600: "#898080", + 700: "#a7a0a0", + 800: "#c4bfbf", + 900: "#e2dfdf", + }, + primary: { + DEFAULT: "#9c9990", + 100: "#201f1c", + 200: "#403e39", + 300: "#605d55", + 400: "#807c71", + 500: "#9c9990", + 600: "#b0aea6", + 700: "#c4c2bd", + 800: "#d8d6d3", + 900: "#ebebe9", + }, + secondary: { + DEFAULT: "#cfd2b2", + 100: "#2f311d", + 200: "#5e6239", + 300: "#8c9356", + 400: "#b0b581", + 500: "#cfd2b2", + 600: "#d8dbc1", + 700: "#e2e4d1", + 800: "#ecede0", + 900: "#f5f6f0", + }, + text: { + DEFAULT: "#e0d8de", + 100: "#31272e", + 200: "#614e5d", + 300: "#91768a", + 400: "#b8a7b4", + 500: "#e0d8de", + 600: "#e6dfe4", + 700: "#ece7eb", + 800: "#f2eff2", + 900: "#f9f7f8", + }, + }, + animation: { + "popin": "popin 0.5s ease-in-out forwards", + "lefttoright": "lefttoright 0.25s ease-in-out forwards", + "toptobottom": "toptobottom 0.25s ease-in-out forwards", + "crack": "crack 0.5s cubic-bezier(.47,1.64,.41,.8) forwards", + }, + keyframes: { + "popin": { + "0%": { transform: "scale(1.5)", opacity: "0" }, + "100%": { transform: "scale(1)", opacity: "1" }, + }, + "lefttoright": { + "0%": { transform: "translateX(-100%)", opacity: "0" }, + "100%": { transform: "translateX(0)", opacity: "1" }, + }, + "toptobottom": { + "0%": { transform: "translateY(-100%)", opacity: "0" }, + "100%": { transform: "translateY(0)", opacity: "1" }, + }, + "crack": { + "0%": { transform: "rotate(0deg)" }, + "100%": { transform: "rotate(42deg)", scale: "0.75" }, + } + } }, }, plugins: [], diff --git a/tsconfig.json b/tsconfig.json index e7ff90fd2..7b2858930 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,7 @@ } ], "paths": { - "@/*": ["./*"] + "@/*": ["./src/*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], From 34e6655ab5cd5ce38286d9e95bf966479fd0bec8 Mon Sep 17 00:00:00 2001 From: Seikirin Date: Wed, 7 Aug 2024 21:42:56 +0100 Subject: [PATCH 04/13] Logging cleanup --- src/hooks/game.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hooks/game.ts b/src/hooks/game.ts index 497232c55..6272e163d 100644 --- a/src/hooks/game.ts +++ b/src/hooks/game.ts @@ -63,7 +63,6 @@ export function useGameState(): GameState { attempts.filter((word) => word !== randomWord).length, [attempts, randomWord], ); - console.log(heartsLeft); return { attempts, From 54b0d25ed3fb0ba419bce3293d08ea6da5b28ee0 Mon Sep 17 00:00:00 2001 From: Seikirin Date: Thu, 8 Aug 2024 09:54:05 +0100 Subject: [PATCH 05/13] Changed wordlist, added audio preloading, made so any key starts a new game on the end screen, bugs fixed. --- src/app/page.tsx | 10 +- src/components/CharacterBox.tsx | 2 +- src/components/Grid.tsx | 39 +- src/components/HintsRow.tsx | 6 +- src/constants/game.ts | 9 + src/data/allowed_guesses.json | 1 + src/data/wordles.json | 2318 +++++++++++++++++++++++++++++++ src/data/wordlist.json | 1 - src/providers/AudioProvider.tsx | 18 +- src/types/AudioContext.ts | 4 +- src/utils/game.ts | 18 +- tailwind.config.ts | 1 - 12 files changed, 2379 insertions(+), 48 deletions(-) create mode 100644 src/data/allowed_guesses.json create mode 100644 src/data/wordles.json delete mode 100644 src/data/wordlist.json diff --git a/src/app/page.tsx b/src/app/page.tsx index 7a12be974..a6c2323db 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -23,7 +23,7 @@ export default function Home() { useEffect(() => { if (gameState === "win" || gameState === "lose") { - playSound(gameState === "win" ? "/victory.wav" : "/lose.wav"); + playSound(gameState === "win" ? "victory" : "lose"); setResults({ gameState: gameState, heartsLeft, @@ -61,16 +61,16 @@ export default function Home() {
-
-

+

+

The word was {results?.randomWord} .

-

- Click anywhere to play again. +

+ Press any key to play again.

diff --git a/src/components/CharacterBox.tsx b/src/components/CharacterBox.tsx index bc8d1197e..2199918af 100644 --- a/src/components/CharacterBox.tsx +++ b/src/components/CharacterBox.tsx @@ -21,7 +21,7 @@ export default function CharacterBox({
{ if (currentString.length !== WORD_LENGTH) return; - const wordExists = wordlist.includes(currentString); + const wordExists = + wordles.includes(currentString) || + allowed_guesses.includes(currentString); if (wordExists) { const currentColors = processAttemptColors( currentString, randomWord, ); if (newColorExists(attemptColors, currentColors, "green")) - playSound("/correct.wav", 0.5); - else playSound("/deny.mp3"); + playSound("correct", 0.5); + else playSound("deny"); setAttempts((prev) => [...prev, currentString]); setAttemptColors((prev) => [...prev, currentColors]); setCurrentString(""); @@ -63,7 +66,7 @@ export default function Grid({ animate(`.row-${attempts.length}`, { x: [10, 0], }); - playSound("/invalid.mp3", 0.5); + playSound("invalid", 0.5); } }, [ currentString, @@ -81,21 +84,30 @@ export default function Grid({ useEffect(() => { const alphabetRegex = /^[a-zA-Z]$/; + const resetGame = () => { + setAttempts([]); + setAttemptColors([]); + setCurrentString(""); + setRandomWord(generateRandomWord()); + setCheats([]); + }; + const handleKeyDown = (e: KeyboardEvent) => { if (alphabetRegex.test(e.key)) setIsKeyDown(true); }; const handleKeyUp = (e: KeyboardEvent) => { setIsKeyDown(false); - if ( + if (!showGrid) resetGame(); + else if ( alphabetRegex.test(e.key) && currentString.length < WORD_LENGTH ) { setCurrentString((prev) => prev + e.key.toLowerCase()); - playSound("/typing.wav"); + playSound("typing"); } else if (e.key === "Backspace") { setCurrentString((prev) => prev.slice(0, -1)); - playSound("/backspace.wav", 0.5, 0.05); + playSound("backspace", 0.5, 0.05); } else if (e.key === "Enter") { submitWord(); } @@ -103,13 +115,7 @@ export default function Grid({ if (randomWord === "") setRandomWord(generateRandomWord()); - setResetGame(() => () => { - setAttempts([]); - setAttemptColors([]); - setCurrentString(""); - setRandomWord(generateRandomWord()); - setCheats([]); - }); + setResetGame(() => resetGame); window.addEventListener("keydown", handleKeyDown); window.addEventListener("keyup", handleKeyUp); @@ -131,6 +137,7 @@ export default function Grid({ heartScope, playSound, setCheats, + showGrid ]); return ( @@ -186,7 +193,7 @@ export default function Grid({ : undefined } className={twMerge( - "bg-primary hover:bg-primary-400 dark:bg-primary-300 absolute -right-0 flex size-16 items-center justify-center rounded opacity-0 transition-all active:scale-95", + "absolute -right-0 flex size-16 items-center justify-center rounded bg-primary opacity-0 transition-all hover:bg-primary-400 active:scale-95 dark:bg-primary-300", isCurrentWord && canPopOut && "-right-2 translate-x-full cursor-pointer opacity-100", diff --git a/src/components/HintsRow.tsx b/src/components/HintsRow.tsx index e62945dab..4f4fbefba 100644 --- a/src/components/HintsRow.tsx +++ b/src/components/HintsRow.tsx @@ -22,15 +22,15 @@ export default function HintsRow({ const addCheat = useCallback(() => { const newArray = newCheat(attempts, randomWord, cheats); if (newArray === cheats) { - playSound("/deny.mp3"); + playSound("deny"); return; } - playSound("/correct.wav", 0.5); + playSound("correct", 0.5); setCheats(newArray); }, [attempts, randomWord, cheats, setCheats, playSound]); return ( -
+
{Array(WORD_LENGTH) .fill(null) .map((_, index) => ( diff --git a/src/constants/game.ts b/src/constants/game.ts index f036c4901..aba979953 100644 --- a/src/constants/game.ts +++ b/src/constants/game.ts @@ -1,2 +1,11 @@ export const MAX_ATTEMPTS = 6; export const WORD_LENGTH = 5; +export const SFX = { + typing: "/typing.wav", + backspace: "/backspace.wav", + invalid: "/invalid.mp3", + deny: "/deny.mp3", + correct: "/correct.wav", + victory: "/victory.wav", + lose: "/lose.wav", +} \ No newline at end of file diff --git a/src/data/allowed_guesses.json b/src/data/allowed_guesses.json new file mode 100644 index 000000000..2da7906e4 --- /dev/null +++ b/src/data/allowed_guesses.json @@ -0,0 +1 @@ +["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"] \ No newline at end of file diff --git a/src/data/wordles.json b/src/data/wordles.json new file mode 100644 index 000000000..16a7bd486 --- /dev/null +++ b/src/data/wordles.json @@ -0,0 +1,2318 @@ +[ + "scowl", + "wager", + "tying", + "swarm", + "shady", + "lying", + "heady", + "fluke", + "bland", + "bison", + "shone", + "scrum", + "apply", + "retro", + "truce", + "blimp", + "fewer", + "stein", + "quote", + "scary", + "croak", + "steer", + "verge", + "sower", + "raven", + "posit", + "range", + "fuzzy", + "hovel", + "amass", + "leash", + "leech", + "dwarf", + "crimp", + "unite", + "risen", + "tarot", + "helix", + "freed", + "count", + "ladle", + "corny", + "plane", + "sewer", + "pecan", + "tiara", + "condo", + "polyp", + "quite", + "bulge", + "yield", + "pedal", + "thief", + "daisy", + "rouse", + "kebab", + "grope", + "balmy", + "angle", + "shake", + "epoxy", + "ditch", + "islet", + "fever", + "dowdy", + "lowly", + "ovoid", + "stamp", + "straw", + "bowel", + "leapt", + "rebus", + "axial", + "beast", + "slung", + "exile", + "graft", + "lumen", + "tryst", + "crisp", + "bench", + "abide", + "groan", + "clown", + "graph", + "mammy", + "lousy", + "width", + "havoc", + "sword", + "shard", + "baste", + "frisk", + "stout", + "glide", + "datum", + "ledge", + "tiger", + "spool", + "skiff", + "barge", + "shape", + "staid", + "pinto", + "coven", + "borne", + "liner", + "demon", + "guile", + "might", + "rugby", + "humid", + "faith", + "splat", + "abbot", + "pagan", + "lathe", + "mummy", + "tacit", + "blunt", + "smack", + "which", + "beach", + "conic", + "synod", + "swear", + "basil", + "prove", + "blank", + "poppy", + "vivid", + "relic", + "event", + "above", + "hippy", + "north", + "human", + "renew", + "queen", + "petal", + "brute", + "ashen", + "biddy", + "stand", + "orbit", + "masse", + "about", + "dingo", + "obese", + "soggy", + "flour", + "sushi", + "knack", + "scare", + "phony", + "quiet", + "duchy", + "depth", + "every", + "circa", + "ozone", + "staff", + "dusky", + "array", + "sound", + "virus", + "vogue", + "fjord", + "vocal", + "swash", + "dying", + "money", + "bacon", + "skill", + "clove", + "batch", + "scald", + "yeast", + "lobby", + "forge", + "cloak", + "voter", + "vague", + "lease", + "serif", + "trout", + "krill", + "pique", + "often", + "chute", + "lymph", + "decay", + "fetus", + "cinch", + "sheet", + "rebel", + "trail", + "vicar", + "quick", + "plume", + "juicy", + "limit", + "peril", + "bliss", + "ulcer", + "mucky", + "briar", + "juror", + "tonga", + "worth", + "blend", + "medal", + "covey", + "welch", + "loyal", + "safer", + "mover", + "silky", + "flaky", + "magic", + "broad", + "worst", + "spell", + "order", + "flush", + "solar", + "slope", + "flare", + "wooer", + "spoke", + "treat", + "built", + "aloof", + "unmet", + "ovine", + "dress", + "clout", + "penne", + "shell", + "syrup", + "sonar", + "cider", + "unfed", + "facet", + "rivet", + "relay", + "yearn", + "point", + "smoky", + "worry", + "batty", + "gross", + "paddy", + "acrid", + "gusto", + "spicy", + "biome", + "curvy", + "tonal", + "cumin", + "koala", + "women", + "sling", + "sloth", + "waist", + "blink", + "sheer", + "crust", + "frond", + "queue", + "halve", + "trump", + "mucus", + "grant", + "spook", + "cloth", + "lager", + "sweep", + "lunar", + "adept", + "pasta", + "woman", + "pulse", + "class", + "envoy", + "mimic", + "bayou", + "bound", + "satin", + "detox", + "flesh", + "venom", + "patch", + "bough", + "fluff", + "prize", + "video", + "ripen", + "moron", + "twixt", + "surly", + "unzip", + "mouse", + "nurse", + "hutch", + "erect", + "pluck", + "leafy", + "inter", + "wrist", + "khaki", + "sorry", + "blitz", + "stray", + "melee", + "snaky", + "setup", + "candy", + "cabby", + "pesky", + "kneel", + "thorn", + "squib", + "rigor", + "stork", + "slimy", + "buggy", + "donor", + "dowel", + "fussy", + "frill", + "bagel", + "waver", + "greet", + "geese", + "wheat", + "sauce", + "amity", + "boost", + "booth", + "agree", + "imply", + "munch", + "buddy", + "weigh", + "pesto", + "canny", + "erupt", + "avian", + "shall", + "first", + "waltz", + "wharf", + "dopey", + "crept", + "elder", + "nanny", + "putty", + "lupus", + "tramp", + "dairy", + "ember", + "cyber", + "focal", + "pizza", + "heard", + "folio", + "woven", + "visor", + "afoot", + "proxy", + "mania", + "maxim", + "begin", + "urine", + "cause", + "catty", + "grand", + "howdy", + "mafia", + "smile", + "taper", + "weird", + "piano", + "slime", + "dwell", + "croup", + "itchy", + "burly", + "crawl", + "moose", + "outdo", + "slice", + "maple", + "react", + "piney", + "ditty", + "usher", + "camel", + "abbey", + "sheik", + "viral", + "chunk", + "throb", + "swirl", + "pinch", + "buxom", + "weave", + "stead", + "smite", + "amaze", + "spurn", + "urban", + "brave", + "bring", + "ascot", + "night", + "tabby", + "rupee", + "resin", + "truer", + "azure", + "serum", + "bezel", + "sleep", + "bunny", + "whole", + "epoch", + "blade", + "crepe", + "claim", + "drake", + "diner", + "heist", + "timer", + "steak", + "palsy", + "witch", + "plait", + "merit", + "pouty", + "smirk", + "theme", + "reply", + "anger", + "altar", + "blown", + "livid", + "belle", + "aroma", + "greed", + "glint", + "junta", + "onion", + "metal", + "guild", + "draft", + "guava", + "plied", + "algae", + "quoth", + "while", + "wryly", + "adage", + "upper", + "balls", + "welsh", + "lumpy", + "swoon", + "quilt", + "maker", + "amply", + "eerie", + "vixen", + "cabin", + "edify", + "cleat", + "blurb", + "nymph", + "lodge", + "child", + "twist", + "jolly", + "dealt", + "slunk", + "singe", + "poise", + "mercy", + "clasp", + "adobe", + "solve", + "usual", + "angry", + "homer", + "habit", + "gloss", + "crony", + "witty", + "shied", + "slave", + "trade", + "power", + "shiny", + "filet", + "argue", + "twang", + "hedge", + "young", + "noble", + "imbue", + "thank", + "abate", + "table", + "stilt", + "nudge", + "glyph", + "bonus", + "rotor", + "enact", + "flair", + "viola", + "chili", + "curio", + "fault", + "trick", + "gypsy", + "vigil", + "laden", + "crate", + "refer", + "prawn", + "carat", + "bluff", + "shift", + "gayer", + "thing", + "salad", + "shave", + "heron", + "badly", + "stair", + "aphid", + "privy", + "anvil", + "blind", + "avail", + "slept", + "ample", + "chaff", + "sworn", + "merry", + "tulip", + "adorn", + "match", + "pouch", + "medic", + "opium", + "deity", + "stony", + "march", + "funky", + "brush", + "round", + "sepia", + "focus", + "whiff", + "gorge", + "joist", + "savor", + "flick", + "worse", + "slink", + "floor", + "robin", + "downy", + "haste", + "harsh", + "titan", + "chant", + "grape", + "audit", + "final", + "chill", + "wispy", + "towel", + "lofty", + "deign", + "drama", + "marry", + "lanky", + "clerk", + "stock", + "fiber", + "crock", + "sooth", + "geeky", + "befit", + "thick", + "slant", + "brand", + "whirl", + "atone", + "nutty", + "payee", + "awash", + "craft", + "haute", + "brass", + "graze", + "rigid", + "lever", + "gusty", + "cloud", + "align", + "repel", + "queer", + "gawky", + "ultra", + "logic", + "tally", + "growl", + "alive", + "sumac", + "tapir", + "crass", + "dirty", + "stern", + "puffy", + "globe", + "await", + "nomad", + "whiny", + "musky", + "liken", + "spoon", + "shaky", + "flank", + "chest", + "plate", + "steep", + "ovary", + "tweet", + "vault", + "mango", + "award", + "hater", + "month", + "brace", + "renal", + "zebra", + "filly", + "easel", + "carol", + "dowry", + "rusty", + "motif", + "choke", + "aside", + "frame", + "speak", + "scale", + "leaky", + "alarm", + "icing", + "randy", + "unset", + "ferry", + "avoid", + "thump", + "scout", + "bloke", + "hazel", + "taunt", + "catch", + "kneed", + "bleep", + "bleak", + "spree", + "hippo", + "decor", + "among", + "vapor", + "minor", + "trial", + "macho", + "infer", + "grunt", + "stare", + "felon", + "psalm", + "ovate", + "badge", + "ardor", + "occur", + "leave", + "clock", + "oddly", + "snowy", + "parka", + "baker", + "madly", + "spank", + "chess", + "riser", + "sneer", + "until", + "inane", + "diver", + "check", + "diode", + "roach", + "axiom", + "cacti", + "field", + "fudge", + "steed", + "major", + "whine", + "quill", + "manly", + "elude", + "leggy", + "idyll", + "swill", + "butch", + "quart", + "spied", + "forgo", + "roger", + "patsy", + "movie", + "rarer", + "goose", + "covet", + "spout", + "fight", + "gnash", + "amber", + "rogue", + "rehab", + "tidal", + "fritz", + "skulk", + "woozy", + "tenth", + "bitty", + "clamp", + "climb", + "alert", + "lurid", + "guppy", + "cease", + "cater", + "ombre", + "heath", + "bosom", + "shire", + "visit", + "nadir", + "eagle", + "clone", + "coach", + "forth", + "drift", + "hymen", + "party", + "fluid", + "newly", + "swami", + "raspy", + "siren", + "shoot", + "egret", + "zesty", + "title", + "great", + "dense", + "razor", + "snort", + "glean", + "delay", + "label", + "abhor", + "spice", + "navel", + "genre", + "cover", + "pause", + "plaza", + "nicer", + "crumb", + "recur", + "since", + "gully", + "bible", + "grief", + "purer", + "humus", + "knife", + "tooth", + "scree", + "leant", + "fairy", + "puppy", + "chump", + "gauge", + "manor", + "shock", + "froth", + "clink", + "glory", + "gooey", + "emcee", + "femme", + "bushy", + "dully", + "think", + "total", + "later", + "apron", + "blare", + "horny", + "fancy", + "spurt", + "saucy", + "undid", + "purse", + "score", + "brawl", + "grain", + "utter", + "using", + "basis", + "umbra", + "hasty", + "trope", + "river", + "doubt", + "petty", + "aging", + "caper", + "snipe", + "latte", + "grown", + "suave", + "lunch", + "dirge", + "fresh", + "molar", + "motel", + "grind", + "prick", + "ruler", + "going", + "angst", + "swine", + "aisle", + "polar", + "hatch", + "issue", + "harpy", + "cynic", + "guide", + "naval", + "buyer", + "tower", + "alone", + "ethos", + "metro", + "stomp", + "belie", + "never", + "ingot", + "midst", + "decry", + "junto", + "flint", + "early", + "lusty", + "loamy", + "agent", + "frock", + "craze", + "dodge", + "chalk", + "hinge", + "scant", + "segue", + "spare", + "youth", + "older", + "bluer", + "adore", + "hilly", + "prism", + "forum", + "girth", + "awful", + "liege", + "rayon", + "aloud", + "tamer", + "theft", + "deuce", + "abuse", + "rhyme", + "dally", + "fizzy", + "druid", + "gauze", + "embed", + "limbo", + "slack", + "could", + "crier", + "baggy", + "gummy", + "clash", + "tulle", + "sheen", + "rocky", + "tatty", + "cigar", + "refit", + "femur", + "dumpy", + "rebar", + "brief", + "fetch", + "awake", + "duvet", + "nerve", + "jaunt", + "brake", + "valet", + "toxin", + "reign", + "wacky", + "surer", + "fugue", + "fibre", + "stick", + "abase", + "throw", + "feast", + "radii", + "sperm", + "noisy", + "bawdy", + "octal", + "lingo", + "scene", + "daunt", + "trice", + "villa", + "sniff", + "matey", + "sense", + "abort", + "stint", + "tasty", + "wreck", + "swung", + "upset", + "oaken", + "delta", + "flute", + "chafe", + "gaffe", + "train", + "snide", + "spore", + "sleek", + "irony", + "dread", + "iliac", + "farce", + "swath", + "siege", + "amend", + "brunt", + "chime", + "moral", + "aorta", + "broom", + "dilly", + "annul", + "irate", + "guard", + "caulk", + "plier", + "trove", + "caddy", + "bleat", + "eater", + "scoop", + "shine", + "super", + "sedan", + "these", + "tough", + "slide", + "loopy", + "shear", + "whoop", + "stall", + "chase", + "clung", + "moody", + "royal", + "again", + "shank", + "satyr", + "lithe", + "stunk", + "scuba", + "tepid", + "rover", + "brick", + "sixth", + "feral", + "blame", + "scour", + "deter", + "bicep", + "scram", + "savoy", + "motto", + "skier", + "world", + "place", + "tubal", + "vouch", + "yacht", + "foggy", + "joust", + "blush", + "mount", + "shade", + "idiom", + "fauna", + "baler", + "thigh", + "voila", + "papal", + "mouth", + "mambo", + "evade", + "bilge", + "devil", + "glass", + "tract", + "waive", + "quirk", + "swept", + "affix", + "ether", + "quail", + "equip", + "space", + "strut", + "tenor", + "sooty", + "large", + "cargo", + "booby", + "dwelt", + "arose", + "salty", + "owing", + "broke", + "ficus", + "parse", + "raise", + "enjoy", + "exist", + "amuse", + "intro", + "weedy", + "risky", + "shrug", + "horde", + "niche", + "bride", + "begun", + "ahead", + "sneak", + "prior", + "hover", + "trawl", + "flask", + "gravy", + "modal", + "filth", + "drone", + "chirp", + "hoist", + "their", + "elfin", + "music", + "anime", + "crazy", + "snore", + "empty", + "saute", + "prong", + "natal", + "milky", + "there", + "usurp", + "serve", + "exert", + "uncle", + "drill", + "mayor", + "snail", + "wrest", + "goner", + "basic", + "seven", + "dizzy", + "mason", + "skull", + "armor", + "arrow", + "spear", + "folly", + "amiss", + "drawl", + "notch", + "crave", + "grace", + "stood", + "dozen", + "churn", + "fruit", + "color", + "whale", + "dunce", + "cacao", + "inert", + "tawny", + "grate", + "manga", + "udder", + "lipid", + "prose", + "gulch", + "still", + "manic", + "sally", + "sweet", + "sugar", + "gland", + "abled", + "juice", + "under", + "hurry", + "droop", + "model", + "penal", + "loser", + "digit", + "legal", + "hardy", + "actor", + "impel", + "sandy", + "sinew", + "tardy", + "murky", + "funny", + "bunch", + "taffy", + "weary", + "inlet", + "comfy", + "fatty", + "demur", + "attic", + "linen", + "eject", + "known", + "flail", + "fixer", + "shyly", + "swift", + "eaten", + "hence", + "trash", + "swing", + "afoul", + "sassy", + "relax", + "arena", + "retry", + "spawn", + "agora", + "kappa", + "storm", + "spine", + "twirl", + "wrath", + "store", + "shorn", + "erode", + "overt", + "fella", + "abyss", + "pinky", + "sport", + "roast", + "muddy", + "derby", + "ebony", + "terra", + "neigh", + "dream", + "nylon", + "quasi", + "icily", + "clump", + "mulch", + "totem", + "corer", + "snarl", + "adult", + "soapy", + "wrong", + "chaos", + "tripe", + "vegan", + "grasp", + "pupal", + "opine", + "arise", + "swoop", + "bloom", + "state", + "sulky", + "scrub", + "grave", + "amble", + "voice", + "valve", + "stake", + "admin", + "dried", + "ounce", + "wheel", + "outgo", + "prowl", + "scarf", + "stark", + "idler", + "tilde", + "birch", + "tweed", + "froze", + "dogma", + "assay", + "cried", + "rerun", + "shunt", + "plump", + "golem", + "spiel", + "dross", + "bevel", + "gavel", + "sunny", + "jerky", + "ester", + "surge", + "bleed", + "along", + "spike", + "crack", + "plead", + "salve", + "pound", + "taint", + "pried", + "crash", + "expel", + "panic", + "elope", + "enemy", + "gayly", + "etude", + "forte", + "mourn", + "freak", + "polka", + "rough", + "cello", + "unity", + "botch", + "mirth", + "puree", + "stash", + "shirk", + "girly", + "kinky", + "charm", + "beard", + "mangy", + "sully", + "riper", + "warty", + "smote", + "curly", + "shaft", + "knelt", + "slyly", + "lefty", + "gazer", + "conch", + "gamer", + "fishy", + "boney", + "rebut", + "scorn", + "donut", + "spark", + "savvy", + "horse", + "clang", + "ralph", + "salsa", + "posse", + "shark", + "quash", + "stiff", + "black", + "dryly", + "troll", + "boxer", + "angel", + "wench", + "swell", + "sharp", + "dummy", + "chose", + "cling", + "blaze", + "hairy", + "canon", + "maize", + "stank", + "payer", + "teeth", + "tease", + "arbor", + "reuse", + "aglow", + "rouge", + "shuck", + "plain", + "meant", + "brood", + "pushy", + "quark", + "missy", + "wield", + "salon", + "valid", + "augur", + "remit", + "jumbo", + "pixie", + "cheek", + "spunk", + "beget", + "fatal", + "magma", + "joint", + "cavil", + "radio", + "vaunt", + "tibia", + "gouge", + "ranch", + "spelt", + "agony", + "bully", + "aping", + "diary", + "wedge", + "carry", + "unfit", + "drool", + "sonic", + "fraud", + "macro", + "poesy", + "hefty", + "reset", + "jazzy", + "haunt", + "strip", + "thrum", + "solid", + "giver", + "curry", + "story", + "stale", + "phone", + "civic", + "birth", + "spilt", + "gripe", + "frail", + "skunk", + "squat", + "rajah", + "timid", + "stain", + "pilot", + "chart", + "sadly", + "comet", + "third", + "mushy", + "extol", + "judge", + "aback", + "snoop", + "input", + "paste", + "screw", + "trunk", + "hydro", + "those", + "lilac", + "tonic", + "agate", + "smear", + "would", + "media", + "laugh", + "rumor", + "cocoa", + "axion", + "ditto", + "spoil", + "grail", + "jumpy", + "drunk", + "ridge", + "loose", + "offal", + "index", + "cruel", + "today", + "crone", + "cheap", + "rabid", + "hyper", + "qualm", + "spent", + "clued", + "build", + "lucid", + "adopt", + "fable", + "vinyl", + "bigot", + "slick", + "friar", + "sheep", + "moldy", + "lemon", + "gloom", + "miser", + "value", + "canoe", + "uncut", + "coral", + "gruel", + "blond", + "miner", + "tacky", + "spray", + "honor", + "hotly", + "front", + "taste", + "giddy", + "foray", + "arson", + "berth", + "tuber", + "apple", + "false", + "stung", + "audio", + "winch", + "excel", + "pence", + "tempo", + "outer", + "prude", + "cheat", + "hoard", + "groin", + "merge", + "utile", + "elegy", + "flume", + "civil", + "cleft", + "speck", + "novel", + "flyer", + "death", + "fetid", + "burst", + "semen", + "teddy", + "asset", + "booty", + "verse", + "ensue", + "banjo", + "court", + "tangy", + "fully", + "stone", + "glade", + "nerdy", + "goody", + "shook", + "stove", + "boule", + "cough", + "giant", + "forty", + "lower", + "rumba", + "tutor", + "woken", + "optic", + "chard", + "gassy", + "grime", + "blood", + "spite", + "debar", + "skimp", + "cheer", + "belch", + "grill", + "wooly", + "south", + "crush", + "ocean", + "quota", + "taboo", + "turbo", + "woody", + "glove", + "start", + "right", + "dodgy", + "break", + "three", + "proof", + "humph", + "crude", + "toddy", + "waxen", + "daddy", + "brown", + "ethic", + "piece", + "swish", + "mauve", + "slump", + "where", + "gaily", + "zonal", + "feign", + "plush", + "clank", + "shove", + "study", + "sixty", + "alibi", + "inlay", + "aunty", + "rinse", + "wight", + "motor", + "speed", + "green", + "snuff", + "drain", + "pansy", + "learn", + "aloft", + "alpha", + "drawn", + "betel", + "lapse", + "rowdy", + "radar", + "baron", + "agape", + "stink", + "after", + "spill", + "widen", + "purge", + "bless", + "thyme", + "sweat", + "erase", + "faint", + "moult", + "fetal", + "fifth", + "creep", + "guilt", + "verso", + "paler", + "lapel", + "ionic", + "image", + "shoal", + "prone", + "shore", + "china", + "pride", + "sigma", + "comic", + "peach", + "crump", + "gleam", + "micro", + "evoke", + "awoke", + "llama", + "photo", + "reedy", + "perky", + "verve", + "penny", + "water", + "dough", + "jiffy", + "sprig", + "slate", + "topic", + "nasty", + "otter", + "pivot", + "whack", + "guess", + "thumb", + "honey", + "copse", + "sieve", + "allot", + "local", + "slurp", + "latch", + "happy", + "showy", + "artsy", + "brisk", + "disco", + "pearl", + "suite", + "golly", + "spade", + "force", + "banal", + "torus", + "begat", + "gamut", + "picky", + "inner", + "snack", + "gonad", + "omega", + "route", + "quest", + "ought", + "wound", + "vomit", + "tread", + "revel", + "blast", + "pygmy", + "couch", + "shack", + "aware", + "cabal", + "saner", + "bribe", + "creme", + "lucky", + "snare", + "brash", + "flung", + "brook", + "pudgy", + "smell", + "spiny", + "bused", + "octet", + "query", + "poser", + "hotel", + "bugle", + "stalk", + "exalt", + "debut", + "atoll", + "waste", + "apart", + "foyer", + "price", + "vapid", + "lorry", + "layer", + "grove", + "prune", + "organ", + "shown", + "grout", + "cramp", + "evict", + "guise", + "cable", + "lemur", + "alien", + "heave", + "handy", + "robot", + "level", + "regal", + "ninja", + "wider", + "mange", + "threw", + "ruder", + "click", + "inbox", + "ivory", + "carve", + "scrap", + "crypt", + "braid", + "kitty", + "plank", + "hussy", + "dryer", + "olden", + "slosh", + "comma", + "piggy", + "chair", + "dicey", + "skirt", + "noise", + "salvo", + "mince", + "decoy", + "shale", + "creed", + "extra", + "kayak", + "whelp", + "ghoul", + "naive", + "lasso", + "wordy", + "dingy", + "board", + "gecko", + "prime", + "eager", + "torch", + "smelt", + "cameo", + "coyly", + "credo", + "flout", + "stave", + "cream", + "float", + "tepee", + "trust", + "foist", + "nobly", + "ratio", + "burnt", + "chock", + "shawl", + "crick", + "afire", + "marsh", + "light", + "shelf", + "gaunt", + "truth", + "slash", + "crowd", + "rapid", + "acorn", + "terse", + "tunic", + "flack", + "gnome", + "whisk", + "husky", + "bongo", + "write", + "binge", + "parry", + "finer", + "revue", + "pubic", + "gumbo", + "sever", + "eight", + "heavy", + "belly", + "adapt", + "jewel", + "wreak", + "flood", + "knock", + "plaid", + "mealy", + "bread", + "trace", + "split", + "shrub", + "bossy", + "knave", + "colon", + "harem", + "quake", + "white", + "foamy", + "untie", + "hello", + "ennui", + "modem", + "ideal", + "peace", + "widow", + "vista", + "brink", + "exult", + "madam", + "budge", + "earth", + "pooch", + "doing", + "fleet", + "preen", + "hound", + "wrote", + "teary", + "style", + "admit", + "windy", + "melon", + "canal", + "mossy", + "cobra", + "flash", + "niece", + "booze", + "talon", + "quell", + "creek", + "shirt", + "clack", + "godly", + "broth", + "mamma", + "brine", + "sleet", + "scamp", + "frown", + "vodka", + "chief", + "whose", + "bobby", + "spend", + "spoof", + "paper", + "grade", + "cliff", + "vital", + "gaudy", + "recap", + "alter", + "myrrh", + "brawn", + "lance", + "igloo", + "droit", + "drive", + "filmy", + "rival", + "tithe", + "crank", + "scope", + "thong", + "frost", + "vigor", + "cress", + "elite", + "enema", + "strap", + "rider", + "roomy", + "grimy", + "crest", + "decal", + "unwed", + "cache", + "watch", + "basin", + "essay", + "beefy", + "locus", + "reach", + "tribe", + "vowel", + "briny", + "valor", + "gloat", + "butte", + "cagey", + "touch", + "minty", + "freer", + "caste", + "broil", + "equal", + "tumor", + "chore", + "ninny", + "short", + "wince", + "creak", + "hunch", + "stool", + "stage", + "debug", + "given", + "viper", + "punch", + "lyric", + "chasm", + "swamp", + "sloop", + "smith", + "patio", + "minim", + "elate", + "defer", + "tenet", + "opera", + "agile", + "mogul", + "incur", + "edict", + "antic", + "moist", + "endow", + "brain", + "rower", + "fiery", + "crane", + "porch", + "acute", + "flora", + "clear", + "slush", + "ruddy", + "aider", + "humor", + "toast", + "crook", + "cower", + "knead", + "snake", + "lover", + "furor", + "stoke", + "cross", + "rhino", + "toxic", + "enter", + "group", + "troop", + "racer", + "beady", + "fecal", + "truly", + "dance", + "eking", + "scion", + "floss", + "rearm", + "basal", + "realm", + "chide", + "glaze", + "dolly", + "sissy", + "panel", + "scaly", + "newer", + "hyena", + "taken", + "flown", + "alike", + "close", + "scent", + "haven", + "sauna", + "larva", + "wimpy", + "flake", + "shrew", + "parer", + "scoff", + "print", + "seize", + "rally", + "phase", + "login", + "press", + "chord", + "house", + "labor", + "lurch", + "smart", + "primo", + "rainy", + "pleat", + "guest", + "anode", + "oxide", + "midge", + "fleck", + "pupil", + "gourd", + "ankle", + "coast", + "sappy", + "caput", + "smash", + "droll", + "tried", + "drank", + "hunky", + "tipsy", + "frank", + "truss", + "roost", + "taker", + "morph", + "idiot", + "theta", + "squad", + "piety", + "gipsy", + "tight", + "rural", + "triad", + "flirt", + "needy", + "flame", + "holly", + "daily", + "album", + "aptly", + "block", + "maybe", + "stoic", + "retch", + "piper", + "minus", + "coupe", + "token", + "error", + "annex", + "bulky", + "fanny", + "beech", + "boozy", + "alley", + "knoll", + "slain", + "crime", + "venue", + "smoke", + "below", + "plumb", + "seedy", + "ghost", + "wrack", + "inept", + "lunge", + "scold", + "unify", + "stuff", + "email", + "saint", + "grass", + "small", + "patty", + "drink", + "recut", + "loath", + "stunt", + "stack", + "prank", + "borax", + "began", + "cadet", + "leach", + "choir", + "depot", + "slang", + "alloy", + "noose", + "cluck", + "beset", + "leper", + "onset", + "suing", + "berry", + "cairn", + "least", + "snout", + "trite", + "drape", + "crown", + "sight", + "willy", + "louse", + "abode", + "mower", + "fiend", + "denim", + "snuck", + "scalp", + "furry", + "allow", + "chick", + "dutch", + "champ", + "filer", + "leery", + "chuck", + "skate", + "silly", + "elect", + "stuck", + "rodeo", + "trait", + "union", + "unlit", + "perch", + "liver", + "fifty", + "delve", + "gamma", + "bravo", + "cubic", + "spasm", + "odder", + "shame", + "mocha", + "pithy", + "goofy", + "testy", + "boast", + "usage", + "elbow", + "groom", + "mural", + "flock", + "genie", + "breed", + "poker", + "track", + "dusty", + "macaw", + "rabbi", + "blurt", + "meaty", + "exact", + "bylaw", + "owner", + "being", + "quack", + "hobby", + "wagon", + "proud", + "glare", + "debit", + "torso", + "bloat", + "ready", + "shush", + "cutie", + "plunk", + "stoop", + "olive", + "kiosk", + "wring", + "paint", + "pulpy", + "ratty", + "swore", + "undue", + "steam", + "curve", + "wrung", + "lynch", + "tango", + "tense", + "spiky", + "twice", + "clean", + "jelly", + "pitch", + "musty", + "flier", + "jetty", + "entry", + "drove", + "shalt", + "steal", + "steel", + "gruff", + "topaz", + "nosey", + "hitch", + "plant", + "found", + "elide", + "other", + "harry", + "sting", + "offer", + "cedar", + "tweak", + "wafer", + "smock", + "askew", + "annoy", + "ninth", + "truck", + "fungi", + "share", + "billy", + "dimly", + "meter", + "fling", + "repay", + "heart", + "bingo", + "drown", + "shout", + "spire", + "drier", + "pasty", + "scone", + "vying", + "dandy", + "stole", + "libel", + "fried", + "ramen", + "teach", + "finch", + "joker", + "eying", + "probe", + "mecca", + "mound", + "curse", + "fence", + "wiser", + "favor", + "eclat", + "karma", + "twine", + "rifle", + "cycle", + "avert", + "nasal", + "flunk", + "stump", + "bathe", + "pixel", + "trend", + "allay", + "baton", + "sober", + "apnea", + "chain", + "beret" +] diff --git a/src/data/wordlist.json b/src/data/wordlist.json deleted file mode 100644 index ba917ab95..000000000 --- a/src/data/wordlist.json +++ /dev/null @@ -1 +0,0 @@ -["aargh","abaca","aback","abaft","abase","abash","abate","abbey","abbes","abbot","abeam","abele","abets","abhor","abide","abysm","abyss","abler","abode","abort","about","above","abuna","abura","abuse","abuts","abuzz","acara","acari","acerb","achar","ached","aches","acids","acing","acini","ackee","acmes","acorn","acres","acrid","acted","actin","actor","acute","adage","adapt","addax","added","adder","addle","adept","adieu","adios","adyta","adits","adman","admen","admin","admit","admix","adobe","adobo","adopt","adore","adorn","adret","adult","adust","adzes","aegis","aeons","aerie","aetat","afara","affix","afire","afoot","afore","afoul","afrit","afros","after","again","agama","agape","agate","agave","agent","aggro","agile","aging","agios","agism","agist","agley","aglet","aglow","agmas","agony","agora","agree","agues","ahead","ayahs","aided","aides","ailed","aimed","aioli","aired","airer","aisle","aitch","ajuga","akees","akela","alack","alarm","alate","albas","album","alcid","alder","aldol","alecs","aleph","alert","algae","algal","alias","alibi","alien","align","alike","aline","alive","alkyd","alkyl","allay","alley","allyl","allod","alloy","allot","allow","aloes","aloft","aloha","alone","along","aloof","aloud","alpha","altar","alter","altos","alula","alums","alway","amahs","amass","amaze","amber","ambit","amble","ambos","ambry","ameba","amend","amens","ament","amice","amici","amide","amigo","amine","amino","amirs","amiss","amity","amnia","amole","among","amour","ample","amply","ampul","amrit","amuse","ancon","anele","anent","angel","anger","angle","anglo","angry","angst","anima","anime","anion","anise","ankhs","ankle","ankus","annal","annas","annex","annoy","annul","anoas","anode","anole","anomy","anted","antes","antic","antis","antra","antsy","anvil","aorta","apace","apart","apery","aphid","aphis","apian","aping","apish","apnea","appal","apple","apply","apres","apron","apses","apsis","apter","aptly","arbor","arced","archy","ardor","areas","areca","arena","arent","arete","argan","argil","argol","argon","argot","argue","argus","arhat","arias","ariel","arils","arise","armed","armor","aroid","aroma","arose","arrah","array","arras","arris","arrow","arses","arsis","arson","artel","artic","artsy","arums","arvos","asana","ascii","ascon","ascot","ascus","ashen","ashes","ashet","aside","asked","askew","aspen","aspic","assai","assay","asses","asset","aster","astir","aswim","ataxy","atilt","atlas","atman","atoll","atomy","atoms","atone","atria","attar","attic","audio","audit","auger","aught","augur","aunty","aunts","aurae","aural","aurar","auras","aurei","auric","autos","auxin","avail","avant","avast","avens","avers","avert","avgas","avian","avoid","avows","aways","await","awake","award","aware","awash","awful","awing","awoke","axels","axial","axils","axing","axiom","axion","axles","axman","axmen","axons","azans","azide","azine","azoic","azure","baaed","babas","babby","babel","babes","babul","babus","baccy","backy","backs","bacon","baddy","badge","badly","bafta","bagel","baggy","bayed","baile","bails","bayou","bairn","baits","baize","bajra","baked","baker","bakes","baldy","baled","baler","bales","balky","balks","bally","balls","balmy","balms","balsa","balti","balun","balut","banal","banco","bandh","bandy","bands","banes","bangs","bania","banjo","banks","banns","barbs","bardy","bardo","bards","bared","barer","bares","barfy","barfs","barge","barks","barmy","barns","baron","barre","barry","basal","based","baser","bases","basic","basil","basin","basis","basks","bassi","basso","baste","batch","bated","bates","bathe","baths","batik","baton","batty","batts","bauds","baulk","bawdy","bawds","bawls","bazoo","beach","beady","beads","beaky","beaks","beamy","beams","beano","beans","beard","bears","beast","beats","beaus","beaut","beaux","bebop","becks","bedad","bedel","bedew","bedim","beech","beedi","beefy","beefs","beeps","beery","beers","beets","befit","befog","begad","began","begat","beget","begin","begob","begot","begum","begun","beige","being","belay","belch","belie","belle","belly","bells","below","belts","bemas","bemba","bench","bendy","bends","benne","benny","bents","beret","bergs","beryl","berms","berry","berth","beset","besom","bests","betas","betel","beths","bevel","bevvy","bezel","bhang","bhava","bialy","bibbs","bible","biddy","bided","bides","bidet","biers","biffy","biffs","bifid","bigha","bight","bigly","bigot","bijou","biked","biker","bikes","bikie","bylaw","bilby","bilbo","bilge","bilks","billy","bills","bimah","bimas","bimbo","bindi","binds","bines","binge","bingo","bints","biome","biota","biped","bipod","birch","birds","byres","birls","birrs","birth","bison","byssi","bitch","biter","bites","bytes","bitty","bitts","bivvy","byway","blabs","black","blade","blahs","blain","blame","blanc","bland","blank","blare","blase","blast","blats","blaze","bleak","blear","bleat","blebs","bleed","bleep","blend","blent","bless","blest","blimp","blind","blini","bliny","blink","blips","bliss","blitz","bloat","blobs","block","blocs","bloke","blond","blood","bloom","bloop","blots","blowy","blown","blows","blued","bluey","bluer","blues","bluet","bluff","blunt","blurb","blurs","blurt","blush","board","boars","boart","boast","boats","bobby","bobol","bocce","bocci","boche","bocks","boded","bodes","bodge","bodhi","boffo","boffs","bogan","bogey","boggy","bogie","bogle","bogus","bohea","boyar","boils","boing","boyos","bolar","bolas","boldo","boles","bolls","bolos","bolts","bolus","bombe","bombs","bonce","bonds","boned","boner","bones","bongo","bongs","bonks","bonne","bonny","bonus","bonze","booby","boobs","booed","books","boomy","booms","boong","boons","boors","boost","booth","booty","boots","booze","boozy","boras","borax","bored","borer","bores","boric","borne","boron","bosey","bosky","bosom","boson","bossy","bosun","botch","botel","bothy","bough","boule","boult","bound","bourn","bouts","bovid","bowed","bowel","bower","bowie","bowls","boxed","boxer","boxes","boxty","bozos","brace","brack","bract","brads","braes","brags","braid","brail","brain","brays","brake","brand","brant","brash","brass","brats","brave","bravo","brawl","brawn","braxy","braze","bread","break","bream","breed","brens","breve","brews","briar","bribe","brick","bride","brief","brier","brigs","brill","brims","brine","bring","briny","brink","brise","brisk","brits","broad","broch","brock","broil","broke","brome","bromo","bronc","brood","brook","broom","brose","broth","brown","brows","bruin","bruit","brume","brunt","brush","brute","bubal","bubba","buchu","bucko","bucks","buddy","budge","buffo","buffs","buggy","bugle","buyer","build","built","bulbs","bulge","bulgy","bulky","bulks","bulla","bully","bulls","bumph","bumpy","bumps","bunce","bunch","bunco","bunds","bundt","bundu","bungs","bunya","bunko","bunks","bunny","bunts","buoys","burbs","buret","burgh","burgs","burin","burka","burke","burly","burls","burns","burnt","buroo","burps","burro","burrs","bursa","burse","burst","busby","bused","buses","bushy","busks","busty","busts","butch","buteo","butyl","butle","butte","butty","butts","butut","buxom","buzzy","bwana","cabal","cabby","caber","cabin","cable","cacao","cache","cacks","cacti","caddy","cadet","cadge","cadis","cadre","caeca","cafes","caged","cagey","cages","cahow","cairn","cajun","caked","cakes","calif","calix","calyx","calks","calla","calls","calms","calve","camas","camel","cameo","cames","camis","campy","campo","camps","canal","candy","caned","canes","canid","canna","canny","canoe","canon","canst","canto","cants","caped","caper","capes","capon","capos","capot","carat","carbo","cards","cared","carer","cares","caret","carex","cargo","carks","carls","carny","carob","carol","carom","carpi","carps","carry","carrs","carse","carte","carts","carve","casas","cased","cases","casks","caste","casts","catch","cater","cates","catty","caulk","cauls","cause","caved","caves","cavil","cawed","cease","cebid","cecum","cedar","ceded","cedes","cedis","ceiba","ceils","celeb","cella","cello","cells","celom","celts","cense","cento","cents","ceorl","cerci","ceres","ceros","cesti","chack","chads","chafe","chaff","chain","chair","chalk","champ","chams","chant","chaos","chape","chaps","chard","chary","charm","charr","chars","chart","chase","chasm","chats","chawl","chaws","cheap","cheat","check","cheek","cheep","cheer","chefs","chela","chert","chess","chest","chevy","chewy","chews","chias","chica","chick","chide","chief","child","chile","chyle","chili","chill","chimb","chime","chyme","chimp","china","chine","ching","chink","chino","chins","chips","chirm","chiro","chirp","chirr","chiru","chits","chive","chivy","chock","choil","choir","choke","choky","choko","choli","cholo","chomp","chook","choom","chops","chord","chore","chose","chowk","chows","chron","chubb","chubs","chuck","chufa","chuff","chugs","chump","chums","chunk","churl","churn","churr","chute","cyano","cycad","cycle","cyclo","cider","cyder","cigar","cilia","cymae","cymas","cymes","cinch","cynic","circa","circs","cirri","cisco","cissy","cists","cysts","cited","cites","civet","civic","civil","civvy","clack","clade","clads","claim","clays","clamp","clams","clang","clank","clans","claps","clary","clart","clash","clasp","class","clast","clave","claws","clean","clear","cleat","clefs","cleft","clepe","clept","clerk","clews","click","cliff","climb","clime","cline","cling","clink","clint","clips","cloak","clock","clods","clogs","cloys","clomb","clomp","clone","clonk","clops","close","cloth","clots","cloud","clout","clove","clown","clubs","cluck","clued","clues","clump","clung","clunk","coach","coals","coast","coati","coats","cobby","cobia","coble","cobra","cocas","cocci","cocky","cocks","cocoa","cocos","codas","codec","coded","coder","codes","codex","codon","coeds","cogon","cohen","cohos","coyer","coifs","coign","coyly","coils","coins","coypu","coirs","coked","cokes","colas","colds","coley","coles","colic","colon","color","colts","colza","comae","comas","combe","combo","combs","comer","comes","comet","comfy","comic","comma","commo","compo","comps","conch","condo","coned","coney","cones","conga","conge","conic","conks","conns","const","conus","cooch","cooed","cooee","cooks","cools","coomb","coons","coops","coopt","coots","copal","coped","coper","copes","copra","copse","coral","cords","cored","cores","corgi","corky","corks","corms","corny","corns","cornu","corps","corse","coses","coset","cosmo","costa","costs","cotch","cotes","cotta","couch","cough","could","count","coupe","coups","court","couth","coved","covey","coven","cover","coves","covet","covid","covin","cowed","cower","cowls","cowry","coxae","coxed","coxes","cozen","crabs","crack","craft","crags","crake","cramp","crams","crane","crank","crape","craps","crash","crass","crate","crave","crawl","craws","craze","crazy","creak","cream","credo","creed","creek","creel","creep","creme","crepe","crept","cresc","cress","crest","crews","cribo","cribs","crick","cried","crier","cries","crime","crimp","crips","crypt","crisp","croak","croci","crock","croft","crone","crony","cronk","crook","croon","crops","crore","cross","croup","crowd","crown","crows","croze","cruck","crude","cruds","cruel","cruet","crumb","crump","crunk","cruor","crura","cruse","crush","crust","cubby","cubeb","cubed","cubes","cubic","cubit","cuddy","cueca","cuffs","cuish","cukes","culch","culex","cully","culls","culms","culpa","cults","cumin","cunny","cunts","cupel","cuppa","cuppy","curbs","curds","cured","cures","curie","curio","curly","curls","curry","curse","curst","curve","curvy","cusec","cushy","cusks","cusps","cutch","cutey","cuter","cutie","cutin","cutis","cutty","cutup","cuvee","czars","dacha","dadas","daddy","dados","daffy","daffs","dagga","daggy","dagos","daily","dairy","daisy","dales","dally","damar","dames","damns","damps","dance","danda","dandy","dangs","danio","dared","dares","darky","darks","darns","darts","dated","dater","dates","datum","daube","daubs","daunt","daven","davit","dawns","dazed","dazes","deals","dealt","deans","dears","death","debag","debar","debby","debye","debit","debts","debug","debus","debut","decad","decay","decal","decan","decyl","decks","decoy","decor","decry","deedy","deeds","deems","deeps","defat","defer","degas","deify","deign","deink","deism","deity","deked","dekes","dekko","delay","deled","deles","delft","delis","dells","delph","delta","delve","demes","demit","demob","demon","demos","demur","denar","denes","denim","denis","dense","dents","depot","depth","derby","derma","desex","desks","deter","deuce","devas","devil","devon","dewan","dewar","dewax","dewed","dexes","dhikr","dhobi","dhole","dhoni","dhoti","dhows","dyads","dials","diary","diazo","diced","dicey","dices","dicky","dicks","dicot","dicta","dicty","diddy","didos","didst","diene","dyers","diets","dight","digit","dying","diked","dyked","dikes","dykes","dildo","dilly","dills","dimer","dimes","dimly","dimps","dinar","dined","diner","dines","dynes","dingy","dingo","dings","dinky","dinks","dinos","dints","diode","diols","dippy","dipso","direr","dirge","dirks","dirty","disco","discs","dishy","disks","ditch","ditty","ditto","divan","divas","dived","diver","dives","divot","divvy","diwan","dixie","dizzy","djinn","dobby","dobra","docks","dodge","dodgy","dodos","doers","doest","doeth","doffs","doges","doggy","doggo","dogie","dogma","doyen","doily","doing","dojos","dolce","doled","doles","dolly","dolls","dolor","dolts","domal","domed","domes","donee","donga","dongs","donna","donor","donut","dooms","doors","doozy","doped","dopey","dopes","dormy","dorms","dorps","dorsa","doted","dotes","dotty","doubt","douce","dough","douse","doves","dowdy","dowel","dower","downy","downs","dowry","dowse","dozed","dozen","dozer","dozes","draff","draft","drags","drail","drain","drays","drake","drama","drams","drank","drape","drawl","drawn","draws","dread","dream","drear","dreck","dreed","drees","dregs","dress","dryad","dryas","dried","drier","dryer","dries","drift","drily","dryly","drill","drink","drips","drive","droll","drome","drone","droob","drool","droop","drops","dross","drove","drown","drubs","drugs","druid","drums","drunk","drupe","druse","drusy","duads","duals","ducal","ducat","duces","duchy","ducky","ducks","ducts","dudes","duels","duets","duffs","dukes","dulia","dully","dulls","dulse","dumas","dumbs","dumka","dumky","dummy","dumpy","dumps","dunce","dunes","dungs","dunny","dunno","dunts","duomo","duped","duper","dupes","duple","duppy","durns","duroc","durra","durry","durst","durum","durzi","dusky","dusks","dusty","dusts","dutch","duvet","duxes","dwale","dwarf","dwell","dwelt","eager","eagle","eagre","early","earls","earns","earth","eased","easel","eases","eaten","eater","eaves","ebbed","ebony","eclat","edema","edged","edges","edict","edify","edits","educe","eerie","egads","egest","eggar","egged","egger","egret","eider","eidos","eight","eying","eyras","eyres","eyrie","eyrir","eject","ejido","eking","eland","elate","elbow","elder","elect","elegy","elemi","elfin","elide","elite","elope","elude","elute","elvan","elver","elves","email","embay","embed","ember","embus","emcee","emend","emery","emirs","emits","emmer","emmet","emote","empty","enact","ended","endow","endue","enema","enemy","enjoy","ennui","enrol","ensue","enter","entry","enure","envoi","envoy","eosin","epact","epees","ephah","ephod","ephor","epics","epoch","epode","epoxy","equal","eques","equid","equip","erase","erect","ergot","erica","ernes","erode","erred","error","eruct","erupt","esker","essay","esses","ester","estop","ether","ethic","ethyl","ethos","etyma","ettle","etude","etuis","euros","evade","evens","event","evert","evict","evils","evite","evoke","ewers","exact","exalt","exams","excel","exeat","execs","exert","exile","exine","exist","exits","expel","expos","extol","extra","exude","exult","exurb","fable","faced","facer","faces","facet","facia","facts","faddy","faded","fader","fades","fadge","fados","faery","faggy","fagot","fails","faint","fairy","fairs","faith","faked","faker","fakes","fakir","falls","false","famed","fanal","fancy","fanes","fango","fangs","fanny","faqir","farad","farce","farcy","fards","fared","fares","farls","farms","farse","farts","fasts","fatal","fated","fates","fatso","fatty","fatwa","faugh","fault","fauna","fauns","favor","fawns","faxed","faxes","fazed","fazes","fears","feast","feats","fecal","feces","fecks","feeds","feels","feign","feint","felid","fella","felly","fells","felon","felts","femme","femur","fence","fends","feral","feria","fermi","ferns","ferry","fesse","festa","fetal","fetch","feted","fetes","fetid","fetor","fetus","feuds","feued","fever","fiats","fiber","fibre","fibro","fiche","fichu","ficus","fidos","fiefs","field","fiend","fiery","fifed","fifes","fifth","fifty","figgy","fight","fykes","filch","filed","files","filet","filly","fills","filmy","films","filth","final","finca","finch","finds","fined","finer","fines","finis","finks","finny","fiord","fired","fires","firms","first","firth","fiscs","fishy","fists","fitch","fytte","fiver","fives","fixed","fixer","fixes","fizzy","fjord","flack","flags","flail","flair","flays","flake","flaky","flame","flams","flank","flans","flare","flash","flask","flats","flaws","fleas","fleck","fleer","flees","fleet","flesh","flews","flexo","flyby","flick","flics","flied","flier","flyer","flies","fling","flint","flips","flirt","flits","float","flock","flocs","floes","flogs","flood","floor","flops","flora","flory","floss","flour","flout","flown","flows","flubs","fluey","flues","fluff","fluid","fluke","fluky","flume","flump","flung","flunk","flush","flute","fluty","foals","foamy","foams","focal","focus","foehn","fogey","foggy","fogle","fogou","fohns","foyer","foils","foist","folds","folia","folio","folky","folks","folly","fondu","fonts","foody","foods","fools","footy","foots","foray","forby","forbs","force","fordo","fords","forex","forge","forgo","forks","forme","forms","forte","forth","forty","forts","forum","fossa","fosse","fouls","found","fount","fours","fovea","fowls","foxed","foxes","foxie","frack","frags","fraid","frail","frays","frame","franc","frank","fraps","frass","frats","fraud","freak","freed","freer","frees","freon","fresh","frets","friar","fried","frier","fryer","fries","frigs","frill","frisk","frith","frits","fritz","frizz","frock","froes","frogs","frond","frons","front","frore","frosh","frost","froth","frown","frows","froze","frugs","fruit","frump","fubsy","fucks","fucus","fudge","fuels","fugal","fuggy","fugue","fujis","fully","fulls","fumed","fumes","fumet","fundi","funds","fungi","fungo","funky","funks","funny","furan","furls","furor","furry","furze","fused","fusee","fuses","fusil","fussy","fusty","fuzed","fuzee","fuzes","fuzzy","gabby","gable","gadge","gadid","gaffe","gaffs","gaged","gages","gayal","gayer","gaily","gains","gaits","galah","galas","galea","gales","galls","galop","galvo","gamba","gamed","gamey","gamer","games","gamin","gamma","gammy","gamps","gamut","ganch","ganef","gangs","ganja","gaols","gaped","gaper","gapes","garbo","garbs","garth","gases","gasps","gassy","gated","gates","gatha","gator","gaudy","gauds","gauge","gault","gaunt","gaurs","gauss","gauze","gauzy","gavel","gawky","gawks","gazed","gazes","gears","gecko","geeks","geese","geist","gelds","gelid","gelly","gemma","genae","genes","genet","genic","genie","genii","genip","genoa","genre","gents","genua","genus","geode","geoid","germy","germs","gesso","getup","geums","ghats","ghazi","ghees","ghyll","ghost","ghoul","giant","gibed","gybed","gibes","gybes","gibus","giddy","gifts","gigot","gigue","gilds","gilet","gills","gilts","gimme","gimps","ginks","ginzo","gippo","gyppo","gipsy","gypsy","gyral","girds","gyred","gyres","girly","girls","girns","gyron","giros","gyros","girth","girts","gyrus","gismo","gists","given","giver","gives","gyves","gizmo","glade","glads","glair","gland","glans","glare","glass","glaze","gleam","glean","glebe","glees","gleet","gleys","glens","glide","glims","glint","glyph","gloat","globe","globs","glogg","gloms","gloom","glops","glory","gloss","glost","glove","glows","gloze","glued","gluey","glues","glume","gluon","gluts","gnarl","gnash","gnats","gnaws","gnome","goads","goals","goaty","goats","gobby","gobos","godet","godly","goers","gofer","gogga","goyim","going","golds","golem","golfs","golly","gomer","gonad","goner","gongs","gonif","gonzo","goody","goods","gooey","goofy","goofs","gooks","goons","goops","goose","goosy","gopak","goral","gored","gores","gorse","goths","gouda","gouge","goura","gourd","gouty","gouts","gowan","gowks","gowns","grabs","grace","grade","grads","graft","grail","grain","grays","gramp","grams","grana","grand","grant","grape","graph","grasp","grass","grate","grave","gravy","graze","great","grebe","grebo","greed","greek","green","greet","greys","grids","grief","griff","grift","grigs","grike","grill","grime","grimy","grind","grins","griot","gripe","grips","grist","grits","groan","groat","grogs","groin","groom","grope","gross","grosz","grots","group","grout","grove","growl","grown","grows","grubs","gruel","gruff","grume","grump","grunt","guano","guans","guard","guars","guava","guess","guest","guffs","guide","guido","guyed","guild","guile","guilt","guyot","guiro","guise","gular","gulch","gules","gulfs","gully","gulls","gulps","gumbo","gumma","gummy","gundi","gunge","gunky","gunny","guppy","gurry","gurus","gushy","gussy","gusty","gusto","gusts","gutsy","gutty","haars","habit","hacek","hacky","hacks","hadal","haded","hades","hadji","hadst","hafiz","hafts","haiks","haiku","hails","hairy","hairs","hajis","hajji","hakes","hakim","halal","haled","haler","hales","hallo","halls","halma","halos","halts","halva","halve","hamel","hames","hammy","hamza","handy","hands","hangs","hanky","hanks","hanse","hants","haole","haoma","haply","happy","haram","hardy","hards","hared","harem","hares","harks","harms","harpy","harps","harry","harsh","harts","hasps","haste","hasty","hatch","hated","hater","hates","hatti","haugh","haulm","hauls","haunt","haven","haver","haves","havoc","hawks","hawse","hazed","hazel","hazer","hazes","heady","heads","heald","heals","heaps","heard","hears","heart","heath","heats","heave","heavy","heder","hedge","heeds","heels","hefty","hefts","heiau","heigh","heirs","heist","helio","helix","helly","hello","helms","helot","helps","helve","hemal","hence","henge","henna","henry","herby","herbs","herds","herls","herms","heron","hertz","hests","heugh","hevea","hewed","hewer","hexad","hexed","hexes","hexyl","hicks","hides","hydra","hydro","hyena","highs","hight","hying","hijra","hiked","hiker","hikes","hilar","hylic","hilly","hills","hilsa","hilts","hilum","hilus","hymen","hymns","hinds","hinge","hinny","hints","hyoid","hyped","hyper","hypes","hypha","hypos","hippy","hippo","hyrax","hired","hires","hyson","hitch","hithe","hived","hives","hoagy","hoard","hoary","hobby","hobos","hocks","hocus","hodge","hogan","hoggs","hoick","hoist","hoked","hokey","hokes","hokku","hokum","holds","holed","holes","holla","holly","holms","holts","homed","homey","homer","homes","homos","honed","honey","hones","honky","honks","honor","hooch","hoody","hoods","hooey","hoofs","hooky","hooks","hoops","hoots","hopak","hoped","hopes","horah","horal","horas","horde","horny","horns","horse","horsy","horst","hosed","hosel","hoses","hosta","hosts","hotch","hotel","hotly","hough","hound","houri","hours","house","hovel","hover","howdy","howes","howff","howls","hubby","hucks","huffy","huffs","huger","hulas","hulks","hullo","hulls","human","humic","humid","humor","humph","humpy","humps","humus","hunch","hundi","hunky","hunks","hunts","hurls","hurry","hurst","hurty","hurts","husky","husks","hussy","hutch","hutia","huzza","yabby","yacht","yacks","yahoo","yajna","yakka","iambi","iambs","yanks","yapok","yappy","yarak","yards","yarns","yawed","yawls","yawny","yawns","yawps","ichor","icier","icing","ickle","icons","ictus","ideal","ideas","ident","idyll","idyls","idiom","idiot","idled","idler","idles","idols","yeans","yearn","years","yeast","yecch","yeggs","yells","yelps","yenta","yerba","yerks","yeses","yetis","igloo","yield","yikes","yipes","ikons","ileum","ileus","iliac","ilium","iller","image","imago","imams","imbed","imbue","imide","imine","imped","impel","impis","imply","inane","inapt","incas","incog","incur","incus","index","indri","indue","inept","inert","infer","infix","infra","ingle","ingot","inion","injun","inked","inkle","inlay","inlet","inner","input","inset","intel","inter","intro","inure","inurn","invar","yobbo","yocks","yodel","yoghs","yogis","yoked","yokel","yokes","yolks","ionic","yonis","iotas","young","yourn","yours","youse","youth","yowls","irade","irate","irked","iroko","irony","irons","isles","islet","issei","issue","istle","itchy","items","yucca","yucky","yucks","yugas","yulan","yummy","yurts","ivied","ivies","ivory","ixias","ixtle","izard","izzat","jabot","jacal","jacky","jacks","jaded","jades","jaggy","jails","jalap","jambs","jammy","janes","japan","japed","japes","jarls","jaspe","jatha","jatos","jaunt","jawan","jawed","jazzy","jeans","jebel","jeeps","jeers","jefes","jehad","jelly","jello","jells","jemmy","jenny","jerky","jerks","jerry","jests","jetes","jetty","jewel","jheel","jibed","jibes","jiffy","jiffs","jiggy","jihad","jills","jilts","jimmy","jingo","jinks","jinni","jinns","jirga","jisms","jived","jives","jocks","joeys","johns","joyed","joins","joint","joist","joked","jokey","joker","jokes","jolly","jolts","jones","jorum","jotas","joual","jougs","jouks","joule","joust","jowar","jowls","jubes","judas","judge","jugal","jugum","juice","juicy","jujus","juked","jukes","julep","jumbo","jumpy","jumps","junco","junky","junks","junta","junto","jural","jurat","juror","jutes","kabob","kadis","kafir","kagus","kayak","kayos","kakas","kakis","kalis","kalpa","kames","kanat","kanga","kanji","kanzu","kaons","kapai","kapok","kappa","kaput","karat","karez","karma","karri","karst","karts","kasha","kauri","kavas","kazoo","kebab","kecks","kedge","keech","keeks","keels","keens","keeps","keeve","kefir","keyed","kelps","kelts","kemps","kempt","kenaf","kendo","kente","kepis","kerbs","kerfs","kerne","kerns","ketch","kevel","khadi","khaki","khans","khats","khula","kiaat","kiang","kyats","kibes","kibla","kicky","kicks","kiddy","kiddo","kiers","kikes","kikoi","kylie","kilim","kylix","kills","kilns","kyloe","kilos","kilts","kinds","kings","kinin","kinky","kinks","kiosk","kyrie","kirks","kissy","kists","kytes","kiths","kitty","kivas","kiwis","klick","klieg","klong","kloof","klutz","knack","knaps","knars","knave","knead","kneed","kneel","knees","knell","knelt","knife","knish","knits","knobs","knock","knoll","knops","knots","knout","known","knows","knurl","knurs","koala","koans","kodak","koels","kofta","kohen","koine","kolas","kolos","kombu","kongo","kooky","kooks","kopek","kopje","korai","korma","kotos","kraal","kraft","krait","krans","kraut","krill","krona","krone","kroon","kudos","kudus","kudzu","kugel","kukri","kulak","kulan","kumis","kurta","kurus","kvass","kwela","label","labia","labor","labra","laced","laces","lacks","laded","laden","lades","ladle","lagan","lager","lahar","laics","layer","laird","lairy","lairs","laity","layup","laker","lakes","laksa","lamas","lambs","lamed","lamer","lames","lamia","lamps","lanai","lance","lands","lanes","lanky","lapel","lapis","lappa","lapse","larch","lards","large","largo","larks","larva","lased","laser","lases","lasso","lasts","latch","later","latex","lathe","lathi","laths","latke","lauds","laugh","lavas","laved","laver","laves","lawks","lawns","laxer","lazar","lazed","lazes","leach","leads","leafy","leafs","leaky","leaks","leans","leant","leaps","leapt","learn","lease","leash","least","leave","ledge","leech","leeks","leery","leers","leets","lefty","lefts","legal","leggy","legit","lehrs","leman","lemma","lemon","lemur","lends","lenis","lenos","lento","leone","leper","lepta","letch","letup","levee","level","lever","levin","lewis","lexis","liana","liane","liard","liars","lyase","libel","libra","lycee","licit","licks","lidar","lidos","liege","liens","lifer","lifts","liger","light","lying","liked","liken","likes","lilac","lilts","limba","limbi","limbo","limbs","limed","limey","limen","limes","limit","limns","limos","lymph","limps","linac","lynch","lined","linen","liner","lines","linga","lingo","lings","linky","links","linns","linos","lions","lipid","lippy","lyres","lyric","lysed","lyses","lysin","lysis","lisle","lisps","lists","litas","liter","lithe","litho","lytic","litre","lived","liven","liver","livid","llama","llano","loach","loads","loafs","loamy","loans","loath","lobar","lobby","lobes","lobos","local","lochs","locks","locos","locum","locus","loden","lodes","lodge","loess","lofty","lofts","logan","loges","logia","logic","login","logos","loyal","loins","lolly","lolls","loner","longa","longe","longs","looey","loofa","looie","looky","looks","looms","loony","loons","loopy","loops","loose","loots","loped","lopes","loppy","lordy","lords","lores","loris","lorry","losel","loser","loses","lossy","lotas","lotic","lotto","lotus","lough","louis","loupe","loups","lours","louse","lousy","louts","lovat","loved","lovey","lover","loves","lowed","lower","lowes","lowly","luaus","lubes","lubra","lucid","lucky","lucks","lucre","luffa","luffs","luger","luges","lulls","lulus","lumen","lumme","lumpy","lumps","lunar","lunch","lunes","lunge","lungi","lungs","lunks","lupin","lupus","lurch","lured","lures","lurid","lurks","lusty","lusts","luted","lutes","maars","macaw","maced","macer","maces","macho","macks","macle","macro","madam","madly","mafia","mafic","mages","magic","magma","magus","mahal","mahoe","mahua","mahwa","maybe","maids","mails","maims","mains","mayor","mayst","maize","major","makar","maker","makes","makos","malar","maleo","males","malik","malls","malms","malty","malts","mamas","mamba","mambo","mamey","mamma","mammy","manes","manga","mange","mangy","mango","mania","manic","manky","manly","manna","manny","manor","manse","manta","manul","manus","maple","marae","maras","march","marcs","mardy","mares","marga","marge","maria","marks","marls","marry","marsh","marts","marvy","maser","masks","mason","massa","massy","masts","matai","match","mated","matey","mater","mates","maths","matin","matte","matzo","mauby","mauls","maund","mauri","mauve","maven","mavis","maxim","maxis","mazed","mazer","mazes","mbira","meads","mealy","meals","meany","means","meant","meaty","meats","mebos","mecon","medal","media","medic","meeds","meets","melas","melba","melds","melee","melic","melon","melts","memos","mends","menus","meows","merch","merci","mercy","meres","merge","merit","merle","merls","merry","mesas","mesic","mesne","meson","messy","metal","metas","meted","meter","metes","metho","meths","metic","metis","metol","metre","metro","mewed","mewls","mezzo","myall","miaow","miasm","miaul","micks","micro","middy","midge","midis","midst","miens","miffy","miffs","might","miked","mikes","mylar","milch","miler","miles","milia","milky","milko","milks","mills","milts","mimed","mimeo","mimes","mimic","mimsy","mynah","mynas","mince","minds","mined","miner","mines","minge","mingy","minim","minis","minks","minor","mints","minus","myope","mired","mires","mirex","mirid","mirky","myrrh","mirth","mirvs","miser","mysid","missy","misty","mists","mitch","miter","mites","myths","mitre","mitts","mixed","mixer","mixes","mixup","mizen","moans","moats","mocha","moche","mocks","modal","model","modem","modes","moggy","mogul","mohel","moils","moire","moist","mojos","mokes","molal","molar","molas","moldy","molds","moles","molly","molls","molts","momma","mommy","monad","monal","mondo","money","mongo","monic","monks","monos","monte","month","mooch","moody","moods","mooed","moola","moong","moony","moons","moors","moose","moots","moped","mopes","moray","moral","moran","morel","mores","morns","moron","morph","morse","morts","mosey","mossy","motel","motes","motet","mothy","moths","motif","motor","motte","motto","moues","mould","moult","mound","mount","mourn","mouse","mousy","mouth","moved","mover","moves","movie","mowed","mower","moxie","mozos","mucid","mucin","mucky","mucks","mucro","mucus","muddy","mudra","muffs","mufti","muggy","mulch","mulct","muley","mules","mulga","mulla","mulls","multi","mummy","mumps","mumsy","munch","munge","mungo","munia","muons","mural","mured","mures","murex","murid","murky","murre","mused","muses","mushy","music","musky","musks","musth","musty","musts","mutch","muted","mutes","mutts","muzzy","nabob","nacho","nacre","nadir","naevi","naiad","naifs","nails","naira","naive","naked","naker","namaz","named","names","nanas","nance","nancy","nanny","napes","napoo","nappa","nappe","nappy","narco","narcs","nards","nares","naris","narky","narks","nasal","nasty","natal","natch","nates","natty","naval","navel","naves","navvy","nawab","nazis","neaps","nears","neath","neats","nebby","necks","necro","neddy","needy","needs","neems","neeps","negro","negus","neigh","nelly","nenes","neons","neper","nerds","nerve","nervy","nests","netty","netts","neume","neums","never","nevus","newel","newer","newly","newsy","newts","nexus","ngaio","ngoma","ngwee","nyala","nicer","niche","nicks","nides","nidus","niece","nifty","night","nylon","nimbi","nymph","nines","ninja","ninny","ninon","ninth","nipas","nippy","nisei","niter","nitid","nitre","nitro","nival","nixed","nixer","nixes","nixie","nizam","noble","nobly","nocks","nodal","noddy","nodes","nodus","noels","nohow","noyau","noils","noise","noisy","nomad","nomen","nomes","nonce","nonda","nones","nonet","nonyl","nooky","nooks","noons","noose","nopal","noria","norms","north","nosed","nosey","noses","notch","noted","notes","notum","nouns","novae","novas","novel","noway","nowed","nowel","nubby","nudes","nudge","nudie","nukes","nulls","numbs","numen","nurse","nutsy","nutty","oaken","oakum","oared","oases","oasis","oasts","oaten","oater","oaths","obeah","obeys","obeli","obese","obits","oboes","obols","occur","ocean","ocher","ochre","ocker","ocrea","octad","octal","octet","octyl","oculi","odder","oddly","odeon","odeum","odium","odors","odour","ofays","offal","offed","offer","often","ogams","ogees","ogham","ogive","ogled","ogles","ogres","oidia","oiled","oiler","oinks","okays","okapi","okrug","olden","older","oldie","oleum","olios","olive","ollie","ology","omasa","ombre","omega","omens","omers","omits","oncer","onion","onset","ontic","oohed","oomph","ootid","oozed","oozes","opahs","opals","opens","opera","opine","oping","opium","opsin","opted","optic","orach","oracy","orals","orang","orate","orbit","orcas","orcin","order","oread","organ","oribi","oriel","orles","orlop","ormer","orpin","orris","ortho","oscar","osier","osmic","ostia","other","otter","ottos","ought","ounce","ousel","ousts","outdo","outed","outer","outgo","outre","ouzel","ouzos","ovals","ovary","ovate","ovens","overs","overt","ovine","ovoid","ovolo","ovule","owing","owlet","owned","owner","oxbow","oxeye","oxide","oxlip","oxter","ozone","pacas","paced","pacer","paces","pacha","packs","pacts","paddy","padre","paean","paeon","pagan","paged","pager","pages","payed","payee","payer","pails","pains","paint","pairs","paisa","paise","palea","paled","paler","pales","pally","palls","pallu","palmy","palms","palpi","palps","palsy","panda","panel","panes","panga","pangs","panic","panne","pansy","panty","panto","pants","papal","papas","papaw","paper","pappi","pappy","paras","parch","pards","pared","paren","pares","parge","parka","parky","parks","parol","parry","parse","party","parts","parve","paseo","pasha","passe","pasta","paste","pasty","pasts","patch","paten","pater","pates","pathy","paths","patio","patsy","patty","pause","pavan","paved","paver","paves","pawed","pawky","pawls","pawns","peace","peach","peaky","peaks","peals","pearl","pears","peart","pease","peats","peavy","pecan","pecks","pedal","pedes","peeks","peels","peens","peeps","peery","peers","peeve","peggy","pekan","pekes","pekoe","pelta","pelts","penal","pence","penes","pengo","penis","penna","penni","penny","peony","peons","pepos","peppy","perch","peril","peris","perky","perks","perms","perry","perse","pesky","pesos","pests","petal","peter","petit","petro","petty","pewee","pewit","phage","phare","phial","phyla","phlox","phone","phony","phono","phons","photo","phots","piano","picas","picky","picks","picot","piece","piers","pieta","piety","piezo","piggy","pigmy","pygmy","pikas","piked","pikey","piker","pikes","pilaf","pilau","pilea","piled","pilei","piles","pills","pylon","pilot","pimps","pinas","pinch","pined","piney","pines","pingo","pings","pinky","pinko","pinks","pinna","pinny","pinon","pinot","pinta","pinto","pints","pinup","pions","pious","pipal","piped","piper","pipes","pipet","pipit","pique","pyres","pyrex","pirog","pisco","pisky","piste","pitas","pitch","pithy","piths","piton","pitta","pivot","pixel","pyxes","pixie","pyxis","pizza","place","plage","playa","plaid","plain","plays","plait","plane","plank","plans","plant","plash","plasm","plate","platy","plats","plaza","plead","pleas","pleat","plebe","plebs","plica","plied","plies","plink","plods","ploys","plonk","plops","plots","plows","pluck","plugs","plumb","plume","plumy","plump","plums","plunk","plush","poach","pocky","pocks","poddy","podge","podgy","podia","poems","poesy","poets","pogey","poilu","poind","point","poise","poked","pokey","poker","pokes","pokie","polar","poled","poley","poler","poles","polio","polyp","polis","polys","polje","polka","polls","pombe","pomes","pommy","pomps","ponce","ponds","ponga","pongo","pooch","poohs","pooka","pools","poons","poops","poori","poove","popes","poppa","poppy","popsy","porch","pored","pores","porgy","porky","porks","porno","porta","ports","posed","posey","poser","poses","posho","posit","posse","posts","potch","potoo","potty","potto","pouch","poufs","poult","pound","pours","pouty","pouts","powan","power","poxes","pozzy","praam","prahu","prays","prams","prana","prang","prank","prase","prate","prats","praus","prawn","preen","preys","preps","press","prexy","price","pricy","prick","pride","pried","pries","prigs","prill","prime","primo","primp","prims","prink","print","prion","prior","prise","prism","privy","prize","proas","probe","prods","proem","profs","progs","prole","promo","proms","prone","prong","proof","props","prose","prosy","proto","proud","prove","prowl","prows","proxy","prude","prune","psalm","pseud","pshaw","psych","psoas","pubes","pubic","pubis","pucka","pucks","pudge","pudgy","puffy","puffs","puggy","puked","pukes","pukka","puled","pules","pulik","pulka","pulli","pulls","pulpy","pulps","pulse","pumas","pumps","punas","punch","punga","punky","punks","punny","punty","punts","pupae","pupil","puppy","purdy","puree","purer","purge","puris","purls","purrs","purse","pursy","purty","pushy","pussy","putti","putty","putto","putts","qanat","qibla","quack","quads","quaff","quags","quail","quays","quake","quale","qualm","quant","quare","quark","quart","quash","quasi","quean","queen","queer","quell","query","quern","quest","queue","quick","quids","quiet","quiff","quill","quilt","quins","quint","quips","quipu","quire","quirk","quirt","quite","quits","quoin","quoit","quota","quote","quoth","qursh","rabbi","rabid","raced","racer","races","racks","racon","radar","radii","radio","radix","radon","rafts","ragas","raged","rager","rages","raggy","raids","rayed","rails","rainy","rains","rayon","raise","rajah","rajas","raked","rakes","rales","rally","ralph","rambo","ramie","rammy","ramps","ramus","ranch","randy","rands","ranee","range","rangy","ranis","ranks","rants","raper","raphe","rapid","rarer","rased","rases","raspy","rasps","rated","ratel","rates","rathe","ratio","ratty","raved","ravel","raven","raver","raves","ravin","rawer","razed","razes","razoo","razor","reach","react","ready","reads","realm","reals","reams","reaps","rearm","rears","reave","rebab","rebar","rebbe","rebec","rebel","rebid","rebus","rebut","recap","recce","recks","recon","recta","recti","recto","recur","recut","redan","redds","redes","redid","redos","redox","redux","reedy","reeds","reefs","reeks","reels","reeve","refer","reffo","refit","refix","regal","reify","reign","reins","reive","rejig","rekey","relay","relax","relet","relic","relit","reman","remap","remex","remit","remix","renal","rends","renew","renga","renin","rents","repay","repel","reply","repot","repro","reran","rerun","resat","reset","resin","resit","rests","retch","retia","retie","retry","retro","reuse","revel","revet","revue","rexes","rheas","rheme","rheum","rhyme","rhino","rhyta","rhomb","rhumb","rials","ribby","riced","ricer","rices","ricin","ricks","rider","rides","ridge","riels","riffs","rifle","rifts","right","rigid","rigor","riyal","riled","riley","riles","rille","rills","rimed","rimes","rinds","rings","rinks","rinse","riots","ryots","ripen","riper","risen","riser","rises","rishi","risky","risks","rites","ritzy","rival","rived","riven","river","rives","rivet","roach","roads","roams","roans","roars","roast","robed","robes","robin","robot","rocky","rocks","rodeo","roger","rogue","royal","roily","roils","roles","rolls","roman","romps","ronde","rondo","ronin","roods","roofs","rooks","roomy","rooms","roost","roots","roped","ropey","roper","ropes","roque","rorty","rosed","roses","rosin","rotas","rotor","rouge","rough","round","roups","rouse","roust","route","routs","roved","rover","roves","rowan","rowdy","rowed","rowel","rowen","rower","rubes","ruble","ruche","rucks","ruddy","ruder","ruffe","ruffs","rugby","ruing","ruins","ruled","ruler","rules","rumba","rumen","rummy","rumor","rumps","runes","rungs","runny","runts","rupee","rural","ruses","rusks","rusty","rusts","rutin","saber","sable","sabot","sabra","sabre","sabzi","sacks","sacra","sadhu","sadly","safer","safes","sagas","sages","saggy","sagos","sahib","saiga","sails","saint","saith","saker","sakes","sakis","salad","salal","salat","salep","sales","sally","salmi","salon","salps","salsa","salty","salts","salve","salvo","saman","samba","sambo","sandy","sands","saner","sanga","sapid","sappy","saran","sards","saree","sarge","sarin","saris","sarky","sarks","sarod","saros","sasin","sassy","satai","sated","satin","satyr","satis","sauce","saucy","sauna","saury","saute","saved","saver","saves","savin","savoy","savor","savvy","sawed","saxes","scabs","scads","scags","scald","scale","scaly","scalp","scamp","scams","scans","scant","scape","scare","scarf","scary","scarp","scars","scart","scats","scaup","scaur","scena","scend","scene","scent","schmo","schwa","scion","scoff","scold","scone","scoop","scoot","scopa","scope","score","scorn","scots","scour","scout","scowl","scows","scrab","scrag","scram","scran","scrap","scree","screw","scrim","scrip","scrod","scrub","scrum","scuba","scudi","scudo","scuds","scuff","scull","sculp","scums","scurf","scuta","scute","scuts","seals","seamy","seams","sears","seats","sebum","secco","sects","sedan","seder","sedge","sedum","seedy","seeds","seeks","seels","seems","seeps","seers","segos","segue","seine","seise","seize","selah","selfs","sells","selva","semee","semen","semes","semis","sends","senex","senna","senor","sense","sents","sepal","sepia","sepoy","septa","septs","serac","serai","seres","serfs","serge","serif","serin","serow","serum","serve","servo","setae","seton","setup","seven","sever","sewed","sewen","sewer","sewin","sexed","sexes","sexts","shack","shade","shady","shads","shaft","shags","shahs","shays","shaka","shake","shaky","shako","shale","shall","shalt","shama","shame","shams","shank","shant","shape","shard","share","shark","sharp","shave","shawl","shawm","shaws","sheaf","shear","sheds","sheen","sheep","sheer","sheet","sheik","shelf","shell","sheng","sherd","sheva","shews","shied","shyer","shies","shift","shyly","shill","shims","shine","shiny","shins","ships","shire","shirk","shirr","shirt","shits","shiva","shive","shivs","shlep","shoal","shoat","shock","shoes","shoyu","shoji","shojo","shone","shook","shoos","shoot","shops","shore","shorn","short","shote","shots","shout","shove","showy","shown","shows","shred","shrew","shrub","shrug","shuck","shuls","shuns","shunt","shush","shuts","sibyl","sices","syces","sicks","sided","sides","sidhe","sidle","siege","sieve","sighs","sight","sigil","sigla","sigma","signs","sikes","silex","silky","silks","silly","sills","silos","sylph","silts","simps","simul","since","synch","syncs","sines","sinew","singe","sings","sinks","synod","sinus","sipes","sired","siree","siren","sires","sirup","syrup","sisal","sissy","sitar","sitch","sited","sites","situs","sixer","sixes","sixte","sixth","sixty","sizar","sized","sizes","skags","skald","skate","skean","skeet","skegs","skein","skell","skelp","skene","skeps","skews","skids","skied","skyey","skier","skies","skiff","skill","skimp","skims","skink","skins","skint","skips","skirl","skirr","skirt","skite","skits","skive","skoal","skuas","skulk","skull","skunk","slabs","slack","slade","slags","slain","slays","slake","slams","slang","slant","slaps","slash","slate","slats","slave","sleds","sleek","sleep","sleet","sleys","slept","slews","slice","slick","slide","slyer","slily","slyly","slime","slimy","slims","sling","slink","slype","slips","slits","slobs","sloes","slogs","sloka","sloop","sloot","slope","slops","slosh","sloth","slots","slows","slubs","slued","slues","slugs","sluit","slump","slums","slung","slunk","slurp","slurs","slush","sluts","smack","small","smalt","smarm","smart","smash","smaze","smear","smell","smelt","smews","smile","smirk","smite","smith","smock","smogs","smoke","smoky","smoko","smolt","smore","smote","smush","smuts","snack","snafu","snags","snail","snake","snaky","snaps","snare","snark","snarl","snash","sneak","sneck","sneds","sneer","snell","snibs","snick","snide","sniff","snigs","snipe","snips","snits","snobs","snoek","snood","snook","snool","snoop","snoot","snore","snort","snots","snout","snowy","snows","snubs","snuck","snuff","snugs","soaks","soapy","soaps","soars","sober","socko","socks","socle","sodas","sodic","sofar","sofas","softa","softy","soggy","soils","sokes","solan","solar","soldi","soldo","soled","soles","solid","solos","solus","solve","somas","sonar","sonde","sones","songs","sonic","sonny","sonsy","sooth","sooty","soots","sophy","sopor","soppy","soras","sorbs","sords","sorel","sorer","sores","sorry","sorts","sorus","sotol","sough","souls","sound","soupy","soups","sours","souse","south","sowed","space","spacy","spade","spaed","spaes","spahi","spays","spake","spall","spang","spank","spans","spare","spark","spars","spasm","spate","spats","spawn","speak","spear","speck","specs","spect","speed","spelk","spell","spelt","spend","spent","sperm","spews","spica","spice","spicy","spics","spied","spiel","spies","spiff","spike","spiky","spile","spill","spilt","spine","spins","spire","spiro","spirt","spite","spits","spitz","spivs","splay","splat","split","spoil","spoke","spoof","spook","spool","spoon","spoor","spore","sport","spots","spout","sprag","spray","sprat","spree","sprig","sprit","sprue","spuds","spued","spues","spume","spunk","spurn","spurs","spurt","squab","squad","squat","squaw","squib","squid","squit","squiz","stabs","stack","staff","stage","stagy","stags","staid","stain","stair","stays","stake","stale","stalk","stall","stamp","stand","stank","staph","stare","stark","stars","start","stash","state","stats","stave","stead","steak","steal","steam","steed","steel","steen","steep","steer","stein","stela","stele","stems","steno","stent","steps","stere","stern","stets","stews","stick","stied","sties","styes","stiff","stilb","stile","style","styli","still","stylo","stilt","sting","stink","stint","stipe","stirk","stirs","stoas","stoat","stobs","stock","stoep","stogy","stoic","stoke","stole","stoma","stomp","stone","stony","stonk","stood","stook","stool","stoop","stope","stops","store","story","stork","storm","stoup","stour","stout","stove","stows","stray","strap","straw","strep","strew","stria","strip","strop","strow","strum","strut","stubs","stuck","study","studs","stuff","stump","stums","stung","stunk","stuns","stunt","stupa","stupe","suave","sucks","sucre","sudra","suede","sugan","sugar","suing","suint","suite","suits","sulci","sulfa","sulky","sulks","sully","sumac","summa","sumos","sumph","sumps","sunny","sunup","super","supra","surah","sural","suras","surds","surer","surfs","surge","surly","surra","sushi","sutra","sutta","swabs","swage","swags","swain","sways","swale","swami","swamp","swank","swans","swaps","sward","sware","swarf","swarm","swart","swash","swath","swats","swear","sweat","swede","sweep","sweet","swell","swept","swift","swigs","swill","swims","swine","swing","swipe","swirl","swish","swiss","swive","swizz","swobs","swoon","swoop","swops","sword","swore","sworn","swots","swung","tabby","tabes","tabla","table","taboo","tabor","tabus","tache","tachi","tachs","tacit","tacky","tacks","tacos","taels","taffy","tafia","tahrs","taiga","tails","taint","tayra","tajes","taken","taker","takes","takin","talas","talcs","tales","talky","talks","tally","talon","taluk","talus","tamed","tamer","tames","tammy","tamps","tanga","tangi","tangy","tango","tangs","tania","tanka","tanks","tansy","tanto","tapas","taped","taper","tapes","tapir","tapis","tappa","tardy","tares","targe","tarns","taros","tarot","tarps","tarry","tarse","tarsi","tarts","tasks","taste","tasty","tater","tatie","tatty","taunt","taupe","tawed","tawny","tawse","taxed","taxes","taxis","taxon","tazza","teach","teaks","teals","teams","teary","tears","tease","teats","techy","tecta","teddy","teems","teeny","teens","teeth","tekke","teles","telex","telic","telly","tells","teloi","telos","tempi","tempo","temps","tempt","tench","tends","tenet","tenia","tenno","tenon","tenor","tense","tenth","tents","tepal","tepee","tepid","terai","terce","teres","terga","terms","terne","terns","terra","terry","terse","tesla","testa","testy","tests","tetra","texts","thana","thane","thank","thaws","theca","theft","thegn","theme","there","therm","these","theta","thews","thick","thief","thigh","thill","thyme","thymi","thine","thing","think","thins","thiol","third","thole","thong","thorn","thorp","those","three","threw","thrip","throb","throe","throw","thrum","thuds","thugs","thuya","thuja","thumb","thump","tiara","tibia","ticks","tidal","tided","tides","tiers","tiffs","tiger","tigon","tigre","tying","tikes","tykes","tikis","tikka","tilak","tilde","tiled","tiler","tiles","tills","tilth","tilts","timed","timer","times","timid","tinea","tines","tinge","tings","tinny","tints","typed","types","tipis","typos","tippy","tipsy","tired","tires","tyres","tiros","tyros","titan","titer","tithe","titis","title","titre","titty","tizzy","toady","toads","toast","today","toddy","toffy","toffs","tofts","togas","toyed","toile","toils","toyon","tokay","toked","token","tokes","tolls","tombs","tomes","tommy","tonal","tondi","tondo","toned","toner","tones","tonga","tongs","tonic","tonne","tonus","tools","toons","tooth","toots","topaz","toped","topee","topes","tophi","topic","topis","topoi","topos","toque","torch","torcs","tores","toric","torii","torse","torsi","torsk","torso","torta","torte","torts","torus","total","toted","totem","totes","totty","tough","tours","touts","towel","tower","towny","towns","toxic","toxin","trace","track","tract","trade","tragi","trail","train","trays","trait","tramp","trams","trank","trans","traps","trash","trass","trawl","tread","treat","treed","treen","trees","treys","treks","trend","tress","trews","triac","triad","trial","tribe","trice","trick","tried","trier","tries","trigs","trike","trill","trims","trine","trios","tripe","trips","tryst","trite","trogs","troll","tromp","trona","tronc","troop","trope","troth","trots","trout","trove","trows","truce","truck","trued","truer","trues","truly","trull","trump","trunk","truss","trust","truth","tsars","tsuba","tsubo","tubal","tubas","tubby","tubed","tuber","tubes","tucks","tufts","tules","tulip","tulle","tulsi","tumid","tummy","tumor","tumps","tunas","tuned","tuner","tunes","tunic","tunny","tupik","tuple","tuque","turbo","turds","turfy","turfs","turns","turps","tushy","tusky","tusks","tutee","tutor","tutti","tutus","tuxes","twain","twang","twats","tweak","tweed","tween","tweet","twerp","twice","twyer","twigs","twill","twine","twiny","twink","twins","twirk","twirl","twirp","twist","twite","twits","twixt","tzars","udder","ugali","uhlan","ukase","ulama","ulcer","ulema","ulnae","ulnas","ultra","umbel","umber","umbos","umbra","umiak","umped","unapt","unary","unarm","unbar","unbox","uncap","uncle","uncut","under","undid","undue","unfed","unfit","unhip","unify","union","unite","unity","units","unlay","unlet","unlit","unman","unmet","unpeg","unpin","unrig","unrip","unsay","unsee","unset","unsex","untie","until","unwed","unzip","updos","upend","upped","upper","upset","uraei","urate","urban","ureid","urged","urger","urges","urial","urine","usage","users","usher","using","usual","usury","usurp","uteri","utile","utter","uveas","uvula","vacua","vagal","vague","vails","vairy","vajra","vakil","vales","valet","valid","valor","valse","value","valve","vamps","vanes","vangs","vapid","vapor","varec","varix","varna","varus","varve","vases","vasts","vatic","vault","vaunt","veena","veeps","veery","veers","vegan","vegas","veils","veins","velar","velds","veldt","velum","venal","vends","venom","vents","venue","verbs","verge","verse","verso","verst","verts","vertu","verve","vesta","vests","vetch","vexed","vexes","vials","viand","vibes","vicar","vices","vicus","video","views","vigas","vigil","vigor","vying","viler","villa","villi","vills","vinas","vinca","vines","vinyl","viola","viols","viper","viral","vireo","virga","virtu","virus","visas","vises","visit","visor","vista","vital","vitta","vivas","vivat","vivid","vixen","vizor","vocal","vodka","vodun","vogue","voice","voids","voila","voile","volar","voles","volet","volte","volts","volva","vomer","vomit","voted","voter","votes","vouch","vowed","vowel","vroom","vrouw","vulva","wacke","wacky","wacks","waddy","waded","wader","wades","wadis","wafer","wafts","waged","wager","wages","wagon","wahoo","waifs","wails","wains","waist","waits","waive","wakas","waked","waken","wakes","waler","wales","walks","wally","walls","waltz","wands","waned","wanes","wanky","wants","wards","wared","wares","warks","warms","warns","warps","warts","washy","waspy","wasps","waste","watch","water","watts","wauls","waved","waver","waves","waxed","waxen","waxes","wazir","weals","weary","wears","weave","weber","wedge","weedy","weeds","weeks","weeny","weens","weepy","weeps","weest","wefts","weigh","weird","weirs","wekas","welch","welds","welly","wells","welsh","welts","wench","wends","wersh","whack","whale","whams","whang","whaps","whare","wharf","whaup","wheal","wheat","wheel","wheen","whelk","whelm","whelp","where","whets","which","whiff","whigs","while","whims","whine","whiny","whins","whips","whirl","whirr","whirs","whisk","whist","white","whity","whits","whizz","whole","whomp","whoop","whops","whore","whorl","whose","whoso","whump","wicks","widen","wider","wides","widow","width","wield","wifie","wiggy","wight","wilco","wilds","wiled","wiles","wilga","willy","wills","wilts","wince","winch","windy","winds","wynds","wined","wines","wings","winks","wynns","winos","winze","wiped","wiper","wipes","wired","wires","wirra","wised","wiser","wises","wispy","wisps","witan","witch","withe","withy","witty","wived","wives","wizen","wodge","woken","wolds","wolfs","woman","wombs","women","wonga","wonky","wonts","woody","woods","wooed","woofs","wooly","wools","woosh","woozy","wordy","words","works","world","wormy","worms","worry","worse","worst","worth","worts","would","wound","woven","wowed","wrack","wraps","wrapt","wrath","wreak","wreck","wrens","wrest","wrier","wryer","wryly","wring","wrist","write","writs","wrong","wrote","wroth","wrung","wurst","xebec","xenon","xeric","xerox","xylem","xysti","xoana","zayin","zaire","zakat","zamia","zaxes","zazen","zebec","zebra","zebus","zeros","zests","zetas","ziffs","zilch","zinco","zincs","zineb","zings","zippy","zloty","zokor","zonal","zoned","zones","zooid","zooms","zoris","zorro","zowie"] \ No newline at end of file diff --git a/src/providers/AudioProvider.tsx b/src/providers/AudioProvider.tsx index ccda9d90a..9091b74c5 100644 --- a/src/providers/AudioProvider.tsx +++ b/src/providers/AudioProvider.tsx @@ -1,5 +1,6 @@ "use client"; -import { createContext, useRef } from "react"; +import { SFX } from "@/constants/game"; +import { createContext, useEffect, useRef } from "react"; export const AudioContextProvider = createContext({}); @@ -8,21 +9,16 @@ export default function AudioProvider({ }: { children: React.ReactNode; }) { - const containerRef = useRef(null); - const playSound = ( - sound: string | null, + sound: keyof typeof SFX, volume: number = 1, skipAhead: number = 0, ) => { - if (!containerRef.current) return; if (!sound) return; - const audio = new Audio(); + const audio = new Audio(SFX[sound]); audio.volume = volume; audio.currentTime = skipAhead; - audio.src = sound; - audio.load(); audio.play(); }; @@ -32,7 +28,11 @@ export default function AudioProvider({ playSound, }} > -
+ { + Object.values(SFX).map((sound) => ( +

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 QbvOTKn=!nu{?Ci>|G3l?O8@`> literal 0 HcmV?d00001 diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index d2f842227..000000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/victory.wav b/public/victory.wav new file mode 100644 index 0000000000000000000000000000000000000000..6c10b5761da77d034157ec5d880d473e9cbef33c GIT binary patch literal 163856 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%0D}*;HC$Y9m5e|8g!M( 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¨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